@lyc102
2019-01-26T13:39:16.000000Z
字数 2475
阅读 1670
math
我们将分次介绍求解微分方程(ODE)的数值方法。采用的教科书是
Numerical Analysis by Gautschi, Walter, Ch 5 and 6: Initial Value Problems for ODEs.
问题:求解一般的非线性ODE
除了初值是已知的,从方程我们还可以得知解在初始点的导数,即 . 由Taylor展示,我们可以得到下一步的逼近
几何上来讲,真解是一条曲线,欧拉法是用折线段来逼近这条解曲线。直观上来看,只要每条边长度逐渐减小,就能更好地逼近真解。数值分析就是精确地分析数值误差,然后改进方法,提高精度。
比如说,欧拉法可以理解成从当前点出发,沿着切线的方向,朝前移动了一小步。有没有更好的方向选择呢?
上次介绍了最简单的欧拉法:
在继续讨论之前,我们先明确一下好坏的标准。先只考虑一个区间 . 步长记为 . 数值解的一般形式是
真解由 ODE 和初值 决定了。真解在 的值记为 . 我们考虑初值相同的简单情况,即 .
好和坏可以由数值解和真解的误差 来衡量。稍微仔细想一想就知道这个值正比于步长。所以更公平一点的是 平均化的误差
后面的分析可以进一步揭示除上h,实际上是在考虑误差的离散H1范数。Residual 算子在这个范数是适定的.
为了简化记号,我们省略下标 n,下一步的值用下标 next 来替代。这样截断误差可以简写为
根据定义,我们也可以把截断误差写为
从这个角度出发,我们立马就得到了显示欧拉法的截断误差是一阶,即
我们以中点公式为例。同样由 Taylor 展式,我们容易得到
怎么办?我们可以先用欧拉法走一半,得到 , 把它作为 的逼近,然后用 来替代 . 总结起来就是如下的改进的欧拉法
同样的,对积分的梯形公式做类似的修改,我们得到 ODE solver 的梯形公式,也叫 Heun's 方法.
注意到两种方法都需要算两次斜率。这称之为 two stage 法。更一般的形式是