数式処理システムSageMathの使い方(数体の計算編)
SageMathというフリーかつオープンソースの数式処理システムをご存知でしょうか。
http://www.sagemath.org/ からダウンロードできます(無料!)
とても便利なソフトですので、使い方の簡単な例を紹介しようと思います。
ここで次の計算問題を考えましょう:
体
において、
を簡単にせよ。 また、x3-2x2+3x-1=0の根としてx=0.7849...+i 1.3071...を選び、
として埋め込み(体の準同型)
を定めたとき、 の値はおよそいくらになるか?
SageMathのノートブックという機能を使って上の問題を解いてみることにします。 ノートブックとは、グラフィカルかつ対話的に計算を進めていくことができるSageMathの便利機能です。
さて、SageMathでは有理数体上の既約多項式から数体を構成することができます。
この状態では、xはの元とみなされます。 例えば、x3を評価してみると、次のようになります。
同じようにを評価してみると、
となります。であることがわかりました。
問題の後半については、答えを出すだけならいま求めた式にx=0.7849...+i 1.3071...を 代入すれば良いのですが、より汎用的な方法として、 NumberField関数のembeddingオプションを使って計算することにします。
これで≒-0.316158249 + 1.11729264iがわかりました。
浮動小数点の精度を上げることもできます。
関数の使い方がわからなくなったら、NumberField?のように打ち込んで評価すると、ドキュメントを表示することができます。
NumberFieldオブジェクトは様々なメソッドを持っています。一例として、ガロア群の計算をしてみましょう。
今回はSageMathの、気軽な高機能電卓としての側面のみを紹介しましたが、実際には、SageMathを使えばもっといろいろなことができます。特に、Pythonを使ってプログラミングをすることができるので、Pythonを知っている人なら、新しいプログラミング言語を覚えることなくSageMathでプログラムを書くことができます。