LINUX.ORG.RU

Лучшие среды для научных вычислений?

 , , , ,


4

2

Добрый вечер, выбираю ПО для мат.задач, вычислений, графиков и т.д. Какое можете посоветовать? Пока основные варианты: Python+Scipy, Julia, sagemath, Maple. Буду рад если предложите ещё. Также будет хорошо, если среда будет работать с чистым Wayland

1. Что считать? 2. С какой скоростью считать?

thunar ★★★★★
()

Jupyter (некоторым нравится когда у них и код на питоне и графики с формулами + какая-то интерактивность вместе), GNU Octave, Scilab (почему его не упомянули ещё, он крут), Matlab (проприетарщина, дорогая, нужен если предыдущих 2 по каким-то весьма экзотическим причинам не хватило), OpenRefine (не совсем про вычисления, больше про очистку и анализ данных особенно для машинного обучения).

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от anonymous

python –> c++

Челик про математику, а не байто****** спрашивал.

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

Поддерживаю. Если есть статистика и графики то R одно из лучших решений.

peregrine ★★★★★
()

ТС, ты бы про область того чем ты заниматься собрался написал. Потому что дофига всего есть.

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

ну, вообще-то Mathematica стоит так же как и Maple – 10 минут поиска на торрентсру. А по возможностям – maple вроде за глаза.

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

Maxima сильно лучше чем Mathematica и Maple, если научиться её готовить.

ага щаз. Я бы тоже хотел, чтобы она была лучше. Но к сожалению она хуже. Гранича с неюзабельностью.

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

Для серьезных символьных вычислений есть ещё Singular https://www.singular.uni-kl.de/Manual/4-0-3/index.htm

ты сама-то пробовала в этом Singular что-то считать? Там же костыль на костыле. не, в своем роде уникальная штука. Но для символьных вычислений в общем – даже близко не подходить.

anonymous
()

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

Если свободное научное ПО в чем-то сильно уступает проприетарным аналогам, то это повод его доработать и, тем самым, внести более значительный вклад в науку, чем десяток очередных статей, результаты которых нельзя даже проверить.

aquadon ★★★★★
()

Однозначно Matlab. Или его бесплатный аналог Scilab, но он ощутимо хреновее, если честно. И то и то официально работает под линухом.

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

Боюсь что научного сообщества не особо важно где делались вычисления, главное полученный результат и его правильность

ZeeCaptain
() автор топика
Последнее исправление: ZeeCaptain (всего исправлений: 1)
Ответ на: комментарий от ZeeCaptain

главное полученный результат и его правильность

Как мне проверить правильность численного результата?

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

Не пробовала бы не писала.

Фишка в том что ни Mathematica, ни maple не подходят для серьезного исследования. Грубо говоря, берём задачу - разложить многочлен на множители.

Mathematica и Maple дадут тебе какой-то красивый результат в красивом интерфейсе. Они не дадут тебе никаких объяснений что этот результат значит, насколько он окончательный, насколько он уникальный. Допустим у них что-то «не разложилось». Ограничение ли это движка или доказанный результат о неприводимости? Ни там ни там толкового объяснения ты не получишь.

Singular - это не маркетинг, финтифлюшки и красивенький UI, а коллекция реализаций различных алгоритмов, основанных на соответствующих научных результатах со ссылками на литературу. Если Singular не может разложить многочлен на компоненты - это не просто «что-то не разложилось», это научно обоснованный результат. Его можно сформулировать как теорему: таким-то алгоритмом такой-то многочлен при таких-то условиях не разложим. С этим результатом можно дальше работать в своих исследованиях.

Понятно что если у тебя задача график гладкой функции отрисовать хоть как-то, а детали и тонкости не важны, то Mathematica тебе это сделает. Но если у тебя не гладкая функция, не простые графики, а тонкие граничные случаи, где тебе нужно именно влезть в математику которая скрывается за интерфейсами, то «причёсанные» проприетарные пакеты ничего тебе не дадут.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 2)
Ответ на: комментарий от alpha

