Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

GNU Octave - это программное обеспечение с языком программирования высокого уровня , предназначенное в первую очередь для численных вычислений . Octave помогает в численном решении линейных и нелинейных задач, а также для выполнения других численных экспериментов с использованием языка, который в основном совместим с MATLAB . Он также может использоваться как язык, ориентированный на пакетную обработку . Поскольку это часть проекта GNU , это бесплатное программное обеспечение в соответствии с условиями Стандартной общественной лицензии GNU .

Другие бесплатные альтернативы MATLAB включают Scilab и FreeMat . [5] [6] [7] [8] Octave более совместим с MATLAB, чем Scilab [5] [9] [10], а FreeMat не обновлялся с июня 2013 года. [11]

История [ править ]

Проект был задуман примерно в 1988 году. [12] Сначала он задумывался как дополнение к курсу проектирования химических реакторов. Настоящая разработка была начата Джоном У. Итоном в 1992 году. Первый альфа-релиз датируется 4 января 1993 года, а 17 февраля 1994 года была выпущена версия 1.0. Версия 4.0.0 была выпущена 29 мая 2015 года.

Программа названа в честь Октава Левеншпиля , бывшего профессора и главного автора. Левеншпиль был известен своей способностью выполнять быстрые вычисления за пределами конверта . [13]

История развития [ править ]

События [ править ]

Помимо использования на настольных компьютерах для персональных научных вычислений, Octave используется в академических кругах и промышленности. Например, Octave использовался на массивном параллельном компьютере в Питтсбургском суперкомпьютерном центре для поиска уязвимостей, связанных с угадыванием номеров социального страхования. [39]

Значительное ускорение с OpenCL или CUDA также возможно с использованием графических процессоров. [40]

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

  • Octave написан на C ++ с использованием стандартной библиотеки C ++ .
  • Octave использует интерпретатор для выполнения скриптового языка Octave.
  • Octave расширяется с помощью динамически загружаемых модулей.
  • Интерпретатор Octave имеет графический движок на основе OpenGL для создания графиков, графиков и диаграмм, а также для их сохранения или печати. В качестве альтернативы для той же цели можно использовать gnuplot .
  • Octave включает графический интерфейс пользователя (GUI) в дополнение к традиционному интерфейсу командной строки (CLI); подробнее см. # Пользовательские интерфейсы .

Октава, язык [ править ]

Язык Octave - это интерпретируемый язык программирования. Это язык структурированного программирования (похожий на C ), который поддерживает многие стандартные функции библиотеки C , а также некоторые системные вызовы и функции UNIX . [41] Однако он не поддерживает передачу аргументов по ссылке. [42]

Программы Octave состоят из списка вызовов функций или сценария . Синтаксис основан на матрице и предоставляет различные функции для матричных операций. Он поддерживает различные структуры данных и позволяет объектно-ориентированное программирование . [43]

Его синтаксис очень похож на MATLAB, и тщательное программирование скрипта позволит ему работать как в Octave, так и в MATLAB. [44]

Поскольку Octave предоставляется под Стандартной общественной лицензией GNU , ее можно свободно изменять, копировать и использовать. [13] Программа работает в Microsoft Windows и большинстве Unix и Unix-подобных операционных систем , включая Linux и macOS . [45] [46]

Примечательные особенности [ править ]

Завершение имени команды и переменной [ править ]

Пишем символ табуляции в командной строке заставляет Octave пытаться полной переменной, функции и имена файлов ( по аналогии с Bash «s автодополнению ). Octave использует текст перед курсором как начальную часть имени для завершения. [47]

История команд [ править ]

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

Структуры данных [ править ]

Octave включает ограниченный объем поддержки для организации данных в структурах. В этом примере мы видим структуру «x» с элементами «a», «b» и «c» (целое число, массив и строка соответственно):

октава : 1 >  x . а  =  1 ;  х . б  =  [ 1 ,  2 ;  3 ,  4 ];  х . c  =  "строка" ; октава : 2 >  x . a ans  =  1 октава : 3 >  x . b ans  = 1  2  3  4октава : 4 >  x . c ans  =  струнная октава : 5 >  x x  = {  a  =  1  b  = 1  2  3  4 c  =  строка }

Логические операторы короткого замыкания [ править ]

Логические операторы Octave ' &&' и ' ||' оцениваются методом короткого замыкания (как соответствующие операторы в языке C ), в отличие от поэлементных операторов ' ' и ' '.&|

Операторы увеличения и уменьшения [ править ]

