GNU Octave

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
GNU Octave
Gnu-octave-logo.svg
Octave workshop screenshot.png
GNU Octave with Octave Workshop GUI
Тип

математическое программное обеспечение

Разработчик

John W. Eaton

Написана на

C++

Операционная система

Linux, UNIX, Cygwin, Windows, Android[1]

Первый выпуск

1988

Последняя версия

3.8.0 (31 декабря 2013)

Лицензия

GNU General Public License

Сайт

gnu.org/software/octave/

GNU Octave — свободная система для математических вычислений[2], использующая совместимый с MATLAB язык высокого уровня[3].

Octave представляет интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки. Язык Octave оперирует арифметикой вещественных и комплексных скаляров и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечных и бесконечных интервалах. Этот список можно легко расширить, используя язык Octave (или используя динамически загружаемые модули, созданные на языках C, С++, Фортран и др.).

Технические детали[править | править исходный текст]

  • Octave написан на C++ с использованием библиотеки стандартной библиотеки шаблонов;
  • Для запуска скриптов Octave использует интерпретатор;
  • Octave можно дополнять динамически подгружаемыми модулями;
  • Для создания и распечатки графиков Octave использует gnuplot и Grace.

Язык Octave[править | править исходный текст]

Octave — интерпретируемый язык программирования. Он похож на Си и поддерживает большинство основных функций стандартной библиотеки Си, а также основные команды и системные вызовы Unix. С другой стороны, он не поддерживает передачу аргументов по ссылке (особенность дизайна).

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


Некоторые возможности[править | править исходный текст]

Интерфейс

Интерфейс командной строки Octave построен с использованием библиотеки GNU Readline, что дает доступ к таким обычным возможностям последней, как автодополнение по клавише  Tab ⇆ , история команд и инкрементальный поиск по ней ( Ctrl  +  R ,  Ctrl  +  S ), возможность переопределения клавиш, и т. д. Графический интерфейс до версии 3.8.0 был представлен дополнениями (графики он мог выводить и без них).

Интеграция с C++

Выражения 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());

Совместимость с MATLAB[править | править исходный текст]

Octave был написан с учётом совместимости с MATLAB и реализует многие его возможности:

  • матрицы в качестве основных типов данных;
  • встроенная поддержка комплексных чисел;
  • мощные встроенные математические функции и большие библиотеки функций;
  • расширяемость, благодаря возможности создания пользовательских функций.

Но есть и отличия:

  • комментарии могут начинаться как с символа #, так и с символа %;
  • поддерживаются C-подобные операторы ++, --, +=, *=, /=;
  • элементы могут быть адресованы без создания новой переменной, например [1:10](3);
  • строки могут быть заданы как символом «"», так и символом «'».

Примечания[править | править исходный текст]

  1. Octave - Android Apps auf Google Play. Проверено 18 февраля 2013.
  2. Octave
  3. About Octave

Ссылки[править | править исходный текст]