平方根 | sqrt(x) |
絶対値 | abs(x) |
三角関数 | sin(x), cos(x), tan(x) |
逆三角関数 | asin(x), acos(x), atan(x) |
指数関数 | exp(x) |
対数関数 | log(x), log10(x), log2(x) |
定数 | pi, e |
関数に適当な数字を代入しファイルの保存しOctaveを実行させてみて下さい。
リスト: sin(2) cos(5) tan(10) 実行例 a1 = 0.90930 a2 = 0.28366 a3 = 0.64836 リスト: b1 = sin(pi/2) b2 = cos(pi/3) b2 = atan(22) 実行例 b1 = 1 b2 = 0.50000 b2 = 1.5254
リスト: t = [0 1 2 3 4 5 6 7 8 9 10] y=sin(t) 実行例: t = 0 1 2 3 4 5 6 7 8 9 10 y = Columns 1 through 8: 0.00000 0.84147 0.90930 0.14112 -0.75680 -0.95892 -0.27942 0.65699 Columns 9 through 11: 0.98936 0.41212 -0.54402``Columns 1 through 8'', ``Columns 9 through 11'':とは、途中で改行されて いることを示します。 各 ``t''の値に対応する``sin関数''の値が計算されていることがわかります。 それでは、グラフ化してみましょう。
リスト: t = [0 1 2 3 4 5 6 7 8 9 10] y=sin(t) grid "on" plot(t,y) pause
何か三角関数のグラフらしきものが表示されました。 もう少し滑らかにしてみましょう。 グラフを消すには、``Enter'' などを押します。
``t''に0.5きざみで数値を代入しなおして下さい。
リスト: t = [0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10] y=sin(t) grid "on" plot(t,y) pause 上記のように変更してみてください。 実行例: Columns 1 through 8: 0.00000 0.50000 1.00000 1.50000 2.00000 2.50000 3.00000 3.50000 Columns 9 through 16: 4.00000 4.50000 5.00000 5.50000 6.00000 6.50000 7.00000 7.50000 Columns 17 through 21: 8.00000 8.50000 9.00000 9.50000 10.00000 octave:23> y=sin(t) y = Columns 1 through 8: 0.00000 0.47943 0.84147 0.99749 0.90930 0.59847 0.14112 -0.35078 Columns 9 through 16: -0.75680 -0.97753 -0.95892 -0.70554 -0.27942 0.21512 0.65699 0.93800 Columns 17 through 21: 0.98936 0.79849 0.41212 -0.07515 -0.54402
少しは、まともになりましたか? それでは ``0.1''きざみでグラフを描いてみましょう。 手で入力していては大変です。 0からスタートし、0.1きざみで10までの数列(行列)を生成します。 どのようにすれば良いでしょうか? 以下のように数字列を生成する便利なコマンドがあります。
リスト: t = 0: 0.1: 10; y=sin(t); grid "on" plot(t,y) pause
入力式の最後に ``;''をつけると入力結果がいちいち画面に表示されなくなり、 すっきりします。
相当なめらかなグラフになりました。
``Octave''で描かれるグラフは、実は ``gnuplot''と言う、大変有名なグラフ作
成ソフトが使われてます。
したがって、``gnuplot''のコマンドをほぼ使うことができます。
``gnuplot''については、様々な書籍やホームページなどで紹介されております
ので、そちらを参考にしてください。
リスト: t = 0: 0.01: 10; y = 0.1 * exp(t); grid "on" plot(t,y) pause
三角関数と指数関数の積を作りグラフを描いてみましょう。
リスト: t = 0: 0.01: 10; y = 0.1*exp(t).*sin(5*t); grid "on" plot(t,y) pauseかけ算は ``.*''であることに注意して下さい。