Pythonを勉強していると、
数学が必要な場面が多々あるので、
数学を勉強しています。
しかし、数学の勉強をしているときに、
数式をそのまま扱えるといいな、と思うことがあります。
そういう時に便利なモジュールとしてsympyがあります。
これを使うとIPythonNotebookなどで、
Texを使わずに数式を表示したり、
数式操作が可能になります。
導入
pip install sympy
基本的な使い方
symbolsやvarを使用することで、
数式用の変数を定義できます。
from sympy import * # sympy.symbols x = symbols('x') f = x**2 + 2 * x + 1 print f # x**2 + 2 * x + 1 print type(f) #sympy.core.add.Add print type(x) # sympy.core.symbol.Symbol # sympy.var sp,ti = var('speed time') distance = sp * ti print distance # speed * time # f = 0 Eq(f,0) # その他 x = symbols('x') s = sin(x) c = cos(x) t = tan(x) log = ln(x) e = exp(x)
数式処理
因数分解、展開、代入、微分、積分、テイラー展開など、基本的な式の操作が可能です。
x = symbols('x') # 因数分解 f = x**2 + x*2 + 1 f.factor() # (x+1)**2 # 代入 f.subs([(x,-1)]) # 0 # 解を求める f.solve(Eq(f,0),x) # [-1] # 微分 diff(f,x) # 2*x + 2 # 傾き grad = diff(f,x) grad.subs([(x,0)]) # 2 # 積分 integrate(f,x)#不定積分 integrate(f,(x,0,1))#0~1の定積分 # 式の展開 f = (x+1)*(x-1) expand(f) # x**2-1 # テイラー展開 f.series(x) # 極限 limit(f,x,0)#x=>0 limit(f,x,oo)#x=>無限大
その他機能
sympy.Matrixで行列を扱ったり、
sympy.plotting.plotで数式からグラフを作成することができます。
グラフはAAのような状態ですが、
matplotlibをimportすると、
matplotlibを活用します。
import matplotlib.pyplot as plt from sympy import * x = symbols('x') y = (x+1)**3 plotting.plot(y,(x,-10,10))
これで数学の問題を解くと、
いい練習になりそうです。
▼さらに数式を文字列から扱いたい場合はこちら