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