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

Учебник MATLAB-GNU Octave

GNU Octave является продвинутым языком программирования, подобным MATLAB, и он совместим с большинством MATLAB. Он также используется для численных вычислений.

Octave имеет следующие общие черты с MATLAB-

  • Матрицы являются базовым типом данных

  • Он поддерживает встроенную поддержку комплексных чисел

  • Он имеет встроенные математические функции и библиотеки

  • Он поддерживает функции, определяемые пользователем

GNU Octave также является бесплатным программным обеспечением, которое можно свободно распространять и/или изменять в соответствии с условиями GNU General Public License (GPL), опубликованными Free Software Foundation.

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));