LINUX.ORG.RU

GNU Octave 3.6.0

 , , ,


0

3

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

В новой версии произошли следующие изменения:

  • Для сборки теперь необходимо наличие библиотеки PCRE.
  • ARPACK, ранее включённый в исходные тексты Octave, был удалён из поставки. Теперь ARPACK необходимо ставить отдельно, чтобы работали такие функции как eigs и svds.
  • Многие бинарные операторы (.*, .^, +, -, ...) теперь выполняют автоматическое распространение (broadcasting) для операций над массивами. Например, промасштабировать столбцы матрицы с помощью элеменов вектора, можно с помощью выражения:
    rv .* M
    Подробнее об этом можно почитать в `info octave broadcasting`.
  • В Octave добавлен профайлер написанный в рамках GSoC. Воспользоваться им можно с помощью функций profile, profshow и profexplore.
  • Были переработаны функции отвечающие за статистические распределения. Для них на 75% уменьшено потребление памяти, а также улучшена совместимость с MatLab.
  • Функции strread, textscan и textread полностью переписаны и теперь почти полностью соответствуют аналогичным функциям из MatLab.
  • Все строковые функции из .m-файлов подверглись изменениям в сторону улучшения производительности или совместимости с Matlab'ом. Для некоторых случаев был продемонстрирован прирост производительности в 15-30 раз.
  • Функции работающие с Qhull (convhull, delaunay, voronoi) также были переписаны для большей совместимости с Matlab.
  • Обновлены и улучшены функции для работы с датой и временем.
  • Для большей совместимости с Matlab'ом в Octave добавлены функции для работы с настройками: addpref, getpref, ispref, rmpref, setpref.
  • Также для совместимости с Matlab'ом добавлены экспериментальные gui-функции. Например с помощью функции uigetfile можно вызвать графический диалог для выбора файла.
  • Octave стал распознавать parfor (параллельный цикл for) как правильное ключевое слово. Хотя на деле parfor работает так же как обычный for.
  • Традиционно, новая порция функций объявлена устаревшими, а некоторые, ранее объявленные устаревшими — удалены.

Полный список изменений
Дополнительные пакеты

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

Хорошая, годаная новость. Возрадуемся

marvin_yorke ★★★ ()

Отличная новость! Спасибо!

AleXP ()

Функции работающие с Qhull

А это интересно: неужели наконец-таки появилась библиотека для триангуляции и мне не придется городить очередной велосипед?

Eddy_Em ☆☆☆☆☆ ()

Отличная система. Правда недавно с удивлением для себя обнаружил, что запустить m-файл octave в matlab'e не так то просто - много языковых вкусностей там нет.

Array ()

Отличный, годный проект. В свое время очень обрадовался, когда узнал что существует фактически свободный аналог матлаба.

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

Функции работающие с Qhull

А это интересно: неужели наконец-таки появилась библиотека для триангуляции и мне не придется городить очередной велосипед?

Этой библиотеке сотня лет :)

GArik ★★★ ()

Я считаю, что в погоне за совместимостью они ощутимо проиграли в производительности, и навёрстывать её, судя по списку изменений, они не планируют.

Насчёт совместимости — она очень условная. Мне так и не удалось запустить ни один MATLAB-сценарий, сложнее чем a+b, не залезая с ушами в код.

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

Мое многое работало, правда, кое-какие функции действительно пришлось переделывать.

Eddy_Em ☆☆☆☆☆ ()

Вот буквально только начинаю изучать octave. Какова степень совместимости с Matlab? Для студента подойдёт любая книжка по Matlab?

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

Хм, оказывается, оно у меня даже установлено. Только непонятно, как им пользоваться в сишных программах.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от HunOL

Главная проблема octave - в отсутствии некоторых toolbox'ов для специалистов, что для студента не критично. Мне в свое время не хватало некоторых функций для работы с полями Галуа.

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

Вот буквально только начинаю изучать octave. Какова степень совместимости с Matlab?

Синтаксис, плюс ряд самых распространённых функций. Для меня разница всплыла сразу же после перехода от пробных программ к чему-то осмысленному.

Для студента подойдёт любая книжка по Matlab?

Если студент к этому самому матлабу ни чем не привязан, то я рекомендовал бы ему Scilab вместо Octave. Синтаксис там чуть аутентичнее, но большой выигрыш на литературе (Вот цикл рускоязычных статей: http://teacher.dn-ua.com/Math/Scilab/Scilab.html ) и на производительности.

Ну а если по честному, надо смотреть какие цели ставите непосредственно вы, и исходя из этого выбирать инструмент. Лично мне Scilab очень пригодился в обработке сигналов.

ZhAN ★★ ()

Непонятно, зачем зацикливаться на совместимости с матлабом?

Считаю, после появления нормальной библиотеки для анализа и визуализации данных на питоне, лучше ей заниматься, туда все методы перетаскивать из матлаба, октава, скилаба, R и т.д.

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

Ну я так и сказал: если к Матлабу гайками не прикручен, то имеет смысл рассмотреть и несовместимые альтернативы.

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

Вы ещё скажите, что браузер должен остаться только один.

Браузеров лучше чтобы было много, но html лучше чтобы был один.

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

Хм, оказывается, оно у меня даже установлено. Только непонятно, как им пользоваться в сишных программах.

А чего там непонятного? Пиши #include <qhull/qhull.h>... а дальше сам. К тому же примеры там есть.

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

Ну и следует понимать, что язык общего применения всегда будет гораздо менее удобным средством, чем специализированный язык в случае интерактивного анализа.

Evgueni ★★★★★ ()

Годная штука. Все лабы, все курсачи октавой обсчитывал.

luke ★★★★★ ()

Господа! почему Octave (опен сурц клон матлаба) интересен компьюнити когда существует православный математичный питон с божественными библиотеками? или проблема лишь только в студентах которых учут матлабу в школе?

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

Мануалы я так и не нашел. Плюс меня нервирует их непонятная выдача данных.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от umren

Потому как питон - вообще непонятная фигня. В Octave можно одноразовые модельки посчитать, уравненьица порешать, а также смоделировать что-нибудь, отточив новые методы, чтобы затем на сях переписать. А что делать с питоном?

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

Потому как octave - вообще непонятная фигня. В Python можно одноразовые модельки посчитать, уравненьица порешать, а также смоделировать что-нибудь, отточив новые методы, чтобы затем на сях переписать. А что делать с октавой?

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

python и numpy даже если по возможностям позволяет тоже самое (или даже больше), по синтаксису совсем другой :) (удобнее вообще говоря).

