LINUX.ORG.RU
ФорумTalks

[fp?] Вычислительный практикум


0

1

Добрый день.

Здесь наверняка кто-нибудь проходил курс «численные методы» и практикум к нему. Вот пришла и моя очередь.

Основной вопрос — выбор подходящего инструмента. Преподаватель называл в качестве возможных вариантов C, Maple, Matlab и т.п., но можно и что-нибудь своё.

На C и прочей императивщине тупо кодить задание неохота. Также неохота разбираться с чем-то мёртвым и прикопанным. Более-менее знаком с Хаскелем, но показывать чисто функциональный код далёкому от этих сфер человеку, думаю, будет невесело.

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

Прошу варианты.

>хороший многопарадигменный язык

Вот учитесь правильному набросу на тему CL.

aedeph ()

А задание-то какое?

На матлабе многое делается в несколько строчек. Матлаб есть под линукс. Единственное что — матлаб проприетарен, но можешь поискать аналоги.

ChALkeR ★★★★★ ()

Можешь ещё посмотреть в сторону GNU Octave, они реализуют матлабовский синтаксис и открывают матлабовские файлы (хотя много чего не поддерживается).

Есть графические редакторы. Есть зависимости, чтобы можно было картинки рисовать, ставь всё.

ChALkeR ★★★★★ ()

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

Сделай свой.

Relan ★★★★★ ()

>Более-менее знаком с Хаскелем, но показывать чисто функциональный код далёкому от этих сфер человеку, думаю, будет невесело.

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

dn2010 ★★★★★ ()

>На C и прочей императивщине тупо кодить задание неохота. Также неохота разбираться с чем-то мёртвым и прикопанным. Более-менее знаком с Хаскелем,

Поверь, не выеживайся и бери octave (ну или matlab, если любишь проприетарщину).

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

Поставил octave + qtoctave + gnuplot.

Первая взятая простенькая матлабовская прога (частица в потенциальной яме, уравнение Шрёдингера, численный метод) запустилась при комментировании двух не особо нужных строчек.

Советую внимательно посмотреть, вдруг тебе этого хватит.

А сдавать можно как матлабовую прогу.

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

>Можешь ещё посмотреть в сторону GNU Octave, они реализуют матлабовский синтаксис и открывают матлабовские файлы (хотя много чего не поддерживается).

на какой-то затык наткнуться трудно.

Сдал весь курс мат.моделирования на octave. Все работало отлично. Ну разве что глюки qtoctave доставали время от времени.

dikiy ★★☆☆☆ ()

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

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

Нашёл в AUR-е пакет octave-image. Возможно, там будет.

Он потянул за собой gcc-fortran при сборке :).

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

C octave-image заработало вообще всё, но пришлось ставить его через жопу, а не через пакетный менеджер. И поставило оно мне его в ~/octave/.

ChALkeR ★★★★★ ()

Пиши на паскале :)

Октава или скилаб - на выбор. Октава православнее.

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

там имхо лучше всё в .m - файлы загонять и с помощью octave запускать. К сожалению далее студенческого практикума пользоваться octave не получилось - для объёмных и сложных вычислений лучше matlab.

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

Открыл следующую прогу (нахождение оптимального измерения для различения набора состояний).

Не завелось.

fmincon нет.

fminunc есть, а fmincon нет. Будем надеяться, что скоро сделают.

В принципе, при желании можно переписать и обойтись без неё, но хуже будет.

ChALkeR ★★★★★ ()

>Здесь наверняка кто-нибудь проходил курс «численные методы» и практикум к нему.

Ага

Основной вопрос — выбор подходящего инструмента.

Бумага и ручка

yoghurt ★★★★★ ()

> Основной вопрос — выбор подходящего инструмента. Преподаватель называл в качестве возможных вариантов C, Maple, Matlab и т.п., но можно и что-нибудь своё.

Это не основной вопрос ни разу. Основной - это что бы ты хорошо понял эти методы.

Используй свободные Scilab, Octave, Maxima. Си - тоже не плохо.

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

Для численных методов я бы вообще старый добрый Фортран использовал. Современные версии, конечно. Поигрался бы с кластерами, если возможно. Или просто с параллельными вычислениями. CUDA на видеоплате , MPI для многоядерных процев (если нет кластера)

anonymous_incognito ★★★★★ ()

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

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

>C octave-image заработало вообще всё, но пришлось ставить его через жопу, а не через пакетный менеджер. И поставило оно мне его в ~/octave/.

как хочешь, так и ставь.

Да и в ~/octave этим файлам самое место в общем-то.

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

>Будем надеяться, что скоро сделают.

там других функций достаточно, перекрывающих fmincon

пакет optimset.

там и fmins и leasqr (Levenberg-Marquardt) и fminsearch (Nelder&Mead Simplex) и еще всяких.

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

>Им самое место в системе, а не в домашней директории пользователя.

нет. в системе базовый функционал. А пользователь там ставит че хочет себе.

Да и вообще - это вопрос религии и пакетосборщиков. В бубунте, например, все в /usr/share/octave из репов ставится.

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

>Хотя сдаётся мне, что матлаб пошустрее заметно был.

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

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

Во-первых, если ставить в пользователя, то точно не в ~/octave.

Во-вторых, должна быть нормальная возможность поставить всё в систему. Я не говорю, что так должно быть прибито гвоздями, но такая возможность должна быть.

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

Брр. Я тебе сказал пример.

Первая же прога по практикуму — моделирование частицы в потенциальной яме в Octave тормозит.

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

>Во-первых, если ставить в пользователя, то точно не в ~/octave.

А куда? А вообще по желанию можешь любую задать.

Во-вторых, должна быть нормальная возможность поставить всё в систему. Я не говорю, что так должно быть прибито гвоздями, но такая возможность должна быть.

есть такая возможность. Тупо те же файлы кидаешь в /usr/share/octave/packages/$octave-version

да и вообще man pkg из комптроки octave.

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

>Брр. Я тебе сказал пример.

Первая же прога по практикуму — моделирование частицы в потенциальной яме в Octave тормозит.

ну совпадение. да и тормозит - понятие растяжимое. Вот если обсчет ведется вместо одной минуты 20 минут - это тормозит. А если вместо 0.1сек, 1 сек - пофигу.

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

>Численные методы - только на Фортране.

еще один онанист.

зачем по-твоему придумали matlab? чтоб продолжать все делать на фортране?

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

>Там анимация должна быть. Кадр в секунду — не пофигу ;).

бида-бида :)

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

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

есть такая возможность. Тупо те же файлы кидаешь в /usr/share/octave/packages/$octave-version

Не помогло, не видит он их.

>Во-первых, если ставить в пользователя, то точно не в ~/octave.

А куда?

Ну, давай ещё KDE будет всё хранить в ~/kde, гном — в ~/gnome, и каждая чудо прога в ~/названиепроги. Ура, товарищи!

На самом деле, в подпапке внутри $XDG_DATA_HOME, естественно. В крайнем случае — в ~/.octave.

А вообще по желанию можешь любую задать.

Об этом я догадываюсь, но умолчания должны быть адекватные.

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

Это учебная прога, а не построение ролика. Там должна быть анимация поведения частицы в яме. plot() с данной задачей в данном контексте справляется отлично, и показывает всё в реальном времени сразу после запуска.

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

>>Там анимация должна быть. Кадр в секунду — не пофигу ;).

бида-бида :)

причем это могут быть тормоза не octave, а gnuplot. К octave можно разные бэкенды подключать, окромя gnuplot.

dikiy ★★☆☆☆ ()

Главное — не бери мэпл. Он какой-то совершенно безумный.

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

>>есть такая возможность. Тупо те же файлы кидаешь в /usr/share/octave/packages/$octave-version

Не помогло, не видит он их.

УМВР. ты где-то накосячил.

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

>Что-что?

А plot() чем плох?

ничем, но ты ж видишь - тормозит. Значит надо как устройство вывода сделать не X терминал, а png файл.

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

>Там должна быть анимация поведения частицы в яме. plot() с данной задачей в данном контексте справляется отлично, и показывает всё в реальном времени сразу после запуска.

Если учебка, то не беда, что тормозит. Это не повод использовать проприетарщину.

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

>Как ты себе это представляешь? Он его разве не в отдельном потоке запускает?

ну о том и речь. plot() может работать не только с gnuplot. Там еще куча всяких бэкендов прикрутить можно. Можно вообще octaviz юзать - он OpenGL использует для отображения.

Я почти что уверен, что тормозит именно gnuplot. Так как он по умолчанию предназначен для вывода высококачественных графиков.

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