概要

Sagemath の正式な名称は Sage です。この文章では検索性を高める目的で Sagemath と記述しています。

Sagemath は「数式処理システム」です。数式処理システムとは、記号を利用して数式を処理するシステムのことです。

基本的な四則演算から、記号計算や数値解析など、様々な処理が可能です。

この分野のソフトウェアとしては Mathematica や Maple 等が有名ですが、それらは商用ソフトウェアであり、かつ高額なソフトウェアです。

Sagemath はオープンソースでフリー(GPL)なソフトウェアで、Mathematica や Maple には及ばない物のかなりの機能を持っています。

R や Maxima 等似たようなシステムでオープンソースの物がありますが、 Sagemath は Python を基盤として作成されているのが特徴です。 Mathematica や R と Python を利用して連携することができ、Python だけで実質すべてを完結できるシステムになっています。

Mathematica の代替ソフトとしても http://alternativeto.net/software/mathematica/ 等で支持されています。

公式サイト

公式サイトは以下になります。

http://www.sagemath.org/

とりあえず動作をためしたい場合は、 Notebook を利用することができます。

http://www.sagenb.org/

アカウントの作成が必要ですが、 Sagemath の動作を確認できます。

インストール

システム要件

インストール前に自分の環境がインストール可能かを確認する必要があります。

対応 OS は Windows、Mac OS X、Linuxです。

快適に動作させたい場合は、最低限でもハードディスクの空き容量は 3G 以上、メモリは 2G 以上必要です。

ダウンロード

Mac OS X へのインストールのみを記述します。

以下からダウンロードが可能です。Asia の中から好きなサーバを選択してダウンロードしてください。

http://www.sagemath.org/download-mac.html

2012年1月時点では以下のようなファイルが配布されています。

Mac OS X 10.4、10.5、10.6用のファイルしかありませんが、10.6用のファイルで 10.7 でも問題なく動作します。

「Darwin.dmg」と「Darwin-app.dmg」の違いですが、「Darwin.dmg」の方はアプリケーション形式になっていません。 ターミナルやEmacsから操作する人はこちらの方が使いやすいです。

ここでは Mac OS X 10.7 Lion にて作業しますので、「sage-4.7.2-OSX-64bit-10.6-x86_64-Darwin.dmg」をダウンロードします。

容量が530MBと巨大なので環境によってはダウンロードに時間がかかるかもしれません。

/shared/images/python/sagemath/sage_mac_download.png

インストール

ファイルをダウンロードしたら dmg ファイルをダブルクリックします。

sage フォルダを「/Applications」以下にコピーします。 全容量は2Gを越えます のでご注意ください。

インストールは完了です。

起動と動作確認

「/Applications/sage/sage」をダブルクリックするか、ターミナルでコマンドを叩けば起動します。

初期起動時はパスの自動設定等を実施するため、数分起動までにかかる場合があります。

無事起動すると「sage:」というプロンプトが出ます。

とりあえず簡単な計算をしてみましょう。「1 + 1」と打鍵して、Enter をすると、計算結果が出ます。

Tab キーによる補完等も効きますので、確認してみてください。

sage: 1 + 1
2
sage: V = QQ^3
sage: V.<ここで Tabキーを打つと補完候補が出る>

終了は exit もしくは quit で可能です。

ヘルプ

ヘルプは「?」で可能です。

sage: V = QQ^3
sage: V?

のように変数や、関数に「?」を付けて Enter するとヘルプが表示されます。ヘルプの終了は「q」です。

NoteBook

NoteBook とは 簡単に言うと、Webブラウザインターフェースです。

以下のようにすると起動します。

sage:notebook()

# パスワードを聞いてきますので管理用のパスワードを入れます
Enter new password:****
Retype new password:***

デフォルトブラウザにて「http://localhost:8000/」が自動的に開かれます。

/shared/images/python/sagemath/sage_active_worksheets.png

NoteBook は 便利ですが、今回は説明をあまりしません。終了はターミナルで「C-c」です。

簡単な計算

とりあえず簡単な計算をしてみます。といっても基本は Python なので、Python とほとんど変りません。

演算の代表例
演算 数学記号 入力例
加算 + 5 + 2
減算 - 5 - 2
乗算 * 5 * 2
除算 / 5 / 2
剰余 % 5 % 2
べき乗 ^ 5 ^ 2
べき乗 ** 5 ** 2
平方根 sqrt(2)
絶対値 |x| abs(-5)
自然対数 log log(2)
階乗 n! factorial(5)
sin sin sin(30)
cos cos cos(30)
tan tan tan(30)
arcsin arcsin arcsin(30)
円周率 π pi
自然対数の低 e e
虚数単位 I i
無限大 oo(オー二つ)

