SciPyから放物線円柱D関数を使用しようとしていますが、複雑な引数に問題があります。エラーを生成するサンプル・コードは次のとおりです。SciPy放物線円柱Dと複合引数
#!/usr/bin/env python
import numpy
import scipy.special as special
# test real numbers
test = 0.735759
A = test - special.pbdv(1,2)[0]
print A
# test complex numbers.
test = 9.43487e-16+1j*5.1361
A = test - special.pbdv(3,-1j)[0]
print A
私が手にエラーがある:
---> 19 A = test - special.pbdv(3,-1j)[0]
20 print A
21
TypeError: ufunc 'pbdv' not supported for the input types, and the inputs could not be
safely coerced to any supported types according to the casting rule ''safe''
From the documentation関数は単に複雑な引数で動作するように定義されていないように見えます。他のscipy関数(Bessel関数jvのような)は、それらが複雑な引数を受け入れることを明示しているので、私はエラーの読み方に間違っているとは思わない。
私の次の質問:複雑な引数を受け入れるPythonの放物線円柱D関数の実装はありますか?私はAbramowitz and Stegunから自分自身を構築しようとしましたが、Mathematicaに同意することはできません。提案をいただければ幸いです。私のGoogleのスキルは何も明らかにしていない。
編集: Question is similar to the question here。
FWIW: 'mpmath'には、複雑な' z'を受け入れる 'pcfd(n、z)'を含むパラボリックな円筒関数のいくつかのフレーバーがあります。それはかなり遅いですが、それは 'mpmath'の一部なので、あなたが好きなほど高い(または忍耐を持って)ように精度を上げることができます。それ以外のものがあれば、それを使って実装をチェックすることができます。 –