MATLAB — учебник по октаве GNU
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 + у 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
Но чтобы получить площадь той же кривой в Octave, вам придется использовать символические упаковать следующим образом —
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