2012年6月10日日曜日

Octaveで2変数関数の曲面をプロットする

   フリーな数値解析ソフトOctaveを用いた2変数関数の曲面のプロットがおもしろかったので少し紹介します。


   まずは、関数



のグラフを示します。



   上のようなグラフを表示させるコードにはOctaveのプロンプト上で以下のコードを打ち込みます。

x = linspace(-10, 10, 10);
y = linspace(-10, 10, 10);
[X, Y] = meshgrid(x, y);
z = X.^2 + Y.^2;
figure(1); clf;
surf(x, y, z);
xlabel('x');
ylabel('y');
zlabel('z');
title('z=x^2+y^2');



   zを足し算ではなく引き算に変更すると、所謂、鞍点が存在するグラフになります。




   ソースコードは上記とほとんど同じなので、4行目の変更点だけを載せますが、必要ないかもしれないですね。
z = X.^2 - Y.^2;

   グラフを見ると、改めて原点が極値の必要条件を満たしているものの、極値ではないことがよくわかります。

   興味がある人は、Octaveをダウンロードして、微積分の教科書を引っ張り出して他の関数も打ち込んでみると楽しいと思います。(少なくとも、僕は楽しかったです)
   当然ながら、教科書に載っている極値を求める演習問題は、ほとんど鞍点を持つようなグラフになっていることが確認できるはずです。
   この鞍点が極値かどうかを計算によって判定していたのだなと思いながらグラフを眺めるのもまた一興ではないでしょうか?



   Octaveの関数の使い方についてよく参考にするサイト
[1] GNU Octave: 日本語マニュアル

   初めてブログ内に数式を表示にするにあたって参考にしたサイト
[2] ウェブページで数式を表現するための1つの解決法

0 件のコメント:

コメントを投稿