【发布时间】:2023-03-20 21:07:01
【问题描述】:
对 Runga Kutta (RK2) 的数值积分有疑问。假设我有传感器数据为我提供 x,y 位置和速度。根据当前的车辆状态,我需要找出车辆在特定时间的位置。
使用简单的欧拉方法我可以做这样的事情
x(1) = 10;
y(1) = 5;
xdot = 2;
ydot = 1;
dt = 0.1
for i = 1:100
x(i+1) = x(i) + dt*xdot
y(i+1) = y(i) + dt*ydot
t(i+1) = t(i) + dt
if(t(i+1) >= 5)
break
end
但是我读到欧拉在数值上不稳定,最好使用基于 RK 的方法。所以我看了一下RK4 implementation,但我对时间间隔是如何分割的感到困惑。因此,对于 RK2 方法,我从概念上理解它试图做到这一点。
所以我的问题是:我将如何为我的应用程序实现这样的东西?我唯一能想到的是,如果我有 10Hz 的数据以 1Hz 运行计算并使用第 1、第 5 和第 10 帧来计算 RK2 系数。我这样做的方式是否正确?
【问题讨论】:
-
看看多步方法,它们可能更兼容采样数据。
-
Runga Kutta 方法用于逼近微分方程的解,我不确定它是否适合您的问题,也就是说,我终生无法记住 RK 的工作原理。 .
-
@LutzL 谢谢。我能够谷歌你的建议,我遇到了这个。 mathworks.com/help/matlab/math/integration-of-numeric-data.html