概要

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

Sagemath は「数式処理システム」です。数式処理システムとは、記号を利用して数式を処理するシステムのことで、 基本的な四則演算から、記号計算、数値解析など、様々な処理が可能です。

この分野のソフトウェアとしては Mathematica が有名ですが、商用ソフトウェアで高額なソフトウェアです。

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

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

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

公式サイト

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

http://www.sagemath.org/

動作の確認

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

http://www.sagenb.org/

アカウントを作成してログインすることで、インストールせずに動作を確認することが可能です。

インストール

システム要件

対応 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と巨大ですので、環境によってはダウンロード時間がかかります。

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

インストール

ファイルをダウンロードしたら 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 で可能です。

ヘルプ

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

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.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 に関して追記
Author: sakito Updated: 2012年07月22日() category: /python Permalink: Permalink
このエントリーをはてなブックマークする はてなブックマーク数 このエントリーをdel.icio.usに登録する このエントリーを Tumblr する このエントリーに Twitter 経由でコメントする
以下はゲストコメント可能です。名前とメールアドレスは任意の物を入力していただいてかまいません。
blog comments powered by Disqus

このページの先頭へ

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