0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SymPyことはじめ

Last updated at Posted at 2023-03-09

SymPyの概要

変数を代数的に処理できる(数値計算ではない)pythonにおけるライブラリ
SymPy

例えば与えた文字式を展開したり、因数分解したり、微分、積分を行うことができる。

インストール

書きかけ(多分pip等で出来る。google colaboratoryだとデフォルトで入っている。)

インポート

import sympy

よく使う関数

eps = sympy.Symbol('ε') #文字 ε をコード上での変数epsに代入
display(x) #人間が書く式風に表示

例1 方程式を解く

変数eqxについて解く

x = sympy.Symbol('x')
y = sympy.Symbol('y')

eq = x + y**2 - 4
print(sympy.solve(eq, x))

例2 複素数

sympy.var('z', complex=True)
display(z)
display(sympy.expand_complex(z))
display(sympy.conjugate(z))
display(sympy.expand_complex(sympy.conjugate(z)))

複素数にするときはvarの引数でcomplex=Trueにする。

例3 二次方程式

sympy.var('a')
sympy.var('b')
sympy.var('c')
display(a)
display(b)
display(c)
eq = a*x**2 - 2*b*x + c
display(sympy.solve(eq, x))
sol_list = sympy.solve(eq, x)
for sol in sol_list:
    display(sol)

sympy.solveは複数解があるときはlistで解を帰り値にする。その帰り値をdisplayの引数に入れても適切には表示されない。解の要素を取得してdisplayの引数に入れれば、数式で表示される。

例4 積分

import sympy
a = sympy.Symbol('a', real=True)
b = sympy.Symbol('b', real=True)
x = sympy.Symbol('x', real=True)
display(a, b, x)
display(sympy.integrate(sympy.exp(-(a+b*sympy.I)*x),x))
display(sympy.integrate(sympy.exp(-a*x**2),(x, -sympy.oo, sympy.oo)))
display(sympy.integrate(sympy.exp(-(a+sympy.I*b)*x**2),(x, -sympy.oo, sympy.oo)))

例5 式を整理する

sympy.simplifyを使うと、ある程度式を整理した形にしてくれる。

import sympy
a = sympy.Symbol('a', real=True)
b = sympy.Symbol('b', real=True)
x = sympy.Symbol('x', real=True)
display(sympy.integrate(x * sympy.besselj(2,b*x) * sympy.exp(-a*x**2),(x, 0, sympy.oo)))
display(sympy.simplify(sympy.integrate(x * sympy.besselj(2,b*x) * sympy.exp(-a*x**2),(x, 0, sympy.oo))))

simplify以外に、separatevarscollectratsimpradsimprad_rationalizeがあるらしい。

Ref: 【SymPy】simplifyで数式を簡略化する

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?