А эта штука, я так понимаю, частично совместима именно с языком матлаба (убогим, кстати).

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

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

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Evgueni

Ну и следует понимать, что язык общего применения всегда будет гораздо менее удобным средством, чем специализированный язык в случае интерактивного анализа.

Ну насчет «гораздо» я бы не сказал. По моему опыту Python + библиотеки для научных вычислений (numpy/scipy и matplotlib для визуализации) + нормальный IDE (мне нравится WingIDE) вполне сравнимы с MATLAB-ом. К тому же, MATLAB заточен не столько под нужды научных вычислений, сколько под снижение «порога входа» (другими словами «подсаживания» пользователей). Поэтому, например, в MATLAB-е отсутстует даже такая простая вещь, как передача аргументов «by reference». Это немного упрощает жизнь совсем начинающим пользователям, но создает немало проблем (особенно с потреблением памяти) тем кому надо написать что-то чуть сложнее чем a = b * c. Но если человек пишет что-то сложнее, то, скорее всего, он на MATLAB уже крепко подсел и никуда не денется.

Сам много лет активно использовал MATLAB (machine learning, статистика, обработка сигналов), потом начал искать свободные альтернативы. Пробовал Octave, но мне он не понравился - на моих задачах производительность просаживалась в разы и не было нормальных библиотек. Плюс все недостатки MATLAB-а: отсутствие нормальных классов, отсутствие «by reference», etc. SciLab я сильно не копал, попробовал - мне не понравилось (в основном, отсутствие библиотек). А вот связка Python/numpy/scipy/matplotlib/нормальный IDE оказалась очень удачным решением. Правда, порог вхождения повыше чем у MATLAB-а, но в долгой перспективе это окупается большими возможностями Python-а, как языка программирования. Сейчас пользуюсь почти исключительно Python-ом. Исключение лишь небольшие скриптики на MATLAB-е, когда надо помочь по мелочам кому-то у кого все завязано на MATLAB по самые помидоры.

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

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

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

Если что, то я намекаю на R и в какой-то степени на ROOT.

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

Толсто. Почему вдруг питон корявый?

На матлабе писал мало (только то, что заставляли на парах), и всё равно всё позабывал, как там работает. А разбираться в чужом коде (приходилось) - удовольствие ещё то. Тоже, так и не разобрался толком.

Вообще замечаю... если пишет код прогер (имеется ввиду хороший прогер), разобраться в нём проще, чем если пишет математик... Хотя и тот, и другой код вполне себе работает.

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

нормальный IDE (мне нравится WingIDE)

Спс, надо глянуть. Смотрел на eric (не осилил его, странный какой-то), idle (простенькая штука, хотя удобная, как калькулятор использую), и ещё eclipse+pydev.

Для написания чего-то серьёзного последний вариант удобнее всего, хотя и он тоже не без недостатков.

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

Почему вдруг питон корявый?

Потому что я - неосилятор ☺

Вообще замечаю... если пишет код прогер (имеется ввиду хороший прогер), разобраться в нём проще, чем если пишет математик... Хотя и тот, и другой код вполне себе работает

Вот только если «прогер» вообще не врубается, чего он там такое пишет, то получается совершенно не то, что математик от него хотел. Поэтому большинство свободных математических пакетов содержат тонны «быдлокода», но зато они работают. А вот если бы их писали «прогеры», ждали бы мы этих библиотек еще лет 100!

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Evgueni

Вы похоже не понимаете что такое интерактивный анализ.

Ну некоторое представление имею:). Если кому-то нужен только интерактивный анализ и ничего больше, то я соглашусь что MATLAB удобнее (хотя и не «гораздо»). Но в моем случае (и в случае большинства пользователей MATLAB-а которых я знаю) чистый интерактивный анализ это лишь часть работы. Кроме анализа, MATLAB используется для быстрой разработки (rapid prototyping - набросать алгоритм «по быстрячку»). Причем очень хотелось бы и анализ и разработку вести в одной и той же среде. В таких случаях Python вполне себе MATLAB-у конкурент.

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

Что значит нужен только? В случае исследований он занимает 99% не от хорошей жизни, а потому что _не_ понятно что делать. Занимал бы и больше, но человек слаб. Если он занимает меньше, то со значительной долей вероятности можно предположить что данный анализ — халтура или имеет к исследованиям весьма отдалённое отношение.

Имеется в виду в основном анализ данных, а не моделирование и расчёты, хотя часто и на них это распространяется.

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

Основная фишка WingIDE которая мне нужна - это возможность интерактивной отладки в дебаггере. То есть возможность остановиться на breakpoint и начать интерактивно работать через python shell с текущим stack frame программы, как в MATLAB-e. Кроме отсутствия этой возможности, Eclipse + PyDev меня вполне устраивает. Недавно я обнаружил что такая вещь вроде бы есть и в PyCharm. Eric мне в свое время показался слишком примитивным.

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