next up previous
Next: 8 多項式に関する演算 Up: octave_kiso_out Previous: 6 行列とベクトル(2)

Subsections


7 関数

7.1 基本関数

Octaveには、様々な関数が用意されています。 以下の表は、そのうちの代表的なものです。

平方根 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

7.2 基本関数の利用

7.2.1 三角関数の利用

それでは、関数の練習を行ってみましょう。 以下の数列(行列)を用意し、関数に代入してみます。

リスト:
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

\includegraphics[width=16cm]{/home/nisimiya/Bunsho/Daigaku_and_Jimu/Lesson/Subject/Computer_kisoron/Octave/Fig/octave07.eps}

何か三角関数のグラフらしきものが表示されました。 もう少し滑らかにしてみましょう。 グラフを消すには、``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

\includegraphics[width=16cm]{/home/nisimiya/Bunsho/Daigaku_and_Jimu/Lesson/Subject/Computer_kisoron/Octave/Fig/octave08.eps}

少しは、まともになりましたか? それでは ``0.1''きざみでグラフを描いてみましょう。 手で入力していては大変です。 0からスタートし、0.1きざみで10までの数列(行列)を生成します。 どのようにすれば良いでしょうか? 以下のように数字列を生成する便利なコマンドがあります。

リスト:
t = 0: 0.1: 10;
y=sin(t);

grid "on"
plot(t,y)
pause

入力式の最後に ``;''をつけると入力結果がいちいち画面に表示されなくなり、 すっきりします。

\includegraphics[width=16cm]{/home/nisimiya/Bunsho/Daigaku_and_Jimu/Lesson/Subject/Computer_kisoron/Octave/Fig/octave09.eps} 相当なめらかなグラフになりました。 ``Octave''で描かれるグラフは、実は ``gnuplot''と言う、大変有名なグラフ作 成ソフトが使われてます。 したがって、``gnuplot''のコマンドをほぼ使うことができます。 ``gnuplot''については、様々な書籍やホームページなどで紹介されております ので、そちらを参考にしてください。

7.2.2 指数関数

指数関数のグラフを描いてみましょう。
リスト:
t = 0: 0.01: 10;
y = 0.1 * exp(t);
grid "on"
plot(t,y)
pause

\includegraphics[width=16cm]{/home/nisimiya/Bunsho/Daigaku_and_Jimu/Lesson/Subject/Computer_kisoron/Octave/Fig/octave10.eps}

三角関数と指数関数の積を作りグラフを描いてみましょう。

リスト:
t = 0: 0.01: 10;
y = 0.1*exp(t).*sin(5*t);
grid "on"
plot(t,y)
pause
かけ算は ``.*''であることに注意して下さい。

\includegraphics[width=16cm]{/home/nisimiya/Bunsho/Daigaku_and_Jimu/Lesson/Subject/Computer_kisoron/Octave/Fig/octave11.eps}

7.2.3 基本関数の演習

  1. $ \cos t $を -5 から5 まで0.01きざみで表示させよ。
  2. $ \sin t $を -5 から5 まで0.01きざみで表示させよ。
  3. $ \sin^2t + \cos ^2 t$を -5 から5 まで0.01きざみで表示させよ。
  4. $\exp(-0.1 t) \times \cos(10t)$ を 0から10 まで0.01きざみで表示さ せよ。
  5. ベクトル A=[2 4 6], B=[-3 5 7]の内積を求め、2つのベクトル間の角度 $\theta$を求めよ。(ヒント: $A\cdot B = \vert A\vert \vert B\vert \cos \theta$ $\Rightarrow$ $\cos \theta = \frac{A\cdot B}{\vert A\vert \vert B\vert}$)



Nobuo Nishimiya
平成20年6月3日