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 или S, C ++, Fortran и т. Д.

Начало работы с GNU Octave

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

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

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

Под капотом

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

Что нового в этой версии:

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

Что нового в версии:

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

Что нового в версии 4.2.0:

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

Что нового в версии 4.0.3:

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

Что нового в версии 4.0.1:

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

Что нового в версии 4.0.0:

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

Что нового в версии 3.8.2:

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

Что нового в версии 3.8.0:

  • Одной из самых больших новых функций для Octave 3.8 является графический интерфейс пользователя. Это то, что пользователи чаще всего запрашивали за последние несколько лет, и теперь оно почти готово. Но поскольку он не настолько отполирован, как хотелось бы, мы решили подождать до версии 4.0.x, прежде чем сделать графический интерфейс интерфейсом по умолчанию (до тех пор вы можете использовать опцию -force-gui для запуска графического интерфейса пользователя ).
  • Учитывая длительность и количество исправлений ошибок и улучшений со времени последней крупной версии Octave, мы также решили не задерживать выпуск всех этих новых улучшений, чтобы просто улучшить графический интерфейс. Поэтому, пожалуйста, наслаждайтесь выпуском Octave и просмотром нового графического интерфейса. Мы считаем, что он работает достаточно хорошо, но мы также знаем, что есть некоторые очевидные грубые пятна и многое, что можно улучшить.

