我想模拟n辆车。每辆车由第一个离散模型表示:
P_ik+1 = P_ik + T*v_ik
而P_ik+1、P_ik分别是车辆I在采样时间(k+1)T和kT的位置
T是采样时间
v_ik是采样时间kT时车辆i的速度
车辆之间的关系如下所示:
P_ik+1 = T*(P_(i+1)k+1 + P_(i-1)k - 2* P_ik)
我不知道如何在这里表示采样时间T
发布于 2018-02-23 20:55:58
你所说的“采样时间”是什么意思有点不清楚。但是,根据您的符号,我认为您的意思是T是当前时间,并且您将根据当前位置和速度计算下一个时间点的位置。在这种情况下,您不需要显式地表示时间,您只需要通过它进行处理。在NetLogo中,tick是前进一个时间步长的命令( ticks是到目前为止所用时间步数的报告程序,但我不认为你需要它)。
来自评论的更新:
我觉得我们说的是不同的目的。采样点是为了找到一个连续函数或一组函数的离散近似。一旦你处于离散时间,你可以使用tick作为你的时间标记。每一个刻度,你都可以计算出状态。您只需记住,如果您的采样时间为0.5秒,则需要执行(例如) 20次滴答才能找到10秒的状态。
下面是一个示例:
globals [ticks-per-sec]
turtles-own [velocity]
to setup
clear-all
set ticks-per-sec 2
create-turtles 10
[ setxy random-xcor random-ycor
set velocity (1 + random 4) / ticks-per-sec
set heading 90
]
reset-ticks
end
to go
ask turtles
[ forward velocity
set velocity 0.9 * velocity + 0.1 * mean [velocity] of other turtles
]
tick
end我已经设置了所有的乌龟都朝同一个方向前进,这样你就可以看到它们的速度收敛了。您的方程式具有恒定的速度,但此示例旨在向您展示如何在车辆之间进行交互。
https://stackoverflow.com/questions/48944379
复制相似问题