我试图使用以下行执行函数MAG(qy,qz)
的双重集成:
results = np.trapz(np.trapz(MAG(qymap[:,np.newaxis,np.newaxis],qzmap[:,np.newaxis,np.newaxis]), x=qzmap), x=qymap)
但是,积分的结果返回一个2D数组,每个单元格的值为“0”。。。如何正确地对函数MAG(qy,qz)
的qy和qz执行双积分
以下是完整的代码:
import numpy as np
import matplotlib.pyplot as py
## Define the functions necessary
#%%
def theta(qy,qz):
return np.arctan2(qy,qz)
##Define main function
#%%
def MAG(qy,qz):
return np.cos(theta(qy,qz))
## Define qy and qz range and step
#%%
Ny = 50
Nz = 50
qy=np.linspace(-0.3,0.3,Ny) ## define my qy values
qz=np.linspace(-0.3,0.3,Nz) ## define my qz values
qymap=np.tile(qy,(Nz,1)).T
qzmap=np.tile(qz,(Ny,1))
#%%
##Perform the integration of the function MAG
results = np.trapz(np.trapz(MAG(qymap[:,np.newaxis,np.newaxis],qzmap[:,np.newaxis,np.newaxis]), x=qzmap), x=qymap)
目前没有回答
相关问题 更多 >
编程相关推荐