python - 振荡积分的二维强度图
问题描述
我是 Python 的初学者,我想要一个像这样的情节:
这只是特定函数的绘图示例。对我来说重要的是能够创建这样的图的代码,我并不需要这个。例如,我想在下面绘制一个积分的模:
每个轴有两个参数。我们假设参数 nu 是固定的。
所以,要做到这一点,我认为我可以写
import numpy as np
import scipy
from numpy import exp,arange
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show
from scipy.integrate import quad
def integrand(x, muu1, muu2):
return np.exp(3. * 1j*( x*x*x*x/4. + muu1*x*x/2. + muu2 *x ) )
# the function that I'm going to plot
def amplitude(func, minim, maxim):
def real_func(x):
return np.real(func(x))
def imag_func(x):
return np.imag(func(x))
real_integral, err1 = quad(real_func, minim, maxim)
imag_integral, err2 = quad(imag_func, minim, maxim)
return real_integral*real_integral + imag_integral*imag_integral
mu1 = arange(-3.0,3.0,0.1).astype(int)
mu2 = arange(-3.0,3.0,0.1).astype(int)
X,Y = meshgrid(mu1, mu2) # grid of point
print(X)
Z = amplitude( lambda x: integrand(x, X, Y), -10,10)
im = imshow(Z,cmap=cm.RdBu)
show()
我看到如下错误:
only size-1 arrays can be converted to Python scalars
我不知道如何解决它,因为我不知道如何处理复杂的积分。
请任何人帮助我创建一个类似的情节,也许是一个更简单的功能?谢谢!
解决方案
推荐阅读
- php - Woocommerce 从产品前端和管理面板中排除类别
- php - 自定义字段上的 WordPress 自定义搜索
- django - Django - 更新用户帐户会破坏用户密码
- javascript - Vue 3 通过组件到达使用错误的功能
- python - Python(Numpy)无法重命名列 - 它们变成“NaN”
- javascript - css 背景图像在不同图像大小的过渡时拉伸
- python - 在 Pyspark 中创建一个新列,该列在另一个可用列上计算
- javascript - 无法重新填充回 vue2-daterange 选择器值
- ios - 如何使用 SwiftUI 将上下文菜单添加到 NavigationLink?
- javascript - 如何比较具有特定名称的所有数组元素?