LINUX.ORG.RU

GNU Octave 3.4.0

 , ,


0

2

Octave — это язык высокого уровня для численных вычислений, схожий с Matlab.

В новой версии традиционно много изменений:

  • Библиотеки BLAS и LAPACK стали обязательны для сборки, в связи с чем куски этих библиотек удалены из исходных текстов Octave. Напротив, библиотека ARPACK включена в состав Octave и теперь не требуется при сборке.
  • За счёт расширения возможностей функции lookup, функция ismember была переписана и стала намного более быстрой.
  • При получении элементов матриц по индексу внутренняя переменная index_vector кешируется, что устраняет задержки при повторном индексировании.
  • Индексирование разреженных матриц также подверглись пересмотру и стало намного быстрее, что отразилось и на других операциях с разреженными матрицами.
  • Логические матрицы хранятся и используются более эффективно.
  • Ускорены функции sub2ind и ind2sub.
  • Встроенные эквиваленты функций plus, times, mtimes, and и or теперь принимают несколько аргументов.
  • Добавлена поддержка объекта ftp на основе libcurl.
  • Поведение функций ismatrix, issquare и issymmetric изменено и стало более логичным.
  • Указатели на функции теперь учитывают то, что функции могут быть перегружены.
  • Перегрузка функций для встроенных классов (double, int8, cell и т.д.) теперь совместима с Matlab.
  • Можно сравнивать указатели на функции с помощью операторов == и !=.
  • Для многомерных массивов улучшена производительность конкатенации.
  • Операторы присваивания (+=, -=, *= и /=) в некоторых случаях стали работать более эффективно.
  • Исправлено сравнение комплексных чисел с помощью операторов <, >, <= и >=. Теперь оно эквивалентно лексикографическому сравнению пар [abs(z), arg(z)].
  • Удалён тип данных list.
  • Для команды pkg добавлена опция -forge, которая позволяет скачивать и устанавливать дополнительные пакеты автоматически. Пример: pkg install -forge general
  • Множество других оптимизаций.
  • Несколько изменений направленных на увеличение совместимости с Matlab'ом.
  • Традиционно, новая порция функций объявлена устаревшими, а некоторые — удалены. Также некоторые функции перенесены из дополнительных пакетов в основной код.

Полный список изменений

Дополнительные пакеты

>>> Сайт проекта

★★★

Проверено: mono ()
Последнее исправление: Dendy (всего исправлений: 2)

Какая хорошая новость. А главное - вовремя, я как раз хотел искать ГНУтый аналог матлабу :) Пойду тыкать) А пока вопрос для знающих - для слаки пакеты есть ? Или компаил-наше всё? :)

Mr_Jke
()

OMG!!!

> Исправлено сравнение комплексных чисел с помощью операторов <, >, <= и >=. Теперь оно эквивалентно лексикографическому сравнению пар [abs(z), arg(z)].

anonymous
()
Ответ на: OMG!!! от anonymous

Слаб человек. Ошибается иногда :)

Mr_Jke
()

«намного более быстрой» быстрее?

anonymous
()

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

buddhist ★★★★★
()

Судя по чейнджлогу до Матлаба его еще пилить и пилить

anonymous
()

Там есть backend к какой-нибудь базе данных?

deis
()

Они уже сделали быстрое оптимизированное транспонирование? Последний раз, когда я смотрел в их исходники, у них транспонирование было реализовано «в лоб», то есть очень медленное. Тогда меня вообще поразила неоптимизированность многих функций для работы с матрицами.

neuron
()

[Вбросы]
Чем оно лучше Scilab?
Что более совместимо по M-коду с Matlab, сабж или Scilab?
Чем оно лучше Sage Math или скажем NumPy?
[/Вбросы]

хочу все знать!

djenterprise
()
Ответ на: комментарий от djenterprise

Octave более совместим с Matlab чем Scilab. Оно для того и делалось изначально.

NumPy - это библиотека для работы с матрицами в Python, а Octave - это пакет для вычислений. Разные вещи трудно сравнивать. Могу сказать только, что в NumPy всё шустрее работает. :)

