#contets
OctaveはMatlabと互換性のある数値解析ソフトである。
学生諸君にはうれしい あの計算や あれの計算が一瞬でできてしまう。
レポートをoctaveでやりだすと止められないだろう。
Matlabとの違いは、オープンソースであることと、Matlabより若干記述が楽なところ。
シェルスクリプトで言うとB-ShellとZ-Shellの違いみたいな。
つかプログラミング言語じゃないよな・・・まあいいか
大抵のディストリはパッケージ配ってると思うのでそれぞれ入れてください。
ソースからコンパイルする時もそんなに依存関係はありません。
プロットにgnuplot-x11を使うので入れておきましょう。
最新バージョンは2.9以降かな
端末でoctaveと打つと
octave:1>
こんなかんじにでるとおもう。ので1+1などと入れてみよう
octave:1> 1+1 ans = 2
と言った感じに単純に計算をしてくれる。 他にも四則演算もろもろ括弧,二乗やsinなども使える。
octave:1> (1+2)*3 - 2*2 ans = 5 octave:2> sin(2.3) ans = 0.74571 octave:3> 4^2 # ^はXORじゃないので注意! ans = 16
変数ももちろん使える。
octave:1> a=3 a = 3 octave:2> b=1-2 b = -1 octave:3> a-b ans = 4
定義済み変数ももちろんある `pi`などだ
octave:1> pi ans = 3.1416
C言語で言うdefineではないので、書き換えることがもちろん可能
octave:1> pi * 2 ans = 6.2832 octave:2> pi = 1 pi = 1 octave:3> pi * 2 ans = 2
ここまでなら「他の電卓とかわらないし、bcこまんどで事足りるだろ常考……遅いし。」
と言われるだろうが、ここからが本領発揮。octaveでは行列演算が出きるのだ。
octave:1> [1 2 3] # [ ]にスペースを入れて記述 ans = 1 2 3 octave:2> [1 2 3; 4 5 6; 7 8 9] # ; を入れて次の行へ ans = 1 2 3 4 5 6 7 8 9
演算は普通に演算子を書くだけ、変数にももちろん代入できる。
octave:3> [1 2] + [3 4] ans = 4 6 octave:4> a = [1 2; 2 1] * [1 0; 0 1] a = 1 2 2 1
以下、応用例
octave:5> [[1 2]; [3 4]; [5 6]] # 二重に行列を書く。 ans = 1 2 3 4 5 6 octave:6> a=[1 2; 3 4], b = [a [5;6]] #ちょいとややこしく a = 1 2 3 4 b = 1 2 5 3 4 6 #[[ a ] ] ←こんなかんじ octave:7> sin( [pi*0/2 pi*1/2; pi*3/2 pi*4/2]) ans = 0.00000 1.00000 # 要素ごとに関数をかける。 -1.00000 0.00000