GNU Octave – свободная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня.
Octave представляет интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки.
Язык Octave оперирует арифметикой вещественных и комплексных скаляров и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечных и бесконечных интервалах. Этот список можно легко расширить, используя язык Octave (или используя динамически загружаемые модули, созданные на языках C, С++, Фортран и др.).
Некоторые возможности GNU Octave
Интерфейс командной строки Octave построен с использованием библиотеки GNU Readline, что даёт доступ к таким обычным возможностям последней, как автодополнение по клавише Tab ⇆ , история команд и инкрементальный поиск по ней ( Ctrl+R , Ctrl+S ), возможность переопределения клавиш, и т. д..
Выражения Octave можно вычислять из программ на C++. К примеру, фрагмент кода для вычисления rand([9000,1]):
#include <octave/oct.h>
…
ColumnVector NumRands(2);
NumRands(0) = 9000;
NumRands(1) = 1;
octave_value_list f_arg, f_ret;
f_arg(0) = octave_value(NumRands);
f_ret = feval(“rand”,f_arg,1);
Matrix unis(f_ret(0).matrix_value());
Технические детали GNU Octave
Язык GNU Octave
Он похож на C и поддерживает большинство основных функций стандартной библиотеки C, а также основные команды и системные вызовы Unix. С другой стороны, он не поддерживает передачу аргументов по ссылке (особенность дизайна).
Графический интерфейс GNU Octave
До версии 3.8.0 графический интерфейс был представлен дополнениями (графики он мог выводить и без них):
Начиная с версии 3.8.0 существует графический интерфейс пользователя. Так как интерфейс не совсем готов для представления как графический интерфейс по умолчанию, его можно запустить добавив флаг –force-gui (разработчики решили подождать до релиза 4.0).
Совместимость GNU Octave с MATLAB
Octave был написан с учётом совместимости с MATLAB и реализует многие его возможности:
Но есть и отличия:
Ссылки