GNU Octave

Софтуер снимки:
GNU Octave
Софтуер детайли:
Версия: 4.4.0 актуализира
Дата на качване: 22 Jun 18
Розробник: John W. Eaton
Разрешително: Безплатно
Популярност: 327

Rating: 2.7/5 (Total Votes: 3)

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


Може да се използва за цифрово решаване на линейни и нелинейни проблеми

Софтуерът може да се използва за цифрово решаване на линейни и нелинейни проблеми, както и за извършване на различни цифрови експерименти. Той е съвместим с Matlab, мулти-парадигматична числена компютърна среда и може да се използва като партиден ориентиран език.

Освен това GNU Octave предлага различни средства, които ви позволяват да разрешите общи проблеми с числената линейна алгебра, да манипулирате полиноми, да интегрирате обикновени функции, да откриете корени на нелинейни уравнения, както и да интегрирате обикновени диференциални алгебрични и диференциални уравнения. / P>

Можете да използвате динамично заредени модули или потребителски дефинирани функции, за да разширите GNU Octave. Те могат да бъдат написани в собствения програмен език на Октавата или в C, C ++, Fortran и т.н.

Запознаване с GNU Octave

Налице са два метода за инсталиране на GNU Octave в операционна система GNU / Linux. Първият е най-лесният и включва търсене на "октавата" пакет в приложението Софтуерния център (например Synaptic Package Manager) на вашата дистрибуция.

Вторият метод ще ви помогне да инсталирате най-новата версия на продукта, но той включва изпълняване на команди в терминален емулатор. Ако не сте тук, изтеглете най-новия източник на пакет от Softoware или от официалната начална страница на проекта (вижте връзката в края на статията), запазете го на компютъра и го разопакойте.

Отворете приложение за терминални емулатори, стартирайте & cs & rsquo; команда, последвана от пътя към местоположението на извлечените архивни файлове (напр. cd /home/softoware/octave-3.8.2), стартирайте "./configure & amp; направи & rsquo; команда за конфигуриране и компилиране на програмата, след което стартирайте sudo make install & rsquo; команда, за да го инсталирате. Използвайте го от интерфейса на командния ред, като стартирате & octave & rsquo; команда.

Под капака

Като погледнем под капака на програмата GNU Octave, можем да забележим, че тя е написана изцяло на програмния език C ++. Ние сме го инсталирали в няколко дистрибуции на GNU / Linux, включително Arch Linux и Ubuntu, като използвахме инструкциите, дадени в горната част. Софтуерът е съвместим с 32-битовите и 64-битовите компютърни платформи.

Какво ново в това издание:

  • One от най-големите нови функции за серията Octave 3.8.x е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).

Какво е новото във версията:

  • Една от най-големите нови характеристики на версията Octave 3.8.x е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).

Какво е новото във версия 4.2.0:

  • Една от най-големите нови функции на версията Octave 3.8.x е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).

Какво е новото във версия 4.0.3:

  • Една от най-големите нови функции на версията Octave 3.8.x е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).

Какво е новото във версия 4.0.1:

  • Една от най-големите нови функции на версията Octave 3.8.x е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).

Какво е новото във версия 4.0.0:

  • Една от най-големите нови функции на версията Octave 3.8.x е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).

Какво е новото във версия 3.8.2:

  • Една от най-големите нови функции на версията Octave 3.8.x е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).

Какво е новото във версия 3.8.0:

  • Една от най-големите нови функции на Octave 3.8 е графичен потребителски интерфейс. Това е единственото нещо, което потребителите са поискали най-често през последните няколко години и сега е почти готово. Но тъй като не е толкова шлайфана, колкото бихме искали, решихме да изчакаме серията 4.0.x, преди да направим GUI интерфейс по подразбиране (дотогава можете да използвате опцията --force-gui за стартиране на GUI ).
  • Имайки предвид продължителността на времето и броя на поправките и подобренията на програмните грешки след последното основно издание Octave, решихме също да не забавяме пускането на всички тези нови подобрения вече само за да подобрим графичния интерфейс. Така че, моля, да се наслаждавате на 3.8 версията на Octave и на предварителен преглед на новия GUI. Смятаме, че работи сравнително добре, но също така знаем, че има някои очевидни груби места и много неща, които могат да бъдат подобрени.

