6. 微积分基本定理(Fundamental Theorem of Calculus,FTC)
- 这是"导数"和"积分"之间的终极联系
- 真正理解了微积分本质
text
6.1 为什么需要基本定理?(积分难 → 反导数)
6.2 微积分基本定理 Part I(导数是"积分值的变化率")
6.3 微积分基本定理 Part II(定积分 = 原函数差)
6.4 Python 数值验证(非常重要)
6.5 练习题
6.1 我们为什么需要微积分基本定理?
- 前面已经学会:导数(变化率)、定积分(面积的极限和)
- 但定积分看起来计算很麻烦:要切很多段、要累加矩形面积、N 越大越慢、代码写起来也累
- 而微积分基本定理告诉我们:要算积分其实不用累加,只要找到反导数就行了
- 把"累加面积的过程"变成了一个极其简单的"代入计算
6.2 微积分基本定理(第一部分)
Part I:导数是"定积分函数"的变化率
- 定义一个函数:
F(x)=∫axf(t)dtF(x)=\int_a^xf(t)dtF(x)=∫axf(t)dt - 结论:F′(x)=f(x)F'(x)=f(x)F′(x)=f(x)
- 也就是积分和求导互相抵消,回到原函数。
- 积分计算"累积",导数计算"变化率",累积过程的变化率 = 当下加进去的量,所以导数把积分还原
- 举例:
F(x)∫0xt2dtF(x)\int_0^xt^2dtF(x)∫0xt2dt - 知道:
∫t2dt=t33\int t^2dt=\frac{t^3}{3}∫t2dt=3t3 - 所以:
F(x)=x33F(x)=\frac{x^3}{3}F(x)=3x3 - 那么:
F′(x)=x2F'(x)=x^2F′(x)=x2 - 也就是f(x)f(x)f(x)
这告诉我们两件事:
- 积分函数的导数就是 integrand 本身
- 积分和求导是逆运算
ddx(∫axf(t)dt)=f(x)\frac{d}{dx}(\int_a^xf(t)dt)=f(x)dxd(∫axf(t)dt)=f(x)
- (这会在机器学习里变成:梯度 = 导数。)
6.3 微积分基本定理(第二部分)
Part II:定积分 = 原函数的差
- 如果FFF是fff的反导数,即F′=fF'=fF′=f
- 那么
∫abf(x)dx=F(b)−F(a)\int_a^bf(x)dx=F(b)-F(a)∫abf(x)dx=F(b)−F(a) - 举例:
∫03(2x+1)dx\int_0^3(2x+1)dx∫03(2x+1)dx - 反导数:
F(x)=x2+xF(x)=x^2+xF(x)=x2+x - 于是:
F(3)−F(0)=12−0=12F(3)-F(0)=12-0=12F(3)−F(0)=12−0=12
6.4 Python 数值验证
- 代码:
python
import numpy as np
def f(x):
return 3*x**2 + 1
# 数值积分
xs = np.linspace(0, 1, 1000000)
dx = (1 - 0) / len(xs)
numeric = np.sum(f(xs) * dx)
# 反导数
F = lambda x: x**3 + x
symbolic = F(1) - F(0)
print("数值结果:", numeric)
print("反导数结果:", symbolic)
数值结果: 2.0000005000004997
反导数结果: 2
- 微积分基本定理在编程角度的体现
6.5 本节练习
练习 1(FTC I)
- 定义:
F(x)=∫0x(4t3−2)dtF(x)=\int_0^x(4t^3-2)dtF(x)=∫0x(4t3−2)dt - 求:
F′(x)F'(x)F′(x)
解题 1
- 思路:F(x)=∫0x(4t3−2)dtF(x)=\int_0^x(4t^3-2)dtF(x)=∫0x(4t3−2)dt可知关于ttt的原函数是t4−2t+Ct^4-2t+Ct4−2t+C,那么代入上限xxx,下界000:
F(x)=x4−2x+C−C=x4−2xF(x)=x^4-2x+C-C=x^4-2xF(x)=x4−2x+C−C=x4−2x
F′(x)=4x3−2F'(x)=4x^3-2F′(x)=4x3−2
练习 2(FTC II)
- 直接利用反导数求:
∫12(6x2−4x+3)dx\int_1^2(6x^2-4x+3)dx∫12(6x2−4x+3)dx
解题 2
\begin{aligned}
\int_{1}^{2} (6x^2 - 4x + 3) , dx &= \left[ 2x^3 - 2x^2 + 3x \right]_{1}^{2} \
&= (16 - 8 + 6) - (2 - 2 + 3) \
&= 14 - 3 = 11
\end{aligned}
练习 3(综合)
- 已知:
f(x)=cosx2f(x)=\cos{x^2}f(x)=cosx2 - 定义:
F(x)=∫0xcost2dtF(x)=\int_0^x\cos{t^2}dtF(x)=∫0xcost2dt - 求:
- F′(x)F'(x)F′(x)
- Python 用数值积分估计F(2)F(2)F(2)(提示:cosx2\cos{x^2}cosx2 没有初等反导数)
解题 3
- F(x)F(x)F(x)就是关于ttt的g(t)=cost2g(t)=\cos{t^2}g(t)=cost2的原函数G(t)G(t)G(t)的上下限差,G(x)−G(0)G(x)-G(0)G(x)−G(0),则F′(x)=G′(x)−0=G′(x)F'(x)=G'(x)-0=G'(x)F′(x)=G′(x)−0=G′(x),也就是F′(x)=g(x)=cosx2F'(x)=g(x)=\cos{x^2}F′(x)=g(x)=cosx2
- F(2)=∫02cost2dtF(2)=\int_0^2\cos{t^2}dtF(2)=∫02cost2dt,也就是求定积分∫02cosx2dx\int_0^2\cos{x^2}dx∫02cosx2dx,就是∫02f(x)dx\int_0^2f(x)dx∫02f(x)dx,代码:
python
import numpy as np
def f(x):
return np.cos(x**2)
a, b = 0.0, 2.0
N = 10000
dx = (b - a) / N
xs = a + np.arange(N) * dx # 左端点们
numeric = np.sum(f(xs) * dx)
print("数值结果:", numeric)
数值结果: 0.4616268368860027
练习 4(思维题)
- 如果:
G(x)=∫xx2sintdtG(x)=\int_x^{x^2}\sin{t}dtG(x)=∫xx2sintdt - 求G′(x)G'(x)G′(x)
- 提示:上限、下限都是 x,会用到链式法则与基本定理一起使用。
解题 4
G(x)=−cosx2+cosxG(x)=-\cos{x^2}+\cos{x}G(x)=−cosx2+cosx,G′(x)=sinx2⋅2x−sinxG'(x)=\sin{x^2}\cdot 2x-\sin{x}G′(x)=sinx2⋅2x−sinx
- 直接从定义出发:
G(x)=∫xx2sintdtG(x)=\int_x^{x^2}\sin{t}dtG(x)=∫xx2sintdt - 可以看成:
G(x)=H(x2)−H(x)G(x)=H(x^2)-H(x)G(x)=H(x2)−H(x) - 其中:
H(u)=∫0usintdt=−cosu+CH(u)=\int_0^u\sin{t}dt=-\cos{u}+CH(u)=∫0usintdt=−cosu+C - 于是:
G′(x)=H′(x2)⋅2x−H′(x)⋅1=sin(x2)⋅2x−sinxG'(x)=H'(x^2)\cdot 2x-H'(x)\cdot 1 = \sin(x^2)\cdot 2x - \sin{x}G′(x)=H′(x2)⋅2x−H′(x)⋅1=sin(x2)⋅2x−sinx