2016年 11月 03日
Pythonを使うと、いろいろな計算、数式処理などができることは、『Pythonからはじめる数学入門』で触れたが、実際にどのように行うのか何も書かなかった。
数学的な処理を行う場合には、まず sympy というライブラリを使うためにインポートする。
In [9]: from sympy import *
次に、数式では記号を使うので、
In [12]: x = Symbol('x')
により x をシンボルとして扱うことを宣言する。
しかし、このやり方では、シンボルの数が増えると面倒なので、もっと横着な方法を使う。
In [16]: var("a:z")
Out[16]: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z)
これにより、英小文字1文字はシンボルとして扱えるようになる。
In [19]: expr = x**2 - y**2
In [20]: factor(expr)
Out[20]: (x - y)*(x + y)
ということで、こんな感じにどんどん因数分解の宿題ができてしまう。
In [21]: factor(a**2+4*a+4-b**2)
Out[21]: (a - b + 2)*(a + b + 2)
In [22]: factor((a-b)**2*c+(b-c)**2*a+(c-a)**2*b+8*a*b*c)
Out[22]: (a + b)*(a + c)*(b + c)
In [23]: factor(a**4+4*b**4)
Out[23]: (a**2 - 2*a*b + 2*b**2)*(a**2 + 2*a*b + 2*b**2)
最後の式は、Sophie Germain Identity(ソフィージェルマンの恒等式)で、非常に美しい因数分解公式として知られている。
Sophieは、18世紀末から19世紀にかけてのフランスの女性数学・物理学者で、フェルマーの定理にも出てくるが、日本ではあまり知られていないようである。