English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB-GNU Octaveチュートリアル

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

OctaveとMATLABは以下の共通の特徴を持っています-

  • 行列は基本データ型です

  • 複素数のサポートを内蔵しています

  • 内蔵の数学関数とライブラリを持ちます

  • ユーザー定義の関数をサポートしています

GNU Octaveは無料で再配布可能なソフトウェアです。GNU一般公共許可(GPL)の条項に従って、自由ソフトウェア財団から発表されたものを再配布および/またはそれを変更してください。

MATLAB vs Octave

ほとんどの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で以下を表示3-Dマッピング-

不適切な例

MATLABのすべての主要機能はOctaveで使用できますが、差分および積分演算などの一部の機能は、両方の言語で完全に一致しません。このチュートリアルは、異なる文法を持つ二つの例を提供しようと試みています。

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

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

ファイルを実行すると、MATLABでグラフを描画-

以下の結果を表示

a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
面積: 
   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('面積: '), disp(double(a));