1.14. SymPy¶
数値計算ではないが、数式の変形や簡略化をpythonにさせたい場合は、SymPyというモジュールを使うと便利である。商用の数式処理ソフトにMathematicaというものがあるが、これと似たことをpythonにやらせることができる。SymPyを使うときは、symbols
(複数形のsがついていることに注意)というfunctionを使って、変数を明示的に宣言しないといけいない。なお、SymPyでは複素数はI
(大文字のi)で表し、j
ではない。
In [2]:
from sympy import *
x, y = symbols('x y')
Rational(3, 2)*pi + exp(I*x) / (x**2 + y)
Out[2]:
3行目のRational(3,2)
は、3/2
の意味であるが、3/2
にすると1.5
になってしまうので、分数を計算させないために用いている。普通に3/2
とすると、
In [3]:
3/2*pi + exp(I*x) / (x**2 + y)
Out[3]:
In [9]:
g = (x+y)**2
g
Out[9]:
これを展開したいときは、expand
で、
In [10]:
expand(g)
Out[10]:
In [18]:
factor(g)
Out[18]:
あるいはsmplify
で
In [24]:
simplify(g)
Out[24]:
素因数分解したいときは、factor
を使う。
In [20]:
f = x*y**2 + x + y**2 + 1
f
Out[20]:
In [21]:
factor(f)
Out[21]:
微分はdiff
を使って、
In [25]:
diff(f,x,1)
Out[25]:
その他の詳細は、http://docs.sympy.org/1.3/ を参照。
In [27]:
from sympy import *
x, y = symbols('x y')
simplify(cos(x)*sin(x))
Out[27]:
(1.14.2.)
In [28]:
diff(log(x),x)
Out[28]:
当サイトのテキスト・画像の無断転載・複製を固く禁じます。
Unauthorized copying and replication of the contents of this site, text and images are strictly prohibited.
© 2019 Go Yusa