分享

2.6 数值方法介绍(一阶微分方程)

 小温爱怡宝 2023-10-06 发布于江西

数值方法介绍

微分方程可以提供丰富的信息。我们在本章一开始就观察到,即使在尝试解方程之前,我们也可以从一阶微分方程中获得关于其解的定性信息。然后,在2.2-2.5节中,我们对一阶微分方程进行了分析,即我们找到了一些用于获得显式和隐式解的方法。但微分方程可能具有解,但可能无法通过分析方法来获得它。因此,为了完整地了解微分方程的不同类型的分析方法,我们将本章结束于一种可以"数值求解"微分方程的方法;这意味着微分方程被用作构建用于近似未知解的算法的基础。

在本节中,我们将只开发最简单的数值方法 —— 一种利用切线来近似点切点附近函数值的方法。关于常微分方程的数值方法在第9章中将更详尽介绍。

使用切线

假设一阶初值问题

具有解。一种近似这个解的方法是使用切线。例如,让 表示一阶初值问题 的未知解。这个IVP中的非线性微分方程不能直接通过2.2、2.4和2.5节考虑的任何方法来解决;然而,我们仍然可以找到未知的 的近似数值值。具体来说,假设我们想知道 的值。这个IVP有一个解,正如图中DE的方向场的流动所示,解曲线必须具有与蓝色曲线类似的形状。

中的方向场是通过穿过具有整数坐标的网格中的点的线性元素生成的。当解曲线通过初始点 时,该点上的线性元素是一条斜率为 的切线。如图和图中的"放大"所示,当 接近2时,解曲线上的点接近切线上的点(线性元素)。使用点 、斜率 和切线的点斜式方程,我们可以找到切线的方程 ,其中 。这个方程,称为在 处对 的线性化,可用于近似 附近的 值。如果 表示切线上的 坐标, 是对应于接近 坐标 的解曲线上的 坐标,则 。如果我们选择 ,那么 ,所以

欧拉方法

为了概括刚刚介绍的过程,我们使用未知解 处的线性化:

这个线性化的图形是一条与 在点 处相切的直线。我们现在让 轴的正增量,如图所示。然后,通过在 (2) 中用 替换 ,我们得到

其中 。切线上的点 是解曲线上点 的近似。当然,近似 的准确性严重依赖于增量 的大小。通常,我们必须选择这个步长为"相当小"。我们现在使用第二个在 处的"切线"重复这个过程。

这不是实际的切线,因为 位于第一条切线上而不是解曲线

通过将新的起始点标识为上述讨论中的 ,我们得到一个对应于从 开始的两个长度为 的步骤的近似 ,即 ,和

继续这样进行,我们看到 可以通过一般公式

递归定义,其中 这种使用连续的"切线"的过程称为欧拉方法。

例 1 欧拉方法

考虑初值问题 。使用欧拉方法分别取 来获得 的近似值。

解决方案: 通过将 代入 ,得到

然后对于 ,我们有

这是我们已经看到的 的估计值。

h=0.1

然而,如果我们使用较小的步长 ,需要两步才能到达 。从

我们有 。其余的计算是通过使用软件进行的。结果总结在表2.6.1和2.6.2中,每个条目已四舍五入到四位小数。从表中可以看出,使用 需要五步,使用 需要十步,才能达到 。直觉上,我们会认为 对应于 的更好估计值,而 对应于

h=0.05

在例 2 中,我们将欧拉方法应用于已经找到解的微分方程,以比较每一步的近似值 与初值问题的解 的真实值。

例 2 近似值与实际值的比较

考虑初值问题 。使用欧拉方法分别取 来获得 的近似值。 解决方案 通过将 代入 ,得到

其中 。再次借助计算机软件,得到表中的数值。

h=0.1
h=0.05

在例1中,真实或实际值是从已知解 计算出来的。(自行验证。)绝对误差定义为|真实值 - 近似值|.

相对误差和百分比相对误差分别为

从表中可以看出,随着步长 的减小,近似值的精确度有所提高。此外,我们还看到,尽管相对误差百分比随着每一步的增长而增长,但情况似乎并没有那么糟糕。但不要被一个例子所欺骗。如果我们只是将示例2中微分方程右侧的系数从0.2更改为2,那么在 处,百分比相对误差会急剧增加。

一个警告

欧拉法(Euler's method)只是众多用于近似微分方程解的方法之一。尽管它因其简单性而吸引人,但在严格的计算中很少使用。这里介绍它仅仅是为了让您初尝数值方法的滋味。我们将在后面更详细地讨论能够提供更高精度的数值方法,特别是第九章中提到的四阶龙格-库塔方法(RK4方法)。

数值求解器

无论我们是否实际上能够找到显式或隐式解,如果微分方程的解存在,它代表着笛卡尔平面上的光滑曲线。用于一阶常微分方程的任何数值方法的基本思想是以某种方式近似解的 值,以预先选定的 值为基础。我们从解曲线上的指定初始点 开始,然后以逐步计算的方式得到一系列点 ,其 -坐标 近似于通常未知的解 的点 -坐标 。通过使 -坐标接近在一起(即使用较小的 值),并使用短线段连接点 , ,我们获得了一个多边形曲线,其定性特征希望与实际解曲线的特征接近。绘制曲线非常适合计算机。编写的计算机程序既可以实现数值方法,也可以根据该方法产生的数值数据呈现出近似解曲线的视觉表示,这称为数值求解器。许多不同的数值求解器可供商用,可以嵌入到较大的软件包中,例如计算机代数系统,也可以作为独立的软件包提供。一些软件包仅绘制生成的数值近似曲线,而其他软件包生成硬数值数据以及相应的近似或数值解曲线。

为了说明数值求解器生成的图形是通过连接点而形成的,图中的两个彩色多边形图形是在 的步长下使用欧拉法和RK4法获得的初值问题 的数值解曲线。蓝色光滑曲线是IVP的精确解 的图形。请注意,在图中,即使使用了荒谬的大步长 ,RK4法也会产生更可信的“解曲线”。从RK4法获得的数值解曲线在区间 上与实际解曲线几乎无法区分,当使用更典型的步长 时。

使用数值求解器

使用数值求解器并不需要了解各种数值方法。通常,求解器要求微分方程以正常形式 表示。仅生成曲线的数值求解器通常要求您提供 和初始数据 ,并指定所需的数值方法。如果想要近似数值值 ,那么求解器可能还需要您声明 的值,或者等效地给出从 需要进行的步数。例如,如果我们想要近似图中所示的IVP的 ,那么从 开始,使用步长 需要四步才能到达 ;而使用步长 需要四十步。尽管我们在这里不会深入讨论在尝试近似数学量时可能遇到的众多问题,但您至少应该意识到,数值求解器在应用于某些正常形式的一阶微分方程时,可能会在某些点附近崩溃,或者提供不完整或误导性的图像。

下图说明了将欧拉法应用于某个特定的一阶初值问题 所获得的图形。使用三种不同的商业数值求解器获得了等效的结果,然而图形几乎不是一个合理的解曲线。 (为什么呢?)当数值求解器遇到困难时,有几种解决方法;其中三种更明显的方法是减小步长,使用另一种数值方法,以及尝试不同的数值求解器。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多