scipy.special.expn(n,x)用于复数值?

时间:2019-02-18 18:16:09

标签: scipy

我想对这个积分进行数值评估

http://mathworld.wolfram.com/En-Function.html

似乎是使用Scipy在Python中实现的。尤其是

https://scipy.github.io/devdocs/generated/scipy.special.expn.html#scipy.special.expn

我想为纯复数值(z = i * x,其中x为实数)评估此函数,但似乎不起作用。你知道如何解决吗?

from scipy import special
print special.expn(2, 1j)

我得到:

“”“输入类型不支持ufunc'expn',并且根据强制转换规则” safe“”“”“

,不能将输入安全地强制转换为任何受支持的类型

您知道如何解决吗?谢谢!

2 个答案:

答案 0 :(得分:2)

如果您不介意其他依赖项,则可以使用expint中的mpmath函数。它处理复杂的参数:

In [153]: import mpmath

In [154]: mpmath.mp.prec = 100

In [155]: mpmath.expint(2, 1j)
Out[155]: mpc(real='-0.084410950559573886889031770373614', imag='-0.50406706190692837198985611774113')

答案 1 :(得分:0)

使用exp1代替expn(请参见docs):

  

复数参数z的指数积分E_1

示例:

import scipy.special as special
special.exp1(1+1j)
>>(0.0002816244519814326-0.17932453503935886j)