第 8 章 不定积分
学习目标
- 理解原函数与不定积分的关系
- 掌握基本积分公式表(由求导公式反推)
- 掌握不定积分的线性性质
- 掌握第一类换元积分法(凑微分)
- 掌握分部积分法
- 会用数值方法验证积分结果
8.1 反向求导:已知导数,还原函数
前几章一直在做一件事:已知函数,求它的导数(变化率)。现在反过来:已知变化率,能不能还原出原来的函数?
例:已知速度 ,求路程函数 。因为 ,所以 是一个答案。但 也可以——常数的导数为 0,求导后同样是 。所以「还原」出来的不是唯一一个函数,而是一族函数。
原函数(antiderivative):若 ,则 叫 的一个原函数。
定理:若 、 都是 的原函数,则 是常数。
证明:。由拉格朗日中值定理的推论(第 7 章练习 6),导数为 0 的函数是常数,所以 。
这说明:找到一个原函数,就找到了所有原函数——全部相差一个常数。
8.2 不定积分
不定积分(indefinite integral): 的所有原函数记作
其中 叫积分号, 叫被积表达式, 是任意一个原函数, 叫积分常数。
为什么必须写 ?因为漏掉 就只代表一个函数,而不是一族函数。比如:
而 、 也都是 的原函数,都包含在 里。

