GNU Octave

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

математическое ПО

Разработчик

John W. Eaton

Написана на

C++

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

Linux, UNIX, Cygwin, Windows

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

1988

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

3.6.0 (15 января 2012)

Лицензия

GNU General Public License

Сайт

http://www.octave.org/  (англ.)

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

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

Содержание

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

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

[править] Язык Octave

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

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

[править] Графический интерфейс

Графический интерфейс представлен дополнениями (графики он может выводить и без них):

  • QtOctave Graphical User Interface — свободный функциональный кросс-платформенный интерфейс, разработка прекращена в 2011 году;
  • Xoctave — коммерческий интерфейс, очень похожий на MATLAB;
  • Kalculus — MATLAB-подобный интерфейс, написанный на Qt4, разработка прекращена в 2008 году;
  • Octclipse — интеграция с Eclipse IDE;
  • OctaveNB — интеграция с NetBeans IDE.

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

Дополнение команд и переменных

При нажатии клавиши TAB, Octave попытается дополнить до полного имена переменной, функции и файлов (подобно автодополнению в Bash).

История команд

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

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

Программы, написанные на C++, можно запускать внутри скриптов Octave. К примеру, фрагмент кода для вызова 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 и реализует многие его возможности:

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

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

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

[править] Примечания

[править] См. также

[править] Ссылки

  • Официальная страница  (англ.)
  • Официальная документация  (англ.),  (чешск.),  (яп.)
  • GNU Octave  (рус.) на Xgu.ru — русскоязычная информация о GNU Octave
  • [1]  (рус.) немного переводов и статей
  • [2]  (рус.) Тестирование быстродействия MATLAB и GNU/Octave
  • [3]  (рус.) Полное описание GNU Octave на русском языке на сайте Е.Р. Алексеева, О.В. Чесноковой


Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках