Skip to content

010 The Euler or Tangent Line Method 欧拉法或切线法

为了讨论数值近似法,主要集中于一阶微分方程的初值问题 假定 在平面 内某个包含 的矩形内是连续的,根据定理 2.4.2,在包含 的某个区间内有唯一解 。如果方程 是非线性的,解存在的区间比较难确定,或许无法表达成 的某种简单关系。不过这里假定要讨论的各种情况下,在感兴趣的区间内,初始问题 存在唯一解。

在 2.7 小节,我们简单的讨论过欧拉法,也称为切线法。为了推导这种方法,将 写作如下形式 使用差的商表示微分得到 如果用 代替 那么就得到了欧拉公式 如果步长 一样,用 表示,用 表示 ,那么上式可以简化为 欧拉法就是反复使用 或者 计算得到一系列的值 ,它们是解 的近似值。

这里我们分析的初值问题如下。 是一阶线性方程,容易求解,结合初始条件 那么解是 这个问题有解析解,因此不必使用数值法。不过精确的解可以用于评估数值法的精度。这一章我们会始终使用这个问题来评估不同的数值方法。 的解彼此迅速发散,因此可以预见在中等长度的区间上,想要近似都是一个很困难的事情。这也是选择这个问题的原因之一,它能很容易的观察到更有效的方法的收益。

例 1 使用欧拉公式 来近似求解初值问题 的解 ,区间要求是 ,步长

解:使用计算机辅助,得到下表。精度一般。如果 ,从 需要 2000 步,计算量相当大才得到一个比较好的精度。后续会讨论其他数值方法,使用更大的步长更少的计算步骤就能得到同样甚至更好的精度。

Exact
0.0 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
0.1 1.5475000 1.5761188 1.5952901 1.6076289 1.6090418
0.2 2.3249000 2.4080117 2.4644587 2.5011159 2.5053299
0.3 3.4333560 3.6143837 3.7390345 3.8207130 3.8301388
0.4 5.0185326 5.3690304 5.6137120 5.7754845 5.7942260
0.5 7.2901870 7.9264062 8.3766865 8.6770692 8.7120041
1.0 45.588400 53.807866 60.037126 64.382558 64.897803
1.5 282.07187 361.75945 426.40818 473.55979 479.25919
2.0 1745.6662 2432.7878 3029.3279 3484.1608 3540.2001

为了研究使用数值近似时的误差,同时也为了提出更精确的方法,从不同视角来审视欧拉法是很有帮助的。

一种方式是将问题写成积分方程。令 是初值问题 的解,那么从 积分得到 那么 里面的积分的几何意义是 之间曲线下的面积。如果我们用 处的值 代替函数,就是用矩形面积来代替实际区域。假定步长 都相等,那么 ,得到

为了得到 的近似 ,将 替换成其近似 。这样就得到了欧拉公式 。下一节会讨论通过更精确的积分近似得到更精确的算法。

另一个方法是假定 附近存在泰勒级数 如果仅保留两项,并且用 代替 那么得到了公式 。如果保留更多项,那么近似会更精确。通过泰勒级数的余项可以估算误差。

后向欧拉公式

欧拉公式的一个变化是使用区间右侧的函数值来估算积分,那么 这就是后向欧拉公式(backward Euler formula 假定知道了 需要计算 ,而 并没有给出计算 的显式公式。这里仅仅是隐式地定义了 。因此,这个公式也称为隐式欧拉公式(implicit Euler formula)。如何求解 依赖于函数

例 2 使用后向欧拉公式 来近似求解初值问题 的解 ,区间要求是 ,步长

解:对于 ,后向欧拉公式 变成 微分方程 是线性的,因此上式也是线性的。整理得到 使用计算机辅助,得到下表。对于这个问题,后向欧拉法的值比精确值要大,而欧拉法的估算要比精确值小。后向欧拉法的误差也要比欧拉法大一些,不过当 很小时,差异不显著。

Exact
0.0 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
0.1 1.6929688 1.6474375 1.6236638 1.6104634 1.6090418
0.2 2.7616699 2.6211306 2.5491368 2.5095731 2.5053299
0.3 4.4174530 4.0920886 3.9285724 3.8396379 3.8301388
0.4 6.9905516 6.3209569 5.9908303 5.8131282 5.7942260
0.5 10.996956 9.7050002 9.0801473 8.7472667 8.7120041
1.0 103.06171 80.402761 70.452395 65.419964 64.897803
1.5 959.44236 661.00731 542.12432 485.05825 479.25919
2.0 8934.0696 5435.7294 4172.7228 3597.4478 3540.2001

后向欧拉法的名字由来是因为它使用后向差的商 来近似微分方程 中的导数,而不是不是公式 中的前向差的商。

既然后向欧拉公式并不比前向欧拉公式更精确,还比前向欧拉公式更复杂,那么讨论的目的是什么呢?这是后向微分公式中最简单的例子,这类方法在讨论特定的微分方程时非常有效且更为精确。8.4 小节的末尾还会讨论这一点。

数值近似的误差