sympyのチートシート
概要
- jupyter上で動作する数式を作成したり微分したり積分したり固有値を求めたりできるライブラリ
- google colabはデフォルトでインストールされてサポートされており、ちょっとした計算をするのに便利
初期化
import sympy
from sympy import *
sympy.init_printing()
シンボル、変数の作成
- なにか代入可能な値の変数
x = symbols("x")
y, z = symbols("y, z")
定数の作成
- 変数ではなく定数を扱いたい時
l = var("l") # ラムダの定数が作成される
予約された定数
sympy.E # ネイピア数
sympy.pi # パイ
式を展開
f = (2*x + 3) ** 4
display(f.expand())
式を分解
f = x**2 + 2*x + 1
display(f.factor())
微分
((x + 1)**2).diff(x)
二階微分
((x + 1)**2).diff(x, 2)
積分
(x).integrate(x)
定積分
integrate(exp(-x), (x, 0, oo))
関数の描画
plot(x**2 + 1)
方程式を解く
solve(2*x**2 + 2 -4)
連立方程式を解く
x, y = symbols("x, y")
solve([x+y-2, x -y - 0], [x, y])
定数を使用してそのまま解く
a, b, c = var("a, b, c")
sol = solve([a*x + b*y - 2, a*x - b*y -c], [x, y])
display(sol)
summation(サーメーション, Σ)
from sympy import *
x = symbols("x")
n = var("n")
f = x
Sum(f, (x, 0, n)).doit().factor(n)
極限
x = symbols("x")
f = (1 + 1/x)**x
display(f)
display(limit(f, x, oo))
逆関数を求める
指数関数の逆関数を求める
import sympy
from sympy import Eq
l = sympy.var("lambda")
t, y = sympy.symbols('t y')
n = Eq(y,1 - sympy.E**(-l * t))
n # 指数関数を表示
# 式nをtについて解く
s = sympy.solve(n, t)
s[-1] # 逆関数が表示
行列
固有値を求める
m = Matrix([[0, 1-I, 1], [1+I, 0, 1-I], [1, 1+I, 0]])
display(m)
display(m.eigenvals())