Matlab-gnu-octave

提供:Dev Guides
移動先:案内検索

MATLAB-GNU Octaveチュートリアル

GNU Octaveは、MATLABのような高レベルのプログラミング言語であり、MATLABとほとんど互換性があります。 また、数値計算にも使用されます。

Octaveは、MATLABで次の共通機能を備えています-

  • 行列は基本的なデータ型です
  • 複素数の組み込みサポートがあります
  • 数学関数とライブラリが組み込まれています
  • ユーザー定義関数をサポートします

GNU Octaveも自由に再配布可能なソフトウェアです。 Free Software Foundationによって公開されているGNU General Public License(GPL)の条件に基づいて、再配布および/または変更することができます。

MATLAB vsオクターブ

ほとんどのMATLABプログラムはOctaveで実行されますが、OctaveではMATLABではできない構文が許可されているため、Octaveプログラムの一部はMATLABで実行されない場合があります。

たとえば、MATLABは一重引用符のみをサポートしていますが、Octaveは文字列を定義するための一重引用符と二重引用符の両方をサポートしています。 Octaveのチュートリアルをお探しの場合は、MATLABとOctaveの両方をカバーするこのチュートリアルを最初からお読みください。

適合例

このチュートリアルで扱うほとんどすべての例は、MATLABおよびOctaveと互換性があります。 構文を変更せずに同じ結果を生成するMATLABとOctaveの例を試してみましょう-

この例では、関数g = xe ^-(x ^ 2 ^ + y ^ 2 の3D表面マップを作成します。 スクリプトファイルを作成し、次のコードを入力します-

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

ファイルを実行すると、MATLABは次の3Dマップを表示します-

Matlabの3Dマップ

互換性のない例

MATLABのすべてのコア機能はOctaveで使用できますが、たとえば、微分および積分計算など、両方の言語で完全に一致しない機能がいくつかあります。 このチュートリアルでは、構文が異なる両方のタイプの例を提供しようとしました。

MATLABとOctaveが異なる関数を使用して曲線の面積を取得する次の例を考えてみましょう:f(x)= x ^ 2 ^ cos(x)for -4≤x≤9 以下はコードのMATLABバージョンです-

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));

あなたがファイルを実行すると、MATLABはグラフをプロットします-

定積分

次の結果が表示されます

a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)

Area:
   0.3326

しかし、オクターブで同じ曲線の面積を与えるために、次のように*記号*パッケージを使用する必要があります-

pkg load symbolic
symbols

x = sym("x");
f = inline("x^2*cos(x)");

ezplot(f, [-4,9])
print -deps graph.eps

[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));