1

我想解决微控制器上的两个 ODE 一阶问题。必须每 100 毫秒评估一次

x'=-k_{1}\cdot (x-x_{ref})\cdot e^{-b\cdot ((x-x_{obs})^{2}+(y-y_{obs})^{2})}
y'=-k_{1}\cdot (y-y_{ref})\cdot e^{-b\cdot ((x-x_{obs})^{2}+(y-y_{obs})^{2})}

基本上我想到了使用欧拉积分(Runge-Kute I)

y(k+1)=y(k)+f(k,y(k))*dT

我希望误差小于 0.001。我如何确定在达到该错误率之前应该运行多少次迭代?

4

1 回答 1

2

我猜xy以及x_{ref}, y_{ref},x_{obs}y_{obs}时间相关的。这限制了您可以使用的 ODE 求解器的数量。所以它只能是欧拉方法和 2 阶龙格库塔方法(我忘了名字),它只在时间点x(t)x x(t+dT)´,(t+2dT)`,...

您可以通过这两种方法使用经典的步长控制。那就是你用欧拉方法一步一步,用RK-II方法一步一步。这两个步骤之间的差异是错误的指标,可用于经典步长控制。查看数字食谱以获取更多详细信息。

于 2013-03-10T07:49:50.123 回答