数值分析与算法设计--改进欧拉法
改进欧拉法
题目
用 改进欧拉法求解初值问题:
$$
\begin{cases}
y’ = f(x, y) = 3x + 2y \
y(0) = 1 \
0 \le x \le 0.3,\quad h = 0.1
\end{cases}
$$
解答
点击查看答案
改进欧拉法公式
对每一步 $ n = 0,1,2,\dots $:
- 预测(显式欧拉一步):
$$
\tilde{y}_{n+1} = y_n + h , f(x_n, y_n)
$$ - 校正(梯形公式):
$$
y_{n+1} = y_n + \frac{h}{2} \left[ f(x_n, y_n) + f(x_{n+1}, \tilde{y}_{n+1}) \right]
$$
本质:用区间端点的斜率平均值代替单点斜率,提高精度。
精度:二阶方法,全局误差 $ O(h^2) $,比显式欧拉更准。
已知:
- $ x_0 = 0 $, $ y_0 = 1 $
- $ h = 0.1 $
- $ f(x, y) = 3x + 2y $
我们计算到 $ x = 0.3 $,共 3 步。
逐步计算:
▶ 第 0 步:$ n = 0 $, $ x_0 = 0 $, $ y_0 = 1 $
预测:
$$
\tilde{y}_1 = y_0 + h f(x_0, y_0) = 1 + 0.1 \cdot (3\cdot0 + 2\cdot1) = 1 + 0.1 \cdot 2 = 1.2
$$计算校正所需斜率:
- $ f(x_0, y_0) = 2 $ (已算)
- $ f(x_1, \tilde{y}_1) = f(0.1, 1.2) = 3(0.1) + 2(1.2) = 0.3 + 2.4 = 2.7 $
校正:
$$
y_1 = y_0 + \frac{h}{2} \left[ f(x_0, y_0) + f(x_1, \tilde{y}_1) \right]
= 1 + \frac{0.1}{2} (2 + 2.7) = 1 + 0.05 \times 4.7 = 1 + 0.235 = \boxed{1.235}
$$
→ $ x_1 = 0.1 $, $ y_1 = 1.235 $
▶ 第 1 步:$ n = 1 $, $ x_1 = 0.1 $, $ y_1 = 1.235 $
预测:
$$
\tilde{y}_2 = y_1 + h f(x_1, y_1)
= 1.235 + 0.1 \cdot \big[ 3(0.1) + 2(1.235) \big]
= 1.235 + 0.1 \cdot (0.3 + 2.47) = 1.235 + 0.1 \cdot 2.77 = 1.235 + 0.277 = 1.512
$$斜率:
- $ f(x_1, y_1) = 2.77 $ (已算)
- $ f(x_2, \tilde{y}_2) = f(0.2, 1.512) = 3(0.2) + 2(1.512) = 0.6 + 3.024 = 3.624 $
校正:
$$
y_2 = y_1 + \frac{h}{2} \big[ f(x_1, y_1) + f(x_2, \tilde{y}_2) \big]
= 1.235 + 0.05 \cdot (2.77 + 3.624) = 1.235 + 0.05 \cdot 6.394 = 1.235 + 0.3197 = \boxed{1.5547}
$$
→ $ x_2 = 0.2 $, $ y_2 = 1.5547 $
(保留4位小数,后续一致)
▶ 第 2 步:$ n = 2 $, $ x_2 = 0.2 $, $ y_2 = 1.5547 $
预测:
$$
\tilde{y}_3 = y_2 + h f(x_2, y_2)
= 1.5547 + 0.1 \cdot \big[ 3(0.2) + 2(1.5547) \big]
= 1.5547 + 0.1 \cdot (0.6 + 3.1094) = 1.5547 + 0.1 \cdot 3.7094 = 1.5547 + 0.37094 = 1.92564
$$斜率:
- $ f(x_2, y_2) = 3.7094 $
- $ f(x_3, \tilde{y}_3) = f(0.3, 1.92564) = 3(0.3) + 2(1.92564) = 0.9 + 3.85128 = 4.75128 $
校正:
$$
y_3 = y_2 + \frac{h}{2} \big[ f(x_2, y_2) + f(x_3, \tilde{y}_3) \big]
= 1.5547 + 0.05 \cdot (3.7094 + 4.75128)
= 1.5547 + 0.05 \cdot 8.46068 = 1.5547 + 0.423034 = \boxed{1.977734}
$$
→ $ x_3 = 0.3 $, $ y_3 \approx 1.9777 $
(四舍五入到6位:1.977734)
✅ 改进欧拉法结果汇总:
| $ n $ | $ x_n $ | 预测 $ \tilde{y}_{n+1} $ | 校正 $ y_{n+1} $ |
|---|---|---|---|
| 0 | 0.0 | 1.2000 | 1.2350 |
| 1 | 0.1 | 1.5120 | 1.5547 |
| 2 | 0.2 | 1.9256 | 1.9777 |
最终近似解:
$$
\boxed{y(0.3) \approx 1.9777}
$$
- Title: 数值分析与算法设计--改进欧拉法
- Author: 姜智浩
- Created at : 2026-01-17 11:45:14
- Updated at : 2026-01-17 13:44:12
- Link: https://super-213.github.io/zhihaojiang.github.io/2026/01/17/20260117数值分析与算法设计--改进欧拉法/
- License: This work is licensed under CC BY-NC-SA 4.0.