[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 簡単な例

以降の章においては,Octaveの全機能について詳細に記述してあります。 しかし,その前に,その機能のいくつかについて例を示すことが役立つでしょう。

もしOctaveに初めて触れるなら,Octaveを学び始めるために,ここに示す例を 試すことをお勧めします。`octave:13>' のように示した行は,実際に打ち 込む行を表し,入力後に改行キーを押します。Octaveは答えを返すか,グラフ を表示します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

行列をつくる

新しい行列を作成して変数に格納しておけば,それを後から参照することが できます。以下のコマンドを入力してください。

 
octave:1> a = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]

Octaveは,きちんと列をそろえて,行列を表示してくれるでしょう。コマンドの 終端にセミコロンをつけると,結果を画面に表示しない命令になります。 たとえば,

 
octave:2> b = rand (3, 2);

このコマンドは,3行2列の行列を作るものです。その各要素には,0から1までの 範囲のランダムな数値がセットされます。

任意の変数の値を表示するためには,単に変数名を入力するだけです。たとえば, 行列 b に格納された行列を表示するためには,以下のように入力してくだ さい。

 
octave:3> b

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

行列

Octaveには,行列演算を行うための便利な演算子表記ができます。たとえば, 行列aにスカラを乗じるには,以下のコマンドを入力してください。

 
octave:4> 2 * a

ふたつの行列 ab を乗じるには,以下のコマンドを入力して ください。

 
octave:5> a * b

積 を計算するためには,以下のコマンドを入力してください。

 
octave:6> a' * a

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

一次方程式を解く

連立一次方程式 ax = b を解くためには,左除算演算子 `\' を使用します:

 
octave:7> a \ b

これは,概念的には とすることと等しいです。 しかし,左除算演算子を使用することによって,逆行列を計算することを避けま す。

もし係数行列が特異ならば,Octaveは警告メッセージを表示し,最小ノルム解を 表示します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

微分方程式の積分

Octaveには,以下の形式の非線形微分方程式を解くための組み込み関数がありま す。

です。 Octaveにて,この形式の方程式を積分するためには,最初に関数の定義 を提供しなければなりません。 これは簡単なことで,関数の本体をコマンドラインから入力することで遂行でき ます。たとえば,以下のコマンドは,非線形微分方程式の面白いペアについて, 右辺の関数を定義しています。関数を入力している間は,入力が完成するまで待っ ていることを示す異なるプロンプトになることに注意してください。

 
octave:8> function xdot = f (x, t) 
>
>  r = 0.25;
>  k = 1.4;
>  a = 1.5;
>  b = 0.16;
>  c = 0.9;
>  d = 0.8;
>
>  xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1));
>  xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);
>
> endfunction

初期条件を入力しておきます。

 
x0 = [1; 2];

そして,出力時間を列ベクトルとして入力します(最初の出力時間は,上で入力 した初期条件に対応したものであることに注意してください)。

 
t = linspace (0, 50, 200)';

微分方程式の組を積分することは簡単です:

 
x = lsode ("f", x0, t);

この関数 lsode は通常微分方程式に対するLivermore Solverを使用して います。これは,以下の文献に記述されています: A. C. Hindmarsh, ODEPACK, a Systematized Collection of ODE Solvers, in: Scientific Computing, R. S. Stepleman et al. (Eds.), North-Holland, Amsterdam, 1983, pages 55-64.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

グラフ出力の実行

前の例の解を,グラフで表示するためには,コマンド

 
plot (t, x)

を使用します。

もしX Window Systemを使用しているならば,Ocatveは,プロットを表示するため に自動的に別ウインドウを開きます。もし他のグラフィック関係のコマンドをサ ポートする端末を使用しているならば,使用している端末をOctaveに教えてあげ る必要があります。サポートしている端末の種類のリストを見るには,以下のコ マンドを入力してください。

 
gset term

Octaveは,グラフを表示するために gnuplot を使用します。そして, gnuplot がサポートする任意の端末において,画像を出力することが できます。

plotコマンドの出力を,直接端末に送らずにファイルに取り込むには,以下の ような一連のコマンドを使用することができます。

 
gset term postscript
gset output "foo.ps"
replot

これは,他の出力デバイスについても同様に働くでしょう。Octaveの gset コマンドは,現実には単に gnuplot サブプロセスにパイプしているだけ です。その結果,いちど好みのプロットをスクリーンに表示すると,画像を印刷 するのに適した出力ファイルを作成するため,これと同様の方法を実行すること ができるでしょう。

あるいは,以下のようなコマンドを使うことにより,中間ファイルを削除する ことができます。

 
gset term postscript
gset output "|lpr -Pname_of_your_graphics_printer"
replot

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

入力した内容の編集

Octaveのプロンプトでは,Emacsあるいはviスタイルの編集コマンドにより, 以前に入力したコマンドの再呼び出し,編集,再実行ができます。標準状態の キー割り当てでは,Emacsスタイルのコマンドを使用します。たとえば,以前 のコマンドを呼び出すには,Control-p(以降は,単に C-p と表 記します)と打ち込みます。C-p とは,見ての通り,CTRL を押 しながら p を押すことを表します。これを行うことにより,以前の入 力行を問題なく呼び戻すことになるでしょう。C-n は,次の入力行に進 めることになります。C-b はカーソルを行末に移動させ,C-f は カーソルを行頭に向けて移動させます。このほかにも,いくつもキーが定義さ れています。

コマンドライン編集機能についての完全な記述は,このマニュアルの コマンドラインの編集 にあります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

ヘルプとドキュメント

Octaveは,豊富なヘルプ機能をもっています。印刷物として入手できるドキュ メントは,Octaveのプロンプトからも読むことができます。これは,両方の文書 形式とも同じ入力ファイルから作成されているからです。

よいヘルプを得るためには,まず,あなたが使いたいコマンドの名前を知る必要 があります。関数の名前は,必ずしも明らかではないかもしれません。しかし, 始めるための良い方法は,単に help と入力することです。このコマンド は,すべての演算子,予約語,関数,組み込み変数および関数ファイルを表示す るものです。helpコマンドの引数に名前を含めることによって,より多くのヘル プを得ることができます。たとえば,

 
help plot

これは,plot 関数に対するヘルプ文章を表示します。

Octaveでは,長すぎて一画面に収まらない出力は,lessmore のようなページャに送ります。1行進めるには RET,1ページ進めるには SPC,ページャを抜けるには q を押します。

Octave内から印刷マニュアルの完全な文章を読めるような,Octaveのヘルプ機能の 一部は,Infoと呼ばれる別のプログラムを使用します。Infoを呼び出すとき,Octave のマニュアルを含むメニュー型プログラムに入ります。Infoを使用するためのヘ ルプは,このマニュアルの ヘルプを得るためのコマンド に記述してあります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated on July, 20 2006 using texi2html 1.76.