Поддерживаю. Как и Maxima. Вообще больно видеть, как красивый и удобный GUI в математических пакетах некоторым заменяет мозг. Если чем-то серьёзным заниматься, то и какому-нибудь голому питону будешь радоваться больше, чем непонятному выхлопу проприетарщины, которая что-то не посчитала. Почему, зачем, а фиг его знает. Это одна из причин почему до сих пор многие штуки делают на питоне, а не в каких-то матлабах.

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

А как проверить правильность софта? Или его бог пишет когда ему скучно?

ЗЫ

Проблема того что результаты не повторяются одна из самых жестких и в той же математике покрывает до 75% всех работ, в зависимости от направления.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от aquadon

Если свободное научное ПО в чем-то сильно уступает проприетарным аналогам, то это повод его доработать и, тем самым, внести более значительный вклад в науку, чем десяток очередных статей, результаты которых нельзя даже проверить.

ученые обычно не заморачиваются написанием программ. И правильно делают, не у всех есть на это время. Так что использовать проприетарный софт – вполне себе норм. Если он действительно помогает. Я вот писал статью, и сколько ни старался на maxima сделать, в результате сделал на maple. Просто потому что maxima не давала того, что давал мне maple. Или не давала за вменяемое время.

anonymous
()

Научные вычисления разные бывает. Может вам вообще R нужен. Или Маткад. Или Эксель.

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

Singular - это не маркетинг, финтифлюшки и красивенький UI, а коллекция реализаций различных алгоритмов, основанных на соответствующих научных результатах со ссылками на литературу. Если Singular не может разложить многочлен на компоненты - это не просто «что-то не разложилось», это научно обоснованный результат. Его можно сформулировать как теорему: таким-то алгоритмом такой-то многочлен при таких-то условиях не разложим. С этим результатом можно дальше работать в своих исследованиях.

Singular сделан для всяких там конечных полей, многочленов и т.д. Но это слишком узкая область. В общем и целом – это набор ужасных костылей. Исопльзовать Singular для чего-то более другого, чем многочлены, конечные поля и всякие алгебраические изъебы – это наркомания.

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

А как проверить правильность софта? Или его бог пишет когда ему скучно?

В общем и целом – ручками.

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

тензоры

Ну вот например я писала диссер используя пакет для тензорных вычислений в Maxima. Геодезические, тензор Римана, тензор Ричи и т.п.

Не для самого доказательства, а для тестирования гипотез.

Смысл был такой: сначала доказываем в общем случае, для больших размерностей. Потом у нас остается случай размерностей 5 и 6 где общий «многомерный» подход не работает, и вот там надо было пробовать разные примеры метрик и тензоров, чтобы понять суть маломерных эффектов. Вот для вычисления этих примеров использовалась Maxima. Она помогла найти ключевое свойство метрик нужного типа, которое потом уже получилось доказать чисто теоретическими выкладками.

Но это были «некрасивые» символьные тензоры. Для работы с двумерными поверхностями, например, нужны другие подходы, там где кривизны, касательные, всякие разные сплайны и прочие вопросы двумерной дифференциальной геометрии. Если под тензорами ты имеешь в виду что-то в таком духе, более «изобразительное», то надо смотреть в сторону интерактивной графики. Что опять же сейчас активно развивается в Jupyter и Python/JS-библиотеках.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от anonymous

Использовать Singular для чего-то более другого, чем то для чего он предназначен - это наркомания, да.

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

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

на любом удобном тебе софте

Т.е. ты предлагаешь мне повторить работу, проделанную автором статьи?

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

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

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

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

Вообще больно видеть, как красивый и удобный GUI в математических пакетах

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

Гораздо удобнее работать что с Maxima, что с Singular из Emacs. Там сделана отличная поддержка в том плане что ты можешь side-by-side открыть два буфера - один с кодом, второй с интерактивным шеллом, и одним сочетанием клавиш выкатывать кусок кода на выполнение.

