
計算で扱うライブラリのインポート文
import numpy as np import sympy as sym import math
SymPy
数学の変数や因数分解、微分などができるライブラリ。
import sympy as sym
シンボルの定義 | .symbols( シンボル名 )
# シンボル(変数)の定義 y = sym.symbols('y') # 複数同時に定義 x, a, b = sym.symbols('x, a, b') # 式の定義 formula = 3*(x+2)**2 + 5
定義したシンボルの型 : sympy.core.symbol.Symbol
単数の Symbol だけ頭文字が大文字。
Symbol() | 1つのみの変数を作る。返り値を受け取る変数が必要。 |
symbols() | 複数の変数を作る。 返り値を受け取る変数が必要。 単体の変数作成にも使えるので、こっち覚えとけばよさそう。 |
var() | 返り値を受け取る変数が必要ない。関数内で使うときバッティングに注意。 トップレベルだと var を使ったほうが楽。 |
値の代入 | .subs ( シンボル名, 値 )
# 値の代入 formula.subs(x, 1) # 複数の値を同時に代入 formula.subs([(x, 1), (y, 2)])
方程式 | .solve ( 式, 求めたい値)
\(ax+b=0\) の \(x\) についての方程式
x, a, b = sym.symbols('x, a, b') # 方程式 # sym.solve( 式, 求めたい変数 ) val = sym.solve (a*x+b, x) print(val)
解の公式
$$\LARGE
x = \frac{-b + \sqrt{b^2}-4ac}{2a}\\
\\
\LARGE x = \frac{-b - \sqrt{b^2}-4ac}{2a}
$$
# これで上記の解の公式が python コードででてくる x, a, b, c = sym.symbols('x, a, b, c') val = sym.solve (a*x**2 +b*x + c, x) print(val)
展開 / 因数分解
展開 | .expand ( 式 )
formula = 3*(x+2)**2 + 5 # 式の展開 formula_expand = sym.expand(formula)
因数分解 | .factor ( 式 )
formula = x * b + x + b + 1 # 因数分解 formula_factor = sym.factor(formula)
平方根 | .root ( 値や式 )
$$\LARGE \sqrt{x}$$
# SymPy func = sym.root(x, 2)
その他の書き方
$$\LARGE \sqrt{\sqrt{x}} \,=\, x^\frac{1}{4}\,= \,x^{0.25}$$
print(sym.root(sym.root(x, 2), 2)) # -> x**(1/4)
絶対値 | .abs ( 値や式 )
$$\LARGE |x|$$
# 組み込み関数 abs = abs(x) # math abs = math.fabs(x) # numpy abs = numpy.abs(x)
微分
微分はグラフの拡大。
導関数 | .diff ( 式 )
$$\LARGE f' = \lim_{h \to 0} \frac{f (x + h) - f(x)}{h}$$
fomula = 4*x**2 # 微分 fomula _diff = sym.diff(fomula)