Pythonで数式処理

Pythonで数式処理をしたい場合はSymPyが便利です。

SymPy
http://www.sympy.org/

ライセンスはLicensed under BSD。

使い方

モジュールのインポート

>>> from sympy import *

シンボルx, yで計算

>>> x, y = symbols('x y')
>>> expr = x + 2*y
>>> expr + 1
x + 2*y + 1
>>> expr - x
2*y

expr - 1x + 2*y - xではなく、ちゃんと計算して2*yになります。

展開と因数分解もできます。

>>> expand(expr * expr)
x**2 + 4*x*y + 4*y**2
>>> factor(x**2 + 4*x*y + 4*y**2)
(x + 2*y)**2

見栄え良く表示したい場合は次のようにします。

>>> init_printing(use_unicode=True)
>>> expand(expr * expr)
 2              2
x  + 4⋅x⋅y + 4⋅y

微分、積分もできます。

>>> diff(sin(x), x)
cos(x)
>>> integrate(sin(x), (x, 0, pi))
2

等式の計算もできます。

>>> solve(x**2 -2,  x)
⎡   ___    ___⎤
⎣-╲╱ 2 , ╲╱ 2 ⎦

x^2 - 2 = 0の解を求めています。

行列など、他にもいろいろできるそうです。

関連記事

Pythonでの総乗の求め方
総和(sum)はPythonのsum関数を使って計算できます。 >>> a = [1, 2, 3, 4, 5] >>> sum(a) 15 総乗の方はprodなどの関数が用意されていないみたいですが、operator.mulとreduceを使うと次のようにできます。 >>> import operator >>> reduce(operator.mul, a, 1) 1...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です