見出し画像

Pythonでプログラミング!-- 計算式!SymPy

変数、式を定義: sympy.symbol()
変数に値を代入: subs()メソッド
式の展開: sympy.expand()
因数分解: sympy.factor()
方程式を解く: sympy.solve()
連立方程式を解く: sympy.solve()
微分: sympy.diff()
積分: sympy.integrate()
三角関数、指数関数、対数関数などを使う

ざっとこんな感じで使える見たいです。

サンプルコードをGoogleのColabで実際にやっていきます。Colabには最初からライブラリがたくさん入っているから手間いらず。もちろんSymPyも入っています。

SymPy とは Symbol (記号) による演算、すなわちコンピュータで代数演算を実行するためのライブリです。まずインポート。

import sympy

そして、代数GA使えるように変数を定義してやります。

x,y = sympy.symbols('x, y')

これは、

x = sympy.Symbol('x')

という感じに一つずつでもできます。こうしてxとyを使えるようにします。

symbols(),Symbol()の違いに気をつけましょう!

早速ですが、数式を入れてみましょう。四則演算はpython標準なものを使います。

import sympy
x,y = sympy.symbols('x, y')
expr = x**2 + 4*x +3
print(expr)

としてみましょう。ライブラリのない場合は通常の計算されてエラーが出ますが、

x**2 + 4*x + 3

と出ますね。数式がそのまま読み込まれています。これで変数xとyを使った数式が使えるようになりました。

次に変数に値を代入してみましょう。subs()メソッドを使います。

expr.subs(x,2)

として実行すると、"15"と表示されます。"x""2"が代入されて実行されまています。

今度は2つの変数を使ってみましょう。

expr2 = x**2 + y + 2

として、代入式は

expr2.subs([(x,2),(y,3)])

で実行すると、"9"と計算されます。"x","y""2""3"が代入されて計算されました。

式の展開、因数分解、微分、積分などいろいろできます。

いちいちsympy.をつけるのが面倒な場合は、以下のように各関数をimportしておけばよい。
import sympy
from sympy import sin, exp

x = sympy.Symbol('x')
print(sympy.diff(sin(x)))
# cos(x)
print(sympy.diff(exp(x)))
# exp(x)

注意点ですが、

from sympy import *とすればすべての関数がsympy.なしで使えるが、import *は何がimportされるか分からないので、Pythonのコーディング規約PEP8では推奨されていない。



この記事が気に入ったらサポートをしてみませんか?