← 返回Book 3目录
第15章

极限与导数

Limits & Derivatives

微积分入门

📚 本章内容

本章从牛顿的生平开始,介绍微积分的基础概念:极限是研究微积分的重要数学工具,导数描述函数的瞬时变化率。 通过割线逼近切线的过程,理解导数的几何意义和物理意义。

15.1
牛顿小传
15.2
极限:研究微积分的重要数学工具
15.3
导数:瞬时变化率
15.4
一、二阶导数

15.1 牛顿小传

"如果说我比别人看得更远,那是因为我站在巨人的肩上。"

1642 年年底,艾萨克·牛顿 (Sir Isaac Newton) 呱呱坠地,同年年初伽利略驾鹤西去。 牛顿从伽利略手中接过了智慧火炬。这可能告诉全世界,但又何尝不是其神秘中注定。在物理跨科学等科学领域的沃土上,即便没有培育出牛顿、半顿、米顿……

艾萨克·牛顿 (Sir Isaac Newton)

英国物理学家、数学家 | 1643年 ~ 1727年

提出万有引力定律、牛顿运动定律、与莱布尼茨共同发明微积分

🍎
地球

图 1. 地球引力使用于月球和苹果

牛顿的牛顿坐标在高中里,思考物理学,苹果从树上掉下,萌发了万有引力的脑门。牛顿发出了一个侦世疑问,苹果为什么会下落?

其实,苹果为什么会下落,而不是飞向更远的天际?对这些问题的系统思考让牛顿提出了万有引力定律。

自然和自然规律隐藏在黑夜中,

上帝说:让牛顿吧,

于是一切都被点亮。

Nature and Nature's laws lay hid in night:
God said, Let Newton be! and all was light.

—— 亚历山大·蒲柏 (Alexander Pope) | 英国诗人 | 1688 ~ 1744

1630s1640s1650s1660s1670s1680s1690s1700s1710s1720s1730s
1643年,清圣祖入关,定都北京
1672年,牛顿发表第一篇引力定律
1661年,章熙诞生
1687年,牛顿发表《自然哲学的数学原理》
1713年,清正诞生
1722年,雍正诞生
牛顿
莱布尼茨
伽利略
欧拉

图 2. 牛顿的时间轴线

牛顿的成就不止于此。他提出三大运动定律,并出版《自然哲学的数学原理》(Mathematical Principles of Natural Philosophy)。 他和用三棱镜做分光实验,发现白光的微粒说。他和莱布尼茨分别独立发明微积分等等。任何人有其中任意一个贡献,就可以名各青史;然而,牛顿一个人完成以上这科学这些。

15.2 极限:研究微积分的重要数学工具

微积分 (calculus) 是研究实数域上函数的微分与积分性质的学科,而极限是微积分最重要数学工具。连续 (continuity)、导数 (derivative) 和积分 (integral) 这些概念都是通过极限来定义。

上一章简单介绍了数列极限、数列和极限。本节主要介绍函数极限。

函数极限

首先看一下函数极限的定义。

设函数 f(x) 在点 a 的某一个去心邻域内有定义,如果存在常数 C, 对于任意给定正数 ε(不管它多么小),总存在正数 δ,使得当 x 满足不等式:

0 < |x - a| < δ
(1)

对应函数值 f(x) 都满足:

|f(x) - C| < ε
(2)

常数 C 就是函数 f(x) 当 x → a 时的极限。记做:

lim f(x) = C
x→a
(3)

举个例子

给定如下函数:

f(x) = (1 + 1/x)x
(4)

如图 3 所示,当 x 趋向正无穷,函数极限为 e:

lim f(x) = e
x→∞
(5)

图 3. 当 x 趋向正无穷,函数 f(x) 极限值

xf(x)1.21.41.61.82.02.22.42.610⁰10¹10²10³10⁴e ≈ 2.718

邻域

解释一下邻域这个概念。邻域 (neighbourhood) 实际上就是一个特殊的开区间。如图 4 所示, 点 a 的 h (h > 0) 邻域满足 a - h < x < a + h。

图 4. 邻域

hhx = a - hx = ax = a + h

