複雑な数式の取り扱い (sympy)
http://life.ess.sci.osaka-u.ac.jp/katsura/ipython_notebook/SympyIntro.htmを実行してみました。
バージョンが上がっているのでいくつか解決していることが分かりました。ここに書かせていただきます。
1. In [1]: from sympy import init_printing ; init_printing()
これになっていた。
2. In [3]: 虚数の表示が正常になっていた。
3. 最後に書かれている次の文章について
"Sympyで得た数式オブジェクトをNumpy等で直接利用するはことはできませんので、コピー&ペーストと多少の書き換えを必要とします。"
分かっておられることと思いますが、
面白い関数 lambdify を使って、Sympyで得た数式オブジェクトをNumpyで直接利用するはことはできました。
from sympy import *
init_printing()
x = symbols('x')
expr1 = (x +1)**2
f = lambdify[x, expr1]
import numpy as np
f(np.linspace(-2., 2., 5))
------------------------------------
実行しての感想:
Mathematica と 対応関係があり面白いと思いました。
expr1.subs(x, S(1)/2) # expr1 /. { x -> (1/2) } Mathematica substitute
_.evalf() # %//N or N[ % ]
------------------------------------
今後ともブログページを参考にさせていただきます。
さとう