Sagemath は Mahematica に近い動作をします(互換ではありません)。Mahematica では整数計算の解を分数で表示します。また pi などもそのまま表示します。

sage: 5 / 2
5/2
sage: log(2)
log(2)

これを小数で表示したい場合は「N」もしくは「n」関数を利用します。

sage:n(5 / 2)
2.50000000000000
sage: n(log(2))
0.693147180559945

n関数は 引数 digits を渡すことで有効桁数を指定できます。

sage:n(5 / 2,  digits=2)
2.5

n 関数の詳しい使い方は「n?」で見るのが早いです。

グラフの描画

グラフ化は重要です。Sagemath もグラフ機能は高機能です。

2次元グラフは plot 関数で可能です。

y=sin(x)(-2π<=x<=2π)のグラフを書く場合は以下のようにします。

sage:plot(sin(x), (x, -2 * pi , 2 * pi))

以下のようなグラフが生成されます。Mac 環境では通常 PNG 形式の画像で生成され、プレビューで表示されます。

/shared/images/python/sagemath/plot_sin_x.png

3次元グラフは plot3d 関数で可能です。plot3d の出力結果は Jmol というJavaアプリケーションで表示されますので Java が必要です。

f(x, y) = x^2 + y^2(-2<=x<=2,-2<=y<=2)のグラフを書く場合は以下のようにします。

sage: plot3d(lambda x, y: x^2 + y^2, (-2, 2), (-2, 2))
/shared/images/python/sagemath/plot3d.png

Jmol上ではマウスで回転等ができます。

サンプルが「plot3d?」等でいくつか確認することができます。

色なども変更可能です。詳細は http://www.sagemath.org/doc/tutorial/tour_plotting.html を見ると良いでしょう。

方程式

様々な方程式を解くことができます。

solve 関数を利用することで、二次方程式や三次方程式を解くことができます。

solve 関数を利用する場合はあらかじめ Sagemath 用に変数を var にて定義する必要があります。

sage: x = var('x')
sage: solve(x^2 + 3*x + 2, x)
[x == -2, x == -1]

微分は diff 関数を利用します。

sage: u = var('u')
sage: diff(sin(u), u)
cos(u)

積分は integral です。

sage: u = var('u')
sage: integral(cos(u), u)
sin(u)

基本的な物は Basic Algebra and Calculus に説明があります。

その他の機能

Sagemath の機能に関しては、 Sage - Tour からリンクを辿るのが理解しやすいです。

またドキュメントも充実しています。チュートリアル(Sage Tutorial)はほとんど全ての機能に関して説明してあります。

メーリングリスト、IRC、Wiki等様々な情報源があり、知識の蓄積もかなりされていますので、英語が読めるなら特にこまることはないでしょう。

Emacsモード

Emacs 用のモードが用意されています。

sageコマンドにパスが通っているなら、ターミナルで以下のように打つことでインストールされます。

sage -f sage-mode-0.6.spkg

init.el 等に以下を設定します。path は自分の環境に合せてください。

(add-to-list 'load-path (expand-file-name "/Applications/sage/data/emacs"))
(require 'sage "sage")
(setq sage-command "/Applications/sage/sage")

「M-x sage」で起動することができます。

変更履歴

  • 2012-01-09: 公開、Emacs に関して追記
Author: sakito Updated: 2012年01月09日(月) category: /python Permalink: Permalink
このエントリーをはてなブックマークする はてなブックマーク数 このエントリーをdel.icio.usに登録する このエントリーをlivedoorクリップする livedoorクリップ数 このエントリーを Google Bookmark に追加する このエントリーを Tumblr する このエントリーを Blogger する このエントリーに FriendFeed 経由でコメントする このエントリーに Twitter 経由でコメントする このエントリーに Wassr 経由でコメントする このエントリーに identi.ca 経由でコメントする このエントリーに Buzz 経由でコメントする
以下はゲストコメント可能です。名前とメールアドレスは任意の物を入力していただいてかまいません。
blog comments powered by Disqus

このページの先頭へ

copyright (CC-by) 1999-2012 sakito
Powered by pyblosxom. Theme: TheBuckmaker.