a 为邻域的中心,h 为邻域的半径,而去心邻域 (deleted neighbourhood 或 punctured neighbourhood) 指的是, 在 a 的邻域中去掉 a 的集合。

Bk3_Ch15_01.py 计算极限并绘制图 3。

函数极限:逼近e

观察 (1 + 1/x)ˣ 如何随x增大而趋近自然常数e

e ≈ 2.718280.11101001.52.02.52.73.0x (对数刻度)(1 + 1/x)ˣ

极限值

自然常数
e = 2.71828183

调节x范围

拖动查看更大的x值

当前状态

x =100
(1+1/x)ˣ =2.70481383
误差:0.01346800

收敛速度

x = 10: 2.593742

x = 100: 2.704814

x = 1000: 2.716924

e ≈ 2.718282

📐 极限定义

• 极限公式: lim(x→∞) (1 + 1/x)ˣ = e

• 对数刻度: x轴使用对数刻度便于观察大x下的趋势

• 收敛性: 随着x增大,函数值从下方逼近e

• 应用: 复利计算、概率论中的重要极限

15.3 导数:瞬时变化率

导数 (derivative) 给出了函数在某一点的瞬时变化率 (instantaneous rate of change)。导数是微积分学的核心概念之一。

微分 (differential)、变分 (variation)、导数 (derivative) 这几个相近概念相互关联。

本节主要介绍导数。

平均变化率

如图 5 所示,对于函数 f(x),x 从 a 变到 b 时, 函数 f(x) 的平均变化率 (average rate of change) 为:

平均变化率 = [f(b) - f(a)] / (b - a)
(6)

这个平均变化率实际上就是割线 (secant line) 的斜率 (slope),其中割线通过点 (a, f(a)) 和 (b, f(b))。

图 5. 平均变化率和割线

xf(x)abb - af(b) - f(a)(a, f(a))(b, f(b))割线

瞬时变化率

如图 6 所示,瞬时变化率 (instantaneous rate of change) 就是点 (a, f(a)) 处的切线斜率 (slope of tangent line)。

当 b 无限趋近于 a 时,平均变化率趋于瞬时变化率:

瞬时变化率 = lim [f(b) - f(a)] / (b - a)
b→a
(7)

这个极限就是函数 f(x) 在 x = a 处的导数 (derivative),记为 f'(a)。

图 6. 瞬时变化率和切线

xf(x)a(a, f(a))切线b₃b₂b₁

当 b 趋向 a 时,割线趋向切线

导数定义

更常见的导数定义形式如下。令 Δx = b - a,当 b → a 时,Δx → 0。

函数 f(x) 在 x = a 处的导数为:

f'(a) = lim [f(a + Δx) - f(a)] / Δx
Δx→0
(8)

如图 7 所示,Δx 代表自变量的增量 (increment),Δf = f(a + Δx) - f(a) 代表因变量的增量。

图 7. 导数定义示意图

xf(x)ΔxΔfaa + Δxf(a)f(a + Δx)切线斜率 = f'(a)

导数的几何意义

导数 f'(a) 的几何意义是函数 f(x) 在点 (a, f(a)) 处切线的斜率。

📈
f'(a) > 0

函数在点 a 处递增

➡️
f'(a) = 0

函数在点 a 处可能有极值

📉
f'(a) < 0

函数在点 a 处递减

Bk3_Ch15_02.py 绘制图 5、6 和 7。

割线与切线

观察割线斜率如何随Δx减小而逼近切线斜率(导数)

(1, 1.0)(2.00, 4.00)00.511.5201234xf(x) = x²函数 f(x)割线切线 (k=2)

切线斜率(导数)

f'(x₀) = 2x₀
k = 2

调节Δx

Δx越小,割线越接近切线

割线信息

起点:(1, 1)
终点:(2.00, 4.00)
割线斜率:3.0000
与切线误差:1.0000

斜率公式

k = (y₁ - y₀) / (x₁ - x₀)

k = (f(x₀+Δx) - f(x₀)) / Δx

当Δx→0时,k→f'(x₀)

📊 导数的几何意义

割线斜率:两点连线的倾斜度

切线斜率:割线的极限,函数瞬时变化率

