MATLAB - Учебное пособие по GNU Octave
GNU Octave - это язык программирования высокого уровня, такой как MATLAB, и он в основном совместим с MATLAB. Он также используется для численных расчетов.
Octave имеет следующие общие особенности с MATLAB -
- матрицы - это фундаментальный тип данных
- имеет встроенную поддержку комплексных чисел
- он имеет встроенные математические функции и библиотеки
- поддерживает пользовательские функции
GNU Octave также является свободно распространяемым программным обеспечением. Вы можете распространять и / или изменять его в соответствии с условиями Стандартной общественной лицензии GNU (GPL), опубликованной Free Software Foundation.
MATLAB против Octave
Большинство программ MATLAB работают в Octave, но некоторые из программ Octave могут не работать в MATLAB, потому что Octave допускает некоторый синтаксис, которого нет в MATLAB.
Например, MATLAB поддерживает только одинарные кавычки, но Octave поддерживает как одинарные, так и двойные кавычки для определения строк. Если вы ищете учебник по Octave, просмотрите его с самого начала, который охватывает как MATLAB, так и Octave.
Совместимые примеры
Почти все примеры, описанные в этом руководстве, совместимы с MATLAB, а также с Octave. Давайте попробуем следующий пример в MATLAB и Octave, который дает тот же результат без каких-либо изменений синтаксиса:
В этом примере создается трехмерная карта поверхности для функции g = xe - (x 2 + y 2 ) . Создайте файл сценария и введите следующий код -
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
Когда вы запускаете файл, MATLAB отображает следующую трехмерную карту -
Несовместимые примеры
Хотя все основные функции 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('Area: '), disp(double(a));
Когда вы запускаете файл, MATLAB строит график -
Отображается следующий результат
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Но чтобы получить площадь той же кривой в октаве, вам нужно будет использовать 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));