octaveで二次元グラフを描画します。反比例のグラフ(\(y = \frac{1}{x^2}\))を描きます。
\(y = \frac{1}{x^2} (-10 \leq x \leq 10) \)を描く
octaveで\(y = \frac{1}{x^2} (-10 \leq x \leq 10 ) \)のグラフを描きます。これが描けたら、だいたい二次元グラフ描画のことは思い出せると思うので。
自動範囲でプロット
まず普通にplotします。
x = linspace(-10, 10, 1000);
y = 1 ./ power(x,2);
plot(x,y)
linspaceのところは、-10から10まで、1000のデータ点数という意味です。グラフ描画の際によく使います。;をつけないと、行列が出力されてしまい鬱陶しいので、;をつけます。power(x,2)は2のべき乗です。/の前に.がつくのは、スカラー演算だからです。.がないと、行列演算になってしまい、この例だとエラーになります。
これを実行すると、以下のようなグラフが出力されます。

自動範囲指定
今回の例の場合だと、ちょっとよくわからない感じです。yの最大値が大きすぎる感あります。
範囲を指定してプロット
axis([xmin xmax ymin ymax])とすることで、範囲を指定できます。以下のように書いてみます。
axis([-5 5 0 1])
以下のようなグラフが出力されます。

範囲を指定
わかりよくなった気がします。
装飾
x軸とy軸のラベル名、グラフタイトル、凡例(グラフの右上とかにあるやつ)をつけます。グリッドもつけます。
xlabel('x')
ylabel('y')
title('y = 1/x^2')
legend('y = 1/x^2')
grid on
以下のようなグラフが出力されます。

装飾後
いい感じです。
補足:plot関数のフォーマット
plot(x,y)は、plot(x,y,fmt)とすることで、ラインの色を変えたり、破線にしたり、ラインマーカーをドットにしたりできます。以下に例をあげます。
- ラインスタイル…-(実線,default) .(点) ^(インパルス)
- マーカタイプ…+o*x
- カラースタイル…k r g b m c w (黒 赤 緑 青 マゼンタ シアン 白)
たとえば、以下のように書けます。
plot(x,y,'r+')
今回の例でこれを出力すると、以下のようなグラフが出力されます。

フォーマットの例
赤くて+な感じになりました。
以上。
コメント