Heun法(又称改进的[1]或修改过的欧拉方法、显式的梯形规则[2]数学计算机科学中求解给定初值常微分方程数值方法,以德国数学家卡尔·休恩英语Karl Heun命名。可被视作把欧拉方法扩展为两级二阶龙格-库塔法

运用Heun法计算初值问题数值的解可分成以下步骤:

根据Heun法,先计算中间值,然后计算在下一个积分点的最终近似值

简介

 
Heun法的图示。

欧拉方法是Heun法的基础。欧拉方法利用区间开端端点的函数切线,来估计函数在此区间内的斜率,并假设如果步长很小,误差就会很小。然而,即使在步长非常小的情况下,由于大量步骤的积累误差使估计偏离实际函数的值。

如果解曲线是凹向上的,其切线将估小下一个预测点的纵坐标。理想的预测线应该在它的下一个预测点刚好与曲线相交。而实际上,没有办法知道函数是凹向上还是向下凹的,因此,也不能确定下一个预测点会高估或低估其纵向值。而且也不能保证曲线一直保持一致的凹凸性,所以在解域的不同点预测可能分别有高估和低估的情况。

Heun法处理这个问题的方式,是通过考虑切线段所跨越的整个区间。以一个上凹函数为例子,以区间左端点所作的切线预测低估了该曲线在整个区间上的斜率,而如果使用右端点的切线则会高估曲线在整个区间上的斜率(可以使用欧拉方法估计)。[3] 由左端点出发的切线点,其纵坐标都低于相应的在解曲线上的点,包括区间的右端点。解决的办法就是使斜率某程度变大些。Heun法考虑到解曲线在两端的切线,其中一个低估而另外一个高估了理想的纵坐标。预测线必须基于右端点切线斜率来单独构建(采用欧拉方法估计)。如果这个坡通过区间的左端点,结果显然是太陡,高估了理想点。因此,理想点位于大约高估和低估之间,即两个斜率的平均值。

参考

  1. ^ Süli, Endre; Mayers, David. An Introduction to Numerical Analysis. Cambridge University Press. 2003. ISBN 0-521-00794-1. 
  2. ^ Ascher, Uri M.; Petzold, Linda R. Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations. Philadelphia: Society for Industrial and Applied Mathematics. 1998. ISBN 978-0-89871-412-8. 
  3. ^ Numerical Methods for Solving Differential Equations. San Joaquin Delta College. [2013-11-28]. (原始内容存档于2009-02-12).