复函数的二重积分

2024-09-24 06:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用以下行执行函数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)

Tags: the函数importnpresultsnznymag