我想整合一下:
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,)
但我尝试了很多方法,没有任何作用,我不确定是否有最好的方法。什么是最好的lib与任意精度集成并在scipy tplwuad中使用它?我需要在tplquad函数中同时调整精度吗?
答案 0 :(得分:1)
来自mpmath import mp mp.dps = 30
def f1(y,x,z): 返回2 * mp.sin(z)* mp.cos(mp.atan((2 * mp.sin(y)-0.5 + x)/(2 * mp.cos(y))))
def f2(y,x,z): 返回2 * mp.cos(z)* mp.sin(mp.atan((2 * mp.sin(y)-0.5 + x)/(2 * mp.cos(y))))
print 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])