切换科目
重点科目
主要科目
次要科目
科数网
首页
刷题
学习
VIP会员
赞助
组卷
集合
教材
VIP
写作
游客,
登录
注册
在线学习
数值分析
第六篇 常微分方程的数值解法
欧拉格式与改进欧拉法
最后
更新:
2026-06-28 20:54
查看:
2
次
纠错
评论(0)
课件
开VIP
欧拉格式与改进欧拉法
8.2 欧拉格式与改进欧拉法 在自然科学的许多领域中,都会遇到常微分方程的求解问题.然而,我们知道,只有少数十分简单的微分方程能够用初等方法求得它们的解,多数情形只能利用近似方法求解。在常微分方程课程中已经讲过的级数解法、逐步逼近法等就是近似解法.这些方法可以给出解的近似表达式,通常称为近似解析方法.还有一类近似方法称为数值方法,它可以给出解在一些离散点上的近似值.利用计算机解微分方程主要使用数值方法。 我们考虑一阶常微分方程初值问题 $$ \left\{\begin{array} { l } { \frac { \mathrm { d } y } { \mathrm { d } x } = f ( x , y ) , } \\ { y ( x _ { 0 } ) = y _ { 0 } } \end{array} \text { 或 } \quad \left\{\begin{array}{l} y^{\prime}=f(x, y), \\ y\left(x_0\right)=y_0 \end{array}\right.\right. $$ 在区间 $[a, b]$ 上的解,其中 $f(x, y)$ 为 $x, y$ 的已知函数,$y_0$ 为给定的初始值,将上述问题的精确解记为 $y(x)$ 。为书写简单起见,在后续的关于常微分方程数值解的分析计算过程中,我们主要用采用右边一个简写形式. 数值方法的基本思想是在解的存在区间上取 $n+1$ 个节点 $$ a=x_0<x_1<x_2<\cdots<x_n=b . $$ 这里差 $h_i=x_{i+1}-x_i(i=0,1, \cdots, n)$ 称为由 $x_i$ 到 $x_{i+1}$ 的步长.这些 $h_i$ 可以相等也可以不相等,但一般取成相等的,这时 $h_i=\frac{b-a}{n} \triangleq h$ 。在这些节点上采用离散方法,(通常用数值积分、微分、泰勒展开等)将上述初值问题化成关于离散变量的相应问题。把这个相应问题的解 $y_n$ 作为 $y\left(x_n\right)$ 的近似值。这样求得的 $y_n$ 就是上述初值问题在节点 $x_n$ 上的数值解.一般说来,不同的离散化导致不同的数值方法.下面首先介绍比较简单的欧拉格式. 8.2.1 显式欧拉格式 对常微分方程初值问题 $$ \left\{\begin{array}{l} y^{\prime}=f(x, y), \tag{8.19}\\ y\left(x_0\right)=y_0, \end{array}\right. $$ 用数值方法求解时,我们总是认为(8.19)的解存在且唯一。 欧拉法是解初值问题的最简单的数值方法.在(8.19)的第二式中,由于 $y\left(x_0\right)=y_0$ 已给定,因而可以算出 $$ y^{\prime}\left(x_0\right)=f\left(x_0, y_0\right) . $$ 设 $x_1=h$ 充分小,利用一阶向前差商近似导数,则有 $$ \begin{equation*} \frac{y\left(x_1\right)-y\left(x_0\right)}{h} \approx y^{\prime}\left(x_0\right)=f\left(x_0, y_0\right) . \tag{8.20} \end{equation*} $$ 记 $y_i=y\left(x_i\right), i=0,1, \cdots, n$ .我们可以取 $y_1=y_0+h f\left(x_0, y_0\right)$ 作为 $y\left(x_1\right)$ 的近似值.利用 $y_1$及 $f\left(x_1, y_1\right)$ 又可以算出 $y\left(x_2\right)$ 的近似值 $$ y_2=y_1+h f\left(x_1, y_1\right) . $$ 一般地,在任意点 $x_{n+1}=(n+1) h$ 处 $y(x)$ 的近似值由下式给出: $$ \begin{equation*} y_{n+1}=y_n+h f\left(x_n, y_n\right) . \tag{8.21} \end{equation*} $$ 这就是求解常微分方程的欧拉格式,$h$ 称为步长. 在利用上述欧拉公式(8.21)计算下一时刻的值 $y_{n+1}$ 时,可根据当前时刻的值 $y_n$显式地给出,所以我们把欧拉格式(8.21)称为欧拉显式格式.还可以从另一种角度看公式(8.21):从当前时刻出发,根据当前时刻的函数值及其导数,可得到下一时刻的值.因此显式欧拉法又称为前向欧拉公式. 8.2.2 隐式欧拉格式 如果欧拉公式(8.21)改为如下形式: $$ \begin{equation*} y_{n+1}=y_n+h f\left(x_{n+1}, y_{n+1}\right) \tag{8.22} \end{equation*} $$ 则成为欧拉隐式格式.之所以称之为隐式,是因为上式是一个隐式方程.同样也可以另一种角度看上面的公式:将上式做一下变形可得 $$ y_{n-1}=y_n-h f\left(x_n, y_n\right) $$ 从当前时刻出发,根据当前时刻的函数值及其导数,可得到前一时刻函数的值.因此隐式欧拉格式又称为后向欧拉。 不难看出,不管前向还是后向欧拉格式,近似解的误差首先是由差商近似代替微商所引起的,这种近似代替所产生的误差称为截断误差.还有一种误差称为舍入误差,这种误差是由利用(8.21)或(8.22)进行计算时数值舍入引起的. 例8.3 用欧拉法求初值问题 $$ \left\{\begin{array}{l} y^{\prime}=-\frac{0.9}{1+2 x} y \tag{8.23}\\ y(0)=1 \end{array}\right. $$ 当 $h=0.02$ 时在区间[ $0,0.10$ ]上的数值解. 解 把 $f(x, y)=-\frac{0.9}{1+2 x} y$ 代入欧拉计算公式.就得 $$ \begin{aligned} y_{n+1} & =y_n-h \frac{0.9}{1+2 x_n} y_n \\ & =\left(1-\frac{0.018}{1+2 x_n}\right) y_n, \quad n=0,1, \cdots, 5 \end{aligned} $$ 具体计算结果如表 8.2.  在表8.2中 $y\left(x_n\right)$ 是初值问题(8.23)的真解 $$ y(x)=(1+2 x)^{-0.45} $$ 在 $x_n$ 上的值.$\varepsilon_n$ 为近似值 $y_n$ 的误差.从表8.2中可以看出,随着 $n$ 的增大,误差也在增大,所以说,虽然欧拉法计算简便,但是它的误差较大,所得的数值解精确度不高。 8.2.3 收敛性分析 一般来说,微分方程的数值方法是否合理需要看差分问题的解 $y_n$ ,当 $h \rightarrow 0$ 时是否会收敛到微分方程的准确解 $y\left(x_n\right)$ 。但是需要注意的是,如果只考虑 $h \rightarrow 0$ ,那么节点 $x_n=x_0+n h$ 对固定的 $n$ 将趋向于 $x_0$ ,这时讨论收敛性是没有意义的,因此,当 $h \rightarrow 0$ 时,需要考虑 $n \rightarrow \infty$ 时,以保证求解总区间长度不发生重大变化. 定义 8.1 若一种数值方法对于任意固定的 $x_n=x_0+n h$ ,当 $h \rightarrow 0$(同时 $n \rightarrow \infty$ )时,有 $y_n \rightarrow y\left(x_n\right)$ ,则称该方法是收敛的. 下面首先分析比较简单的欧拉显式格式 $$ y_{n+1}=y_n+h f\left(x_n, y_n\right) $$ 的收敛性. 设 $\bar{y}_{n+1}$ 为在 $y_n=y\left(x_n\right)$ 条件下按欧拉格式计算的结果,即 $$ \bar{y}_{n+1}=y\left(x_n\right)+h f\left(x_n, y\left(x_n\right)\right) . $$ 设 $f(x, y)$ 是一个连续可微函数,且关于变量 $y$ 满足如下利普希茨条件 $$ \left|f\left(x, y_1\right)-\varphi\left(x, y_1\right)\right| \leqslant L\left|y_1-y_2\right|, $$ 其中 $L$ 为利普希茨常数.则根据显式欧拉公式和泰勒公式,单步计算的局部截断误差 $y\left(x_{n+1}\right)-\bar{y}_{n+1}$ 为 $$ \begin{equation*} y\left(x_{n+1}\right)-\bar{y}_{n+1}=\frac{h^2}{2} y^{\prime \prime}(\xi) \leqslant C h^2, \tag{8.24} \end{equation*} $$ 其中 $C$ 为一固定常数(在误差分析中,常用"$C$"表示误差常数,但是不同的地方值可能不同)。 下面考虑无 $y_n=y\left(x_n\right)$ 条件下的整体截断误差 $e_{n+1}=\left|y\left(x_{n+1}\right)-y_{n+1}\right|$ 。由于 $$ \left|y\left(x_{n+1}\right)-y_{n+1}\right|<\left|y\left(x_{n+1}\right)-\bar{y}_{n+1}\right|+\left|y_{n+1}-\bar{y}_{n+1}\right|, $$ 有 $$ \left|y_{n+1}-\bar{y}_{n+1}\right|=y\left(x_n\right)-y_n+h\left(f\left(x_n, y_n\right)-f\left(x_n, y\left(x_n\right)\right)\right) $$ 由于常微分方程的右端项 $f(x, y)$ 满足利普希茨条件,于是有 $$ \begin{equation*} \left|y_{n+1}-\bar{y}_{n+1}\right| \leqslant\left|y\left(x_n\right)-y_n\right|+h L\left|\left(y\left(x_n\right)-y_n\right)\right|=(1+h L)\left|\left(y\left(x_n\right)-y_n\right)\right| . \tag{8.25} \end{equation*} $$ 这样一来,由式(8.24)和式(8.25)得 $$ \begin{aligned} e_{n+1} & \leqslant(1+h L) e_n+C h^2 \\ & \left.\leqslant(1+h L)(1+h L) e_{n-1}+(1+h L) C h^2+C h^2\right) \end{aligned} $$ 所以 $$ e_n \leqslant(1+h L) e_{n-1}+C h^2 $$ 递推得 $$ e_n \leqslant(1+h L)^n e_0+\frac{C h}{L}\left[(1+h L)^n-1\right] . $$ 又 $(1+h L)^n \leqslant \mathrm{e}^{n h L}$ ,设 $x_n-x_0=n h \leqslant T$( $T$ 为定数),则 $$ (1+h L)^n \leqslant \mathrm{e}^{n h L} \leqslant \mathrm{e}^{T L} $$ 故 $e_n \leqslant \mathrm{e}^{T L} e_0+\frac{C}{L}\left(\mathrm{e}^{T L}-1\right) h$ .这样一来,若初值准确,则当 $h \rightarrow 0$ 时 $e_h \rightarrow 0$ ,即欧拉公式是收敛的. 此外,前面的数值结果表明,欧拉法是一阶准确的,下面我们证明对一般的函数,结论也是成立的. 定理 8.1 设 $f(x, y)$ 为关于变量 $y$ 满足利普希茨连续,$L$ 为利普希茨常数,并假定对于某些 $X>x_0$ ,解 $y \in C^2\left(\left[x_0, X\right]\right)$ ,则有 $$ \begin{equation*} \max _{x_n \leqslant X}\left|y\left(x_n\right)-y_n\right| \leqslant C_0\left|y\left(x_0\right)-y_0\right|+C h\left\|y^{\prime \prime}\right\|_{\infty,\left[x_0, X\right]}, \tag{8.26} \end{equation*} $$ 其中,$C_0=\mathrm{e}^{L\left(X-x_0\right)}, C=\frac{\mathrm{e}^{L\left(X-x_0\right)}-1}{2 L}$ . 该估计定理表明,欧拉法是一阶的(即误差为 $O(h)$ ),但它也表明,常数乘以误差估计中的项会变得很大.如果现在假设 $f$ 是平滑且均匀的单调递减函数,那么我们得到的估计值虽然仍然是一阶的,但包含的常数要小得多. 定理 8.2 令 $f(x, y)$ 为平滑的单调的,关于变量 $y$ 是递减的,并假定对于某些 $X>x_0$ ,解为 $y \in C^2\left(\left[x_0, X\right]\right)$ ,如果 $h$ 足够小,则有 $$ \begin{equation*} \max _{x_n \leqslant X}\left|y\left(x_n\right)-y_n\right| \leqslant C_0\left|y\left(t_0\right)-y_0\right|+C h\left\|y^{\prime \prime}\right\|_{\infty,\left[x_0, X\right]} \tag{8.27} \end{equation*} $$ 其中,当 $k \rightarrow \infty$ 时,$C_0 \leqslant 1, C_0 \rightarrow 0$ ,以及 $C=\frac{1}{2 m}$ . 上述两个定理说明:如果 $f(x, y)$ 关于变量 $y$ 仅是利普希茨连续的,则常数 $C$ 将乘以初始误差和网格参数,这可能会导致 $C$ 很大并且会迅速增长.式(8.26)表明尽管初始误差通常很小,但如果乘以指数项,结果也会呈指数增长,那么这个较小的初始误差的影响可能会在以后的时间支配着计算结果;但是,如果 $f(x, y)$ 是平滑的并且关于变量 $y$ 是递减的,误差项变为初始误差乘以 $\gamma^n$ ,其中 $0 \leqslant \gamma<1$ 。这意味着误差估计中的常数对于所有 $n$ 都是有界的,特别是初始数据的误差对后续计算的影响是可控的.从而,随着计算的进行,任何初始误差的影响都会迅速减小.
科数题库(单机版)
会议室预约系统(book)
今日还可看
0
篇 未注册用户每天查看4篇,
注册
用户每天8篇,
开通VIP
会员无限制查看。
免费注册
《高等数学》难点解析
高数教程
泰勒公式
切线与法线
切平面与法平面
驻点·拐点·极值点·零点
间断点
渐进线
瑕积分
欧拉方程
伯努利方程
Abel 收敛定理
偏导数的几何意义
偏导数的几何意义
梯度
数量场与向量场
多元函数极值
拉格朗日算子
通量与散度
环流量与旋度
格林公式
高斯公式
斯托克斯公式
三大公式比较
傅里叶级数
极坐标微元
点法式方程
变上限定积分
X型计算面积
Y型计算面积
微分的意义
渐近线
间断点
y''+py'+qy=f(x)方程
高斯
黎曼
傅里叶变换(复数)
拉普拉斯变换(复数)
《线性代数》难点解析
线代教程
近世代数对数学的整体思考
线性的意义
矩阵乘法(列视角)
矩阵乘法(行视角)
矩阵左乘
矩阵右乘
逆矩阵求解方程组
阶梯形矩阵的求法
方程组解的判定
四阶行列式的计算
线性变换的意义
线性空间
向量组的等价
线性空间的几何意义
基础解系的求法
施密特正交化
特征值与特征向量的意义
矩阵相似的几何意义
矩阵可对角化的理解
秩的意义(向量版)
秩的意义(方程版)
二次型的意义
《概率论与数理统计》难点解析
概率教程
置信区间与上a分位数
概率中的“取”与“放”
贝叶斯公式
全概率公式
泊松分布
指数分布
伽玛分布
二维密度图的意义
卷积的意义
相关系数的意义
k阶矩是与矩母函数
卡方分布的作用
单正态区间估计理解
假设检验理解
切比雪夫不等式
中心极限定理
上一篇:
数值微分
下一篇:
改进欧拉法
本文对您是否有用?
有用
(
0
)
无用
(
0
)
赞助:
知乎 Mathhub
启明星
商务合作
赞助本站
科数网
是专业的数学网站,为您提供题库与教程 版权所有 禁止镜像
部分内容采用AI辅助生成,请注意识别
如果页面无法显示请联系 18155261033 或 983506039@qq.com