Какво е новото във версия 3.4.0:

  • Библиотеките BLAS и LAPACK сега се нуждаят от изграждане на Octave. Подгрупата на референтните библиотеки BLAS и LAPACK е премахната от източниците на Octave.
  • Функцията "търсене" бе разширена, за да бъде по-полезна за бинарно търсене с общо предназначение. Използвайки това подобрение, функцията ismember бе пренаписана за значително по-добра производителност.
  • Реални, цели и логически матрици, когато се използват в индексирането, ще кешират вътрешната стойност index_vector (нулеви индекси), когато се използват успешно като индекси, като елиминират санкцията за преобразуване за последващо индексиране по същата матрица. По-конкретно, това означава, че вече не е необходимо да се избягва повторно индексиране чрез логически масиви, като се използва намиране поради причини за изпълнение.
  • Сега логическите матрици се третират по-ефективно, когато се използват като индекси. Octave ще запази индекса като логическа маска, освен ако съотношението на истинските елементи е достатъчно малка, използвайки специализиран код. Преди това всички логически матрици винаги са били преобразувани първо в индексни вектори. Това води до спестяване както на паметта, така и на времето за изчисляване.
  • Функциите "sub2ind" и "ind2sub" бяха възстановени като компилирани функции за по-добра производителност. Тези функции вече са по-бързи, могат да доведат до по-икономични резултати за диапазоните и могат да използват повторно механизма за кеширане на индексите, описан в предишния параграф.
  • Вградената еквивалентна функция на асоциативните оператори ("плюс", "време", "mtimes", "и" и "или") са разширени, за да приемат множество аргументи. Това е особено полезно за сумиране (умножаване и т.н.) списъци с обекти (от евентуално отделни типове):
  • matrix_sum = плюс (matrix_list {:});
  • Въведен е тип FTP обект въз основа на libcurl. Тези обекти позволяват да се управляват FTP връзки, изтегляния и качвания. Например,

  • (fp, "gnu / octave"); mget (fp, "octave-3.2.3.tar.bz2"); close (fp); Li>
  • Поведението по подразбиране на "assert (observed, expected)" е отпуснато, за да използва по-малко строг контрол, който не изисква вътрешните стойности да съответстват. Това избягва предишните валидни тестове от счупване поради нови вътрешни класове, въведени в бъдещите версии Octave.
  • Например, всички тези твърдения са верни в Octave 3.0.x, но са фалшиви в 3.2.x поради нови оптимизации и подобрения:
  • (2) (1, 5), 2 * (1: 5)) твърдят (нули (0, 0), []) (тези (1,5)))
  • Поведението на библиотечните функции "ismatrix", "issquare" и "issymmetric" е променено за по-добра последователност. Функцията `ismatrix 'вече се връща вярно за всички цифрови, логически и символни матрици 2-D или N-D. Преди това "ismatrix" се връщаше фалшиво, ако първото или второто измерение бяха нулеви. Следователно "ismatrix ([])" е фалшива, докато "ismatrix (нули (1,2,0))" е вярно.
  • Функцията `issquare 'вече връща логически скалар и е еквивалентна на израза
  • ismatrix (x) & amp; ndims (x) == 2 & amp; редове (x) == колони (x)
  • Размерът вече не се връща. В резултат на това `issquare ([]) 'сега е вярно. Функцията "issymmetric" вече проверява за симетрия вместо Hermitianness. За последния е създаден истеримът. Също така се връща логически скалар, а не измерение, така че "issymmetric ([])" вече е вярно. Функционалните ръкохватки вече са наясно с претоварените функции. Ако дадена функция е претоварена, дръжката определя по време на нейната референция коя функция да се обажда. Не е необходимо да съществува версия, която не е претоварена.
  • Функциите за претоварване за вградени класове (двойно, int8, клетка и т.н.) вече са съвместими с Matlab.
  • Функционалните дръжки вече могат да бъдат сравнени с операторите == и! =, както и функцията `isequal '.
  • Изпълнението на конкатенацията (използвайки []) и функциите "cat", "horzcat" и "vertcat" са подобрени за многомерни масиви.
  • Операторите-оператори-assignment + =, - =, * = и / = сега се държат по-ефективно в определени случаи. Например, ако M е матрица и S е скаларна, тогава изявлението
  • М + = S;
  • ще работи на място на данните на M, ако не се споделя от друга променлива, обикновено увеличава ефективността на времето и паметта. Измерени са само избрани общи комбинации, а именно: матрица + = матрична матрица - = матрична матрица. * = Матрична матрица ./= матрица
  • матрица + = скаларна матрица - = скаларна матрица * = скаларна матрица / = скаларна
  • логическа матрица | = логическа матрица на логическата матрица & logical matrix
  • където матрицата и скаларът принадлежат към един и същи клас. Лявата страна трябва да е проста променлива.
  • Освен това, когато операторите се появяват в изрази, Octave също ще се опита да извърши операцията на място, ако аргументът е временна експресия.
  • Ефектът на операторите за сравняване (= =), приложен към сложните номера, е променен, за да бъде в съответствие с строгото подреждане, определено от функциите "макс", "мин" и "сортиране". По-конкретно, комплексните числа се сравняват чрез лексикографско сравнение на двойките "[abs (z), arg (z)]". Преди това бяха сравнени само реални части; това може да бъде постигнато тривиално чрез обвиване на операндите в реално ().
  • Автоматичното опростяване на сложните изчислителни резултати се промени. Octave ще опрости всеки сложен номер с нулева въображаема част или сложна матрица с всички елементи с нулева въображаема част на реална стойност. Преди това това беше направено само за положителни нули. Обърнете внимание, че поведението на сложната функция е непроменено и все пак създава сложна стойност, дори ако въображаемата част е нула.
  • Като страничен ефект от кода refactoring в liboctave, двоичните логически операции сега по-лесно се поддават на оптимизациите на компилаторите и следователно са значително по-бързи.
  • Octave сега позволява на потребителски дефинирани методи subsasgn да оптимизира излишните копия. За повече информация вижте ръководството.
  • По-ефективно матрично разделяне. Октавата сега може да се справи с изразите M 'V M.' V V / M
  • (M е матрица и V е вектор) по-ефективно в определени случаи. По-конкретно, ако М е триъгълна, и трите израза ще се обработват от едно повикване до xTRTRS (от LAPACK) с подходящи знамена. Преди това и трите израза изискваха физическо транспониране на M.
  • По-ефективно управление на определени смесени операции на матрица в реално време. Например, ако RM е истинска матрица и CM е сложна матрица, RM CM
  • вече може да бъде оценена като
  • комплекс (RM реално (CM), RM изображение (CM))
  • или като
  • сложна (RM) CM,
  • в зависимост от размерите. Първата форма изисква повече временни копия и копиране, но намалява наполовина броя на FLOP, което обикновено води до по-добра производителност, ако RM има достатъчно редове. Преди това втората форма винаги е била използвана.
  • Матричното разделение е повлияно подобно.
  • По-ефективното боравене с триъгълни матрични фактори се връща от факторизациите. Функциите за изчисляване на QR, LU и Cholesky факторизация автоматично ще върнат триъгълните матрични коефициенти с подходящ вътрешен matrix_type набор, така че няма да е необходимо да се изчислява, когато матрицата се използва за разделяне.
  • Вградената функция сумата вече обработва ненужното сумиране (т.е. двойна точност на сумата от единични или цели числа) по-ефективно, като се избягва временното преобразуване на целия входно поле, което се удвоява. Освен това, сумата може да приеме аргумент за допълнителна опция, използвайки алгоритъм за компенсирано сумиране, а не съвсем ясна сума, което значително подобрява точността, ако се получи много анулиране в сумата.
  • Вградената функция bsxfun сега използва оптимизиран код за определени случаи, в които се предават вградените дръжки на оператора. А именно оптимизациите се отнасят за операторите "plus", "minus", "times", "ldivide" , "rdivide", "power", "and", "or" (за логически масиви), релационните оператори `eq ',` ne', `lt ',` le', `gt ' функциите "мин" и "макс". Оптимизациите се прилагат само когато и двата операнда са със същия вграден клас. Смесените реални / сложни и единични / двойни операции първо ще конвертират и двата операнда в общ тип.
  • Функциите "strfind" и "strrep" вече са компилирали реализации, улесняващи значително по-ефективното търсене и замяна на струните, особено с по-дълги шаблони. Кодът на `strcat 'е векторизиран и сега е много по-ефективен, когато много струни са свързани. Функциите "strcmpi" и "strncmpi" са вградени функции, осигуряващи по-добра производителност.
  • Сега се поддържат аргументите за игнориране на стил в Matlab с помощта на tilde (~). Игнорираните аргументи на изхода могат да бъдат открити от функция, използваща вградената функция `isargout '. За повече подробности вижте ръководството.
  • Списъкът с данни, който е отхвърлен след въвеждането на клетките, е премахнат.
  • Функцията accumarray е оптимизирана и сега е значително по-бърза в някои важни случаи.
  • Поведението на isreal и isnumeric функциите е променено, за да бъде съвместимо с Matlab
  • Целият математически & amp; Премахване на предупреждения за преобразуване (Octave: int-convert-nan, Octave: int-convert-non-int-val, Octave: int-convert-overflow, Octave:
  • rem и mod са вече вградени функции. Те също така обработват целочислени типове ефективно, като използват числова аритметика.
  • Рязкото индексиране и индексираното присвояване са пренаписани предимно. Тъй като Octave използва компресирано съхранение на колони за редки матрици, голямо внимание се обръща на операции, манипулиращи цели колони. Подобни операции са значително по-бързи, както и някои други важни случаи.
  • Освен това е възможно предварително да се разпредели раздробена матрица и след това да се запълни с задачи, при условие че отговарят на определени условия. За повече информация се обърнете към функцията "spalloc", която вече не е обикновен манекен. Следователно nzmax и nnz вече не са винаги равни в Octave. Октавата може също така да произведе матрица с nnz < nzmax в резултат на други операции, така че трябва непрекъснато да използвате nnz, освен ако наистина не искате да използвате nzmax (т.е. пространството, предназначено за ненулеви елементи).
  • Влиянието също се влияе и върху рядкото конкатенация, и свързването на редките матрици, особено на по-големите колекции, сега е значително по-ефективно. Това важи както за функциите на оператора, така и за cat / vertcat / horzcat.
  • Понастоящем е възможно да използвате драйверите xGESDD LAPACK за изчисляване на разлагането на сингуларна стойност, като използвате svd (), вместо xGESVD по подразбиране, като използвате pseudo-variable svd_driver. Драйверът xGESDD може да бъде до 6 пъти по-бърз, когато се изискват единични вектори, но се съобщава, че е малко по-слабо устойчив при матрици с много по-малък риск.
  • Конфигурационните псевдо-променливи, като например page_screen_output или confirm_recursive_rmdir (или гореспоменатата svd_driver), сега приемат "локална" опция като втори аргумент, искайки промяната да бъде отменена при връщане на текущата функция: function [status, msg] = rm_rf (директория) confirm_recursive_rmdir (false, "local"); [статус, msg] = rmdir (реж., "s"); ... endfunction При връщане confirm_recursive_rmdir ще бъде възстановена до стойността, която има при влизане във функцията, дори ако има последващи промени на променливата във функцията rm_rf или някоя от функциите, които тя извиква.
  • pkg вече приема опция -forge за автоматично изтегляне и инсталиране на пакети от Octave Forge. Например, pkg install -forge general автоматично ще изтегли най-новото издание на общия пакет и ще се опита да го инсталира. Няма автоматично разрешаване на зависимостите. Освен това,
  • списъкът pkg -forge може да се използва за изброяване на всички налични пакети.
  • ** Вътрешното представяне на данни на структури е напълно пренаписано, за да се направят определени оптимизации осъществими. Данните за полето вече могат да се споделят между структури с еднакви ключове, но с различни размери или стойности, което прави операции, които запазват по-бързо полетата. Икономизираното хранилище се използва за скаларни структури (точно както повечето други скалари), което прави използването им по-ефективно от паметта. Определени масиви, подобни на операции по structs (concatenation, uniform cellfun, num2cell), са спечелили значително ускоряване. Освен това класът octave_scalar_map осигурява по-прост интерфейс за работа със скаларни структури в рамките на функцията C ++ DLD.
  • ** Има два нови формата за показване на номера:
  • формат кратък eng eng дълъг eng
  • Двете показвани номера в инженерната нотация, т.е. мантиси + експонент, където експонентът е кратно на 3.
  • ** Следните функции са нови в Octave 3.4:
  • натрупване на ерфаc nfields записи на уиджет bitpack fileread nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskilp pbaspect реплики uimenu cbrt ifelse pie3 нулиране whitebg curl ishermitian powerset rsf2csf chop isindex ppder savepassage luupdate ppint strread divergence mergeppjumpstextread
  • ** Използването на функцията за преглед на изображения с външни програми като дисплей, xv и xloadimage вече не се поддържа. Функцията image_viewer също е премахната.
  • ** Поведението на структурните задания към неструктурните стойности е променено. Преди това е възможно да се презапише произволна стойност: a = 1; a.x = 2;
  • Това вече не е възможно, освен ако a е празна матрица или клетка.
  • ** Функцията dlmread е разширена, за да позволи да се зададе персонализирана стойност за празни полета.
  • ** Функциите dlmread и dlmwrite са променени, за да приемат файловите идентификатори (като връщани от fopen) в допълнение към имената на файловете.
  • ** Октавата вече може да оптимизира разходната част на анонимен функционален дръжка, ако функцията просто извиква друга функция или обработва някои параметри, свързани с определени стойности. Пример: f = @ (x) сума (x, 1);
  • Когато се извика f, повикването се препраща към @sum с константа 1 приложен, а повикването на анонимната функция не се получава в стека на повикванията.
  • Отхвърлени функции.
  • Следните функции бяха отхвърлени в Octave 3.2 и ще бъдат премахнати от Octave 3.6 (или коя версия е второто основно издание след 3.2):
  • create_set spcholinv splendid spcumprod spmax е команда spcumsum spmin israwcommand spdet spprod lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spvcspat spatan2 spkron str2mat spchol splchol unmark_command spchol2inv split unmark_rawcommand
  • Следните функции са отхвърлени в Octave 3.4 и ще бъдат премахнати от Octave 3.8 (или коя версия е второто основно съобщение след 3.4):
  • autocor cellidx gammai krylovb стойности autocov изпращане 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, особено по отношение на графика, обработката на пътя и вградените променливи.

Подобен софтуер

Mercury
Mercury

15 Apr 15

GNU BPEL2oWFN
GNU BPEL2oWFN

3 Jun 15

Flex
Flex

12 Jul 17

KBasic
KBasic

2 Jun 15

Друг софтуер на разработчика John W. Eaton

Octave
Octave

2 Jun 15

Коментари към GNU Octave

Коментари не е намерена
добавите коментар
Включете на изображения!
Търсене по категория