import matplotlib.pyplot as plt
from matplotlib import font_manager
for f in font_manager.findSystemFonts():
if any(k in f for k in ("NotoSansCJK", "NotoSansSC", "wqy", "SimHei", "msyh", "PingFang")):
font_manager.fontManager.addfont(f)
plt.rcParams["font.sans-serif"] = ["Noto Sans CJK SC", "WenQuanYi Zen Hei", "SimHei", "Microsoft YaHei", "PingFang SC"]
plt.rcParams["axes.unicode_minus"] = False
import numpy as np
x = np.linspace(-2.5, 2.5, 400)
fig, ax = plt.subplots(figsize=(7, 5))
for c in [-2, -1, 0, 1, 2]:
ax.plot(x, x**2 + c, label=f"C = {c}")
# 在 x = 1 处,所有原函数的切线平行(斜率都是 2)
x0 = 1.0
for c in [-2, -1, 0, 1, 2]:
xt = np.array([x0 - 0.45, x0 + 0.45])
ax.plot(xt, x0**2 + c + 2 * (xt - x0), color="tab:red", linewidth=1.1)
ax.annotate("切线互相平行:斜率都是 2", (1, 1), textcoords="offset points", xytext=(12, -6), color="tab:red")
ax.set_xlim(-2.7, 2.7)
ax.set_ylim(-1.5, 7)
ax.axhline(0, color="black", linewidth=0.8)
ax.axvline(0, color="black", linewidth=0.8)
ax.grid(True, linestyle=":", alpha=0.5)
ax.legend(fontsize=9, loc="upper left")
ax.set_title("∫2x dx = x² + C:整族抛物线,同一处斜率相同")
fig.savefig("book/public/figs/fig08-antiderivatives.png", dpi=120, bbox_inches="tight")
plt.close(fig)8.3 基本积分公式表
积分表就是求导公式表「倒着读」。每个公式都可以用「求导回去验证」来确认。
| 积分公式 | 验证(求导) |
|---|---|
| () | |
以第一行为例推导:验证 的导数
(依据:幂函数求导公式与常数倍法则。)所以它是 的原函数, 给出所有原函数。
注意 的特殊性:,不能套 。为什么 ?因为 (第 6 章推导过)。加绝对值是因为 只对 有定义,而 在 也有定义:当 时,。
8.4 线性性质
由求导的和差、常数倍法则反推,不定积分满足:
用法:
import numpy as np
# 验证 ∫(3x² + 2x) dx = x³ + x² + C
x = np.array([1.0, 2.0, 3.0])
h = 1e-6
def F(x):
return x**3 + x**2
numerical = (F(x + h) - F(x - h)) / (2 * h)
print("F' 数值:", numerical)
print("f(x) :", 3 * x**2 + 2 * x)F' 数值: [ 5. 16. 33.00000001]
f(x) : [ 5. 16. 33.]8.5 第一类换元法(凑微分)
求 。直接看,它不是一个基本积分。但注意到 恰好是 的导数——这是链式法则的「逆运算」。
设 ,则 ,写成微分形式 。代入:
第一类换元法:若被积函数可以写成 的形式,令 ,则
验证:(链式法则),确实回到被积函数。
import numpy as np
x = np.array([0.5, 1.0, 1.5])
h = 1e-6
def F(x):
return np.sin(x**2)
numerical = (F(x + h) - F(x - h)) / (2 * h)
print("F' 数值:", numerical)
print("f(x) :", 2 * x * np.cos(x**2))F' 数值: [ 0.96891242 1.08060461 -1.88452087]
f(x) : [ 0.96891242 1.08060461 -1.88452087]另一个例子:。令 ,,但被积函数里没有 3,需要自己补:
8.6 第二类换元法(三角代换)
有时候「往反方向换」更方便:设 ,把 换成 。典型例子是含 的被积函数,令 ,则 。这一章先认识方法,第 9 章定积分里会看到它的价值。基本公式:
验证:(反函数求导,第 6 章思路)。
8.7 分部积分法
乘法法则 反过来,就得到分部积分。
两边积分:
记 、,更常用的形式:
思路:把不好积的 换成好积的 。关键是选对 和 。
求 。选 (求导后变简单)、(积分不变复杂):
import numpy as np
x = 1.5
h = 1e-6
def F(x):
return x * np.exp(x) - np.exp(x)
numerical = (F(x + h) - F(x - h)) / (2 * h)
print("F'(1.5) ≈", numerical)
print("f(1.5) =", x * np.exp(x))F'(1.5) ≈ 6.722533604897052
f(1.5) = 6.722533605507097分部积分有时要连续用多次。比如 ,第一次剩下 (已经会算),再分部一次即可。
8.8 动手实践:物体运动
已知加速度 (m/s²),且 时速度 、位移 。求速度与位移。
代入 ,得 ,所以 。
代入 ,得 ,所以 。
积分常数不是「随便写的」:在物理问题里,它们由初始条件确定。
import numpy as np
def v(t):
return 3 * t ** 2 + 2
def s(t):
return t ** 3 + 2 * t
t = np.array([0.0, 1.0, 2.0, 3.0])
print("t :", t)
print("v :", v(t))
print("s :", s(t))t : [0. 1. 2. 3.]
v : [ 2. 5. 14. 29.]
s : [ 0. 3. 12. 33.]验证 ,,链条完整。
常见错误
| 错误写法/理解 | 原因 |
|---|---|
| 忘记写 | 不定积分是一族函数,不是单个函数 |
| 对 套 | 时分母为 0;正确结果是 |
| 换元后忘了把 换回 | 结果是 的函数, 而不是 |
| 分部积分选错 | 应选求导后变简单的(如 、), 应选积分不复杂的(如 、) |
| 认为 | 没有这种法则,乘积要分部积分 |
章末练习
基础
- 求不定积分:、、。
- 求 ,并指出 代表什么。
- 验证 的正确性。
提高
- 用第一类换元法求 。
- 用分部积分法求 。
挑战
- 用分部积分法推导 (提示:把被积函数写成 ,取 、)。
- 已知 、、,求 。
章末自测
每题选择一个最佳答案。本书不附答案:完成后交由老师或 AI 老师批改讲解。
- 等于?
- A.
- B.
- C.
- D.
- 等于?
- A.
- B.
- C.
- D.
- 等于?
- A.
- B.
- C.
- D.
- 等于?
- A.
- B.
- C.
- D.
- 等于?
- A.
- B.
- C.
- D.
- 不定积分为什么必须加 ?
- A. 因为原函数不唯一,彼此相差常数
- B. 为了好看
- C. 因为 是变量
- D. 不需要加
- 等于?
- A.
- B.
- C.
- D.
- 分部积分公式是?
- A.
- B.
- C.
- D.
- 已知 、,则 是?
- A.
- B.
- C.
- D.
- 等于?
- A.
- B.
- C.
- D.
