【问题标题】:Systems Dynamics in AnyLogic - Fibonacci sequence [closed]AnyLogic 中的系统动力学 - 斐波那契数列
【发布时间】:2018-08-12 09:23:19
【问题描述】:

我在 AnyLogic 中有一个系统动力学模型,我正在尝试对斐波那契数列进行建模。然而,由于某种原因,我的结果与预期的不同:

而不是

1,1,2,3,5,8,13...

我明白了

1、2.137954153、4.021788196、7.471205823、13.86070806...

我跟随these (spanish) instructions 构建了我的简单模型。

我想这并不是所有软件都通用的,因为在 VenSim 中这个例子似乎运行良好......

谁能向我解释一下为什么我的 AnyLogic 程序会发生这种情况?

【问题讨论】:

  • "有人能解释一下为什么我的 AnyLogic 程序会发生这种情况吗?"也许吧,但你的程序吗?您的问题中没有代码...

标签: system microsoft-dynamics fibonacci anylogic


【解决方案1】:

发生这种情况的原因是每个软件中处理微分方程的方式。

您在 vensim 中获得斐波那契数列的原因是因为您使用的是欧拉法和时间步长 1(检查模型设置)

如果您在 Vensim 中将积分类型更改为 RK45,或者如果您使用欧拉方法减少时间步长,您可能会得到与 AnyLogic 得到的结果相同的结果... Runge-Kutta 方法,即使它以固定步长开始1,它稍后会根据模型动力学的要求改变时间步长。

现在,让我们了解在系统动力学模型中使用 1 的时间步长,该模型以较低的时间步长为您提供错误的结果,这意味着您的模型不是很健壮...但这就是您获得准确值的原因在 vensim 中......因为这些确切的值对于模型的真实情况非常不准确。我什至会说您链接上的模型是一个坏模型,不应该向公众展示。

幸运(或不幸),AnyLogic 不允许您这样做。你可以在模型属性中设置时间步长为1,但是anylogic会在不通知的情况下将时间步长改成别的(除非你在虚拟模式下运行,并且满足其他条件)... AnyLogic只允许使用Euler+混合方程选项中的牛顿,但不仅仅是欧拉。

我认为这是 AnyLogic 中存在多年的错误,我已将其告知他们,我认为他们永远不会解决它,如果我们幸运的话,可能会在 AnyLogic 9 之前解决。

【讨论】:

  • 感谢您的回答。现在我明白了:)
猜你喜欢
  • 1970-01-01
  • 2015-08-26
  • 2015-06-05
  • 1970-01-01
  • 2020-01-18
  • 2013-08-03
  • 2014-05-19
相关资源
最近更新 更多