Skip to content

第 8 章 不定积分 ​

学习目标 ​

  • 理解原函数与不定积分的关系
  • 掌握基本积分公式表(由求导公式反推)
  • 掌握不定积分的线性性质
  • 掌握第一类换元积分法(凑微分)
  • 掌握分部积分法
  • 会用数值方法验证积分结果

8.1 反向求导:已知导数,还原函数 ​

前几章一直在做一件事:已知函数,求它的导数(变化率)。现在反过来:已知变化率,能不能还原出原来的函数?

例:已知速度 ,求路程函数 。因为 ,所以 是一个答案。但 也可以——常数的导数为 0,求导后同样是 。所以「还原」出来的不是唯一一个函数,而是一族函数。

原函数(antiderivative):若 ,则 叫 的一个原函数。

定理:若 、 都是 的原函数,则 是常数。

证明:。由拉格朗日中值定理的推论(第 7 章练习 6),导数为 0 的函数是常数,所以 。

这说明:找到一个原函数,就找到了所有原函数——全部相差一个常数。

8.2 不定积分 ​

不定积分(indefinite integral): 的所有原函数记作

其中 叫积分号, 叫被积表达式, 是任意一个原函数, 叫积分常数。

为什么必须写 ?因为漏掉 就只代表一个函数,而不是一族函数。比如:

而 、 也都是 的原函数,都包含在 里。

一族原函数

python
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 线性性质 ​

由求导的和差、常数倍法则反推,不定积分满足:

用法:

python
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)
text
F' 数值: [ 5.         16.         33.00000001]
f(x)   : [ 5. 16. 33.]

8.5 第一类换元法(凑微分) ​

求 。直接看,它不是一个基本积分。但注意到 恰好是 的导数——这是链式法则的「逆运算」。

设 ,则 ,写成微分形式 。代入:

第一类换元法:若被积函数可以写成 的形式,令 ,则

验证:(链式法则),确实回到被积函数。

python
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))
text
F' 数值: [ 0.96891242  1.08060461 -1.88452087]
f(x)   : [ 0.96891242  1.08060461 -1.88452087]

另一个例子:。令 ,,但被积函数里没有 3,需要自己补:

8.6 第二类换元法(三角代换) ​

有时候「往反方向换」更方便:设 ,把 换成 。典型例子是含 的被积函数,令 ,则 。这一章先认识方法,第 9 章定积分里会看到它的价值。基本公式:

验证:(反函数求导,第 6 章思路)。

8.7 分部积分法 ​

乘法法则 反过来,就得到分部积分。

两边积分:

记 、,更常用的形式:

思路:把不好积的 换成好积的 。关键是选对 和 。

求 。选 (求导后变简单)、(积分不变复杂):

python
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))
text
F'(1.5) ≈ 6.722533604897052
f(1.5)   = 6.722533605507097

分部积分有时要连续用多次。比如 ,第一次剩下 (已经会算),再分部一次即可。

8.8 动手实践:物体运动 ​

已知加速度 (m/s²),且 时速度 、位移 。求速度与位移。

代入 ,得 ,所以 。

代入 ,得 ,所以 。

积分常数不是「随便写的」:在物理问题里,它们由初始条件确定。

python
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))
text
t  : [0. 1. 2. 3.]
v  : [ 2.  5. 14. 29.]
s  : [ 0.  3. 12. 33.]

验证 ,,链条完整。

常见错误 ​

错误写法/理解原因
忘记写 不定积分是一族函数,不是单个函数
对 套 时分母为 0;正确结果是
换元后忘了把 换回 结果是 的函数, 而不是
分部积分选错 应选求导后变简单的(如 、), 应选积分不复杂的(如 、)
认为 没有这种法则,乘积要分部积分

章末练习 ​

基础

  1. 求不定积分:、、。
  2. 求 ,并指出 代表什么。
  3. 验证 的正确性。

提高

  1. 用第一类换元法求 。
  2. 用分部积分法求 。

挑战

  1. 用分部积分法推导 (提示:把被积函数写成 ,取 、)。
  2. 已知 、、,求 。

章末自测 ​

每题选择一个最佳答案。本书不附答案:完成后交由老师或 AI 老师批改讲解。

  1. 等于?
    • A.
    • B.
    • C.
    • D.
  2. 等于?
    • A.
    • B.
    • C.
    • D.
  3. 等于?
    • A.
    • B.
    • C.
    • D.
  4. 等于?
    • A.
    • B.
    • C.
    • D.
  5. 等于?
    • A.
    • B.
    • C.
    • D.
  6. 不定积分为什么必须加 ?
    • A. 因为原函数不唯一,彼此相差常数
    • B. 为了好看
    • C. 因为 是变量
    • D. 不需要加
  7. 等于?
    • A.
    • B.
    • C.
    • D.
  8. 分部积分公式是?
    • A.
    • B.
    • C.
    • D.
  9. 已知 、,则 是?
    • A.
    • B.
    • C.
    • D.
  10. 等于?
    • A.
    • B.
    • C.
    • D.