# 使用欧拉法近似求解（仅BC）

> AP 微积分 BC · CED 微分方程
> 来源: https://www.owlsprep.com/zh/study/ap-calculus-bc-u7-approximating-solutions-using-euler-s/

本小节涵盖欧拉递归公式、步长计算、一阶初值问题的近似求解、高估/低估判断以及步长与误差的关系，所有内容仅在AP微积分BC考试中考查。

**先修:** [一阶初值问题](https://www.owlsprep.com/zh/study/ap-calculus-bc-u7-introduction-to-differential-equations/); 直线的点斜式; [凹性的导数判别法](https://www.owlsprep.com/zh/study/ap-calculus-ab-u5-analyzing-functions/)

## 学习目标

- 使用欧拉法近似求解一阶初值问题
- 为给定的目标x值计算正确的步长
- 判断近似值是高估还是低估了精确解
- 描述欧拉法中全局误差如何随步长变化

## 什么是欧拉法？

欧拉法是一种数值迭代技术，用于对形如$\frac{dy}{dx} = f(x,y)$，$y(x_0) = y_0$的一阶初值问题（IVP）近似求解未知解$y(x)$的值。与分离变量法等能给出精确闭式解的解析方法不同，即使在难以找到精确解的情况下，欧拉法仍然适用。

它仅在AP微积分BC考试中考查，约占总分的2-3%，会出现在选择题和自由问答题中，常与斜率场、人口增长等其他微分方程考点结合考查。其核心思路是在每个已知点使用切线近似，迭代步进至下一个x值。

## 欧拉法的递归公式

欧拉法的核心是将从初始x值$x_0$到目标x值$x_t$的区间分成$n$个等距步，每个步的宽度为$h$（称为步长）。步长公式为：

$$h = \frac{x_t - x_0}{n}$$

从已知初始点$(x_0, y_0)$出发，我们使用步起点处微分方程给出的斜率来近似步终点的y值。通用递归公式为：

$$x_k = x_0 + k \cdot h$$

$$y_k = y_{k-1} + h \cdot f(x_{k-1}, y_{k-1})$$

**例题:** 给定初值问题$\frac{dy}{dx} = 2x - y$，$y(0) = 1$，使用欧拉法，取步长$h=0.5$近似求$y(1.0)$。

1. 确定参数：初始$x_0 = 0$，$y_0 = 1$，步长$h=0.5$，目标$x=1.0$，因此总共需要2步。
2. 第一步到$x_1 = 0 + 0.5 = 0.5$：计算$(x_0, y_0)$处的斜率：

   $$f(0,1) = 2(0) - 1 = -1$$
3. 然后计算$y_1$的近似值：

   $$y_1 = 1 + (0.5)(-1) = 0.5$$
4. 第二步到$x_2 = 0.5 + 0.5 = 1.0$（我们的目标点）：计算$(x_1, y_1)$处的斜率：

   $$f(0.5, 0.5) = 2(0.5) - 0.5 = 0.5$$
5. 计算最终近似值：

   $$y_2 = 0.5 + (0.5)(0.5) = 0.75$$
6. 最终结果：$y(1.0) \approx 0.75$

> **考试提示:** 开始计算前一定要先写下所需的步数。少算一步是极其常见的错误，尤其是当步长为分数、目标x为整数时。

## 判断高估与低估

计算出近似值后，AP考题经常会问该值比精确值高还是低。这取决于解在整个区间上的凹性，因为每一步都使用步起点的切线来近似整个区间：

- 如果$y'' > 0$（凹向上），切线位于解曲线下方，因此近似值是**低估**
- 如果$y'' < 0$（凹向下），切线位于解曲线上方，因此近似值是**高估**

要确定$y''$的符号，先对原微分方程做隐函数求导，再代入$y' = f(x,y)$得到用$x$和$y$表示的$y''$，然后再判断符号。

**例题:** 对于初值问题$\frac{dy}{dx} = 2x - y$，$y(0) = 1$，得到$y(1.0)$的近似值为0.75。这是对精确值的高估还是低估？

1. 对微分方程求导得到$y''$：

   $$y' = 2x - y \implies y'' = 2 - y'$$
2. 将$y' = 2x - y$代入$y''$的表达式：

   $$y'' = 2 - (2x - y) = 2 - 2x + y$$
3. 检查区间$[0, 1]$上$y''$的符号：$y(x)$在该区间上为正，因此$y''$始终为正：在$x=0$处，$y'' = 3 > 0$；在$x=1$处，$y'' = y > 0$。
4. 由于$y''$在$[0,1]$上处处为正，解曲线凹向上，因此0.75是低估，$y(1.0)$的精确值大于0.75。

> **考试提示:** 只有当$y''$在整个区间内符号不变时，才能得出高估或低估的结论。如果凹性发生变化，你无法对最终近似值做出一般性判断。

## 步长与误差特性

> **warning**
>
> 不要将欧拉法的一阶误差与AP BC不考查的高阶方法（如龙格-库塔法）的二阶误差混淆。考试仅考查欧拉法误差与步长的线性比例关系。

欧拉法是一阶数值方法，意味着总全局误差近似与步长$h$成正比，即$E = k \cdot h$，其中$k$对于给定的初值问题和目标点是常数。步长越小，近似精度越高，AP考试中任何题目都不会需要超过3-4步的计算。

**例题:** 使用步长$h=0.4$对$y(2)$做欧拉近似，总误差为0.12。假设误差符合欧拉法预期的比例关系，使用步长$h=0.1$近似$y(2)$时，预期误差是多少？

1. 记住对于欧拉法，全局误差$E = k \cdot h$，其中$k$对于该初值问题和目标点是常数。
2. 用已知误差求解$k$：

   $$0.12 = k(0.4) \implies k = \frac{0.12}{0.4} = 0.3$$
3. 计算$h=0.1$时的预期误差：

   $$E = k \cdot h = 0.3(0.1) = 0.03$$
4. 步长为0.1时的预期误差是0.03。

## 常见错误

- **错误做法:** 提前一步停止，因为你把起点算作第1步，例如从$x_0=0$出发，目标$y(1)$，步长$h=0.5$，却在$x=0.5$处停止。
  - 原因: 学生忘记初始点是第0步，不是第1步，因此会数错所需步数。
  - 正确做法: 开始任何计算前，先明确计算$n = \frac{x_{\text{target}} - x_0}{h}$得到所需步数，然后每完成一步就划掉一步。
- **错误做法:** 计算$y_k$时使用$f(x_k, y_k)$而非$f(x_{k-1}, y_{k-1})$。
  - 原因: 学生混淆了递归顺序；计算这一步时$y_k$还是未知的。
  - 正确做法: 永远记住，你用的是步起点（你已经得到的已知点）的斜率来计算步终点的y值。
- **错误做法:** 认为凹向上的解会得到高估，或凹向下的解会得到低估。
  - 原因: 学生混淆了切线相对于解曲线的位置。
  - 正确做法: 快速画个草图：凹向上曲线向上弯曲，在切线上方，因此近似值偏低；凹向下曲线向下弯曲，在切线下方，因此近似值偏高。
- **错误做法:** 认为欧拉法中步长减半会让误差变为原来的四分之一。
  - 原因: 学生将欧拉法的一阶误差与未考查的高阶方法的二阶误差混淆。
  - 正确做法: 记住欧拉法是一阶方法：误差随步长线性变化，因此$h$减半误差也减半。
- **错误做法:** 将步长计算为$h = \frac{n}{x_{\text{target}} - x_0}$，而非$h = \frac{x_{\text{target}} - x_0}{n}$。
  - 原因: 当给定固定步数$n$时，学生记错公式。
  - 正确做法: 步长是到目标点的总距离除以步数，因此x的差值在分子。
- **错误做法:** 检查凹性时将$y'$留在$y''$的表达式中，因此无法确定$y''$的符号。
  - 原因: 学生隐函数求导后就停止了，忘记代入原微分方程。
  - 正确做法: 得到$y'' = ... + ...y'$后，一定要代入$y' = f(x,y)$得到用x和y表示的$y''$，再检查符号。

## 速查表

| 类别 | 公式 | 说明 |
| --- | --- | --- |
| 步长（从$x_0$到$x_t$共n步） | $h = \frac{x_t - x_0}{n}$ | 先计算步长；所有AP考题都默认步长相等 |
| 递归欧拉步 | $y_k = y_{k-1} + h \cdot f(x_{k-1}, y_{k-1})$ | 使用步起点（已知点）的斜率 |
| 凹性的二阶导数 | $y'' = f_x + f_y \cdot f(x,y)$ | 检查符号前先代入$y' = f(x,y)$ |
| 高估条件 | $y'' < 0$在整个区间成立 | 凹向下：切线位于曲线上方 |
| 低估条件 | $y'' > 0$在整个区间成立 | 凹向上：切线位于曲线下方 |
| 欧拉法全局误差 | $E \propto h$ | 误差随步长线性变化 |
| 欧拉法适用问题 | $\frac{dy}{dx} = f(x,y), \; y(x_0) = y_0$ | 仅适用于一阶初值问题 |

## 下一步

掌握欧拉法是学习第7单元（微分方程）剩余考点的重要前提，尤其是微分方程应用建模，当精确解过于复杂难以推导时，通常需要使用数值近似。本考点建立在你已掌握的切线近似知识基础上，将局部线性近似的思路扩展为可以到达任意目标x值的迭代过程。它还介绍了数值分析的核心概念，这些概念广泛应用于工程、生物和物理中，用于求解没有闭式精确解的实际微分方程。如果不掌握欧拉法的递归步进和误差特性，你会在明确考查这个仅BC考点的选择题和自由问答题中丢掉送分题。

- [变量分离法求通解](https://www.owlsprep.com/zh/study/ap-calculus-bc-u7-general-solutions-via-separation-of/)
- [带初始条件的特解](https://www.owlsprep.com/zh/study/ap-calculus-bc-u7-particular-solutions-with-initial-conditions/)
- [微分方程的指数模型](https://www.owlsprep.com/zh/study/ap-calculus-bc-u7-exponential-models-with-differential-equations/)

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/ap-calculus-bc-u7-approximating-solutions-using-euler-s/