Octave включает в себя C-подобные операторы увеличения и уменьшения ' ++' и ' --' как в их префиксной, так и в постфиксной форме. Octave также выполняет расширенные присваивания , например ' x += 5'.

Расслабьтесь-защитите [ править ]

Октав поддерживает ограниченную форму обработки исключений моделируется после « unwind_protect» в Лиспе . Общий вид блока unwind_protect выглядит так:

unwind_protect  body unwind_protect_cleanup  cleanup end_unwind_protect

Как правило, GNU Octave распознает как завершение заданного « blockлибо ключевого слова end» (которое совместимо с языком MATLAB), либо более конкретного ключевого слова ». Как следствие, блок может быть завершен либо ключевым словом ' ', как в примере, либо более переносимым ключевым словом ' '.end_blockunwind_protectend_unwind_protectend

Очистки часть блока всегда выполняется. В случае, если часть тела вызывает исключение , очистка выполняется непосредственно перед распространением исключения за пределы блока ' unwind_protect'.

GNU Octave также поддерживает другую форму обработки исключений (совместимую с языком MATLAB):

попробуйте  body catch  exception_handling end

Эта последняя форма отличается от unwind_protectблока двумя способами. Во-первых, exception_handling выполняется только тогда, когда исключение вызывается телом . Во-вторых, после выполнения exception_handling исключение не распространяется за пределы блока (если оператор ' rethrow( lasterror )' явно не вставлен в код exception_handling ).

Списки аргументов переменной длины [ править ]

Octave имеет механизм обработки функций, которые принимают неопределенное количество аргументов без явного верхнего предела. Чтобы указать список из нуля или более аргументов, используйте специальный аргумент vararginкак последний (или единственный) аргумент в списке.

функция  s = плюс ( varargin )  если  ( nargin == 0 )  s  =  0 ;  иначе  s  =  вараргин { 1 }  +  плюс  ( вараргин { 2 : наргин });  конец конец

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

Функцию можно настроить так, чтобы она возвращала любое количество значений, используя специальное возвращаемое значение varargout. Например:

Функция  varargout = multiassign ( данные )  для  k = 1 : nargout  varargout { k }  =  data (:, k );  конец конец

Интеграция с C ++ [ править ]

Также возможно выполнить код Octave непосредственно в программе на C ++. Например, вот фрагмент кода для вызова rand([10,1]):

#include  <octave / oct.h>... ColumnVector  NumRands ( 2 ); NumRands ( 0 )  =  10 ; NumRands ( 1 )  =  1 ; octave_value_list  f_arg ,  f_ret ; f_arg ( 0 )  =  octave_value ( NumRands ); f_ret  =  feval ( "ранд" ,  f_arg ,  1 ); Матрица  unis ( f_ret ( 0 ). Matrix_value());

Код C и C ++ может быть интегрирован в GNU Octave путем создания файлов oct или использования файлов MEX, совместимых с MATLAB .

Совместимость с MATLAB [ править ]

Octave был построен с учетом совместимости с MATLAB и имеет много общих функций с MATLAB:

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

Octave рассматривает несовместимость с MATLAB как ошибку ; следовательно, его можно рассматривать как клон программного обеспечения , который не нарушает авторских прав на программное обеспечение согласно судебному делу Lotus против Borland .

Скрипты MATLAB из репозитория MathWorks FileExchange в принципе совместимы с Octave. Однако, в то время как они часто обеспечиваются и загружены пользователями под Octave совместимой и надлежащей открытым исходный код лицензии BSD , в fileexchange в Условии использования запретить любое использование ряда MathWorks' патентованного MATLAB. [48] [49] [50]

Совместимость синтаксиса [ править ]

Есть несколько целенаправленных, хотя и незначительных, синтаксических дополнений :

  1. Строки комментариев могут иметь префикс как символа #, так и символа%;
  2. Поддерживаются различные операторы на основе C ++ , - , + = , * =, / =;
  3. На элементы можно ссылаться без создания новой переменной путем каскадного индексирования, например [1:10] (3);
  4. Строки могут быть определены с помощью символа двойной кавычки, а также символа одиночной кавычки;
  5. Когда тип переменной - single (число с плавающей запятой одинарной точности), Octave вычисляет « среднее » в однодоменном (MATLAB в двойном домене ), что быстрее, но дает менее точные результаты;
  6. Блоки также могут завершаться более конкретными ключевыми словами структуры управления , например endif, endfor, end while и т.д .;
  7. Функции могут быть определены в сценариях и в приглашении Octave;
  8. Наличие цикла do-while (аналогично do-while в C).

