Pythonで数式処理をしたい場合はSymPyが便利です。
ライセンスは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 - 1
はx + 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...