GNU Octave

Поделись знанием:
Перейти к: навигация, поиск
GNU Octave

GNU Octave 3.8.0, запущенная с GUI
Тип

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

Разработчик

John W. Eaton

Написана на

C++

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

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

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

1988

Лицензия

GNU General Public License

Сайт

[www.gnu.org/software/octave/ .org/software/octave/]

GNU OctaveGNU OctaveК:Программное обеспечение, разработанное в 1988 году

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

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





Технические детали

  • Octave написан на C++ с использованием стандартной библиотеки шаблонов;
  • Для запуска скриптов Octave использует интерпретатор;
  • Octave можно дополнять динамически подгружаемыми модулями;
  • Для создания и распечатки графиков Octave использует на выбор gnuplot, встроенный модуль на основе FLTK, или Grace.
  • Название дано в честь американского химика-технолога Октейва Левенспиля (Octave Levenspiel).

Язык 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());
Производительность

Если в конце 1990-х гг. (2-я серия выпусков) отмечалось, что производительность Octave существенно уступает производительности MATLAB[4], то к концу 2000-х гг. (3-я серия выпусков) производительности этих пакетов «почти сравнялись», а остающуюся разницу приписывают наличию в составе MATLAB интерпретатора-компилятора (Just in Time — JIT), которого нет в Octave[5].

Параллельные вычисления

Основными решениями по организации распределенных вычислений в среде Octave являются библиотеки bcMPI, MPI Toolbox for Octave (MPITB), octave-parallel_mpi и parallel (ранее octave-parallel), предназначенные для кластерных систем, и модуль parcellfun библиотеки general для обеспечения параллельных вычислений в масштабе «одной машины» (на многоядерных и массивно-параллельных системах).

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

Библиотека parallel, напротив, не требует наличия среды типа MPI или PVM, а обеспечивает распределенность с помощью внутренних средств пакета Octave.

Совместимость с MATLAB

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

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

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

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

Напишите отзыв о статье "GNU Octave"

Литература

  • GNU Octave Manual Version 3 / J.W. Eaton, D. Bateman, S. Hauberg. Network Theory Limited, 2008. 568 p.
  • Е. Р. Алексеев, О. В. Чеснокова «Введение в Octave дляинженеров и математиков» М.: ALT Linux, 2012. — 368 с.: ил. [www.altlinux.org/images/0/07/OctaveBook.pdf Учебник Octave на русском]
  • Eddelbüttel, D. Bank of Montreal, Toronto, Canada. Econometrics with Octave / D. Eddelbüttel [Electronic resource]. — Mode of access : dirk.eddelbuettel.com/papers/octave.pdf. - Date of access : 15.03.2010.
  • Octave and Python: High-Level Scripting Languages Productivity and Performance Evaluation / J.C. Chaves [et. al.] [Electronic resource]. — Mode of access : www.osc.edu/research/cse/projects/octave_python.pdf. - Date of access : 15.03.2010.

Ссылки

  • [www.gnu.org/software/octave/ Официальная страница]  (англ.)
  • [mydebianblog.blogspot.com/2010/10/matlab-gnuoctave.html Тестирование быстродействия MATLAB и GNU/Octave]  (рус.)

Примечания

  1. [play.google.com/store/apps/details?id=com.octave&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5vY3RhdmUiXQ Octave – Android Apps auf Google Play]. Проверено 18 февраля 2013.
  2. [www.gnu.org/software/octave/ Octave]
  3. [www.gnu.org/software/octave/about.html About Octave]
  4. Eddelbuettel…
  5. Chaves et al. …

Отрывок, характеризующий GNU Octave

