SymPy の lambdify 関数

398 views
Skip to first unread message

Yoshihiro Sato

unread,
Sep 2, 2015, 11:27:42 PM9/2/15
to IPython Notebook (初心者向け)日本語フォーラム
複雑な数式の取り扱い (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[ % ]

------------------------------------
今後ともブログページを参考にさせていただきます。
さとう

Reply all
Reply to author
Forward
0 new messages