GNU Octave

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

Octave представляє інтерактивний командний інтерфейс для вирішення лінійних та нелінійних математичних задач, а також проведення інших чисельних експериментів. Крім того, Octave можна використовувати для пакетної обробки. Мова Octave оперує арифметикою дійсних і комплексних скалярів і матриць, має розширення для вирішення лінійних алгебраїчних задач, знаходження коренів систем нелінійних алгебраїчних рівнянь, роботи з поліномами, вирішення різних диференціальних рівнянь, інтегрування систем диференційних та диференційно-алгебраїчних рівнянь першого порядку, інтегрування функцій на кінцевих і нескінченних інтервалах. Цей список можна легко розширити, використовуючи мову Octave (або використовуючи динамічно завантажувані модулі, створені на мовах C, С + +, Фортран та ін.)


1. Технічні деталі

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

2. Мова Octave

Octave - інтерпретована мова програмування. Він схожий на C і підтримує більшість основних функцій стандартної бібліотеки C, а також основні команди і системні виклики Unix. З іншого боку, він не підтримує передачу аргументів по посиланню (особливість дизайну).

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

3. Графічний інтерфейс

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

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

4. Деякі можливості

Інтерфейс

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

Інтеграція з C + +

Вирази Octave можна обчислювати з програм на C + +. Наприклад, фрагмент коду для обчислення rand ([9000,1]): [4]

 # Include   ...  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  (  )  )  ; 

5. Сумісність з MATLAB

Octave був написаний з урахуванням сумісності з MATLAB і реалізує багато його можливості:

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

Але є і відмінності:

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

Примітки

  1. Octave - Android Apps auf Google Play.
  2. Octave - www.gnu.org/software/octave/
  3. About Octave - www.gnu.org / software / octave / about.html
  4. Octave-Forge: CategoryFAQ - www.pt.xemacs.org/wiki.pl?CategoryFAQ