gpt4 book ai didi

python - meshgrid numpy的功能

转载 作者:太空狗 更新时间:2023-10-30 02:32:10 24 4
gpt4 key购买 nike

我有一个问题,我想绘制矩阵的行列式作为参数的函数,所以我有一个脚本

def f(x, y):

DD = np.matrix([[0., 0.],[0., 0.]]) + 0.j
omega = x + 1.j * y

# set up dispersion matrix
DD[0,0] = 1 + omega
DD[1,0] = omega
DD[0,1] = omega
DD[1,1] = 1 - omega

metric = np.linalg.det(DD)

return metric

xx = np.arange(1., 2., 0.1)
yy = np.arange(1., 2., 0.1)

x, y = np.meshgrid(xx, yy)


FPlot = f(x, y)

plt.contourf(x, y, FPlot)
plt.show()

有一个类型错误,因为 omega 是一个网格,我不能将它粘贴到矩阵中或计算行列式——numpy 需要矩阵中的标量。获得正确的网格和评估的行列式的最佳方法是什么?

最佳答案

你可以使用np.frompyfunc:

import numpy as np
import matplotlib.pyplot as plt

def f(x, y):

DD = np.matrix([[0., 0.],[0., 0.]]) + 0.j
omega = x + 1.j * y

# set up dispersion matrix
DD[0,0] = 1 + omega
DD[1,0] = omega
DD[0,1] = omega
DD[1,1] = 1 - omega

metric = np.linalg.det(DD)

return metric
f = np.frompyfunc(f, 2, 1)

xx = np.arange(1., 2., 0.1)
yy = np.arange(1., 2., 0.1)
x, y = np.meshgrid(xx, yy)

FPlot = f(x, y)

plt.contourf(x, y, FPlot) # Note that this is only using the real part of FPlot
plt.show()

enter image description here

关于python - meshgrid numpy的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com