Hatena::ブログ(Diary)

小人さんの妄想 このページをアンテナに追加 RSSフィード Twitter

2010-05-26

数式処理システムSAGE

数式処理システムとは、記号の入った数式を直接処理することができるソフトウェアのこと。

微積分をやってのけたり、方程式を解いたりできる、とても賢いソフトのことです。

代表的なものに Mathematica がありますが、いかんせん高価です。

そこでフリーの数式処理システムを探したところ、SAGEというソフトが目に止まりました。

試しに使ってみたところ、なかなか良さげだったので、導入方法をメモしておきます。

* SAGE -- フリー、オープンソースの数式処理システム

>> http://www.sagemath.org/

* 日本国内のミラー -- ダウンロードはこちらから.

>> http://ftp.riken.jp/sagemath/index.html


SAGEの特徴の1つは、WEBブラウザが出力画面になっていることです。なので、

・本体はデスクトップPCに入れておいて、ノートパソコンから遠隔操作する。

・社内に1台設置しておいて、複数人で使い回す。

なんてこともできます。

ちょっと触ってみるだけなら、本家サイトの「Try Sage Online」で試すことができます。

その他の特徴はこちらを参照 >> wikipedia:Sage (数式処理システム)


Macインストール

導入が最も簡単で、問題なく動くのは Mac版です。

Macユーザーはラッキー。Windowsへのインストールはかなり大変なのだ。)

私は少々古い PowerPCMacMiniインストールしたのですが、快適に動作しています。

1.SAGE のサイト http://ftp.riken.jp/sagemath/index.html から、

 自分のMacに合った *.dmgファイルをダウンロードする。

2.ダウンロードしたファイルの中に"sage"というフォルダがあるので、

 これを適当な場所、自分のHOMEなり、アプリケーションの中なりにコピーする。

f:id:rikunora:20100526225233p:image

3."sage"フォルダの中に、黒い四角の"sage"アイコンがある。

 これをダブルクリックすると、、、

f:id:rikunora:20100526225301p:image

4.「デフォルトアプリケーションがありません」となる。

 ここで「アプリケーションの選択」をクリック。

f:id:rikunora:20100526225335p:image

(場合によっては、ここでダイアログが出ずに、すんなりターミナルが起動することもあるようです。

 その場合、以下5.6.の設定は不要です。)

5.アプリケーションを選ぶダイアログが表示されるので、

 「全アプリケーション」に切り替えて、「アプリケーション->ユーティリティ->ターミナル」を選択。

f:id:rikunora:20100526225419p:image

6.「ターミナルでsageを開きますか?」

 開くので「アップデート」をクリック。

f:id:rikunora:20100526225447p:image

7.ターミナルが起動して、「sage: 」というプロンプトが出現すれば、導入完了!

f:id:rikunora:20100526225519p:image

8.終了するときは、「quit」と入力してからターミナルを閉じる。

 2回目以降は、"sage"アイコンダブルクリックで、ターミナルが起動するようになる。


Windows版(VirtualBox)インストール

SAGEがいまひとつ知名度が低い理由の1つは、事実上Windows版が無いということです。

Windows版として配布されている、"sage-virtualbox-4.3.zip"というファイルは、

実は VirtualBox上で動作している Ubuntu Linux版。

どうしてもWindows上で実行したければ、まずVirtualBoxを導入し、

その上で動いている Linux 上で SAGE を実行しなさい、ということなのです。

正直なところ、このインストールLinux の操作に明るい人でないと、かなり難しい。

1.まず VirtualBoxインストールする。

VirtualBox のサイト >> http://www.virtualbox.org/ から、VirtualBoxを入手。

私は最新版の "VirtualBox-3.2.0-61806-Win.exe" を入手した。

2.VirtualBoxインストール途中に警告ダイアログが2回ほど出たが、構わずインストールを続行する。

