我使用许多不同的模型和模拟。一些较旧的模型和模拟是用FORTRAN编写的。其中一些模型已被转换为C++,但目前的趋势是使用MATLAB/SIMULINK创建这些模型。从计算机科学的角度来看,我一直觉得MATLAB/SIMULINK不是一个好的解决方案。你用什么语言来创建模型和模拟,为什么?建模与仿真编程语言
回答
我也使用了很多遗留代码,大部分遗留代码都在Fortran中。我真的不介意使用Fortran - 所有现代编译器都允许使用大于旧的和愚蠢的6个字符限制的变量名称。另外,使用Fortran 95,如果您觉得您对现有代码库的修改会受益,则甚至可以执行OOP。
另外,Fortran有非常好的代码编辑器,对于更专门化的脚本语言并不总是如此。
C++有内存考虑的巨大缺点。现在我已经编程C/C++ 20多年了,我仍然忘记删除对象并正确填写析构函数。
最后,如果您要使用Windows,那么Fortran.NET编译器(我认为来自Lahey-Fujitsu?)如果您想将Fortran移动到托管环境。
祝你好运!
我总是尝试使用最好的建模和模拟工具(或库,如果你喜欢)提供的语言为我完成这项工作。
而这个问题只能通过考虑你想要实现的模型的种来解答。连续(例如ODE),离散(例如StateCharts,Petri网)或组合(即可以用Simulink + StateFlow实现的混合模型)?每种模型都有各种工具。
另一个重要方面是您正在使用的域。 Simulink拥有相当广泛的电子工程,金融或计算生物学库(尽管其中大多数都包含在其他软件包中) - 如果您在其中一个领域工作,那么可能没有更好的(即完整的,有效的)组件库。其他商业模拟软件包也是如此,例如AnyLogic,Arena等。也可能有一些开源模拟工具,这取决于您的建模问题。
最后,您可能更喜欢特定的编程语言而不是另一种语言,并且您可能还有其他要求,例如,对于
- 优化(模型参数)
- 验证
- 产出分析(统计图表,统计检验)
- 支持并行和分布式仿真支持
- 模型检测
- .. 。
所以我目前正在使用Java与众所周知的优势 - 相当快速,良好的多线程支持,相对简单易用等等。但是,如果“相当快”速度不够快,那么可能就没有其他选择,只能进入一个抽象层次:-)
粒子物理学已经转向C++和python。这不是普遍的,如果不是ROOT的无处不在,可能甚至不会接近。
Root对cint的使用意味着当你用一个新想法时,你需要为内存管理而烦恼,它的运行编译的容量允许你有速度,混合模式的能力是非常有用的,绑定对于Python和其他RAD语言而言,它具有很大的灵活性。
在一个非常真实的意义上,这归结为roland's point的认可。
SIMULA当然!! :-)
我从MATLAB中得到的是它能够让我快速对算法进行原型设计。通过绘制数据并使用内置的统计函数,我可以真正感受到数据。当尝试新的东西时,我可以做一些快速和肮脏的事情来获得一些初步结果,然后返回并清理一些事情来优化我的结果。使用编译语言,为了让仿真运行,还需要做很多工作。使用MATLAB,我花了更多时间思考真正的问题,而不是编译,链接,内存管理等。
但是,有很多问题,MATLAB只是没有足够的解决方案。对于大型数据集,使用用户定义的数据结构的编译语言几乎是必要的。
您可以使用s-funcuin块将fortran(c,C++)与matlab连接起来。
- 1. 语言GAMMA,一种模仿编程语言
- 2. 编码仿真模型
- 3. 模仿周围行为使用编程语言
- 4. Wolfram语言是一种真正的编程语言吗?
- 5. 创建编程语言
- 6. 添加阿拉伯语语言仿真器的语言设置的android 2.2
- 7. 编程语言
- 8. Java中的建模和仿真
- 9. 无法编译T1架构和仿真建模工具
- 10. 内核编程的仿真环境
- 11. 低级别编程键盘仿真
- 12. C语言的Java建模语言?
- 13. 如何检查不在仿真器中的语言?
- 14. 模仿Matlab/Simulink仿真继电器behavoir
- 15. 编程语言如何与脚本语言交互?
- 16. 编程语言C
- 17. NesC编程语言
- 18. C编程语言
- 19. Siri编程语言
- 20. .NET编程语言
- 21. R语言编程
- 22. SIMD编程语言
- 23. Scheme编程语言
- 24. 编程语言树
- 25. java编程语言
- 26. 模拟或仿真无源RFID标签并编程它
- 27. 编程语言语法
- 28. 编程语言的原语
- 29. PHP脚本语言或编程语言?
- 30. Web开发的编程语言建议
我真的好奇你为什么觉得MATLAB/SIMULINK不是很好的建模解决方案。你有没有具体的原因,你为什么不喜欢他们/不觉得他们适用于你的模型? – gnovice 2009-06-03 17:09:36
这可能只是我见过的应用程序,但它们运行速度非常慢,并没有充分利用可用的计算机资源。 – SchwartzE 2009-06-03 17:11:45