Heun方法

维基百科,自由的百科全书
跳转至: 导航搜索

数学计算机科学中,Heun法亦被稱為改进的修改過的欧拉方法(即,顯式的梯形规则), 或类似的二阶的龙格-库塔法。它是以德國數學家卡爾·休恩英语Karl Heun的名字命名的,是求解給定初值常微分方程数值方法。这两个变体可以被看作是把欧拉方法扩展为两级二阶龙格-库塔法。

通过Heun法计算初值问题数值解的过程步骤:

y'(t) = f(t,y(t)), \qquad y(t_0)=y_0,

根據Heun法,首先计算中间值\tilde{y}_{i+1},然后計算在下一个積分点的最終近似值y_{i+1}

\tilde{y}_{i+1} = y_i + h f(t_i,y_i)
y_{i+1} = y_i + \frac{h}{2}(f(t_i, y_i) + f(t_{i+1},\tilde{y}_{i+1})).

简介[编辑]

Heun法的圖示。

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

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

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

参考[编辑]

  1. ^ Numerical Methods for Solving Differential Equations. San Joaquin Delta College. (原始内容存档于2009-02-12).