TIM Labs

SymPyで因数分解が楽勝

| コメント(0) | トラックバック(0)
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世紀にかけてのフランスの女性数学・物理学者で、フェルマーの定理にも出てくるが、日本ではあまり知られていないようである。

トラックバック(0)

トラックバックURL: http://labs.timedia.co.jp/mt/mt-tb.cgi/526

コメントする

このブログ記事について

このページは、fujiが2016年11月 3日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「書評:『ゼロから作る Deep Learning』」です。

次のブログ記事は「SymPy:再帰的な分数(連分数)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。