跟随变化率
微分方程描述一个量变化得多快:dtdy=f(t,y)。以连续利率 r 增长的资金满足 dtdy=ry,解为 y0ert。被拉回长期水平 θ 的短期利率满足 dtdr=κ(θ−r)。很少有方程能写出解的公式,所以我们数值地沿时间前进。
yn+1=yn+hf(tn,yn)(1) 欧拉法沿切线走一个短步长 h:新值 = 旧值 + 步长 × 斜率。它简单,但只有一阶精度:步长减半,误差也减半。四阶龙格-库塔法(RK4)每步取四次斜率并加权混合,yn+1=yn+6h(k1+2k2+2k3+k4),其误差按 h4 缩小:步长减半,误差降为原来的 1/16。
增长率为 1 的两种算法用
h=0.5 解
y′=y、
y(0)=1 到
t=1。欧拉法:
y1=1+0.5⋅1=1.5,
y2=1.5+0.5⋅1.5=2.25,而
e=2.7183,误差 0.4683。RK4 走一步到
t=0.5:
k1=1,
k2=1.25,
k3=1.3125,
k4=1.65625,所以
y=1+60.5(1+2.5+2.625+1.65625)=1.6484,真值为
e0.5=1.6487。
- 欧拉法:yn+1=yn+hf(tn,yn),一阶精度。
- RK4:每步取四次斜率,权重为 1、2、2、1;四阶精度。
- 截断误差:用步进代替精确求解所损失的部分。
更小的步长并非没有代价步长减半意味着步数翻倍。超过某个点后,截断误差不再重要,舍入误差反而增大;某些刚性方程如果步长不够小还会发散。在相信结果之前,先比较两种步长来估计误差。
实验:评分内容
- 欧拉法两步15 分
- 欧拉法的误差15 分
- 一步 RK420 分
- 精度阶数10 分
- 步长减半15 分
- 欧拉法的循环10 分
- 为什么 RK4 优于欧拉法15 分