– Как это странно, точно во сне было. Я это люблю.
– А помнишь, как мы катали яйца в зале и вдруг две старухи, и стали по ковру вертеться. Это было, или нет? Помнишь, как хорошо было?
– Да. А помнишь, как папенька в синей шубе на крыльце выстрелил из ружья. – Они перебирали улыбаясь с наслаждением воспоминания, не грустного старческого, а поэтического юношеского воспоминания, те впечатления из самого дальнего прошедшего, где сновидение сливается с действительностью, и тихо смеялись, радуясь чему то.
Соня, как и всегда, отстала от них, хотя воспоминания их были общие.
Соня не помнила многого из того, что они вспоминали, а и то, что она помнила, не возбуждало в ней того поэтического чувства, которое они испытывали. Она только наслаждалась их радостью, стараясь подделаться под нее.
Она приняла участие только в том, когда они вспоминали первый приезд Сони. Соня рассказала, как она боялась Николая, потому что у него на курточке были снурки, и ей няня сказала, что и ее в снурки зашьют.
– А я помню: мне сказали, что ты под капустою родилась, – сказала Наташа, – и помню, что я тогда не смела не поверить, но знала, что это не правда, и так мне неловко было.
Во время этого разговора из задней двери диванной высунулась голова горничной. – Барышня, петуха принесли, – шопотом сказала девушка.
– Не надо, Поля, вели отнести, – сказала Наташа.
В середине разговоров, шедших в диванной, Диммлер вошел в комнату и подошел к арфе, стоявшей в углу. Он снял сукно, и арфа издала фальшивый звук.
– Эдуард Карлыч, сыграйте пожалуста мой любимый Nocturiene мосье Фильда, – сказал голос старой графини из гостиной.
Диммлер взял аккорд и, обратясь к Наташе, Николаю и Соне, сказал: – Молодежь, как смирно сидит!
– Да мы философствуем, – сказала Наташа, на минуту оглянувшись, и продолжала разговор. Разговор шел теперь о сновидениях.
Диммлер начал играть. Наташа неслышно, на цыпочках, подошла к столу, взяла свечу, вынесла ее и, вернувшись, тихо села на свое место. В комнате, особенно на диване, на котором они сидели, было темно, но в большие окна падал на пол серебряный свет полного месяца.
– Знаешь, я думаю, – сказала Наташа шопотом, придвигаясь к Николаю и Соне, когда уже Диммлер кончил и всё сидел, слабо перебирая струны, видимо в нерешительности оставить, или начать что нибудь новое, – что когда так вспоминаешь, вспоминаешь, всё вспоминаешь, до того довоспоминаешься, что помнишь то, что было еще прежде, чем я была на свете…
– Это метампсикова, – сказала Соня, которая всегда хорошо училась и все помнила. – Египтяне верили, что наши души были в животных и опять пойдут в животных.
– Нет, знаешь, я не верю этому, чтобы мы были в животных, – сказала Наташа тем же шопотом, хотя музыка и кончилась, – а я знаю наверное, что мы были ангелами там где то и здесь были, и от этого всё помним…
– Можно мне присоединиться к вам? – сказал тихо подошедший Диммлер и подсел к ним.
– Ежели бы мы были ангелами, так за что же мы попали ниже? – сказал Николай. – Нет, это не может быть!
– Не ниже, кто тебе сказал, что ниже?… Почему я знаю, чем я была прежде, – с убеждением возразила Наташа. – Ведь душа бессмертна… стало быть, ежели я буду жить всегда, так я и прежде жила, целую вечность жила.
– Да, но трудно нам представить вечность, – сказал Диммлер, который подошел к молодым людям с кроткой презрительной улыбкой, но теперь говорил так же тихо и серьезно, как и они.
– Отчего же трудно представить вечность? – сказала Наташа. – Нынче будет, завтра будет, всегда будет и вчера было и третьего дня было…
– Наташа! теперь твой черед. Спой мне что нибудь, – послышался голос графини. – Что вы уселись, точно заговорщики.
– Мама! мне так не хочется, – сказала Наташа, но вместе с тем встала.
Всем им, даже и немолодому Диммлеру, не хотелось прерывать разговор и уходить из уголка диванного, но Наташа встала, и Николай сел за клавикорды. Как всегда, став на средину залы и выбрав выгоднейшее место для резонанса, Наташа начала петь любимую пьесу своей матери.
Она сказала, что ей не хотелось петь, но она давно прежде, и долго после не пела так, как она пела в этот вечер. Граф Илья Андреич из кабинета, где он беседовал с Митинькой, слышал ее пенье, и как ученик, торопящийся итти играть, доканчивая урок, путался в словах, отдавая приказания управляющему и наконец замолчал, и Митинька, тоже слушая, молча с улыбкой, стоял перед графом. Николай не спускал глаз с сестры, и вместе с нею переводил дыхание. Соня, слушая, думала о том, какая громадная разница была между ей и ее другом и как невозможно было ей хоть на сколько нибудь быть столь обворожительной, как ее кузина. Старая графиня сидела с счастливо грустной улыбкой и слезами на глазах, изредка покачивая головой. Она думала и о Наташе, и о своей молодости, и о том, как что то неестественное и страшное есть в этом предстоящем браке Наташи с князем Андреем.
Диммлер, подсев к графине и закрыв глаза, слушал.
– Нет, графиня, – сказал он наконец, – это талант европейский, ей учиться нечего, этой мягкости, нежности, силы…
– Ах! как я боюсь за нее, как я боюсь, – сказала графиня, не помня, с кем она говорит. Ее материнское чутье говорило ей, что чего то слишком много в Наташе, и что от этого она не будет счастлива. Наташа не кончила еще петь, как в комнату вбежал восторженный четырнадцатилетний Петя с известием, что пришли ряженые.
Наташа вдруг остановилась.
– Дурак! – закричала она на брата, подбежала к стулу, упала на него и зарыдала так, что долго потом не могла остановиться.
– Ничего, маменька, право ничего, так: Петя испугал меня, – говорила она, стараясь улыбаться, но слезы всё текли и всхлипывания сдавливали горло.
Наряженные дворовые, медведи, турки, трактирщики, барыни, страшные и смешные, принеся с собою холод и веселье, сначала робко жались в передней; потом, прячась один за другого, вытеснялись в залу; и сначала застенчиво, а потом всё веселее и дружнее начались песни, пляски, хоровые и святочные игры. Графиня, узнав лица и посмеявшись на наряженных, ушла в гостиную. Граф Илья Андреич с сияющей улыбкой сидел в зале, одобряя играющих. Молодежь исчезла куда то.