Risa/Asirで遊ぶ

Risa/Asirをchandraに入れて遊んでみました。インストールやグラフ表示等 に関して気のついた事を幾つかを纏めています。尚、ここで記述したもの は1998年10月にSEG出版より出版された "日本で生まれた 数式処理ソフト リサ アジール ガイドブック" (ISBN4-87243-076-X C3055)に附属の旧版です。従って、現在のhead版で 不要となっているキーコードの入手等の設定が必要となっている事と、 グラフ表示の際に行う初期化の手順がOpenXMを用いたものと異っている 事に注意して下さい。このOpenXMを用いたグラフ表示に関しては Risa2000でのグラフ表示に初期化の 話を書いています。


Risa/Asirのキーコード

SEG出版に附属のRisa/asirでは、UNIX版に関してはキーコードを入手する 必要があるが、ASIR_INSTALL.jisの内容に従って作業を行えば良い。 更に、Unix版ではキーコードを入手する必要があり、asirを起動した時に 現れるIDをe-mailでrisa@iias.flab.fujitsu.co.jp宛に送付すると即座に keyコードが返送される。このkeyコードを含むファイルを作成し、環境変数 ASIR_KEYに指定しておく必要がある。デフォルトでは/usr/local/lib/asirの asir_keyであるが、asirを実行するディレクトリにasir_keyファイルを置い てもよい。尚、asir_keyファイルには複数のキーコードを記述する事が可能 である。IDの生成ではマシンのIP-Addressを参照するらしく、IP-Addressを 変更すると従来のキーコードが利用出来なくなる。その為、Note PCの場合の 様にIP-Addressを使い分ける場合や作業用ディレクトリをNFSでマウントし、 asirを機種毎に使い分ける場合等では、asir_keyファイルに複数のキーコード を記入する必要がある。更に、DHCPでネットワーク接続する機種の場合、 サーバーから割り当てられるIPアドレスが同一とは限らない為、この場合は ネットワークから外した状態でIDを生成し、対応するキーコードをファイル に記述して、ホスト名前を固定すると良い。

尚、Risa2000(OpenXMの一部として配布されているものも含む)では キーコードが不要になっており、インストール作業を行うだけで利用可能 となる。又、Risa/AsirはOpenMXのOpenMX_contrib2に含まれており、 従来のバイナリのみによる配布だけでは無く、ソースファイルによる配布 もhttp://www.openxm.org等で 行われている。尚、OpenXMにはpari等の様々なツールが含まれる為、 全体的に大きなパッケージとなっている。

fep

asirにはフロントエンド・プロセッサfepがあり、emacsやvi風のキー操作 で入力行の編集が行える。使い方はfep -emacs asirやfep -vi asirと すれば、emacsやvi風の操作が可能となる。尚、OpenXMのサイトから ソースファイルとして入手したものをコンパイルしても、fepのみはi386 向けのlinuxやfreeBSD向けのバイナリのみの為、PowerPC等のi386以外の 環境では使えない。

グラフ表示に関して

現在のRisa2000ではOpenXMを用いているが、SEG出版の書籍に附属の 旧版のUNIX版ではグラフの表示はrshを利用する。その為に、.rhosts ファイルが無い場合は受け付けるホスト名を記入した.rhostsファイルを 作成しておく。この状態でasirのグラフ表示を行う前にtcpinitを実行する。 通常は

tcpinit("localhost","asir_plot");
    

を実行する。尚、旨く動作しない場合にはtcpdebugを用いて実行内容を 調べてみる。この場合には

tcpdebug("localhost","asir_plot");
    

を実行してその反応を調べる。反応が無い場合、命令の終りに";"を入れて いるか気を付ける必要がある。

尚、Risa2000ではrshを用いる方式から、OpenXMを用いる方式に変更されて いる為、このグラフ表示での初期化の方式が異っている。この初期化に関し ては、Risa2000でのグラフ表示に纏めている。

一例としてx^5-x*y^2+y^5の陰関数表示のグラフを以下に示す;

グラフ表示ウインドウにマウスを近づけるとマウスカーソルがセイウチ (ホポ君)に変化する。この状態で領域の選択を行うとグラフの拡大表示が 可能である。ここでウインドウを閉じる場合には必ずquitを押して閉じる 事。ウインドウの破棄を行った場合、次のグラフを生成しようとすると "pipe broken"になる。この場合にはtcpcloseを実行し、再度、tcpinitを 実行する羽目になる。

Risa/Asirのグラフ表示機能は一見して貧弱に見えるが、実際はとても高度な 事が可能である。一例として、陰関数のグラフ表示に関してMapleと比較する。 ここで表示する関数はy^2-x^2-x^3=0である。この関数のグラフは原点で 自己交差を持つ。この関数をMapleで表示すると…

この様に二つに割れて表示されている。しかも、領域を設定しないと 関数の表示は出来ない。この関数をRisa/ASIRで表示すると…

と正確に表示される。Risaの場合にはifplotで関数のみを指定するだけで 関数のグラフを適当な領域で生成して呉れる。

尚、代数曲線の表示に関してはsurfも非常に便利であるが、こちらば 可視化を目的にしており、数式処理は行わない。このsurfに関しては 私の紹介のペイジを参照して 頂きたい。ともあれ、代数幾何の道具に最適ではないか?


数式処理の目次に戻る