导数:f'(x₀) = lim(Δx→0) [f(x₀+Δx)-f(x₀)]/Δx

15.4 几何视角看导数:切线斜率

导数 (derivative) 描述函数在某一点处的变化率。几何角度看,导数可以视作函数在某一点处的切线斜率。

切线斜率

举个中学物理中的例子。加速度 a 是速度 v 的变化率,速度 v 是距离 s 的变化率。

如图 8 所示,勾速直线运动中,距离函数 s(t) 对于时间 t 是一个一次函数。从图像角度来看,s(t) 图像的切线斜率不随时间变化,也就是说勾速直线运动的速度函数 v(t) 的图像为常数函数。

而 v(t) 的切线斜率为 0,说明加速度 a(t) 图像为常数函数,即加速度为定值。

图 8. 勾速直线运动:加速度、速度、距离函数图像

a = 0 m/s²ta (m/s²)常函数

Constant function

Linear functiontv (m/s)

线性函数

Linear functionts (m)

二次函数

再看另一例子。如图 9 所示,对于勾加速直线运动,距离函数 s(t) 对于时间 t 是一个二次函数。从图像上看,s(t) 在不同时间 t 位置,切线斜率不同。随着 t 增大,切线斜率不断增大。说明速度随时间递增。

图 9. 勾加速直线运动:加速度、速度、距离

a = 1 m/s²Constant functionta (m/s²)
Linear functiontv (m/s)
Quadratic functionts (m)

换句话说,对于勾加速直线运动,距离函数 s(t) 和速度在一定时间范围,比如 [t₁, t₂] 围成或包围的面积就是速度变化 s₂ - s₁。完成这个运算的数学工具就是第 18 章等介绍的定积分。简单来说,积分就是求面积、体积。

直从信息单位变化角度,如图 9 三幅图所示。加速度的单位为 m/s²,速度的单位为 m/s,距离的单位位 m。距离 (m) 随时间 (s) 的变化,单位上就是 m/s;速度 (m/s) 随时间 (s) 的变化,单位上就是 m/s/s,即 m/s²。同理,速度纵轴的单位为 m/s,横轴单位为 s,因此结果的单位为 m/s × s,即 m。

反向来看,加速度 (m/s²) 到速度 (m/s) 就是求面积的过程,加速度纵轴的单位为 m/s²,而横轴单位为 s,因此结果的单位为 m/s² × s,即 m/s。同理,速度纵轴的单位为 m/s,横轴单位为 s,因此结果的单位为 m/s × s,即 m。

⚠️

有次提醒大家,不管是加速度、还是微积分积分,注意数值单位。

函数导数定义

下面看一下函数导数的微切定义。

对于函数 y = f(x) 自变量 x 在 a 点处一个微小增量 Δx,会导致函数值增量 Δy = f(a + Δx) - f(a)。

当 Δx 趋向于 0 时,函数值增量 Δy 和自变量增量 Δx 比值的极限存在,则称 y = f(x) 在 a 点处可导 (function f of x is differentiable at a),这个极限值便是函数 f(x) 在 a 点处一阶导数值:

f'(a) = f'(x)|x=a = df(x)/dx|x=a = lim [f(a + Δx) - f(a)] / Δx
Δx→0
(12)

如图 10 所示,从几何角度看,随着 Δx 不断减小,割线逐渐接近切线。

图 10. 导数就是极限值

f(a)f(a + Δx)切线 (tangent line)x = aΔxΔy = f(a + Δx) - f(a)Δx decreases切线斜率 = f'(a)xf(x)Secant line

Δ 和 d 都是差 (difference) 的含义。但是,Δ 代表离散值,比如 Δx → 0;而 d 是精确值,比如 dx。白话说,dx 是 Δx 趋向于 0 的精确值。

如果函数 y = f(x) 在 x = a 可导 (differentiable) 则该函数在该点处连续 (continuous);但是,函数在某一点处连续并不意味着函数可导,如图 11 所示两种情况。

图 11. 函数在 x = a 不存在导数的两种情况

axf(x)
axf(x)
⚠️