(私が試したのはWindows-XP

3.SAGE のサイト http://ftp.riken.jp/sagemath/index.html から、

 Microsoft Windows 用(実はVirtualBox用)のバイナリファイルを入手する。

 私は、"sage-virtualbox-4.3.zip" をダウンロードしました。

4.VirtualBoxを起動し、[ファイル]メニュー -> 仮想アプライアンスインポート

5.ここで、先ほどダウンロードしてきた SAGEのファイルの中にある

 "sage.ovf"というファイルを取り込むわけなのですが・・・

 "sage.ovf"ファイルを選択しても、うまく取り込みができません!(設定画面が空のまま)

 実は、現在配布中の"sage-virtualbox-4.3.zip"に含まれている"sage.ovf"は、

 最新のVirtualBox-3.2では取り込むことができない、古い形式のようです。

6."sage.ovf"の中身は XMLファイルなので、エディタで確認することができます。

 そこで、この"sage.ovf"ファイルが上手く取り込めるように、書き換えを行います。

 書き換え済みの"sage_vbox32.ovf"を、こちらに置いておきます。

 >> http://brownian.motion.ne.jp/memo/sage_vbox3.2.ovf

 "sage-virtualbox-4.3.zip"に含まれている"sage.ovf"を、

 この"sage_vbox32.ovf"で置き換えて、VirtualBoxから取り込んでください。

7.これで何とか起動することができると思います。

 しかし、起動したからといって安心はできません。

 SAGEはネットワークの設定が正しくないと、まともに起動しないのです!

 まずは仮想マシン上の Linuxネットワーク接続できるようにすること。

 私はここでひっかかりました。

 満足に動かすためには、その他、Linux周りの設定がいろいろとあるのですが、細かい点は省略。

f:id:rikunora:20100526225615p:image

インストールの参考などに、

※ さげます >> http://d.hatena.ne.jp/sagemath/


● NoteBook の起動

さて、めでたく「sage:」のプロンプト表示に成功したら、次は「NoteBook」を起動しましょう。

NoteBookというのは、SAGEをWebブラウザから操作するためのインターフェイスです。

「sage:」のプロンプトに、「notebook()」と入力します。

sage: notebook()

  ・・・

Enter new password: ****** <-- admin のパスワードを設定します。

Retype new password: ****** <-- 確認のため、同じパスワードを入力

Please login to the notebook with the username 'admin' and the above password.

 **************************************************

 * Open your web browser to http://localhost:8000 *

 **************************************************

このような表示の後、Webブラウザが起動して、SAGEのインターフェイス画面が表示されます。

f:id:rikunora:20100526225716p:image

うまく表示されなかった場合、ブラウザから http://localhost:8000 にアクセスしましょう。

実際の計算処理は「New Worksheet」から新規ワークシートを作成して、その中で行うことになります。

notebook を終了するには、sage: のターミナル画面で Control-C を打ちます。


● リモートアクセス

NoteBookの起動時に

sage: notebook(interface='')

と入力すると、外部のPCからブラウザを通じて、SAGEに自由にアクセスできるようになります。

この他にも notebook には幾つかのオプションがあります。

sage: notebook?

と入力すると、Helpが表示されるので、それを参考にしてください。

(Help画面の終了は :q です。viエディタと同じ操作)


● 使用例

それでは、SAGEを使ってみましょう。まずは円周率1000桁。

ブラウザのWorksheet上で、n(pi, digits=1000) と入力。

コマンドの実行は、Shift + Enter キーで。

f:id:rikunora:20100526225801p:image

グラフ表示は plot コマンド。

f:id:rikunora:20100526225831p:image

3次元グラフは、plot3d。実行すると、JavaApplet が立ち上がる。

f:id:rikunora:20100526225915p:image

この3Dグラフは、マウスでグリグリ動かすことができる。

f:id:rikunora:20100526225942p:image

コマンドの後ろに、続けて ? を入力すると、ヘルプが表示される。

solve は、方程式を解け、というコマンド。

f:id:rikunora:20100526230010p:image

二次方程式の公式、三次方程式の公式。

変数はあらかじめ、x, a, b, c = var('x a b c') という形に定義すること。

f:id:rikunora:20100526230051p:image

微分は、diff

変数 u を定義し忘れると、中ほどのようなエラーとなる)

f:id:rikunora:20100526230123p:image

積分は、integral。

f:id:rikunora:20100526230154p:image

微分方程式も解ける。コマンドは desolve。

f:id:rikunora:20100526230303p:image

その他、ここには書ききれないほどの機能がてんこ盛りです。


俄僅俄僅 2010/05/27 18:32 なるほど。Unixにはもともと数学に関するソフトがあるから、その統合フロントエンドを作ったというところでしょうか。といいつつ私はまだ起動すらしていませんが……

rikunorarikunora 2010/05/30 11:54 確かにUnixの資産は偉大です。
これだけのものがあまり世に広まっていないのは、
やはりUnix=プロ向け、Windows=一般向け、という棲み分けがあるからだと思います。
このソフト、Windows上で動かそうと思ったらけっこうたいへんですよ。
私はインストールに丸1日かかりました。

