2016-11-05 34 views
0

我想這個整合:如何有一個任意的精度,並與Python中的SciPy集成?

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函數中同時調整精度嗎?

回答

1

從mpmath進口熔點 mp.dps = 30

DEF F1(Y,X,Z): 返回2 * mp.sin(Z)* mp.cos(mp.atan((2 * (y,x,z): return 2 * mp.cos(z)* mp.inf(y)-0.5 + x)/(2 * mp.cos(y))) .sin(mp.atan((2 * mp.sin(y)-0.5 + x)/(2 * mp.cos(y))))

print mp.quad(f1,[0,mp。 [0,mp.pi/2],[0,1],[0,mp。 pi/2])