Анонсирована (http://www.gnu.org/software/octave/) новая значительная ветка системы для выполнения математических расчётов GNU Octave 4.0.0, предоставляющей интерпретируемый язык, во многом совместимый с Matlab. GNU Octave может использоваться для решения линейных задач, нелинейных и дифференциальных уравнений, вычислений с использованием комплексных чисел и матриц, визуализации данных, проведения математических экспериментов.
Ключевым новшеством (http://www.gnu.org/software/octave/NEWS-4.0.html) GNU Octave 4.0.0 является задействование по умолчанию появившегося в прошлой ветке нового графического интерфейса пользователя, построенного с использованием библиотеки Qt и использующего для отрисовки OpenGL (при недоступности OpenGL и Qt возможна отрисовка при помощи gnuplot). Для запуска предлагаемого ранее интерфейса командной строки и визуализации графиков через FLTK, следует использовать опции "--no-gui" и "-no-gui-libs". Отрисовка через Qt и FLTK теперь может выполнятся в режиме offscreen, при котором вывод может осуществляться при отключении визуализации графика.
<center><a href="http://en.wikipedia.org/wiki/File:Octave-4.0.0-rc1-Qt5.4-Lin... src="http://www.opennet.dev/opennews/pics_base/0_1433053427.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="Creative Commons Attribution-ShareAlike 3.0 License" border=0></a></center>
Вторым важным новшеством является поддержка синтаксиса classdef для объектно-ориентированного программирования. Кроме того, в новом выпуске добавлена порция новых функций, в том числе добавлена большая порция функций для воспроизведения, записи и обработки звука. Улучшена совместимость с Matlab и добавлен опциональный режим для более полной совместимости с Matlab, при котором отключаются некоторые специфичные для Octave оптимизации.URL: http://www.gnu.org/software/octave/
Новость: http://www.opennet.dev/opennews/art.shtml?num=42336
Вывод функций sin и cos зависит от rounding mode cpu.
> Вывод функций sin и cos зависит от rounding mode cpu** The trigonometric functions asin and acos return different phase values
from previous versions of Octave when the input is outside the principal
branch ([-1, 1]). If the real portion of the input is greater than 1 then
the limit from below is taken. If the real portion is less than 1 then the
limit from above is taken. This criteria is consistent with several other
numerical analysis software packages.** The hyperbolic function acosh now returns values with a phase in the range
[-pi/2, +pi/2]. Previously Octave returned values in the range [0, pi].
This is consistent with several other numerical analysis software packages.
f(x) = A*x + B*x (без оптимизации 3 вычисления)
f(x) = (A+B)*x (с оптимизацией - два)
Тут дело не только в количестве вычислений, но и в том, что из-за ограниченной точности чисел с плавающей точкой эти две функции могут принимать [чуть-чуть] разные значения для одного и того же аргумента.
> f(x) = A*x + B*x (без оптимизации 3 вычисления)
> f(x) = (A+B)*x (с оптимизацией - два)Это если правая дистрибутивность есть. И даже в этом случае есть ньюансы, когда первый вариант будет выгоднее.
> ньюансы,Тоже мне, бином нЬютона... :)
** Optional stricter Matlab compatibility for ranges, diagonal matrices,
and permutation matrices.Octave has internal optimizations which use space-efficient storage
for the three data types above. Three new functions have been added
which control whether the optimizations are used (default), or whether
the data types are stored as full matrices.disable_range disable_diagonal_matrix disable_permutation_matrix
All three optimizations are disabled if Octave is started with the
--braindead command line option.
> braindeadИнтересно они Matlab охарактеризовали. :)
Лучше б интерфейс сделали как в маткаде, этот построчный ввод не позволяет нормально работать.
пользуйся маткадом тогда. это немного не маткад. это опенсорсный матлаб, но не маткад.
Маткад продают за деньги, а это за джаст фор фан всем раздают. Идеологически сойдёт. Ну, как GIMP, он тоже типа редактор, зато свободный.
> Идеологически сойдёт. Ну, как GIMP, он тоже типа редактор, зато свободный.Ну я как бы в гимпе вполне себе рисую. И фотки ретуширую/дообрабатываю. Получше половины фотошоперов, btw. Рисует в конечном итоге человек, а не программа. И gimp как таковой для большинства опеннетчиков - выше крыши.
Исключение составляют всякие полиграфисты которые делают транспаранты по 4 метра и ультрапрофессиональные фотографы. Но это очень узкие категории лиц.
Мимо всякий полиграфист. CMYK пространство не завезли, поэтому предпечатную обработку делать на Krita надо =) В остальном все ок
>>Ну, как GIMP, он тоже типа редактор, зато свободный.Всё это инструменты. А умение ими пользоваться - уже 90% успеха. А если руки из того места и есть желание учиться - то это 100% успеха.
> маткадеЭто убожество до сих пор еще живо?
> маткадсамая убогая из мат программ
> Лучше б интерфейс сделали как в маткаде, этот построчный ввод не позволяет нормально работать.нормально пишут всю программу в чем угодно и загружают в matlab/scilab/freemat/julia/r на выполнение, там кое-где и редактор встроен.
> Лучше б интерфейс сделали как в маткадеВам шашечки или ехать? Mathcad с его явным акцентом на оформление (разбивка на страницы, настройка шрифтов, отступы и пр. -- WYSIWYG, в общем) или Matlab/Octave, направленные на получение результатов вычислений?
Маткад в свое время вызывал сотни ненависти включая интерфейс. кстати, им кто-нить за пределами стен образовательных учреждений пользуется?
Когда я лет 7 назад бытался использовать его для лабораторок, нормальные графики строились только через java-модуль. Ооочень медленно строились
> Когда я лет 7 назад бытался использовать его для лабораторок, нормальные графики
> строились только через java-модуль. Ооочень медленно строилисьЕсли не нужно сильно углубятся в численные методы, то лучше бы тыкал maxima. Язык математичней, да и с гнуплотом никаких проблем
Сейчас ещё Julia есть. Оно не совсем синтаксически совместимо с Матлабом (хотя массивы тоже с единицы адресуются); зато по скорости — практически Си/Фортран.
Для ЧМ есть Python (NumPy, SciPy и т.д.), подправленный IPython + matplotlib.> хотя массивы тоже с единицы адресуются
Вот нафейхоа, спрашивается, если полноценная совместимость с Matlab
никогда не была целью.
Потому что у авторов джулии мозг съеден матлабом.
Вообще-то индексация с 1 - не только в матлабе. В фортране, Mathematica, Smalltalk...
Но у авторов джулии мозг съеден именно матлабом.
> Вообще-то индексация с 1 - не только в матлабе. В фортране,
> Mathematica, Smalltalk...В Математике индексация с 1 практически не мешает, т. к. нормальный код пишется в функциональном стиле безо всяких индексов. С другой стороны, индексы от 1 позволяют тупо взять математическое выражение из книжки и забить в Математику. Так что там индексы от 1 вполне оправданны.
Но в сраной Джулии сами авторы рекомендуют писать низкоуровневый фортраноподобный код с явным использованием индексов, т. к. высокоуровневые примитвы их поделие не умеет нормально оптимизировать. И вот тогда эти +/-1 начинают сильно раздражать. Когда длина a[start:end] не равна end - start, а равна end - start - 1. Авторы хоть бы Дийкстру почитали, что ли. Вообще, джулия производит впечатление очень дилетантского языка, придуманного малолетними хипстерами.
С другой стороны, она расчитана на учёных, а те славятся своим отсутствием чувства прекрасного. Раз даже матлаб им нравится, и ни у кого не возникает мысли, что с ним что-то не так. Так что схавают.
> Авторы хоть бы Дийкстру почитали, что ли. Вообще,
> джулия производит впечатление очень дилетантского языка, придуманного малолетними хипстерами.Вполне может статься, что и читали. Повторяю, я не берусь гадать
почему сделан такой выбор, но характерен он не только для матлаба.> С другой стороны, она расчитана на учёных, а те славятся своим отсутствием
> чувства прекрасного.Все у них в порядке, за излишний абстрахционизм и ковыряние в носу, вместо
работы - могут и туфлей дать, как Никита Сергеич.> Раз даже матлаб им нравится
Матлаб хороший нишевой язык, вот тем и нравится.
> Когда длина a[start:end] не равна end - start, а равна end - start - 1.длина a[start:end] равна length(a[start:end])
>Авторы хоть бы Дийкстру почитали, что ли. Вообще, джулия производит впечатление очень дилетантского языка, придуманного малолетними хипстерами.
Вы бы хоть что нибудь кроме ц придуманного безграмотными бездельниками из белл лэбз почитали бы.
>>Авторы хоть бы Дийкстру почитали, что ли. Вообще, джулия производит впечатление очень дилетантского языка, придуманного малолетними хипстерами.
> Вы бы хоть что нибудь кроме ц придуманного безграмотными бездельниками из белл
> лэбз почитали бы.Ликбез: Дейкстра (sic!) - не из белл лабс.
> Ликбез: Дейкстра (sic!) - не из белл лабс.Ликбез Ликбезу: Дейкстра (sic!) - не придумывал ц
Dijkstra was known to be a fan of ALGOL 60, and worked on the team that implemented the first compiler for that language.
Но в любом случае слушать что-то о математике от программистов это себя не уважать.
>> Ликбез: Дейкстра (sic!) - не из белл лабс.
> Ликбез Ликбезу: Дейкстра (sic!) - не придумывал ц
> Dijkstra was known to be a fan of ALGOL 60, and worked
> on the team that implemented the first compiler for that language.Объясняю для тапков: Дейкстра за Мао^Wиндексацию с нуля, как и создатели C. Дошло?
Пиздец.
>> хотя массивы тоже с единицы адресуются
> Вот нафейхоа, спрашивается, если полноценная совместимость с Matlab никогда не была целью.потому, что в математике (с маленькой буквы) элементы матрицы нумеруются именно так
>>> хотя массивы тоже с единицы адресуются
>> Вот нафейхоа, спрашивается, если полноценная совместимость с Matlab никогда не была целью.
> потому, что в математике (с маленькой буквы) элементы матрицы нумеруются именно такНу, вообще-то это вранье. В принципе, за нарушение этой благоглупости - никого не сажают.
Например: http://en.wikipedia.org/wiki/Metric_tensor_%28general_r...
Может быть можно сформулировать мягче: *чаще* нумеруются так.
> Например: http://en.wikipedia.org/wiki/Metric_tensor_%28general_r...
> Может быть можно сформулировать мягче: *чаще* нумеруются так.Знаете, прежде чем обсуждать ковариантные тензоры в физике я подожду пока вы дойдете до курса линейной алгебры. Но если интерс искернний то можете начать отсюда
https://ru.wikipedia.org/wiki/Матрица_(математика)
>> Например: http://en.wikipedia.org/wiki/Metric_tensor_%28general_r...
>> Может быть можно сформулировать мягче: *чаще* нумеруются так.
> Знаете, прежде чем обсуждать ковариантные тензоры в физикеС кем тут обсуждать-то, с тапком?
> Но если интерс искернний то можете начать отсюда
> https://ru.wikipedia.org/wiki/Матрица_(математика)Малыш, я по википедии не учусь и не собираюсь. И тебе не советую, козленочком станешь.
> Когда я лет 7 назад бытался использовать его для лабораторок, нормальные графики строились только через java-модуль. Ооочень медленно строилисьоктава вообще медленная. гораздо медленнее матлаба. иногда раз в 10 и более. кое-какие тесты провели в http://julialang.org/, где то совпадает с моими ощущениями.
http://www.scilab.org/ побыстрее и среда разработки давно интегрирована, в целом гораздо лучше октавы, но октава получше совместима с матлабом. есть http://freemat.sourceforge.net/ там вроде обещали jit компилятор но я сам посмотрел что вроде работает и далее не пробовал т.к. на мой взгляд из свободных scilab ближе всего к настоящему продукту для реальной работы. ну а у julia большой потенциал для нематричных вычислений
юлианорг следует поменьше заниматься тестами и побольше пилисть свой велосипед, глядишь и толк выйдет
Octave точно уже больше пяти лет умеет строить графики через gnuplot, в том числе и чисто векторные (eps, svg). Чем они ненормальные?
>Ключевым новшеством GNU Octave 4.0.0 является задействование по умолчанию появившегося в прошлой ветке нового графического интерфейса пользователя, построенного с использованием библиотеки QtПроект GNU тоже начинает понимать, что Qt - это мейнстрим. Это есть хорошо.
Успехов проекту!
Мэйнстрим это HTML+CSS+JS, работающий в виртуальной машине, которая работает в виртуальной машине, которая ... , которая работает в докере. А Qt - хороший, годный фреймворк.
Ух ты, Qt-шный интерфейс у GNU-программы! И даже не второй. GNU удивляет меня - я представлял уберхардкор в консоли, но зато если разобраться, то покруче проприетарщины будет.
> Ух ты, Qt-шный интерфейс у GNU-программы!qt под GPL/LGPL, что вас смущает?
>GPL/LGPLОтносительно недавно.
>>GPL/LGPL
> Относительно недавно.Под *nix -- с 2000 (Qt 2.2), под винду -- с 2005 (Qt 4.0). По меркам IT это весьма немало.
Пишу на Qt потому что Qt рулит. Многие проекты это понимают.
Жалкое подобие MatLab. Опенсорсники даже свой математический язый придумать не смогли и все пользуют еёный проприетарный изначально. Я не говорю, что им кто-то может запретить пользоваться (хотя теоретически можно попробовать), но это прямое нарушение идеологических устоев и норм.
> Жалкое подобие MatLab. Опенсорсники даже свой математический язый придумать не смоглиТы смотри... Они еще и математикой имеют наглость пользоваться, вместо того чтобы мычать как местные птушники.
> Я не говорю, что им кто-то может запретить пользоваться (хотя теоретически можно попробовать)
Ну попробуй засудить кого-то за использование метода Гаусса для СЛАУ или значка + для сложения матриц.
> Ну попробуй засудить кого-то за использование метода Гаусса для СЛАУ или значка + для сложения матриц.К твоему сведению, так обычно и происходит.
> К твоему сведению, так обычно и происходит.Это ты просто, видать, треугольные матрицы со скругленными уголками попутал. Бывает, учись дальше ;)
Оно по-прежнему падает и глючит на каждый чих? N лет назад пытался использовать, переплевался.
> Оно по-прежнему падает и глючит на каждый чих? N лет назад пытался использовать, переплевался.Где-то год назад прогнал на ней пару матлаб программок. Работала, но как писал выше, очень медленно. В целом scilab гораздо лучше, хотя и чуть менее совместим с матлабом (хотя для совместимости есть функции вида mtlb_xxx).
Хм...а к 4-й версии он Octave научился корректно компилировать заоптимизированные на C++ функции? А то в старых версиях он этого не умел...