用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的结果(即,我并不是真的对第二个积分的矩形区域求和)您不使用的原因是什么?可能会在(嵌套的)
中为每行添加注释,同时
循环解释要使用的内容。