Что нового в версии 3.4.0:

  • Теперь для создания Octave требуются библиотеки BLAS и LAPACK. Подмножество библиотек ссылок BLAS и LAPACK было удалено из источников Octave.
  • Функция `lookup 'была расширена, чтобы быть более полезной для двоичного поиска общего назначения. Используя это усовершенствование, функция ismember была переписана для значительно лучшей производительности.
  • Реальные, целочисленные и логические матрицы при использовании в индексировании теперь будут кэшировать внутреннее значение index_vector (индексы с нулевым индексом) при успешном использовании в качестве индексов, исключая штраф за конвертацию для последующей индексации по той же матрице. В частности, это означает, что больше не нужно избегать повторной индексации с помощью логических массивов, используя поиск по соображениям производительности.
  • Логические матрицы теперь обрабатываются более эффективно при использовании в качестве индексов. Octave будет поддерживать индекс как логическую маску, если соотношение истинных элементов недостаточно велико, используя специализированный код. Раньше все логические матрицы всегда сначала конвертировались в индексные векторы. Это приводит к экономии как памяти, так и времени вычисления.
  • Функции `sub2ind 'и` ind2sub' были переопределены как скомпилированные функции для лучшей производительности. Эти функции теперь быстрее, могут предоставлять более экономичные результаты для диапазонов и могут повторно использовать механизм кэширования индекса, описанный в предыдущем абзаце.
  • Встроенные эквиваленты функций ассоциативным операторам (`plus ',` times', `mtimes ',` and' и `or ') были расширены, чтобы принимать несколько аргументов. Это особенно полезно для суммирования (умножения и т. Д.) Списков объектов (возможно, разных типов):
  • matrix_sum = plus (matrix_list {:});
  • Был реализован тип объекта FTP на основе libcurl. Эти объекты позволяют подключать ftp-соединения, загрузки и загрузки. Например,
  • fp = ftp ("ftp.octave.org); cd (fp," gnu / octave "); mget (fp," octave-3.2.3.tar.bz2 "); close (fp);
  • Поведение по умолчанию `assert (наблюдается, ожидается) 'было смягчено, чтобы использовать менее строгую проверку, не требующую соответствия внутренних значений. Это позволяет избежать ранее проведенных тестов от взлома из-за новых внутренних классов, представленных в будущих версиях Octave.
  • Например, все эти утверждения были истинны в Octave 3.0.x, но false в 3.2.x из-за новых оптимизаций и улучшений:
  • assert (2 * linspace (1, 5, 5), 2 * (1: 5)) assert (нули (0, 0), []) утверждают (2 * единицы (1, 5), (2) (единицы (1,5)))
  • Поведение библиотечных функций `ismatrix ',` issquare' и `issymmetric 'было изменено для лучшей согласованности. Функция `ismatrix 'теперь возвращает true для всех числовых, логических и символьных двухмерных или N-D-матриц. Раньше `ismatrix 'возвращал false, если первое или второе измерение было равным нулю. Следовательно, `ismatrix ([]) 'было ложным, тогда как` ismatrix (нули (1,2,0))' истинно.
  • Функция `issquare 'теперь возвращает логический скаляр и эквивалентна выражению
  • ismatrix (x) & amp; & amp; & amp; ndims (x) == 2 & amp; & amp; rows (x) == columns (x)
  • Размер больше не возвращается. В результате, `issquare ([]) 'теперь возвращает true. Функция «асимметричная» теперь проверяет симметрию вместо эрмитовости. Для последнего был создан ишеримиан. Кроме того, возвращается логический скаляр, а не размер, поэтому `issymmetric ([]) 'теперь истинно. Ручки функций теперь знают о перегруженных функциях. Если функция перегружена, дескриптор определяет на момент ее ссылки, какую функцию вызывать. Неперегруженная версия не требуется.
  • Функции перегрузки для встроенных классов (double, int8, cell и т. д.) теперь совместимы с Matlab.
  • Обработчики функций теперь можно сравнить с операторами == и! =, а также с функцией isequal.
  • Эффективность конкатенации (с использованием []) и функций `cat ',` horzcat' и `vertcat 'была улучшена для многомерных массивов.
  • Операторы присваивания операций + =, - =, * = и / = теперь ведут себя более эффективно в определенных случаях. Например, если M - матрица, а S - скаляр, то утверждение
  • M + = S;
  • будет работать с данными M на месте, если он не используется другой переменной, обычно увеличивая эффективность времени и памяти. Учитываются только выбранные общие комбинации, а именно: матрица + = матричная матрица - матрица матрицы. * = Матричная матрица ./ = матрица
  • matrix + = скалярная матрица - = скалярная матрица * = скалярная матрица / = скаляр
  • логическая матрица | = логическая матрица логическая матрица & amp; = логическая матрица
  • , где матрица и скаляр принадлежат одному классу. Левая часть должна быть простой ссылкой на переменную.
  • Кроме того, когда в выражениях встречаются унарные операторы, Octave также попытается выполнить операцию на месте, если аргумент является временным выражением.
  • Эффект операторов сравнения (, =), примененных к комплексным числам, изменился, чтобы соответствовать строгому порядку, определенному функциями `max ',` min' и `sort '. Более конкретно, комплексные числа сравниваются лексикографическим сравнением пар `[abs (z), arg (z)] '. Раньше сравнивались только реальные части; это может быть достигнуто тривиальным путем обертывания операндов в real ().
  • Автоматическое упрощение результатов сложных вычислений изменилось. Теперь Октав упростит любое комплексное число с нулевой мнимой частью или любой сложной матрицей со всеми элементами, имеющими нулевую мнимую часть до действительного значения. Раньше это делалось только для положительных нулей. Обратите внимание, что поведение комплексной функции не изменяется и все равно создает комплексное значение, даже если мнимая часть равна нулю.
  • В качестве побочного эффекта рефакторинга кода в liboctave бинарные логические операции теперь легче адаптироваться к оптимизации компилятора и, следовательно, значительно быстрее.
  • Теперь Octave позволяет пользовательским методам «subsasgn» оптимизировать избыточные копии. Для получения дополнительной информации см. Руководство.
  • Более эффективная обработка матричного деления. Теперь Octave может обрабатывать выражения M 'V M.' V V / M
  • (M - матрица, а V - вектор) более эффективно в некоторых случаях. В частности, если M треугольно, все три выражения будут обрабатываться одним вызовом xTRTRS (из LAPACK) с соответствующими флагами. Раньше все три выражения требовали физической транспонирования M.
  • Более эффективная обработка определенных смешанных операций с комплексной матрицей. Например, если RM - вещественная матрица и CM - комплексная матрица, RM CM
  • теперь можно оценить как
  • (RM real (CM), RM imag (CM))
  • или как
  • complex (RM) CM,
  • в зависимости от размеров. Первая форма требует больше времени и копирования, но половину счета FLOP, которая обычно обеспечивает лучшую производительность, если RM имеет достаточно строк. Раньше всегда использовалась вторая форма.
  • Матричное деление также влияет.
  • Более эффективная обработка треугольных матричных факторов, возвращаемых из факторизации. Функции для вычисления факторизации QR, LU и Cholesky теперь автоматически возвращают треугольные матричные коэффициенты с надлежащим внутренним набором matrix_type, поэтому его не нужно вычислять, когда матрица используется для деления.
  • Встроенная функция `sum 'теперь обрабатывает не-натурное суммирование (т. е. сумму двойной точности одиночных или целочисленных входов) более эффективно, избегая временного преобразования всего массива ввода в парный разряд. Кроме того, `sum 'теперь может принимать дополнительный аргумент опции, используя компенсированный алгоритм суммирования, а не прямую сумму, что значительно повышает точность, если в суммировании происходит много отмены.
  • Встроенная функция `bsxfun 'теперь использует оптимизированный код для определенных случаев, когда передаются встроенные дескрипторы операторов. А именно, оптимизация касается операторов` plus', `minus ',` times', `ldivide ' , `rdivide ',` power', `and ',` or' (для логических массивов), реляционные операторы `eq ',` ne', `lt ',` le', `gt ',` ge' и функции «мин» и «макс». Оптимизация применяется только тогда, когда оба операнда имеют один и тот же встроенный класс. Смешанные операции real / complex и single / double сначала преобразуют оба операнда в общий тип.
  • Функции `strfind 'и` strrep' теперь имеют скомпилированные реализации, облегчая значительно более эффективный поиск и замену в строках, особенно с более длинными шаблонами. Код `strcat 'был векторизован и теперь намного эффективнее, когда многие строки объединены. Функции `strcmpi 'и` strncmpi' теперь являются встроенными функциями, обеспечивая лучшую производительность.
  • Теперь поддерживается Matlab-стиль, игнорирующий аргументы входной и выходной функции, используя тильду (~). Игнорируемые выходные аргументы могут быть обнаружены из функции с использованием встроенной функции `isargout '. Для получения дополнительной информации обратитесь к руководству.
  • Тип данных списка, устаревший с момента введения ячеек, был удален.
  • Функция аккумулирования была оптимизирована и теперь значительно быстрее в некоторых важных случаях.
  • Поведение isreal и isnumeric функций было изменено, чтобы быть более совместимым с Matlab.
  • Целая математика & amp; (Octave: int-convert-nan, Octave: int-convert-non-int-val, Octave: int-convert-overflow, Octave: int-math-overflow) удалены.
  • rem и mod теперь встроены в функции. Они также эффективно обрабатывают целочисленные типы с использованием целочисленной арифметики.
  • Разреженное индексирование и индексированное присвоение в основном были переписаны. Поскольку 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"); [status, msg] = rmdir (dir, "s"); ... endfunction По возвращении confirm_recursive_rmdir будет восстановлен до значения, которое он имел при входе в функцию, даже если были последующие изменения в переменной в функции rm_rf или любой из функций, которые она вызывает.
  • pkg теперь принимает параметр -forge для автоматической загрузки и установки пакетов из Octave Forge. Например, pkg install -forge general автоматически загрузит последнюю версию общего пакета и попытается установить его. Предоставлено автоматическое разрешение зависимостей. Кроме того,
  • pkg list -forge можно использовать для отображения всех доступных пакетов.
  • ** Внутреннее представление данных структур полностью переписано, чтобы сделать определенные оптимизации возможными. Теперь данные полей могут совместно использоваться структурами с равными ключами, но разными измерениями или значениями, делая операции, которые быстрее сохраняют поля. Экономичное хранилище теперь используется для скалярных структур (как и большинство других скаляров), что делает их использование более эффективным с точки зрения памяти. Определенные массивные операции над структурами (конкатенация, равномерная cellfun, num2cell) значительно ускорились. Кроме того, класс octave_scalar_map теперь обеспечивает более простой интерфейс для работы со скалярными структурами внутри C ++ DLD-функции.
  • ** Для отображения номеров доступны два новых формата:
  • формат короткометражного формата long eng
  • Оба отображают числа в машинописном обозначении, т. е. показатель мантиссы +, где показатель экспоненты кратен 3.
  • ** Следующие функции являются новыми в Octave 3.4:
  • accumdim erfcx nfields pqpnonneg uigetdir bitpack fileread nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskipl pbaspect отзывы об ошибках uimenu cbrt ifelse pie3 reset whitebg curl ishermitian powerset rsf2csf chop isindex ppder saveas daspect luupdate ppint strread расхождение слияние ppjumps textread
  • ** Использование функции изображения для просмотра изображений с помощью внешних программ, таких как отображение, 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 spcumsum spmin israwcommand spdet spprod lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spinv spvcat splan2 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, особенно в отношении графики, обработки пути и встроенных переменных.

Похожие программы

Другие программы разработчика John W. Eaton

Octave
Octave

2 Jun 15

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

Комментарии не найдены
добавить комментарий
Включите картинки!