概要
Sagemath の正式な名称は Sage ですが、この文章では検索性を高める目的で Sagemath と記述しています。
Sagemath は「数式処理システム」です。数式処理システムとは、記号を利用して数式を処理するシステムのことで、 基本的な四則演算から、記号計算、数値解析など、様々な処理が可能です。
この分野のソフトウェアとしては Mathematica が有名ですが、商用ソフトウェアで高額なソフトウェアです。
Sagemath はオープンソースでフリー(GPL)なソフトウェアで、Mathematica には及ばない物のかなりの機能を持っています。
R や Maxima 等似たようなシステムでオープンソースの物もありますが、 Sagemath は Python を基盤として作成されているのが特徴です。 Mathematica や R と Python を利用して連携することができ、Python だけで実質すべてを完結できるシステムになっています。
Mathematica の代替ソフトとしても http://alternativeto.net/software/mathematica/ 等で支持されています。
インストール
システム要件
対応 OS は Windows、Mac OS X、Linuxですが、Windows 環境へのインストールは少し大変ですので、Linux か Mac OS X を利用してください。
快適に動作させたい場合、最低限でもハードディスクの空き容量は 3G 以上、メモリは 2G 以上必要です。
ダウンロード
Mac OS X へのインストールのみを記述します。
以下からダウンロードが可能です。Asia の中から好きなサーバを選択してダウンロードしてください。
http://www.sagemath.org/download-mac.html
2012年7月時点では以下のようなファイルが配布されています。
Mac OS X 10.4、10.5、10.6用のファイルしかありませんが、10.6用のファイルで 10.7 でも問題なく動作します。
「Darwin.dmg」と「Darwin-app.dmg」が配布されていますが、app 形式はたまに上手く起動しない場合があるようですので、「Darwin.dmg」の方を利用してください。
ここでは Mac OS X 10.7 Lion にて作業しますので、「sage-5.1-OSX-64bit-10.6-x86_64-Darwin.dmg」をダウンロードします。
容量が560MBと巨大ですので、環境によってはダウンロード時間がかかります。
インストール
ファイルをダウンロードしたら dmg ファイルをダブルクリックします。
sage フォルダを「/Applications」以下にコピーします。 全容量は2Gを越えます のでご注意ください。
コピーは コマンドライン で実施した方が良いでしょう。 ドラッグ、ドロップだと環境によってファイルが巨大すぎて Finder が応答しなくなる場合があるようです。
cp -R -P /Volumes/sage-5.1-OSX-64bit-10.6-x86_64-Darwin/sage /Applications
インストールは完了です。
起動と動作確認
「/Applications/sage/sage」にパスを通して、ターミナルで「sage」コマンドで起動します。
初期起動時はパスの自動設定等を実施するため、数分起動までにかかる場合があります。
無事起動すると「sage:」というプロンプトが出ます。
とりあえず簡単な計算をしてみましょう。「1 + 1」と打鍵して、Enter をすると、計算結果が出ます。
Tab キーによる補完等も効きますので、確認してみてください。
sage: 1 + 1
2
sage: V = QQ^3
sage: V.<ここで Tabキーを打つと補完候補が出る>
終了は exit もしくは quit で可能です。
NoteBook
NoteBook とは 簡単に言うと、Webブラウザインターフェースです。
以下のようにすると起動します。
sage:notebook()
# パスワードを聞いてきますので管理用のパスワードを入れます
Enter new password:****
Retype new password:***
デフォルトブラウザにて「http://localhost:8000/」が自動的に開かれます。
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 形式の画像で生成され、プレビューで表示されます。
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))
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.7.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-07-22: Sage 5.1 に記述を変更
- 2012-01-09: 公開、Emacs に関して追記
以下はゲストコメント可能です。名前とメールアドレスは任意の物を入力していただいてかまいません。 blog comments powered by Disqus