用python数值求解二重积分
我试图用矩形区域数值求解二重积分,其中积分看起来只是两个变量(θ和φ)的函数 以下是我迄今为止的尝试:用python数值求解二重积分,python,integration,numerical,Python,Integration,Numerical,我试图用矩形区域数值求解二重积分,其中积分看起来只是两个变量(θ和φ)的函数 以下是我迄今为止的尝试: from math import* import numpy as np N = 100000 T = 100000 j = 1 m = 1 lphi = 0.0 uphi = pi ltheta = pi/2.0 utheta = 0.0 sum2 = 0.0 def fa(theta,phi): fac = sqrt(1.0 - ((sin(theta))**2)
from math import*
import numpy as np
N = 100000
T = 100000
j = 1
m = 1
lphi = 0.0
uphi = pi
ltheta = pi/2.0
utheta = 0.0
sum2 = 0.0
def fa(theta,phi):
fac = sqrt(1.0 - ((sin(theta))**2)*((cos(phi))**2))
top = -np.sign(cos(phi))*fabs(sin(i)*cos(phi))
fangular = (1.0/fac)*((pi/2.0) - atan(top/fac)) - 1.0
return fangular
while m < T:
thetaa = ltheta + m
dphi = fabs((uphi - lphi)/T)
dtheta = fabs((utheta - ltheta)/N)
sum1 = 0.0
while j < N:
phia = lphi + j*dphi
fun = fa(thetaa,phia)
Area1 = fun*dphi
sum1 += Area1
j +=1
Area2 = sum1*di
sum2 += Area2
m+=1
print sum2
从数学导入*
将numpy作为np导入
N=100000
T=100000
j=1
m=1
lphi=0.0
uphi=pi
ltheta=pi/2.0
utheta=0.0
sum2=0.0
def fa(θ,φ):
fac=sqrt(1.0-((sin(θ))**2)*((cos(phi))**2))
top=-np.符号(cos(phi))*fabs(sin(i)*cos(phi))
法古拉=(1.0/fac)*((pi/2.0)-atan(top/fac))-1.0
回牙
而m
我只是有点担心第二个积分(涉及θ)没有得到更新。您的代码到底有什么问题?您能再指定一点吗看起来您没有在内部循环之前重置
j
计数器。此外,底部的m+=1
应该缩进,否则当m循环。看起来我刚刚解了第一个积分(θ),而对于第二个积分,我只是使用了乘以dphi的结果(即,我并不是真的对第二个积分的矩形区域求和)您不使用的原因是什么?可能会在(嵌套的)中为每行添加注释,同时
循环解释要使用的内容。