如何获得任意精度并与python中的scipy集成?

问题描述 投票:0回答:1

我想整合这个:

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 函数中同时调整精度?

python scipy numerical-integration
1个回答
1
投票

从 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])

© www.soinside.com 2019 - 2024. All rights reserved.