Совместимость функций [ править ]

Многие, но не все, многочисленные функции MATLAB доступны в GNU Octave, некоторые из них доступны через пакеты в Octave Forge . Функции, доступные как часть основных пакетов Octave или Forge, перечислены в Интернете .

Список недоступных функций включен в функцию Octave __unimplemented.m__ . Нереализованные функции также перечислены во многих пакетах Octave Forge в Octave Wiki .

Когда вызывается нереализованная функция, отображается следующее сообщение об ошибке:

 октава : 1 >  руководство  предупреждение :  «руководство» функция является не еще реализована в октаве         Пожалуйста ,  прочтите  < HTTP : // WWW . октава . org / отсутствует . html >,  чтобы  узнать,  как  вы  можете  внести свой вклад в  недостающие  функции .  ошибка :  'руководство'  undefined  около  строки  1  столбца  1

Пользовательские интерфейсы [ править ]

Octave поставляется с официальным графическим пользовательским интерфейсом (GUI) и интегрированной средой разработки (IDE) на основе Qt . Он был доступен с Octave 3.8, [51] и стал интерфейсом по умолчанию (поверх интерфейса командной строки ) с выпуском Octave 4.0. [52] Это было хорошо принято участником EDN, который сказал: «[Octave] теперь имеет очень работоспособный графический интерфейс». [53]

Также было разработано несколько сторонних графических интерфейсов, например ToolboX для обучения программированию.

Приложения с графическим интерфейсом [ править ]

С помощью кода Octave пользователь может создавать приложения с графическим интерфейсом [1] . Вот несколько примеров:

Кнопка, элемент управления, флажок

# создаем фигуру и панно на ней f  =  figure ; # создать кнопку (стиль по умолчанию) b1  =  uicontrol  ( f ,  "строка" ,  "Кнопка" ,  "позиция" , [ 10  10  150  40 ]); # создать элемент управления редактированием e1  =  uicontrol  ( f ,  «стиль» ,  «редактировать» ,  «строка» ,  «редактируемый текст» ,  «позиция» , [ 10  60  300  40 ]);# создать флажокc1  =  uicontrol  ( f ,  «стиль» ,  «флажок» ,  «строка» ,  «флажок» ,  «позиция» , [ 10  120  150  40 ]);

Текстовое окно

prompt  =  { "Ширина" ,  "Высота" ,  "Глубина" }; по умолчанию  =  { "1.10" ,  "2.20" ,  "3.30" }; rowscols  =  [ 1 , 10 ;  2 , 20 ;  3 , 30 ]; dims  =  inputdlg  ( подсказка ,  «Введите размеры коробки» ,  строки ,  значения по умолчанию );

Список с окнами сообщений.

my_options  =  { "элемент" ,  "другой" ,  "еще один" }; [ sel ,  ok ]  =  listdlg  ( "ListString" ,  my_options ,  "SelectionMode" ,  "Несколько" ); if  ( ok  ==  1 )  msgbox  ( "Вы выбрали:" );  для  i  =  1 : numel  ( sel )  msgbox  ( sprintf  ( "\ t% s" , my_options { sel ( i )}));  endfor else  msgbox  ( "Вы отменили." ); endif

Радио-кнопки

# создаем фигуру и панно на ней f  =  figure ; # создать группу кнопок gp  =  uibuttongroup  ( f ,  "Position" ,  [  0  0,5  1  1 ]) # создать кнопку в группе b1  =  uicontrol  ( gp ,  "style" ,  "radiobutton" ,  "string" ,  "Choice 1 " ,  " Позиция " ,  [  10  150  100  50  ]); b2  =  uicontrol  ( gp,  «стиль» ,  «радиокнопка» ,  «строка» ,  «Вариант 2» ,  «Позиция» ,  [  10  50  100  30  ]); # создаем кнопку не в группе b3  =  uicontrol  ( f ,  "style" ,  "radiobutton" , "string" ,  "Not in the group" , "Position" ,  [  10  50  100  50  ]);

Пакеты [ править ]