有次注意,本书用 x₁、x₂、x₃ 等等表述变量,而不是 x、x̂、x̃ 等等。 如果某个函数 y = f(x) 在 x = 0 处求得大值,对应的一阶导数为 0,二阶导数为负。这一点对于理解函数的极值非常重要,本书第 19 章将深入介绍。

割线与切线

观察割线斜率如何随Δx减小而逼近切线斜率(导数)

(1, 1.0)(2.00, 4.00)00.511.5201234xf(x) = x²函数 f(x)割线切线 (k=2)

切线斜率(导数)

f'(x₀) = 2x₀
k = 2

调节Δx

Δx越小,割线越接近切线

割线信息

起点:(1, 1)
终点:(2.00, 4.00)
割线斜率:3.0000
与切线误差:1.0000

斜率公式

k = (y₁ - y₀) / (x₁ - x₀)

k = (f(x₀+Δx) - f(x₀)) / Δx

当Δx→0时,k→f'(x₀)

📊 导数的几何意义

割线斜率:两点连线的倾斜度

切线斜率:割线的极限,函数瞬时变化率

导数:f'(x₀) = lim(Δx→0) [f(x₀+Δx)-f(x₀)]/Δx

15.5 导数也是函数

导数也常被称作导函数或导数函数,因为导数也是函数。

图 12 所示函数曲线在不同点处切线斜率随着 x 变化。再次强调,函数 f(x) 对自变量 x 的一阶导数 f'(x) 也是一个函数,它的自变量也是 x。f'(x) 可以记作 f' prime of x。

图 12. 函数不同点处切线斜率随自变量 x 变化

xf(x)切线斜率随 x 变化

一阶导数

给定二次函数,f(x) = x²。下面利用 (12) 推导它的一阶导数:

f'(x) = lim [f(x + Δx) - f(x)] / Δx = lim [(x + Δx)² - x²] / Δx
Δx→0
= lim [2xΔx + Δx²] / Δx
Δx→0
= lim (2x + Δx) = 2x
Δx→0
(13)

几何角度看,f(x) = x² 相当于边长为 x 的正方形面积。如图 13 所示为当 x 增加 Δx 时,函数值变化对应正方形面积变化。x 到 x + Δx,正方形面积增加 2xΔx + Δx²。

图 13. 几何角度理解 f(x) = x² 的一阶导数

y = x²xx
⇒
xΔxxΔxΔx²xΔxx²
Δy
=
+
2xΔx+Δx²

根据导数定义,函数导数为比值 (2xΔx + Δx²)/Δx = 2x + Δx;当 Δx → 0 时,可以消去 Δx → 0 项。

类似地,推导 f(x) = x^n 的导数,n 为大于 1 的正整数:

f'(x) = lim [f(x + Δx) - f(x)] / Δx = lim [(x + Δx)^n - x^n] / Δx
Δx→0
= lim [x^n + nx^(n-1)Δx + ... + Δx^n - x^n] / Δx
Δx→0
= lim [nx^(n-1) + n(n-1)/2 · x^(n-2)Δx + ... + Δx^(n-1)] = nx^(n-1)
Δx→0
(14)

举个例子

图 14 (a) 所示函数如下:

f(x) = x² + 2
(15)

根据前文推导,它的一阶导数解析式如下:

f'(x) = 2x
(16)

如图 14 (b) 所示,(15) 这个二次函数的一阶导数是像为一条斜线。

x < 0 时,x 增大 f(x) 减小,此时函数导数为负。x > 0,x 增大 f(x) 增大,函数导数为正。值得注意的是 x = 0,f(x) 取得最小值 (minimum),此处函数 f(x) 导数值为 0。

图 14. 二次函数、一阶导数、二阶导数

(a) 原函数 | f(x) = x² + 2
xf(x)
(b) 一阶导数 | f'(x) = 2x
xf'(x)
(c) 二阶导数 | f''(x) = 2
xf''(x)2

表 2 总结了常用函数导数及图像,请大家自行绘制这些图像。

表 2. 常用函数导数及图像

