我想整合这个:
import numpy as np
from scipy.integrate import tplquad
def f(y,x,z):
return 2*np.sin(z)*np.cos(np.arctan((2*np.cos(y)-0.5+x)/(2*np.sin(y))))
tplquad(f,0,np.pi/2, lambda z: 0, lambda z:1, lambda z, x: 0, lambda z, x: np.pi/2,)
但是我尝试了很多方法,都没有效果,也不确定是否有最好的方法。与任意精度集成并在 scipy tplwuad 中使用它的最佳库是什么?我是否需要在 tplquad 函数中同时调整精度?
从 mpmath 导入 mp mp.dps = 30
定义 f1(y,x,z): 返回 2*mp.sin(z)*mp.cos(mp.atan((2*mp.sin(y)-0.5+x)/(2*mp.cos(y))))
定义 f2(y,x,z): 返回 2*mp.cos(z)*mp.sin(mp.atan((2*mp.sin(y)-0.5+x)/(2*mp.cos(y))))
打印 mp.quad(f1,[0,mp.pi/2],[0,1],[0,mp.pi/2]) print mp.quad(f2,[0,mp.pi/2],[0,1],[0,mp.pi/2])