Чем оно лучше всех остальных - это риторический вопрос, я считаю. :)

neuron
()

Помню нужна была ordschur(). Так она по-прежнему в списке http://wiki.octave.org/wiki.pl?MissingMatlabFunctions

Ну и длинный же он! Хоть, возможно, уже и устаревший, но тогда где же новый?

gag ★★★★★
()
Ответ на: комментарий от Somniator

> А как в SciLab можно найти корень уравнения? Пробовал как-то, за 10 минут не осилил и бросил.

Ни Scilab, ни Octave для этого не предназначены. Их стезя — численные вычисления( http://ru.wikipedia.org/wiki/Численные_методы ). В то время как для нахождения корней необходимы символьные( http://ru.wikipedia.org/wiki/Символьные_вычисления ).

За Октаву рад. Глядишь, наконец, и доберётся до скоростей ссайлаба.

ZhAN ★★
()
Ответ на: комментарий от ZhAN

Необязательно. Можно численно искать корни уравнения.

Если уравнение полиномиальное, то в Matlab это функция ROOTS. Если произвольное - функция FZERO

neuron
()
Ответ на: комментарий от ZhAN

Так Somniator же не требовал точного корня (символьно). Численным приближённое значение тоже можно найти (а в тривиальных случаях и точное).

gag ★★★★★
()
Ответ на: комментарий от djenterprise

> Чем оно лучше Scilab?

Ну у каждого есть свои скелеты в шкафу. Могу точно сказать, что у октавы получше с импортом/экспортом данных.

Помню, ссайлаб не мог прочитать wav файл, обработанный в SoX. В ссайлабе нет встроенных функций по считыванию изображений, для этого необходимо скачивать тулбоксы.

К слову, скачивание и подключение тулбоксов в ссайлабе — тоже задача весьма нетривиальная.

ZhAN ★★
()

хорошая новость. ждём ебилдов). хотя сам использую scilab, но октаву попробую: а вдруг она действительно более совместима с матлабом?

luke ★★★★★
()
Ответ на: комментарий от neuron

> Необязательно. Можно численно искать корни уравнения.

Если уравнение полиномиальное, то в Matlab это функция ROOTS. Если произвольное - функция FZERO

Хорошо, тут я пас. 10 минут гугления и правда ни к чему не привели. Есть полиномиальные, системы линейных, дифференциальные. Но общего решения не нашёл. Так что придётся либо графически, либо своё решение писать, либо приводить уравнение к общему виду.

ZhAN ★★
()
Ответ на: комментарий от ZhAN

Системы линейных уравнений решаются с помощью «обратного деления» - \, эквивалент: INV(A)*B. Вообще этим как раз занимается линейная алгебра, а это всякие LAPACK, то, что везде есть.

Не знаю, как в Scilab, но в Matlab дифференциальные уравнения решаются с помощью «солверов». Их там целое семейство. Названия функций ODE23, ODE113, ODE15S и т.д. Их там только для решения задачи Коши 7 штук. Использование этих функций нельзя назвать тривиальным, но и «диффуры» не самый простой раздел математики. Ещё там вроде ошибки были, или это в интегралах, короче я не помню, но точно были функции с ошибками. :)

neuron
()

Хорошо. У нас в универе из-за гуляющих копирастов снесли матлаб и прочие программы, теперь все лабы делаются дома.

vurdalak ★★★★★
()
Ответ на: комментарий от adriano32

adriano32> Ну ты то хоть из ХНУРЭ? Чем scilab/octave/maxima/SMath не угодил?

Я из ХПИ. А проги из методичек в октаве работают не все, ибо писаны под матлаб. Scilab не пробовал еще.

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

У меня круче!!! У меня методички под СИАМ!! В инструкции по установке зайди. Мой коллега-лаборант «устанавливая» даже пытался соблюсти второй пункт! Я его наругал и сделал всё сам без подобного действия.

