AnyLogic - 系统动力学:如何正确跟踪股票价值?
AnyLogic - System Dynamics : how to track stock values correctly?
screenshot of my model
在基本的一阶正反馈模型中:
(一个股票,一个流量,一个参数给出流量)。
有一个stock
,初始值为100
,一个parameter
,值为0.1
,flow
的公式为:
(flow = stock * paremeter
)
模型时间单位是 "years"
,我们想要 运行 模拟 100 years
。
历年来stock
的价值将是100
、110
、121
、133.1
、146.41
.. .
但是在模拟屏幕上(或者当我将其放入时间图或数据集中时)随着时间的推移 stock
的值是 110.517
、122.139
、134.984
, 149.179
.
为什么 stock
随着时间推移的值与上面的预期值不同?
我如何才能正确跟踪多年来的股票价值?
这道题是典型的系统动力学误区。系统动力学遵循微分方程,一般采用欧拉法计算每个微分时间步后Stock的新值。您误以为该值每年更新 1 次,但事实并非如此。每0.001个时间单位更新1次(与默认值近似)。
我在这里对这个问题给出了更广泛的回答:
screenshot of my model
在基本的一阶正反馈模型中:
(一个股票,一个流量,一个参数给出流量)。
有一个stock
,初始值为100
,一个parameter
,值为0.1
,flow
的公式为:
(
flow = stock * paremeter
)
模型时间单位是 "years"
,我们想要 运行 模拟 100 years
。
历年来stock
的价值将是100
、110
、121
、133.1
、146.41
.. .
但是在模拟屏幕上(或者当我将其放入时间图或数据集中时)随着时间的推移 stock
的值是 110.517
、122.139
、134.984
, 149.179
.
为什么
stock
随着时间推移的值与上面的预期值不同?我如何才能正确跟踪多年来的股票价值?
这道题是典型的系统动力学误区。系统动力学遵循微分方程,一般采用欧拉法计算每个微分时间步后Stock的新值。您误以为该值每年更新 1 次,但事实并非如此。每0.001个时间单位更新1次(与默认值近似)。
我在这里对这个问题给出了更广泛的回答: