我尝试整合这个:
积分(积分(积分(2 * sin(z)* cos(atan((2 * cos(y)-0.5 x)/(2 * sin(y)))),y,0,pi / 2),x ,0,1)中,z,0,π/ 2);
Wolfram找到解决方案,但我想控制准确性 . 我尝试使用tplquad,但有一些错误 .
def f(x,y,z):
return 2*sin(z)*cos(atan((2*cos(y)-0.5+x)/(2*sin(y))))
tplquad(f,0,1,0,pi/2,0,pi/2)
错误是:
Blockquote文件“”,第3行,在文件“/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py”,第526行,在tplquad中返回dblquad(_infunc2,a,b,gfun, hfun,(func,qfun,rfun,args),epsabs = epsabs,epsrel = epsrel)文件“/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py”,第461行,在dblquad中返回quad(_infunc,a,b,(func,gfun,hfun,args),epsabs = epsabs,epsrel = epsrel)文件“/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py”,第281行,在quad retval = _quad(func,a,b,args,full_output,epsabs,epsrel,limit,points)文件“/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py” ,第345行,在_quad中返回_quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit)文件“/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py” ,406行,_infunc a = gfun(x)
你知道错误可能来自哪里吗?
1 回答
tplquad的文档指出内积分的积分限制应该作为外积分变量的函数提供(即使它们恰好是你的情况下的常量) .
在您的情况下正确使用
tplquad
如下所示 . 请注意,f
定义中的参数顺序应与集成的顺序相对应 .f
的第一个(最后一个)参数是要集成的最后一个(第一个) . 在这种情况下,由于固定的集成限制,排序无关紧要 .