GNU Octave#
Octaveって?#
OctaveはMatlabと互換性のある数値解析ソフトである。
学生諸君にはうれしい あの計算や あれの計算が一瞬でできてしまう。
レポートをoctaveでやりだすと止められないだろう。
Matlabとの違いは、オープンソースであることと、Matlabより若干記述が楽なところ。
シェルスクリプトで言うとB-ShellとZ-Shellの違いみたいな。
つかプログラミング言語じゃないよな・・・まあいいか
導入#
Windows#
Unix系#
大抵のディストリはパッケージ配ってると思うのでそれぞれ入れてください。
ソースからコンパイルする時もそんなに依存関係はありません。
プロットにgnuplot-x11を使うので入れておきましょう。
最新バージョンは2.9以降かな
使ってみようh#
端末で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.1416C言語で言う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