如何在python中拥有任意精度并与scipy集成?

时间:2016-11-05 11:31:39

标签: scipy integrate

我想整合一下:

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 个答案:

答案 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])