【数值分析】第5章-常微分方程的数值解

发布时间 2023-11-04 19:20:14作者: 马农一号

第5章-常微分方程的数值解

基本思想:若微分方程有初始值 \(x_0, y_0\) ,则把微分方程转化为递推公式,从而递推出每个离散点的方程解


5.1 欧拉方法

已知:

\[\left\{ \begin{array}{l} \frac{dy}{dx} = f(x,y) \\ y(x_0) = y_0 \end{array} \right. \]

通过近似

\[\frac{dy}{dx} = \frac{y_{n+1}-y_{n}}{h} \]

从而

\[\begin{align} \Rightarrow \quad & \frac{y_{n+1}-y_{n}}{h} = f(x_n, y_n)\nonumber \\ \Rightarrow \quad & y_{n+1} = y_{n} + hf(x_n, y_n)\nonumber \\ \end{align} \]

此为显式欧拉法

也可以将 \(f(x_n, y_n)\) 改为 \(f(x_{n+1}, y_{n+1})\)

\[\Rightarrow \quad \frac{y_{n+1}-y_{n}}{h} = f(x_{n+1}, y_{n+1}) \]

此为隐式欧拉法

梯形公式

把显示欧拉法和隐式欧拉法加在一起平均一下就得到梯形公式

\[y_{n+1} = y_n + \frac{h}{2}[f(x_n, y_n) + f(x_{n+1},y_{n+1})] \]

改进欧拉法(预测-校正法)

  1. 先用显式欧拉公式做预测,算出 \(\bar{y}_{n+1} = y_n + hf(x_n, y_n)\)
  2. 再将 \(\bar{y}_{n+1}\) 代入隐式梯形公式的右边作校正,得到

\[y_{n+1} = y_n + \frac{h}{2}[f(x_n, y_n) + f(x_{n+1},\bar{y}_{n+1})] \]

预测-校正法具有2阶精度,稳定性高于显示欧拉法


局部截断误差和方法的阶

初值问题的单步法可用一般形式表示为:

\[y_{n+1} = y_n + h\phi(x_n, y_n, y_{n+1}, h) \]

\(\phi\)称为增量函数。

例如,对显式欧拉法有 \(\phi(x_n, y_n, h) = f(x_n, y_n)\)

局部阶段误差
\(y(x)\) 是初值问题的准确解,称

\[T_{n+1} = y(x_{n+1}) - y(x_n) - h\phi(x_n, y_n, y_{n+1}, h) \]

为显式单步法的局部截断误差。

精度
若某算法的局部截断误差为 \(O(h^{p+1})\) ,则称该算法有p阶精度。

欧拉法的局部截断误差

\[\begin{align} T_{n+1} & = y(x_{n+1}) -y_{n+1} \nonumber \\ & = [y(x_n) + hy'(x_n)+ \frac{h^2}{2}y''(x_n) + O(h^3)] - [y_n + hf(x_n, y_n)] \nonumber \\ & = \frac{h^2}{2}y''(x_n)+O(h^3) \nonumber \end{align} \]

具有1阶精度。