У этого термина существуют и другие значения, см. Octave.
GNU Octave — свободная система для математических вычислений[2], использующая совместимый с MATLAB язык высокого уровня[3].
GNU Octave | |
---|---|
GNU Octave with Octave Workshop GUI |
|
Тип | математическое ПО |
Автор | John W. Eaton[d] |
Разработчик | John W. Eaton |
Написана на | C++ |
Интерфейс | Qt |
Операционная система | Linux, UNIX, Cygwin, Windows, Android[1] |
Первый выпуск | 1988 |
Последняя версия | 3.8.0 (31 декабря 2013) |
Читаемые форматы файлов | GNU Octave Matrix data (text)[d] |
Создаваемые форматы файлов | GNU Octave Matrix data (text)[d] |
Лицензия | GNU General Public License |
Сайт | gnu.org/software/octave/ |
Медиафайлы на Викискладе |
Octave представляет интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки. Язык Octave оперирует арифметикой вещественных и комплексных скаляров и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечных и бесконечных интервалах. Этот список можно легко расширить, используя язык Octave (или используя динамически загружаемые модули, созданные на языках C, С++, Фортран и др.).
Содержание
- 1 Технические детали
- 2 Язык Octave
- 3 Графический интерфейс
- 4 Некоторые возможности
- 5 Совместимость с MATLAB
- 6 Примечания
- 7 См. также
- 8 Ссылки
Технические детали
- Octave написан на C++ с использованием библиотеки STL;
- Для запуска скриптов Octave использует интерпретатор;
- Octave можно дополнять динамически подгружаемыми модулями;
- Для создания и распечатки графиков Octave использует gnuplot и Grace.
Язык Octave
Octave — интерпретируемый язык программирования. Он похож на C и поддерживает большинство основных функций стандартной библиотеки C, а также основные команды и системные вызовы Unix. С другой стороны, он не поддерживает передачу аргументов по ссылке (особенность дизайна).
Синтаксис языка очень похож на MATLAB, и грамотно написанные скрипты будут запускаться как в Octave, так и в MATLAB.
Графический интерфейс
До версии 3.8.0 графический интерфейс был представлен дополнения
ми (графики он мог выводить и без них):
- QtOctave Graphical User Interface — свободный функциональный кросс-платформенный интерфейс, разработка прекращена в 2011 году;
- Xoctave — коммерческий интерфейс, очень похожий на MATLAB;
- Kalculus — MATLAB-подобный интерфейс, написанный на Qt4, разработка прекращена в 2008 году;
- Octclipse — интеграция с Eclipse IDE;
- OctaveNB — интеграция с NetBeans IDE.
Начиная с версии 3.8.0 существует графический интерфейс пользователя. Так как инетфейс несовсем готов для представлнения как графический интерфейс по умолчанию, его можно запустить добавив флаг —force-gui (разработчики решили подождать до релиза 4.0).
Некоторые возможности
- Интерфейс
Интерфейс командной строки Octave построен с использованием библиотеки GNU Readline, что дает доступ к таким обычным возможностям последней, как автодополнение по клавише Tab ↹, история команд и инкрементальный поиск по ней (Ctrl+R, Ctrl+S), возможность переопределения клавиш, и т. д.
- Интеграция с C++
Выражения Octave можно вычислять из программ на C++. К примеру, фрагмент кода для вычисления rand([9000,1]):[4]
#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);
- строки могут быть заданы как символом «, так и символом ‘.
Примечания
- ↑ Octave — Android Apps auf Google Play (неопр.). Дата обращения: 18 февраля 2013.
- ↑ Octave
- ↑ About Octave
- ↑ Octave-Forge: CategoryFAQ
См. также
Ссылки
Диаграммы GNU Octave:
- Официальная страница (англ.)
- Официальная документация (англ.)
- GNU Octave (рус.) на Xgu.ru — русскоязычная информация о GNU Octave
- (недоступная ссылка — история) (рус.) немного переводов и статей
- Тестирование быстродействия MATLAB и GNU/Octave (рус.)
- gnu-octave.narod2.ru (рус.) Полное описание GNU Octave на русском языке на сайте Е.Р. Алексеева, О.В. Чесноковой