GNU Octave

Скріншот програми:
GNU Octave
Дані програми:
Версія: 4.4.0 оновлений
Дата завантаження: 22 Jun 18
Розробник: John W. Eaton
Ліцензія: Безкоштовно
Популярність: 262

Rating: 2.7/5 (Total Votes: 3)

GNU Octave - це проект з відкритим кодом і вільно розподіленим програмним забезпеченням командного рядка, який має на меті забезпечити потужну, просту у використанні та розширювану мову високого рівня, яку можна використовувати для обробки чисельних обчислень .


Може бути використаний для чисельного вирішення лінійних та нелінійних задач

Програмне забезпечення може використовуватися для чисельного вирішення як лінійних, так і нелінійних задач, а також для виконання різних числових експериментів. Він сумісний з Matlab, багатопарадігмальним числовим обчислювальним середовищем, і може бути використаний як пакетна мова.

Крім того, GNU Octave пропонує різноманітні утиліти, що дозволяють вирішувати загальні чисельні задачі лінійної алгебри, маніпулювати поліномами, інтегрувати звичайні функції, виявити коріння нелінійних рівнянь, а також інтегрувати звичайні диференціально-алгебраїчні та диференціальні рівняння.

Ви можете використовувати динамічно завантажені модулі або визначені користувачем функції для розширення GNU Octave. Вони можуть бути написані на власній мові програмування Octave або в C, C ++, Fortran та ін.

Початок роботи з GNU Octave

Для встановлення GNU Octave в операційній системі GNU / Linux доступні два методи. Перший - найпростіший і включає в себе пошук за допомогою октави & ldquo; пакет у прикладі програми Software Center (наприклад, Synaptic Package Manager) вашого дистрибутива.

Другий спосіб допоможе вам встановити найновішу версію продукту, але це передбачає виконання команд у емуляторі термінала. Якщо ви зникнете з цього, завантажте найновіший вихідний пакет із Softoware або офіційної домашньої сторінки проекту (див. Посилання в кінці статті), збережіть його на своєму ПК та розпакуйте його.

Відкрийте пристрій емулятора термінала, запустіть & lsquo; cd & rsquo; команду, а потім шлях до місця вилученого архіву (наприклад, cd /home/softoware/octave-3.8.2), запустіть & lsquo; ./ configure & amp; зробити & rsquo; команду, щоб налаштувати та скомпілювати програму, а потім запустити команду & lsquo; sudo make install & rsquo; команду, щоб встановити його. Використовуйте його з інтерфейсу командного рядка, запустивши октаву & rsquo; команда.

Під капотом

Оглядаючись під капотом програми GNU Octave, ми можемо помітити, що це повністю написано на мові програмування C ++. Ми встановили його в декількох дистрибутивах GNU / Linux, включаючи Arch Linux та Ubuntu, використовуючи інструкції, надані в наведеному вище розділі. Програма сумісна з 32-розрядними та 64-розрядними комп'ютерними платформами.

  • Один з найбільших нових функцій для серії випуску Octave 3.8.x - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )

Що нового в версії:

  • Одна з найбільших нових функцій для серії випуску Octave 3.8.x - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )

Що нового у версії 4.2.0:

  • Одна з найбільших нових функцій для серії випуску Octave 3.8.x - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )

Що нового у версії 4.0.3:

  • Одна з найбільших нових функцій для серії випуску Octave 3.8.x - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )

Що нового у версії 4.0.1:

  • Одна з найбільших нових функцій для серії випуску Octave 3.8.x - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )

Що нового у версії 4.0.0:

  • Одна з найбільших нових функцій для серії випуску Octave 3.8.x - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )

Що нового у версії 3.8.2:

  • Одна з найбільших нових функцій для серії випуску Octave 3.8.x - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )

Що нового у версії 3.8.0:

  • Одна з найбільших нових функцій для Octave 3.8 - це графічний інтерфейс користувача. Це одне, про що користувачі найчастіше запитували за останні кілька років, і зараз він майже готовий. Але оскільки це не так поліроване, як ми хотіли б, ми вирішили почекати до серії випуску 4.0.x, перш ніж зробити графічний інтерфейс стандартним інтерфейсом (до цього ви можете використовувати опцію --force-gui для запуску GUI )
  • З огляду на тривалість часу і кількість виправлень помилок і поліпшень з моменту останнього великого Октава випуску, ми також вирішили не затримувати звільнення всіх цих нових поліпшень найбільше вдосконалити GUI. Тому, будь ласка, насолоджуйтесь 3.8 випуску Октави та попереднього перегляду нового графічного інтерфейсу. Ми вважаємо, що вона працює досить добре, але ми також знаємо, що є деякі очевидні грубі плями і багато речей, які можна було б поліпшити.

Що нового у версії 3.4.0:

  • Тепер бібліотеки BLAS та LAPACK повинні будувати Octave. Піднабір базових бібліотек BLAS та LAPACK був видалений з джерел Октави.
  • Функція 'lookup' була розширено, щоб бути більш корисною для загального пошуку бінарних. Використовуючи це вдосконалення, функція ismember була переписана для значно кращої ефективності.
  • Реальні, цілі і логічні матриці, коли вони використовуються при індексуванні, тепер будуть кешувати внутрішнє значення index_vector (нульові індекси), коли успішно використовуються як індекси, усуваючи штраф перетворення для подальшого індексації за тією ж матрицею. Зокрема, це означає, що більше не потрібно уникати повторної індексації за допомогою логічних масивів за допомогою пошуку для досягнення цілей.
  • Тепер логічні матриці обробляються більш ефективно, коли використовуються як індекси. Octave буде зберігати індекс як логічну маску, якщо співвідношення справжніх елементів недостатньо мале, використовуючи спеціалізований код. Раніше всі логічні матриці завжди були першими перетворені в векторні індекси. Це призведе до економії як часу пам'яті, так і обчислень.
  • Функції `sub2ind 'та` ind2sub' були повторно виконані як компілюються функції для підвищення продуктивності. Ці функції тепер швидше, можуть забезпечувати більш економічні результати для діапазонів і можуть повторно використовувати механізм індексного кешу, описаний в попередньому абзаці.
  • Вбудовані функціональні еквіваленти асоціативних операторів (`plus ',` times', `mtimes ',` і' і `або ') були розширені, щоб прийняти кілька аргументів. Це особливо корисно для підсумовування (множення тощо) списків об'єктів (можливо, різних типів):
  • matrix_sum = plus (matrix_list (:));
  • Тип об'єкта FTP на основі libcurl був реалізований. Ці об'єкти дозволяють керувати з'єднаннями ftp, завантаженнями та завантаженнями. Наприклад,
  • fp = ftp ("ftp.octave.org); cd (fp," gnu / octave "); mget (fp," октава-3.2.3.tar.bz2 "); close (fp);
  • li>
  • За замовчуванням поведінка `assert (спостерігається, очікувана) 'була розслаблена для використання менш жорсткої перевірки, яка не вимагає внутрішніх значень для відповідності. Це дозволяє уникнути попередніх існуючих тестів з ладу через нові внутрішні класи, представлені в майбутніх версіях Октави.
  • Наприклад, всі ці твердження були правдиві в Octave 3.0.x, але вони були помилковими в 3.2.x за рахунок нових оптимізацій та вдосконалень:
  • стверджувати (2 * linspace (1, 5, 5), 2 * (1: 5)) стверджувати (нулі (0, 0), []) стверджувати (2 * одиниці (1, 5), (2) (ті (1,5)))
  • Поведінка бібліотечних функцій `ismatrix ',` issquare` та `issymmetric` були змінені для кращої консистенції. Функція `ismatrix 'тепер повертає true для всіх чисельних, логічних та символьних 2-D або N-D матриць. Раніше `ismatrix 'повернуто помилково, якщо перший чи другий розмір був нульовим. Отже, `ismatrix ([]) 'був помилковим, а` ismatrix (нулі (1,2,0))' було правдою.
  • Функція `issquare 'тепер повертає логічний скаляр і еквівалентно виразу
  • ismatrix (x) & amp; ndims (x) == 2 & amp; & amp; рядки (x) == стовпці (x)
  • Розмір більше не повертається. В результаті, `issquare ([]) 'тепер дає вірно. Функція `ексиметрична 'тепер перевіряє симетрію замість ермітності. Для останнього був створений ізермітіан. Крім того, повертається логічний скаляр, а не розмір, так що "issymmetric ([])" тепер є істинним. Функціональні ручки тепер усвідомлюють перевантажені функції. Якщо функція перевантажена, ручка визначає на час її посилання, яку функцію викликати. Неперевантажена версія не повинна існувати.
  • Функції перевантаження для вбудованих класів (подвійні, int8, комірки тощо) тепер сумісні з Matlab.
  • Функціональні ручки тепер можна порівняти з операторами == і! =, а також функцією `isequal '.
  • Для багатомірних масивів було покращено виконання конкатенації (за допомогою []) та функцій "cat", "horzcat" та "vertcat".
  • Оператори присвоювання операцій + =, - =, * = і / = в деяких випадках ведуть себе більш ефективно. Наприклад, якщо M являє собою матрицю, а S - скаляр, то це твердження
  • M + = S;
  • буде працювати на даних M на місці, якщо для неї не використовується інша змінна, зазвичай збільшуючи час і ефективність пам'яті. Втрачено лише вибрані загальні комбінації, а саме: матриця + = матриця матриця - = матриця матриці. * = Matrix matrix ./= matrix
  • матриця + = скалярна матриця - = скалярна матриця * = скалярна матриця = скалярний
  • логічна матриця | = логічна матриця логічної матриці & логічна матриця
  • де матриця та скаляр відносяться до одного класу. Ліва частина повинна бути простим посиланням на зміну. ​​
  • Крім того, коли в виразах виникають унарні оператори, октава також намагатиметься виконувати операцію на місці, якщо аргумент є тимчасовою експресією.
  • Ефект порівняльних операторів (, =), застосований до складних чисел, змінився так, щоб відповідати строгому порядку, визначеному функціями `max ',` min' та `sort '. Більш конкретно, складні числа порівнюються шляхом лексикографічного порівняння пар `[abs (z), arg (z)] '. Раніше порівнювалися лише реальні деталі; це можна тривіально досягти шляхом обертання операндів в реальному ().
  • Автоматичне спрощення складних результатів обчислень змінилося. Octave тепер спростить будь-яке комплексне число з нульовою уявною частиною або будь-якою складною матрицею з усіма елементами, що мають нульову уявну частину до дійсного значення. Раніше це було зроблено лише для позитивних нулів. Зверніть увагу, що поведінка складної функції залишається незмінною, і вона як і раніше створює складне значення, навіть якщо уявна частина дорівнює нулю.
  • Як побічний ефект рефакторингу коду в liboctave, двійкові логічні операції тепер легше піддаються оптимізації компілятора і, таким чином, значно швидше.
  • Зараз октава дозволяє визначеними користувачем методах "subsasgn" для оптимізації надлишкових копій. Додаткову інформацію див. У посібнику.
  • Більш ефективне оброблення матричного розділу. Октава тепер вміє обробляти вирази M 'V M.' V V / M
  • (M - це матриця і V - вектор) більш ефективно в деяких випадках. Зокрема, якщо M трикутне, всі три вирази будуть оброблятися одним викликом до xTRTRS (з LAPACK) з відповідними прапорцями. Раніше всі три вирази вимагали фізичної транспозиції M.
  • Більш ефективне керування певними змішаними комплексними матричними операціями. Наприклад, якщо RM - це справжня матриця, а CM - складна матриця RM CM
  • Тепер можна оцінити як
  • комплекс (RM real (CM), RM imag (CM))
  • або як
  • комплекс (RM) CM,
  • залежно від розмірів. Перша форма вимагає більше тимчасових і копіювання, але половина кількості FLOP, що, як правило, забезпечує кращу продуктивність, якщо у РМ достатньо рядків. Раніше використовувалася друга форма.
  • Матричний поділ аналогічно впливає.
  • Більш ефективне керування факторами трикутної матриці, що повертаються з факторизації. Функції для обчислення коефіцієнтів QR, LU та Cholesky тепер автоматично повертають коефіцієнти трикутної матриці з належним внутрішнім набором matrix_type, тому його не потрібно буде обчислювати, коли матриця використовується для поділу.
  • Вбудована функція "сума" тепер обробляє не-корінне підсумовування (тобто сукупність подвійної точності окремих чи цілих входів), уникаючи тимчасової конверсії всього вхідного масиву в подвійне значення. Крім того, "сума" тепер може приймати аргумент додаткового варіанту, використовуючи алгоритм компенсуючого підсумовування, а не просто суму, що суттєво покращує точність, якщо в сумації відбувається багато скасування.
  • Вбудована функція `bsxfun 'тепер використовує оптимізований код для деяких випадків, коли вбудовані вручну ручки оператора передаються. Зокрема, оптимізація стосується операторів` plus', `minus ',` times', `ldivide ' , 'rdivide', `power ',` і', `або '(для логічних масивів), реляційні оператори eq,` ne', `lt ',` le', `gt ',` ge' та функції `min 'та` max'. Оптимізація застосовується лише тоді, коли обидва операнда мають той самий вбудований клас. Змішані операції real / complex та single / dual спочатку перетворять обидва операнди в загальний тип.
  • Функції `strfind 'та' strrep 'тепер компілюють реалізацію, що полегшує значно більш ефективний пошук і заміну в рядках, особливо з більш довгими моделями. Код `strcat 'був векторизований і тепер набагато ефективніший при об'єднанні багатьох рядків. Функції `strcmpi 'та` strncmpi' тепер є вбудованими функціями, що забезпечують кращу продуктивність.
  • Підтримка ігнорування аргументів функцій вводу та виводу Matlab із використанням tilde (~) тепер підтримується в Matlab-файлі. Ігноровані аргументи виводу можуть бути виявлені з функції за допомогою вбудованої функції `isargout '. Щоб дізнатись більше, перегляньте посібник.
  • Тип даних списку, застарілий після введення комірок, був видалений
  • Функція накопичувача була оптимізована і зараз значно швидше в деяких важливих випадках.
  • Поведінка іреальних та чисельних функцій була змінена як більш сумісна з Matlab.
  • цілі числа математики & amp; попередження про конверсії (Octave: int-convert-nan, Octave: int-convert-non-int-val, Octave: int-convert-overflow, Octave: int-math-overflow).
  • Рем і мод тепер вбудовані функції. Вони також ефективно обробляють цілі типи, використовуючи цілочисельну арифметику.
  • Спарже індексування та індексування було переважно переписано. Оскільки Octave використовує стиснуте колонок для рідких матриць, основна увага приділяється операціям, що обробляють цілі стовпці. Такі операції зараз значно швидше, а також деякі інші важливі випадки.
  • Крім того, тепер можна попередньо виділити розріджену матрицю, а потім заповнити її за призначенням за умови, що вони відповідають певним умовам. Для отримання додаткової інформації зверніться до функції spalloc, яка вже не є простою манекеном. Отже, nzmax та nnz більше не завжди рівні в Октаві. Октава також може створювати матрицю з nnz & lt; nzmax в результаті інших операцій, тому вам слід постійно використовувати nnz, якщо ви дійсно не хочете використовувати nzmax (тобто пробіл, призначений для ненульових елементів).
  • Також впливає розмита конкатенація, і зв'язування рідких матриць, особливо більших збірок, тепер значно ефективніша. Це стосується як оператора [], так і функцій cat / vertcat / horzcat.
  • Зараз можливо використовувати драйвери xGESDD LAPACK для обчислення розкладу сингулярного значення, використовуючи svd (), замість xGESVD за замовчуванням, використовуючи псевдо-змінну svd_driver конфігурації. Драйвер xGESDD може бути в 6 разів швидше, коли запитують одиничні вектори, але, як повідомляється, вони є дещо менш міцними на матрицях з надзвичайно поганою умовністю.
  • Конфігурація псевдоперемінних параметрів, таких як page_screen_output або confirm_recursive_rmdir (або вищезгаданий svd_driver), тепер приймає "місцеву" опцію як другий аргумент, вимагаючи, щоб зміни було скасовано, коли повертається поточна функція: function [status, msg] = rm_rf (dir) confirm_recursive_rmdir (false, "local"); [статус, повідомлення] = rmdir (dir, "s"); ... endfunction Після повернення, confirm_recursive_rmdir буде відновлено до значення, яке він мав при введенні в цю функцію, навіть якщо були наступні зміни в змінній у функції rm_rf або будь-якій функції, які він викликає.
  • Тепер pkg приймає параметр -forge для автоматичного завантаження та встановлення пакетів з Octave Forge. Наприклад, pkg install -forge general автоматично завантажить останню версію загального пакета та спробує встановити його. Немає автоматичного вирішення залежностей. Далі,
  • Список pkg -forge може бути використаний для переліку всіх доступних пакетів.
  • ** Внутрішнє представлення даних структур було повністю переписано, щоб зробити певні оптимізації реальними. Поле дані тепер можна розподіляти між структурами з однаковими клавішами, але різні розміри або значення, що робить операції, які зберігають поля швидше. Економне зберігання тепер використовується для скалярних структур (як і більшість інших скалярів), що робить їх використанням більш економічним. Деякі масивові операції на структурах (конкатенація, рівномірний cellfun, num2cell) значно прискорилися. Крім того, клас octave_scalar_map тепер забезпечує простий інтерфейс для роботи зі скалярними структурами в рамках функції DLD DLL.
  • ** Для відображення номерів доступні два нові формати:
  • короткий формат короткого формату eng
  • Обидві дисплеї в інженерній нотації, наприклад, mantissa + експонент, де показник має кратне число 3.
  • ** У Октаві 3.4 наступні функції є новими:
  • накопичувач erfcx nfields pqpnonneg uigetdir бітпак фільтр nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskipl pbaspect повторює uimenu cbrt ifelse py3 скинути whitebg curl ishermitian powerset rsf2csf рубати isindex ppder зберегти daspect lupdate ppint strread divergence об'єднати ppjumps textread
  • ** Використання функції зображення для перегляду зображень із зовнішніми програмами, такими як display, xv та xloadimage більше не підтримується. Функція image_viewer також була вилучена.
  • ** Поведінка структурних завдань до неструктурних значень змінено. Раніше можна було перезаписати довільне значення: a = 1; a.x = 2;
  • Це більше неможливо, якщо a не є порожньою матрицею масиву або коміркою.
  • ** Функція dlmread розширена, щоб дозволити вказувати власне значення для порожніх полів.
  • ** Функції dlmread та dlmwrite були змінені, щоб прийняти ідентифікатори файлів (як повернуто fopen), крім назв файлів.
  • ** Octave тепер може оптимізувати накладні витрати інтерпретатора на анонімну функціональну ручку, якщо ця функція просто викликає іншу функцію або обробляє деякі параметри, пов'язані з певними значеннями. Приклад: f = @ (x) sum (x, 1);
  • Коли виклик f викликається, виклик передається до @sum при додаванні константи 1, а анонімне виклик функції не відбувається в стекі викликів.
  • Непридатні функції.
  • Наступні функції застаріли в Octave 3.2 і будуть вилучені з Octave 3.6 (або будь-яка версія другої великої версії після 3.2):
  • create_set spcholinv splu dmult spcumprod spmax iscommand spcwsum spmin israwcommand spdet sprost lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spinv spvcat spatan2 spkron str2mat spchol splchol unmark_command spchol2inv split unmark_rawcommand
  • Наступні функції застаріли в Octave 3.4 і будуть вилучені з Octave 3.8 (або будь-яка версія другої великої версії після 3.4):
  • autocor cellidx gammai krylovb значення autocov dispatch glpkmex replot betai fstat is_global saveimage
  • Для сумісності з Matlab mu2lin (x) тепер еквівалентний mu2lin (x, 0).
  • Бібліотека ARPACK тепер поширюється разом з Octave, тому вона більше не повинна бути доступною як зовнішня залежність при побудові Octave.

Що нового у версії 3.2.3:

  • Octave 3.2.3 - це виправлення помилок

Що нового у версії 3.0.4:

  • Octave 3.0.4 - це виправлення для виправлення помилок. Більшість повідомлень про помилки після випуску версії 3.0.3 були виправлені. Зверніть увагу, що Octave 3.0 суттєво відрізняється від Octave 2.1.x, зокрема щодо графіки, обробки шляхів та вбудованих змінних.

Схожі програми

BAIK
BAIK

11 May 15

SWIG
SWIG

7 Mar 16

JRuby
JRuby

17 Feb 15

Alice ML
Alice ML

2 Jun 15

Інші програми розробника John W. Eaton

Octave
Octave

2 Jun 15

GNU Octave

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями