Simpy を使用してハンケル関数の 2 次導関数をプロットします。Mathematicaでは次のように簡単です:
D[HankelH2[1,z],z]
これは、プロパティを使用して分析的に行うことができます。
第 2 種および第 1 次のハンケル関数の第 1 導関数は、それぞれゼロ次および 2 次の第 2 種の 2 つのハンケル関数の差を 2 で割った値に等しくなります。
しかし、Sympy を使用して直接派生させる方法を学びたいと思っています。これまでのところ、私はこれを試しました:
from scipy.special import hankel2
import sympy as sp
x = sp.Symbol('x')
dh2 = sp.diff(lambda x: hankel2(1,x),x)
エラーメッセージは私には判読できないようです:
SympifyError トレースバック (最近の呼び出しが最後) in () 1 import sympy as sp 2 x = sp.Symbol('x') ----> 3 dh2 = sp.diff(lambda x: hankel2(1,x),x )
/usr/lib/python2.7/dist-packages/sympy/core/function.pyc in diff(f, *symbols, **kwargs) 1639 """ 1640 kwargs.setdefault('evaluate', True) -> 1641 return Derivative(f, *symbols, **kwargs) 1642 1643
/usr/lib/python2.7/dist-packages/sympy/core/function.pyc in new (cls、expr、*変数、**仮定) 985 def new (cls、expr、*変数、**仮定): 986 --> 987 expr = sympify(expr) 988 989 # 変数はありません。すべてのフリー シンボルについて微分します。
/usr/lib/python2.7/dist-packages/sympy/core/sympify.pyc in sympify(a, locals, convert_xor, strict, Rational, evaluate) 313 expr = parse_expr(a, local_dict=locals, conversions=transformations, evaluate=evaluate) 314 except (TokenError, SyntaxError) as exc: --> 315 raise SympifyError('could not parse %r' % a, exc) 316 317 return expr
SympifyError: 式 'could not parse u' at 0x7fdf3eca9e60>'' の sympify が失敗しました。例外が発生したためです: SyntaxError: 無効な構文 (、行 1)
私の間違いはどこですか?
前もって感謝します。