我使用许多不同的模型和模拟。一些较旧的模型和模拟是用 FORTRAN 编写的。其中一些模型已转换为 C++,但当前的趋势是使用 MATLAB/SIMULINK 创建这些模型。从计算机科学的角度来看,我一直觉得 MATLAB/SIMULINK 不是一个好的解决方案。您使用什么语言来创建模型和模拟?为什么?

有帮助吗?

解决方案

我也有很多的遗留代码工作,其中大部分是在Fortran语言。我真的不介意使用Fortran语言 - 所有的现代编译器允许变量名比老的和愚蠢的6个字符的限制更大。此外,与Fortran 95的,你甚至可以做OOP如果您觉得您的修改现有的代码库将受益。

此外,还有Fortran的很好的代码编辑器,这并不总是更专业的脚本语言的情况。

C ++的存储器有考虑的很大的缺点。我一直在20年以上编程C / C ++,现在,我还忘了删除对象和析构函数正确填写。

在最后要注意,如果你使用的是Windows,有一个Fortran.NET编译器(我想从雷希富士通?)如果你想你的Fortran移动到托管环境。

祝你好运!

其他提示

我总是尝试使用最好的建模和模拟提供的语言 工具 (或者图书馆,如果你愿意的话)为我做这项工作。

这个问题实际上只能通过考虑什么来回答 种类 您想要实施的模型。连续(例如ODE),离散(例如StateCharts、Petri Nets)或组合(即混合模型,可以使用 Simulink+StateFlow 实现)?每种模型都有不同的工具。

另一个重要方面是 领域 您正在工作的地方。Simulink 拥有相当广泛的电气工程、金融或计算生物学库(不过,其中大多数都包含在附加包中) - 如果您在这些领域之一工作,可能根本就没有更好的库了(即。完整、有效)组件库。其他商业模拟软件包也是如此,例如 任意逻辑, 竞技场, , ETC。可能还有一些开源模拟工具,具体取决于您的建模问题。

最后,您可能更喜欢某种特定的编程语言而不是另一种,并且您可能有其他要求,例如支持

  • 优化(模型参数)
  • 验证
  • 输出分析(统计、绘图、统计测试)
  • 支持并行和分布式仿真
  • 模型检验
  • ...

所以我目前正在使用 Java,它具有众所周知的优点——速度相当快、对多线程的良好支持、使用相对简单等。但如果“相当快”还不够快,那么除了降低一级抽象之外可能别无选择:-)

当然SIMULA !! : - )

我已经出来了MATLAB的是它的让我迅速原型的算法能力。我可以通过绘制并使用内置的统计功能真正得到了数据的良好的手感。当尝试新的东西出来,我可以做一些快速和肮脏得到一些初步结果,然后回去和清洁的东西提炼我的结果。编译语言,还有很多我所要做的只是为了让模拟运行。随着MATLAB,我花更多的时间思考的现实问题,而少谈编译,链接,内存管理等。

然而,存在许多问题,这些问题是MATLAB只是没有能力解决。对于大数据集,与用户定义的数据结构编译语言几乎可以肯定是必要的。

粒子物理学已经移动到C ++和Python。这不是普遍的,可能不会甚至接近如果不是 ROOT 的普及。

根的使用CINT意味着你需要用的时候你裁切周围具有新想法的内存管理麻烦,它的容量为运行编译可以让你有速度,混合模式的能力有很大的帮助,并且绑定Python和其他RAD语言允许很大的灵活性。

在一个非常现实的意义,这可以归结为 <强的背书>罗兰的点

可以使用s-funcuin块用于与MATLAB将Fortran(C,C ++)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top