更多数值分析内容,欢迎关注笔者@ReEchooo
同时也可以关注以下数值分析专栏:
除了Runge-Kutta方法 是否还有提高精度的方法?
回答是肯定的,就是采用前面多个信息,比如:
用 x_n,x_{n-1},...,x_{n-l} 上的近似 y_n,y_{n-1},...,y_{n-l} 来求 y_{n+1} ,这样的数值方法称为 多步方法 。
首先来看个线性二步法的例子,所谓“二步”,就是迭代式右边包括 y_{n}, y_{n+1} 来求 y_{n+2} 。
推导过程如下:
线性多步法的一般形式为:
特别地,根据 \beta 是否为0,将迭代表达式分为显式法和隐式法:
线性单步法是线性k步法的特例,例如 k=1 有
不同 \alpha_0, \beta_0, \beta_1 可得各种显式、隐式单步法。
局部截断误差,阶,主局部截断误差 的定义和单步法完全一致。处理方式就是使用泰勒展开,可能会有二元函数的泰勒展开。
局部截断误差的定义如下:
主局部截断误差的定义如下:
p阶方法的定义如下:
这个定义包含了线性k步法(当然包含线性单步法),特别包含了线性隐式单步方法。
显式Adams方法的特点是积分区间与插值区间无交集。其迭代表达式的推导如下所示:
来看一个例题:
求解过程如下:
隐式Adams方法的积分区间是插值区间的最后一段。它的收敛阶数通常比显式Adams方法高。
对比显式Adams方法和隐式Adams方法的收敛阶数 p :
对于隐式方法,每一节点上近似值用迭代方法得到,这大大增加计算量。若用一个恰当的显式方法,求出 y_{n+k} 作为隐式方法的预估值,然后用隐式方法对预估值作校正,并以这个校正值作为所求节点上的 y_{n+k} ,那么将克服迭代法的缺点。
用Euler方法 作预估,用梯形方法 作校正的预估校正方法 。
通常使用预估校正方法有:
至此数值分析的内容全部结束。
参考文献:
关治,陆金甫《数值方法》