Octave также предлагает бесплатные пакеты. Эти пакеты находятся в Octave-Forge [2] . Доступные пакеты:

  • bim - Пакет для решения дифференциальных уравнений в частных производных с реакцией диффузии и адвекции (DAR)
  • bsltl - Пакет BSLTL представляет собой бесплатный набор процедур OCTAVE / MATLAB для работы с методом биоспекл-лазера.
  • cgi - Общий интерфейс шлюза для Octave
  • коммуникации - цифровая связь, коды исправления ошибок (код канала), функции исходного кода, модуляция и поля Галуа
  • control - Инструменты автоматизированного проектирования систем управления (CACSD) для GNU Octave, основанные на проверенной библиотеке SLICOT
  • data-smoothing - Алгоритмы сглаживания зашумленных данных
  • база данных - интерфейс с базами данных SQL, в настоящее время только postgresql с использованием libpq
  • dataframe - набор инструментов для работы с данными, аналогичный данным R
  • dicom - Цифровые коммуникации в медицине (DICOM), файл io
  • divand - divand выполняет n-мерный вариационный анализ (интерполяцию) произвольно расположенных наблюдений
  • doctest - пакет Octave-Forge Doctest находит специально отформатированные блоки примера кода в файлах документации.
  • эконометрика - функции эконометрики, включая методы на основе MLE и GMM
  • fem-fenics - pkg для разрешения дифференциальных уравнений в частных производных на основе fenics
  • финансовые - моделирование Монте-Карло, процедуры ценообразования опционов, финансовые манипуляции, функции построения графиков и дополнительные инструменты манипулирования датами
  • подходит - пакет Octave-FITS предоставляет функции для чтения и записи файлов FITS (гибкая система передачи изображений)
  • fpl - набор процедур для экспорта данных, созданных с помощью моделирования конечных элементов или конечного объема, в форматах, используемых некоторыми программами визуализации.
  • набор инструментов нечеткой логики - в основном совместимый с MATLAB набор инструментов нечеткой логики для Octave (не устанавливается из-за давней ошибки [54] )
  • ga - код генетической оптимизации
  • general - Общие инструменты для Octave
  • generate_html - этот пакет предоставляет функции для генерации HTML-страниц, содержащих тексты справки для набора функций.
  • geometry - Библиотека для геометрических вычислений, расширяющая функции MatGeom
  • gsl - привязки Octave к научной библиотеке GNU
  • image - Пакет Octave-forge Image предоставляет функции для обработки изображений
  • получение изображений - пакет Octave-forge Image Acquisition предоставляет функции для захвата изображений с подключенных устройств
  • instrument-control - низкоуровневые функции ввода-вывода для интерфейсов последовательного, i2c, параллельного, tcp, gpib, vxi11, udp и usbtmc
  • interval - Пакет интервалов для вещественной интервальной арифметики позволяет оценивать функции по подмножествам их области
  • io - ввод / вывод во внешних форматах, например Excel
  • level-set - процедуры для расчета временной эволюции уравнения набора уровней и извлечения геометрической информации из функции набора уровней
  • linear-algebra - Дополнительный код линейной алгебры, включая общие SVD и матричные функции
  • lssa - Пакет, реализующий инструменты для вычисления спектральных разложений временных рядов с нерегулярными интервалами
  • ltfat - Large Time / Frequency Analysis Toolbox (LTFAT) - это набор инструментов MATLAB / Octave для работы с частотно-временным анализом, вейвлетами и обработкой сигналов.
  • отображение - Простое отображение и функции ГИС .shp и растровых файлов
  • mataveid - Пакет идентификации системы как для MATLAB, так и для GNU Octave
  • matavecontrol - Панель инструментов управления для MATLAB и GNU Octave
  • разное - разные инструменты, которые больше нигде не поместятся
  • mpi - привязки Octave для основных функций интерфейса передачи сообщений (MPI) для параллельных вычислений
  • msh - Создание и управление треугольными и тетраэдральными сетками для решателей конечных элементов или конечных объемов.
  • mvn - многомерная кластеризация с нормальным распределением и функции полезности
  • nan - набор инструментов для статистики и машинного обучения для данных с пропущенными значениями и без них.
  • ncarray - доступ к одному или нескольким файлам NetCDF как к многомерному массиву
  • netcdf - совместимый с MATLAB интерфейс NetCDF для Octave
  • nurbs - Сборник процедур для создания и управления неоднородными рациональными B-сплайнами (NURBS) на основе набора инструментов NURBS от Марка Спинка
  • ocs - Пакет для решения уравнений постоянного и переходного электрических цепей
  • octclip - этот пакет позволяет пользователям выполнять логические операции с полигонами, используя алгоритм Грейнера-Хормана.
  • octproj - этот пакет позволяет пользователям вызывать функции PROJ
  • optics - Функции, охватывающие различные аспекты оптики
  • optim - инструментарий нелинейной оптимизации
  • optiminterp - Оптимальный набор инструментов интерполяции для октавы
  • parallel - Пакет параллельного выполнения
  • quaternion - пакет Quaternion для GNU Octave, включает класс quaternion с перегруженными операторами
  • организация очередей - пакет очередей предоставляет функции для анализа сетей массового обслуживания и цепей Маркова.
  • secs1d - Симулятор дрейфа-диффузии для полупроводниковых приборов 1d
  • secs2d - Симулятор дрейфа-диффузии для двумерных полупроводниковых устройств.
  • secs3d - Симулятор дрейфа-диффузии для трехмерных полупроводниковых устройств.
  • signal - инструменты обработки сигналов, включая функции фильтрации, управления окнами и отображения
  • сокеты - функции сокетов для работы в сети из октавы
  • sparsersb - Интерфейс к пакету librsb, реализующий формат разреженной матрицы RSB для быстрых вычислений разреженной матрицы с общей памятью
  • splines - Дополнительные функции сплайна
  • статистика - Дополнительные функции статистики для Octave
  • stk - STK - это (не очень) небольшой набор инструментов для кригинга.
  • strings - Дополнительные функции для обработки и анализа строк
  • struct - Дополнительные функции управления структурой
  • символический - Пакет Octave-Forge Symbolic добавляет функции символьных вычислений в GNU Octave
  • tisean - Порт ТИСЕАН 3
  • tsa - Стохастические концепции и методы максимальной энтропии для анализа временных рядов
  • vibes - API VIBes позволяет легко отображать результаты (блоки, дорожные покрытия) от интервальных методов
  • video - оболочка для libavformat и libavcodec ffmpeg, реализующая addframe, avifile, aviinfo и aviread
  • vrml - 3D-графика с использованием VRML
  • windows - Предоставляет COM-интерфейс и дополнительные функции в Windows
  • zeromq - привязки ZeroMQ для GNU Octave

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

  • Список программного обеспечения для численного анализа
  • Сравнение программ численного анализа
  • Список статистических пакетов
  • Список числовых библиотек

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

  1. Рик (10 июня 2015 г.). "Contributors.in" . Дата обращения 14 июня 2015 .
  2. ^ «Выпущен GNU Octave 6.1.0» . 26 ноября 2020 . Проверено 30 ноября 2020 .
  3. ^ "Индекс / gnu / octave" . alpha.gnu.org . Проверено 14 сентября 2020 .
  4. ^ "Здание - Октава" . wiki.octave.org . GNU . Дата обращения 1 мая 2018 .
  5. ^ a b Траппенберг, Томас (2010). Основы вычислительной нейронауки . Издательство Оксфордского университета. п. 361. ISBN. 978-0-19-956841-3.
  6. ^ Мухаммад, А; Зализняк, В (2011). Практические научные вычисления . Издательство Вудхед . п. 3 . ISBN 978-0-85709-226-7.
  7. ^ Мегрей, Бернард А .; Мокснесс, Эрленд (2008). Компьютеры в исследованиях рыболовства . Springer Science & Business Media. п. 345 . ISBN 978-1-4020-8636-6.
  8. ^ Kapuno, Рауль Raymond (2008). Программирование для инженеров-химиков с использованием C, C ++ и MATLAB . Издательство "Джонс и Бартлетт". п. 365. ISBN 978-1-934015-09-4.
  9. ^ Герман, Рассел Л. (2013). Курс математических методов для физиков . CRC Press. п. 42. ISBN 978-1-4665-8467-9.
  10. ^ Wouwer, Ален Ванде; Соусез, Филипп; Вилас, Карлос (2014). Моделирование моделей ODE / PDE с помощью MATLAB, Octave и Scilab: научные и инженерные приложения . Springer. С. 114–115. ISBN 978-3-319-06790-2.
  11. ^ "FreeMat" . freemat.sourceforge.net . Проверено 22 февраля 2020 .
  12. ^ "О GNU Octave" . www.gnu.org . GNU . Дата обращения 1 мая 2018 .
  13. ^ a b Итон, Джон В. «О Октаве» . Проверено 28 июня 2009 .
  14. ^ https://www.gnu.org/software/octave/NEWS-1.html
  15. ^ https://www.gnu.org/software/octave/NEWS-2.html
  16. ^ https://www.gnu.org/software/octave/news/2012/12/31/news-archive.html
  17. ^ https://www.gnu.org/software/octave/NEWS-3.html
  18. ^ https://www.gnu.org/software/octave/NEWS-3.2.html
  19. ^ https://www.gnu.org/software/octave/NEWS-3.4.html
  20. ^ https://www.gnu.org/software/octave/NEWS-3.6.html
  21. ^ https://www.gnu.org/software/octave/news/release/2013/02/21/octave-3.6.4-released.html
  22. ^ https://www.gnu.org/software/octave/NEWS-3.8.html
  23. ^ https://www.gnu.org/software/octave/news/release/2013/12/31/octave-3.8.0-released.html
  24. ^ https://www.gnu.org/software/octave/news/release/2014/03/04/octave-3.8.1-released.html
  25. ^ https://www.gnu.org/software/octave/NEWS-4.0.html
  26. ^ https://www.gnu.org/software/octave/news/release/2015/05/29/octave-4.0.0-released.html
  27. ^ https://www.gnu.org/software/octave/news/release/2016/03/23/octave-4.0.1-released.html
  28. ^ https://www.gnu.org/software/octave/news/release/2016/07/02/octave-4.0.3-released.html
  29. ^ https://www.gnu.org/software/octave/news/2016/11/14/octave-4.2.0-released.html | text = Примечания к выпуску версии 4.2.0}}
  30. ^ https://www.gnu.org/software/octave/NEWS-4.2.html
  31. ^ https://www.gnu.org/software/octave/news/release/2017/02/24/octave-4.2.1-released.html
  32. ^ https://www.gnu.org/software/octave/news/release/2018/03/13/octave-4.2.2-released.html
  33. ^ https://www.gnu.org/software/octave/NEWS-4.4.html
  34. ^ https://www.gnu.org/software/octave/news/release/2018/04/30/octave-4.4.0-released.html
  35. ^ https://www.gnu.org/software/octave/news/release/2018/08/09/octave-4.4.1-released.html
  36. ^ https://www.gnu.org/software/octave/NEWS-5.1.html
  37. ^ https://www.gnu.org/software/octave/news/release/2020/01/31/octave-5.2.0-released.html
  38. ^ https://www.gnu.org/software/octave/news/release/2020/11/26/octave-6.1.0-released.html
  39. ^ «Результаты уязвимости номеров социального страхования, основанные на суперкомпьютерах» . 8 июля 2009 года Архивировано из оригинала 29 февраля 2012 года.
  40. ^ https://devblogs.nvidia.com/parallelforall/drop-in-acceleration-gnu-octave/
  41. ^ «GNU Octave - Управление подпроцессами» . 14 ноября 2008 года Архивировано из оригинала 7 января 2009 года . Проверено 28 января 2009 .
  42. ^ "GNU Octave" . Проверено 28 января 2009 .
  43. ^ «Сводка важных видимых пользователем изменений в версии 3.2» . Проверено 5 января 2012 .
  44. ^ "FAQ: Совместимость с MATLAB" . Проверено 4 апреля 2009 .
  45. ^ "FAQ: Получение Octave" . Проверено 4 апреля 2009 .
  46. ^ https://octave.org/doc/interpreter/
  47. ^ Итон, Джон У. «Предоставление вам текста для чтения» . Справочное руководство GNU Octave .
  48. ^ Почему я не могу использовать код из File Exchange в Octave? Он выпущен под лицензией BSD! на octave.org
  49. ^ Условия использования на mathworks.com « Отправляемый вами контент не должен напрямую конкурировать с продуктами, предлагаемыми MathWorks. Контент, отправленный в File Exchange, может использоваться только с продуктами MathWorks».
  50. ^ Часто задаваемые вопросы о переходе на лицензирование обмена файлами на сайте mathworks.com
  51. ^ «Сводка важных видимых пользователем изменений в версии 3.8» .
  52. ^ «Сводка важных видимых пользователем изменений в версии 4.0» .
  53. GNU Octave на высокой ноте - Стив Хагеман, 7 февраля 2014 г.
  54. ^ https://savannah.gnu.org/search/?words=fuzzy-logic-toolkit&type_of_search=bugs&Search=Search&exact=1#options

Дальнейшее чтение [ править ]

  • Хансен, Джеспер Шмидт (июнь 2011 г.). GNU Octave. Руководство для начинающих . Packt Publishing . ISBN 978-1-849-51332-6.

Внешние ссылки [ править ]

  • Официальный веб-сайт