我试图用第一类不完整的勒让德椭圆积分计算一些数学表达式:

python - scipy.special.ellipkinc的复杂参数-LMLPHP

其中K是第一类不完整的勒让德椭圆积分。在ellipkinc中定义为scipy.special

这是Python中的示例:

from numpy import arccos, sqrt
from scipy.special import ellipkinc as K

z = (1+5j)/2.0
x = K(arccos(z), 1/sqrt(2))



但是我收到以下错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-12-d05df015ffeb> in <module>
----> 1 K(arccos(z), 1/sqrt(2))

TypeError: ufunc 'ellipkinc' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''



为什么此函数不接受复杂的参数?如果没有,在某些程序包中是否有任何替代函数可以接受复杂的参数?

感谢您的帮助。

最佳答案

如评论中所述,当前scipy ellipkinc不接受复杂的参数。
或者,您可以使用sympy

from sympy.core import I
from sympy import acos, sqrt
from sympy import elliptic_f as K # the incomplete elliptic integral of the first kind

z = (1 + 5*I)/2
m = 1/sqrt(2)

x = K(acos(z), m).evalf()
print(x)


结果:

0.451970758717359 - 1.62162313666833*I


您可以在Wolframalpha中检查此结果

关于python - scipy.special.ellipkinc的复杂参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59230489/

10-13 09:37