271828271828 2010/06/02 18:01 はじめまして

数式処理はDOSの時代にDeriveを使ったことがあります。Mathematicaもちょっとだけ。
近頃はMaximaをいじり始めましたが、インストールに丸1日もかかるのは軟派な私には出来ません。
ここでSAGEを知りましたが、コマンドは似たり寄ったりですね。

そうそうガリレオの記事も面白かったです。高速度撮影出来るデジカメを持っていますので私も挑戦してみたいです。

rikunorarikunora 2010/06/04 09:26 271828さん、こんにちわ。
以前からブログの方拝見していましたので、あまりはじめましてという気がしません。
今後とも宜しくお願いします。

Maximaという数式処理ソフトもあるのですね。
こちらの方がとっつきやすそう。見たところ、確かにコマンドはそっくりです。
それにしても、こういったソフトが簡単に入手できるとは、便利な時代になったものです。
DOSにも数式処理ソフトがあったとは初めて知りました。
非力なパソコンで動いている方が、ある意味すごさを感じます。

高速カメラがあると、いろいろおもしろいものが撮れそうですね。
物体を落とすという実験は、簡単なのでぜひお試しあれ。
他にも美しい瞬間写真を期待しています。

俄僅俄僅 2010/06/05 03:23 VirtualBoxも使いやすくなってますねー。うちの環境ではなぜかブルースクリーンを引き起こすのでWin版は無理でしたが。(たぶん何かのソフトと競合するのでしょう)

LiveCDを焼いてブートするのが「お試し」としては一番楽でしょう。

仮想化ソフトは気になることと分からないことが山ほどある分野なのでまごついています。

rikunorarikunora 2010/06/06 23:44 そう言えばLiveCDというものもありましたね。これは試していませんでしたが、インストールに手間どるといったことは無さそうですね。
あと仮想化ソフトは、メモリとCPUを食います。
結局のところ1台のWindows上での動作はかなり厳しくて、
私のところではMac+Windowsの2台体制で動かしています。

gbgb 2010/06/07 19:09       非常によ(SAGE)さげ ですね。
http://www.sagemath.com/doc/constructions/elliptic_curves.html
等 関心を寄せられ blog に 記載してください。
(derive や mathematica で 競わせて みます ので)

rikunorarikunora 2010/06/11 01:15 はい、なかなかよSAGEですよ!
まだ使い始めたばかりですが、興味深い計算結果が出たら、また掲載します。
Mathematica と比較できればおもしろそう。
あと derive って、その道では有名なんですね。

gbgb 2010/06/14 15:04 よSAGEで どうぞ;

http://f.hatena.ne.jp/mathnb/20100614125747
が 有理化 の 意義を 問うている(ホンマか?) ようなので
模倣をしてみます;

http://f.hatena.ne.jp/mathnb/20100614131650

例えば
1/(4989^(1/18) + 7^(1/5) + 5^(1/3) + 3)
について、共通一次のモンダイを模倣して、解いてください。

--------------------------------------------------------------------------------------

大学入試センター試験はムダ、事業仕分け対象候補に
23日から始める「事業仕分け」第2弾で、仕分けの対象となる独立行政法人(独法)の候補が7日、
明らかになった。現在104法人ある独法のうち、都市再生機構(国土交通省)や
大学入試センター(文部科学省)、国民生活センター(内閣府)など11府省が所管する54法人が挙がっている。
事業数では100以上にのぼる。

竹本 浩竹本 浩 2012/06/14 19:42 初めまして、竹本と申します。
Sage普及のために、以下のSageサーバを公開しました。公開アカウントとして、wakaba(パスワードはwelcome)を作成しました。

http://www15191ue.sakura.ne.jp:8000/
自由にアカウントを作成し、sageを試してください。 注意)ワークシートのバックアップは各自行ってください。

Sageの使い方は、以下のtext_xxxxのワークシートを参照してください。

http://www15191ue.sakura.ne.jp:8000/pub/

また、Sageの記事も以下のサイトにアップしてあります。
http://www.pwv.co.jp/~take/TakeWiki/index.php

rikunorarikunora 2012/06/19 15:00 竹本様、Sageのサーバ公開のお知らせ、ありがとうございます。
このような形で一般公開されるとは、何とも太っ腹ですね。
さっそく試してみたところ、下手に自力で仮装マシンを立てるよりもずっと快適でした。
(あと、私の職場から8000ポートが開いていてよかったです)
今後、何かの折に利用させていただきますので、どうぞよろしく。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/rikunora/20100526/p1