我已经离开了建模界,可以说,现在已经有一段时间了。当我在大学时,我使用的大多数模型都是用FORTRAN编写的,我从来不喜欢它。我正在寻求回归科学,所以我想知道是否有适合这种应用的功能集的现代语言。您认为什么是模拟复杂物理系统的最佳语言?
答案 0 :(得分:8)
虽然Fortran确实是这方面的绝对统治者,但Python正越来越多地用于此目的。虽然很难说哪个是最好的程序,但我发现python对于物理模拟和物理教育非常有用。
答案 1 :(得分:7)
这取决于任务
在分子动力学界,c ++似乎很受欢迎,因为你需要一些复杂的数据结构来表示分子的形状。
答案 2 :(得分:4)
我认为,只要我们谈论连续计算,FORTRAN在解决物理学中的大规模问题时仍然占主导地位。
我知道并行化正在改变游戏。我不太确定LINPACK和其他线性代数包的并行版本是否仍然用FORTRAN编写。
现在很多工程师都在使用MATLAB和Mathematica,因为它们结合了数字和图形功能。
我还要指出计算引擎和显示引擎之间存在差异。前者可能仍然用FORTRAN编写,但后者可能使用更现代的语言和OpenGL。
我也不确定有多少建模已经渗透到生物学中。物理化学可能完全是一种非常不同的动物。
如果你在Scala或F#或Haskell中写出一个表现良好的并行线性代数包,那么这个世界将会超越你的大门。
答案 3 :(得分:3)
核/粒子/高能物理学界已经大量转向c ++(部分原因是由于ROOT和Geant4),对Python有一些兴趣(因为它有ROOT绑定)。
但你会注意到这是依赖于学科的......“物理”和“建模”是大,广泛的主题,所以没有一个答案。
答案 4 :(得分:2)
Python + Matplotlib + NumPy +α
答案 5 :(得分:2)
Modelica是一种用于建模(和模拟)物理系统的专用语言。 OpenModelica是Modelica的开源实现。
答案 6 :(得分:1)
MATLAB还有很多功能。特别是在将模拟与硬件连接时,或者您需要将结果可视化时。
答案 7 :(得分:1)
我会使用Python,但你也应该向R寻找你可能需要做的任何统计工作。您应该更多地询问使用哪种语言的包而不是语言本身。
答案 8 :(得分:1)
Python在科学导向的人中非常受欢迎,Matlab也是如此。这些问题是它们都非常慢(运行)。如果你想进行可能需要几分钟/小时/天的大型模拟,你将不得不选择另一种语言。
只要您选择速度语言,就可以使用C / C ++,也可以根据需要使用CUDA。
最后想一想:如果用C语言编写和调试模型需要两天时间,而不是python,那么生成的代码需要10分钟才能运行而不是一小时,你真的可以随时保存吗?