sympyで文字列を直接数式として扱いたい(sympifyを使う)
過去にPythonで数式を扱い、微積などを扱う方法を書きました。
このとき、数式の変数はsymbolsやSymbolで一度定義し、
その変数に直接計算式を追加しているのですが、これは大変。
特に、アプリケーションに組み込んだり、可変にしたい場合はこのままでは扱えません。
そんな時に使えるのがsympify関数です。
コード
#pprintは数式をきれいに出力してくれる
#factorは因数分解してくれる
#diffは微分してくれる
from sympy import sympify,pprint,factor,diff
expr = sympify('x**2 +2*x +1')
pprint(expr)
#因数分解
pprint(factor(expr))
#微分
pprint(diff(expr,'x'))
これで文字列として数式を渡して扱えるようになりました。