Я уже давно вышел из модельного бизнеса, так сказать, на некоторое время. Когда я учился в колледже, большинство моделей, с которыми я работал, были написаны в FORTRAN, чего мне никогда не нравилось. Я хочу вернуться в науку, поэтому мне интересно, существуют ли современные языки с наборами функций, подходящими для такого приложения. Что вы считаете оптимальным языком для моделирования сложных физических систем?
Какой лучший язык для моделирования физики?
Ответ 1
Несмотря на то, что Fortran был абсолютным правителем для этого, Python используется все более и более точно для этой цели. В то время как очень сложно сказать, какая программа BEST для этого, я нашел, что python очень полезен для физических симуляций и физического образования.
Ответ 2
Это зависит от задачи
- С++ хорош в сложных структурах данных, но это плохо для срезания и умножения матриц. (Эта задача позволяет вам тратить много времени на создание циклов.)
- FORTRAN имеет хорошую нотацию для нарезки и умножения матриц, но он неуклюж для создания сложной структуры данных, такой как графики и связанные списки.
- Python/scipy имеет приятную нотацию для всех, но python - это язык с перекрестными ссылками, поэтому при определенных задачах он медленный.
- Некоторые люди интересуются такими языками, как CUDA, которые позволяют использовать ваш GPU для ускорения ваших симуляций.
В сообществе молекулярной динамики С++ кажется популярным, потому что вам нужны несколько сложные структуры данных для представления форм молекул.
Ответ 3
Я думаю, что можно утверждать, что FORTRAN по-прежнему доминирует, когда речь идет о решении масштабных задач в физике, до тех пор, как мы говорим о последовательных вычислениях.
Я знаю, что распараллеливание меняет игру. Я менее уверен в том, сохраняются ли в FORTRAN параллельные версии LINPACK и других пакетов линейной алгебры.
В наши дни многие инженеры используют MATLAB и Mathematica, потому что они сочетают численные и графические возможности.
Я бы также отметил, что существует разница между вычислениями и двигателями отображения. Первый может быть написан в FORTRAN, но последний может использовать более современные языки и OpenGL.
Я также не уверен, как много моделей заработало в биологии. Физическая химия может быть совсем другим животным.
Если вы напишете потрясающий параллельный пакет линейной алгебры в Scala или F # или Haskell, который хорошо работает, мир побьет путь к вашей двери.
Ответ 4
Ядерное/частичное/физическое сообщество высоких энергий сильно продвигалось к С++ (частично из-за ROOT и Geant4), с некоторым интересом к Python (потому что у него есть привязки ROOT).
Но вы заметите, что это зависит от суб-дисциплины... "Физика" и "Моделирование" - это большие, широкие темы, поэтому ответа нет.
Ответ 5
Python + Matplotlib + NumPy + α
Ответ 6
Modelica - это специализированный язык для моделирования (и моделирования) физических систем. OpenModelica - это версия с открытым исходным кодом Modelica.
Ответ 7
В MATLAB также много возможностей. Особенно при взаимодействии с вашими симуляторами с оборудованием или при визуализации результатов.
Ответ 8
Я буду разговаривать с Python, но вы также должны посмотреть на R для любой статистической работы, которую вам может понадобиться. Вы действительно должны спрашивать больше о том, какие пакеты используют языки, а не сам язык.
Ответ 9
Python очень популярен среди наукоемких людей, как и Matlab. Проблема в том, что они оба очень медленные (для запуска). Если вы хотите делать большие симуляции, которые могут занимать минуты/часы/дни, вам нужно будет выбрать другой язык.
Пока вы выбираете язык для скорости, сосать его и использовать C/С++, возможно, с CUDA в зависимости от ваших потребностей.
Заключительная мысль: если вам потребуется два дня дольше, чтобы писать и отлаживать вашу модель в C, чем в python, а полученный код занимает 10 минут для запуска вместо часа, действительно ли вы действительно сохранялись в любое время?