已知微分方程

当这个方程很难直接求出解析解时,RK4 可以一步一步近似算出 的值。

1. 它在做什么

最简单的欧拉法是:

也就是用当前点的斜率直接往前走一步。

但欧拉法精度比较低,因为它只看了起点处一个斜率

RK4 更聪明:它在一步长度 内,取 4 次斜率样本,然后加权平均,所以精度高很多。

2. 四阶龙格–库塔公式

走到 ,步长为 ,计算:

然后更新:

同时

可以把 理解为这一步区间内对斜率的四次估计:

  • :起点斜率
  • :用 预测到中点后,在中点算一次斜率
  • :再用 预测中点,再算一次斜率
  • :用 预测终点,在终点算斜率

最后用

这个权重平均,得到更好的步进结果。

. 一个简单例子

考虑初值问题:

它的解析解是

现在用 RK4 从 算到 ,取

因为 ,所以:

于是

所以

事实上,这种方法是对欧拉法(RK1)的一种改进,在适当增加复杂度后获得了更高的精度,并且这种方法也能进一步推广到更高阶,但是RK4是一个复杂度-精确度平衡点。