На чем программировать физику-математику?

Здравствуйте Хабравчане. Так уж сложилось, что я решил посвятить свою жизнь физике. Поскольку я люблю наглядность, я задумался над тем, как было бы хорошо, зная бы я какой-то язык программирования на котором можно было бы сделать 3д модель атома водорода или что еще более интереснее — атома урана, ну и было бы еще не плохо иметь возможность программировать какие-то сложные физ-мат расчеты.
Программировать практически не умею, пару раз пытался учить Делфи и ПХП, максимум доходил до массивов. Сейчас безумно интересно погрузиться в этот таинственный мир для реализации своих физ-мат похотей. Как насчет Джавы для таких целей?
  • Вопрос задан
  • 7119 просмотров
Пригласить эксперта
Ответы на вопрос 11
Akson87
@Akson87
Матлаб/Питон для алгоритмов, Си для скорости, MPI для кластеров, Куда/ОпенЦЛ для видеокарт, R для статистики и еще много много всякого специфического софта для разных специфических задач.
Ответ написан
@Eddy_Em
Я сам — астрофизик. Matlab успешно заменил Octave'ой (она свободная, в отличие от), если нужна скорость — пишу на C, графики строю при помощи gnuplot и/или MathGL, 3D — во FreeCAD'е, 2D — в QCad'е, микроконтроллеры — sdcc, электронные схемы — KiCAD.

А для построения моделей атомов есть свободный софт. Года два назад видел обзор. И вообще, рекомендую почитать
Ответ написан
Комментировать
titulusdesiderio
@titulusdesiderio
IT-специалист
MatLab — самое мощное и подходящее для вас
но стоит столько что обеих почек не хватит
Ответ написан
VladX
@VladX
Я думаю вам не совсем язык программирования нужен. Тут недавно проскакивало — habrahabr.ru/post/145985/. Хорошо подходит для построения объемных моделей. Также есть разные физические симуляторы для классической механики — поищите в гугле. Для сложных рассчётов есть GNU Octave, MathLab, SciLab и т.д. А вот для построения модели атома водорода никогда не встречал — самому интересно.
Ответ написан
Комментировать
ArthurG
@ArthurG
Выбирайте Haskell.

Аргументация очень простая: java и компашка — языки императивные и как правило в них все основано на изменении состояния программы, отсюда лишние сложности в программировании и обучении этим языкам. Haskell наоборот, функциональный и как правило лишен этих недостатков. Более того в Haskell функции являются чистыми математическими функциями и проще говоря, многие формулы будут 1 в 1 переводиться на этом языке.

Есть еще вариант, взять язык из семейства ML языков.
Ответ написан
Комментировать
PapaBubaDiop
@PapaBubaDiop
Пишите на actionscript3, я сам механик, я знаю. После этого любой язык освоите по вкусу.
Ответ написан
Комментировать
volanddd
@volanddd
Если только визуализация — проще использовать специализированный софт — MathLab, FreeCAD, есть также софт для визуализации молекул итп.
Там нет возможности делать архисложные алгоритмы, но и изучать программирования не требуется.
Ответ написан
Комментировать
@leggiermente
Визуализация схематичной модели — это одно дело. А физическое моделирование с расчётом измеряемых параметров (вместе с оценкой их точности) — совсем другое. Во втором случае смоделировать даже упомянутый Вами один атом урана — невероятно сложная задача математического моделирования и его алгоритмической реализации. Более того, рискну предположить, что в отношении всех энергетических спектров атома урана, всех его энергий перехода, задача не имеет не то что точного решения, но и приближённой численной модели: уверен, что есть лишь ряд более-менее точных моделей, опысивающих некоторые величины, но несовместимых между собой.
Ответ написан
Комментировать
@xaoc80
Сам столкнулся с такой проблемой, когда поступил в аспирантуру.
Начал программировать сначала в Matlab и Builder C++, но потом перешел исключительно на Qt.
Конечно для таких задач идеально подходит Matlab, но как верно здесь заметили он платный.
Если брать бесплатный софт и у вас есть желание освоить несколько языков программирования, то можно попробовать Qt C++ для алгоритмов и openGL для визуализации графики. Я так и сделал в свое время. Да, придется повозиться с изучением C++, без этого никуда, но зато результа вас порадует и вы получите удовлетворение от процесса.

Что касается Java, то в принципе это хороший вариант в плане кросплатформенности. Я делал несколько программ расчетных с визуализацией на Java, мне показалось, они работают несколько медленнее чем те же на Qt. Там было численное решение систем диффуров и необходимую мне скорость обеспечил C++.
Ответ написан
Посмотрите на Wolfram Mathematica — очень мощная среда для ученых, не программистов.
Ответ написан
Комментировать
@Psionic
Сам в свою университетскую быль для таких задач юзал GLUT/C++ связку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы