我想要模拟n辆车。每辆车由第一个离散模型表示:
P_i [k + 1] = P_i [k] + T * v_i [k]
P_i [k + 1],P_i [k]分别是车辆i在采样时间(k + 1)T和kT
的位置T是采样时间
v_i [k]是在采样时间kT
的车辆i的速度车辆之间的关系遵循以下等式:
P_i [k + 1] = T *(P_(i + 1)[k + 1] + P_(i-1)[k] -2 * P_i [k])
我不知道如何在此处表示采样时间T
答案 0 :(得分:2)
有点不清楚你的'采样时间'是什么意思。但是,根据您的符号,我认为您的意思是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
我已将所有海龟设置在同一方向,以便您可以看到它们的速度收敛。您的方程式具有恒定的速度,但此示例旨在向您展示如何在您的车辆之间进行交互。