MATLAB - GNU Octave チュートリアル
GNU Octave は MATLAB のような高水準プログラミング言語であり、MATLAB とほとんど互換性があります。数値計算にも使用されます。
Octave は MATLAB と以下の共通機能を持っています −
- 行列は基本的なデータ型です
- 複素数のサポートが組み込まれています
- 数学関数とライブラリが組み込まれています
- ユーザー定義関数をサポート
GNU Octave は自由に再配布可能なソフトウェアでもあります。 Free Software Foundation によって発行された GNU General Public License (GPL) の条件に基づいて、再配布および/または変更することができます。
MATLAB とオクターブ
ほとんどの MATLAB プログラムは Octave で実行されますが、一部の Octave プログラムは MATLAB で実行されない場合があります。これは、Octave が MATLAB で許可されていない構文を使用できるためです。
たとえば、MATLAB は一重引用符のみをサポートしていますが、Octave は文字列を定義するために一重引用符と二重引用符の両方をサポートしています。 Octave に関するチュートリアルをお探しの場合は、MATLAB と Octave の両方をカバーするこのチュートリアルを最初からお読みください。
対応例
このチュートリアルで取り上げるほとんどすべての例は、MATLAB および Octave と互換性があります。構文を変更せずに同じ結果を生成する MATLAB と Octave で次の例を試してみましょう -
この例では、関数 g =xe -(x 2 ) の 3D サーフェス マップを作成します。 + y 2 ) .スクリプト ファイルを作成し、次のコードを入力します −
[x,y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps
ファイルを実行すると、MATLAB は次の 3-D マップを表示します −
互換性のない例
MATLAB のコア機能はすべて Octave で利用できますが、微分積分など、両方の言語で完全に一致しない機能もあります。このチュートリアルでは、構文が異なる両方のタイプの例を提供しようとしました。
MATLAB と Octave が異なる関数を使用して曲線の面積を取得する次の例を検討してください:f(x) =x 2 −4 ≤ x ≤ 9 の cos(x)。以下はコードの 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
しかし、Octave で同じ曲線の面積を与えるには、symbolic を使用する必要があります。 次のようにパッケージします-
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));
MATLAB