函数函数图像举例一阶导数一阶导数图像举例
常数函数
f(x) = C
f(x) = 1
f'(x) = 0
f'(x) = 0
一次函数
f(x) = ax
f(x) = x + 1
f'(x) = a
f'(x) = 1
二次函数
f(x) = ax² + bx + c
f(x) = x²
f'(x) = 2ax + b
f'(x) = 2x
幂函数
f(x) = x^n
f(x) = x³
f'(x) = nx^(n-1)
f'(x) = 3x²
正弦函数
f(x) = sin x
f(x) = sin(x)
f'(x) = cos x
f'(x) = cos(x)
余弦函数
f(x) = cos x
f(x) = cos(x)
f'(x) = -sin x
f'(x) = -sin(x)
指数函数
f(x) = b^x
(b > 0, b ≠ 1)
f(x) = 2^x
f'(x) = ln b · b^x
f'(x) = ln(2)·2^x
自然指数函数
f(x) = e^x = exp(x)
f(x) = exp(x)
f'(x) = e^x = exp(x)
f'(x) = exp(x)
对数函数
f(x) = log_b x
(x > 0, b > 0, b ≠ 1)
f(x) = log₂(x)
f'(x) = 1/(ln b · x)
f'(x) = 1/(ln(10)x)
自然对数函数
f(x) = ln x
(x > 0)
f(x) = ln(x)
f'(x) = 1/x
f'(x) = 1/x
高斯函数
f(x) = exp(-x²)
f(x) = exp(-x²)
f'(x) = -2x·exp(-x²)
f'(x) = -2x·exp(-x²)

二阶导数

(15) 这个二次函数的二阶导数是其一阶导数的一阶导数。

f''(x) = 2
(17)

如图 14 (c) 所示,(15) 这个二次函数的二阶导数图像为一条水平线,即常数函数。

图 15 所示为另一高斯函数以及其一阶导数和二阶导数函数图像。

💡

令易发现,函数 f(x) 在 x = 0 处取得最大值,对应的一阶导数为 0,二阶导数为负。这一点对于理解函数的极值非常重要,本书第 19 章将深入介绍。

一阶、二阶导数可视化

观察函数、一阶导数(斜率)和二阶导数(曲率)的关系

原函数: f(x) = x² - 2
f(x) = x² - 2f(x)
一阶导数: f'(x) = 2x
f'(x) = 2xf'(x)
二阶导数: f''(x) = 2
f''(x) = 2f''(x)

选择函数

导数关系

原函数 f(x)
函数值本身
一阶导数 f'(x)
• f'(x) > 0: 递增
• f'(x) < 0: 递减
• f'(x) = 0: 极值点
二阶导数 f''(x)
• f''(x) > 0: 凹向上
• f''(x) < 0: 凹向下
• f''(x) = 0: 拐点

观察要点

✓ f'(x)的零点对应f(x)的极值

✓ f'(x)的正负对应f(x)的增减

✓ f''(x)的正负对应f(x)的凹凸

✓ f''(x)是f'(x)的变化率

🎯 导数的意义

几何意义:切线斜率,瞬时变化率

物理意义:速度是位移的导数,加速度是速度的导数

应用:优化问题、曲线分析、变化趋势预测

章节总结

关键要点

🍎
牛顿
微积分创始人
∞
极限
ε-δ定义
📈
导数
瞬时变化率
f''
高阶导数
曲率与拐点

核心概念

  • ▸牛顿:提出万有引力定律、牛顿运动定律,与莱布尼茨共同发明微积分
  • ▸极限:ε-δ定义确保了微积分的严谨性,邻域和去心邻域是理解极限的关键
  • ▸导数:f'(a) = lim(Δx→0) [f(a+Δx)-f(a)]/Δx 表示切线斜率和瞬时变化率
  • ▸一阶导数:f'> 0递增,f'< 0递减,f'=0可能有极值
  • ▸二阶导数:f''> 0凹向上,f''< 0凹向下,f''=0可能有拐点

🎯 实际应用

物理学

速度是位置对时间的导数,加速度是速度对时间的导数。

经济学

边际成本、边际收益都是经济函数的导数,用于优化决策。

机器学习

梯度下降算法使用损失函数的导数来更新模型参数。

优化问题

通过导数为零的条件,找到函数的极大值和极小值。