Это позволяет иметь интерактивную консоль для «проб» и классический читабельный код программы который можно читать, расшаривать, сохранять в гите и т.п.

Так что «красивый» UI для математических пакетов - это всё обман. Программировать (а именно этим ты занимаешься когда используешь подобные пакеты) гораздо удобнее из среды для программирования, а не из консоли, которой этот «красивый UI» по сути является.

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

для таких простых задачек есть калькулятор)

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

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

Аналогично. За это я не очень люблю Jupyter.

Так что «красивый» UI для математических пакетов - это всё обман. Программировать (а именно этим ты занимаешься когда используешь подобные пакеты) гораздо удобнее из среды для программирования, а не из консоли, которой этот «красивый UI» по сути является.

Абсолютно согласен.

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

В общем и целом – ручками. удачи численные методы ручками проверять

есть же проверенный LAPACK. Чего тебе еще надо? А так – в любой программе могут быть баги. Я не понимаю твоих претензий.

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

СНАУ и СЛАУ, тензоры, анализ данных, моделирование взаимодействия и т.д

Вопрос в объемах вычислений. Про CAS тут уже говорили (я бы еще SymPy добавил), но если считать численно - numpy и Ко для чего то простого, python + С++ для чего то сложного.

Насчет среды - «у каждого додика своя методика». У меня (с коллегами) такой средой является bash из которого запускаются расчеты, делается визуализация данных и пр. - ИМНО это оптимально с точки зрения масшатбируемости, расширяемости и переносимости на большие машины.

Кто то сидит на юпитере. Есть еще те кто сидят в матлабе. Выбор определяется спецификой решаемых задач и «кто на что учился».

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

удачи численные методы ручками проверять

А в чем проблема? Берешь и проверяешь. И пишешь тесты для валидации.

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

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

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

инструкции по воспроизведению содержаться в статье. Другие могут это спокойно проверить. Если это график – то приводятся формулы и софт, с помощью которого этот график был получен (если это так важно). В случае сомнений, никто не запрещает написать автору.

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

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

Зависит от решаемой автором задачи. Где то важен процесс, где то важен ответ. Более того, кому то из читателей одной и той же статьи важен процесс, а кому то важен ответ.

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

В некоторых программах можно посмотреть глазками на код, если какая-то фигня происходит, а в некоторых только писать в спортлото.

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

А в чем проблема? Берешь и проверяешь.

Опять вернулись к тому, что надо код написать и его тестами обмазать. А тут анон думает что писать ничего не надо, мышкой тык-тык и в статью результат вывалили.

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

надо код написать и его тестами обмазать.

ну дык если хочется убедиться что код правильно работает - его так или иначе надо тестами обмазывать, хоть он квантовую химию считает хоть вебню какую нить генерит;-)

Се ля ви.

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

Научному сообществу совершенно наплевать, на чём ты там считаешь свои результаты.

yvv ★★☆
()

Как тут же сказали, всё зависит от того, что именно ты собираешься считать. Если бы у меня был выбор, я бы использовал для своих задач julia однозначно, но все в нашей области сидят на python+fortran. В принципе, и для джулии и для питона есть либы под очень широкий круг задач.

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

Таблицы с результатами измерений делаются зачастую тем, что есть удобное под рукой. Например, таблицей в Excel. После этого появляется соблазн тут же в этой таблице произвести расчеты встроенными инструментами.

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

https://cyberleninka.ru/article/n/metodika-ispolzovaniya-ms-excel-dlya-rasche...

http://jtd.amegroups.com/article/view/13845/11601

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

Под Mathematica есть много пакетов, включая и интерфейс к Singular. Кроме того, сам язык довольно удобен для символьных манипуляций.

quantum-troll ★★★★★
()

Математика от деда Вольфрама.

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