Более того, жену профессора, читающего ТАУ, которая соотвественно принимает лабы, уже третий год подряд студенты уламывают делать лабы в матлабе/simulink'e. Она в нём не разбирается, ворчит каждый год о программе, но лабы принимает. Я сдавал в scilab'e, всё делал скриптами, не в scicos/Xcos. Правда пришлось сказать что это бесплатный матлаб, чтоб до неё дошло. Остальные массово в симулинке.

Другие преподы считаются с моими вкусами. В Украине с недавних пор в диссертациях при использовании прикладного ПО, необходимо указывать на лицензионность оного. Так что относятся с пониманием и временами даже с интересом. Вчера наконец показал преподже кастовавшей установку CorelDraw Inkscape. Ей понравилось, показала студентам, сказала что можно делать и в кореле, и в инкскейпе.

adriano32 ★★★
()
Ответ на: комментарий от vurdalak

Вот макрос для скилаба нагуглился.

Ну пару раз написать подобное с нуля можно, если понимать как работает функция. А вот весь тулкит уже лень.

Меня вот аспирантка, тоже принимающая лабы по ТАУ, недавно спрашивала как в симулинке соорудить трёхпозиционное реле с гистерезисом. Дескать готового блока нет! В СИАМе есть, а в симулинке нет! Что делать?! Соединил тут же при ней два двухпозиционных реле с гистерезисом и разными порогами вкл/выкл и выходными значениями (1;0) (0;-1) параллельно на сумматор и выдал на Scope. Потом сидел и доказывал ей на листке бумаги что правильно получилось.

adriano32 ★★★
()
Ответ на: комментарий от anonymous

>> ссайлаб

Это оскорбление или незнание языка?

То есть по-вашему наука на буржуйском будет звучать как «скайнс»?

Специально для искушённых ценителей английского языка:

mplayer "http://translate.google.com/translate_tts?tl=en&q=Science"

ZhAN ★★
()
Ответ на: комментарий от anonymous

Не стану спорить, английский — не мой конёк. Впрочем теперь меня заинтересовало произношение слова SciFi.

ZhAN ★★
()
Ответ на: комментарий от anonymous

Спасибо, достаточно. Вы во всей полноте продемонстрировали знание языка.

ZhAN ★★
()

Хорошим делом люди занимаются. Но я предпочитаю Python.

Vudod ★★★★★
()
Ответ на: комментарий от anonymous

>Это набор букв читается СкайФи

Mwha-ha-ha

Не знаешь — не болтай

scabarocci
()
Ответ на: комментарий от Mr_Jke

> для слаки пакеты есть ?

Есть.

GArik ★★★
() автор топика
Ответ на: комментарий от Somniator

octave уже 10 лет в примерно одинаковом состоянии к сожалению - аналога симулинка нет и не будет, скорость вычисления многих вещей не впечатляет, стремятся все время быть совместимыми с m-файлами зачем-то (все равно эта совместимость неполная).
Ушел с octave на numpy,scipy+matplotlib.
т.к. последнее более динамично развивается и уже сейчас на порядок удобнее для сигнальной обработки.

anonymous
()
Ответ на: комментарий от ZhAN

>Впрочем теперь меня заинтересовало произношение слова SciFi.

в одной из последних серий the big bang theory леонард целый монолог этой теме посвятил

registrant ★★★★★
()
Ответ на: комментарий от registrant

Да, именно благодаря ему мне вспомнился этот пример.

ZhAN ★★
()

>>сравнение комплексных чисел

Сильно.

эквивалентно лексикографическому сравнению пар [abs(z), arg(z)].

Страшно представить, какой трэш будет на границе отрезка определения аргумента.

mclaudt
()
Ответ на: комментарий от ZhAN

>>для нахождения корней необходимы символьные вычисления

Что за чушь, объём задач, разрешимых аналитически, на практике не составляет никакой практически существенной доли от числа существующих задач. В любом уважающем себя матпакете должны быть хотя бы простейшие итерационные решатели.

mclaudt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.