← 返回Book 3目录
第14章

数列与级数

Sequences & Series

等差、等比数列与收敛性

📚 本章内容

本章介绍数列与级数的基本概念,从芝诺悖论引入数列思想,讨论数列的分类方法, 详细讲解等差数列的性质和应用,介绍求和符号Σ的使用,以及数列极限在估算圆周率和微积分中的重要应用。

14.1
芝诺悖论:阿基里斯追不上乌龟
14.2
数列分类
14.3
等差数列:相邻两项差相等
14.4
用正多边形估算π
14.6
累加:大写西格玛
14.7
数列极限:微积分的基石
14.8
数列极限估算圆周率

14.1 芝诺悖论:阿基里斯追不上乌龟

芝诺悖论(Zeno's paradoxes)中最有名的例子莫过于"阿基里斯追乌龟"。

阿基里斯(Achilles)是古希腊神话中的勇士,可谓飞毛腿。而乌龟的奔跑速度仅仅是阿基里斯的 1/10。赛跑比赛时,阿基里斯让乌龟在自己前面 100 米处起跑,他自己在后面追。

根据芝诺悖论,阿基里斯不可能追上乌龟。

芝诺的逻辑是这样的,赛跑过程中,阿基里斯必须先追到 100 米处,而此时乌龟已经向前爬行了 10 米。此时,相当于乌龟还是领先阿基里斯 10 米。这算是一个新的起跑点。

阿基里斯继续追乌龟,当他跑了 10 米之后,乌龟则又向前爬了 1 米。

于是,阿基里斯还需要再追上 1 米,于此同时乌龟又向前爬了 1/10 米。

如此往复,结论是阿基里斯永远也追不上乌龟。

为了方便可视化,假设乌龟爬行速度是阿基里斯奔跑速度的 1/2。设定,阿基里斯奔跑速度 10 m/s,神龟爬(飞)行速度 5 m/s。

图 1. 阿基里斯追乌龟

t₀
🏃
100
🐢
t₁
100
🏃
50
🐢
t₂
100
🏃
🐢

t₁ = 10 s,阿基里斯跑了 10 s,追到 100 m,而这段时间,乌龟向前跑了 50 m。因此,此刻乌龟领先优势为 50 m。

t₂ = 10 + 5 s,阿基里斯又跑了 5 s,又追了 50 m。5 s 时间,乌龟跑了 25 m,而此时乌龟领先优势为 25 m。

t₃ = 10 + 5 + 2.5 s,阿基里斯又跑了 2.5 s,再追了 25 m。此刻乌龟领先优势为 12.5 m。

t₄ = 10 + 5 + 2.5 + 1.25 s,阿基里斯再追了 12.5 m,此刻乌龟领先优势为 6.25 m。

时间无限可分,距离无限可分,上述过程无穷尽也。似乎阿基里斯永远也追不上乌龟。

同向追赶问题

看到这里,大家一定会有不同意见。

这介绍就是一道小学算数的"同向追赶问题"。距离之差 (100 m) 除以速度之差 (5 m/s) 就等于阿基里斯追上乌龟所需要的时间 20 s。而 20 s时间,阿基里斯一共跑了 200 m。

这种解题思路自然正确。但是,解题过程的前提条件是,假设阿基里斯恰好追上了乌龟!

其实技巧当然算要。实际上,看似无比正确的阿基里斯追乌龟问题,其中蕴含的数学思想才是内核。

图 2. 小学数学同向追赶问题

🏃
10 m/s
Δx = 100 m
Δv = 5 m/s
🐢
5 m/s

一尺之棰,日取其半,万世不竭

下面用数列这个数学工具来分析上述问题。数列(sequence)是按接照一定规则排列的一列数。

将图 1 中每段时间隔写成一个数列:

10, 5, 2.5, 1.25, 0.625, 0.3125, 0.15625, 0.078125,...
(1)

图 3 (a) 用火柴棍图可视化 (1) 数列。

追赶时间的逐项和也写成一个数列累加:

10, 15, 17.5, 18.75, 19.375, 19.6875, 19.84375, 19.921875,...
(2)

图 3 (b) 所示火柴棍图如 (2) 数列。可以发现上述数列似乎逐渐趋向于 20,即阿基里斯追上乌龟所需要的时间。

图 3. 时间间隔序列和时间逐项和数列

(a) 时间间隔

(b) 累积时间

将阿基里斯在不同时刻之间奔跑的距离写成一列数:

100, 50, 25, 12.5, 6.25, 3.125, 1.5625, 0.78125,...
(3)

容易发现,这个数列就是大家熟悉的等比数列。上述数列的逐项和构成了一个新数列:

100, 150, 175, 187.5, 193.75, 196.875, 198.4375, 199.21875,...
(4)

可以发现上述数列似乎逐渐趋向于 200,即阿基里斯追上乌龟总共奔跑的距离。

这体现的正是庄子的哲学观点——"一尺之棰,日取其半,万世不竭"。如图 4 所示,面积为 1 的正方形,每次取一半。如此往复,没有尽头。

图 4. 日取其半,万世不竭

14.2 数列分类

几种常见的数列:

◂ 等差数列(arithmetic sequence 或 arithmetic progression),图 5 (a) 为递增等差数列,图 5 (b) 为递减等差数列;

◂ 等比数列(geometric sequence 或 geometric progression),图 5 (c) 为递增等比数列,图 5 (d) 为递减等比数列;

◂ 正负相间数列(sign sequence 或 bipolar sequence),如图 5 (e) 和 (f) 所示;

◂ 斐波那契数列(Fibonacci sequence),如图 5 (g) 所示;

◂ 随机数列(random sequence),如图 5 (h) 所示。

此外,根据数列项的数量,数列可以分为有限项数列(finite sequence)和无限项数列(infinite sequence)。

图 5. 几种数列

(a) 递增等差

(b) 递减等差

(c) 递增等比

(d) 递减等比

(e) 正负相间1

(f) 正负相间2

(g) 斐波那契

(h) 随机数列

等比数列探索器

探索不同公比下的等比数列行为

Index, kTerm, aₖq = 1.1

数列公式

aₖ = a · qᵏ⁻¹
通项公式
a = 1 (首项)
n = 50 (项数)

选择公比 q

行为分类

q > 1: 指数增长
q = 1: 常数数列
0 < q < 1: 指数衰减
q < 0: 振荡数列

所有公比对比

q = 1.1
q = 1
q = 0.9
q = -0.9
q = -1
q = -1.1

📊 等比数列特征

指数增长 (q >1): 快速增大

指数衰减 (0<q<1): 逐渐趋近0

常数列 (q=1): 所有项相等

振荡 (q<0): 正负交替

14.3 等差数列:相邻两项差相等

等差数列定义

等差数列(arithmetic progression,也称 arithmetic sequence)指相邻两项差值相等的数列。

等差数列定义如下:

a₁, a₂, a₃, ..., aₙ
aₖ₊₁ - aₖ = d,k = 1, 2, 3, ..., n-1

其中,d 为公差(common difference)。

公差可正可负。公差为正,等差数列递增;公差为负,等差数列递减;公差为零,等差数列为常数列。

通项公式

等差数列的通项公式(general term)如下:

aₖ = a₁ + (k - 1)d

其中,a₁ 为首项,d 为公差,k 为项数(k = 1, 2, 3, ...)。

例如,等差数列 2, 5, 8, 11, 14, ... 的首项 a₁ = 2,公差 d = 3,通项公式为 aₖ = 2 + (k - 1)×3 = 3k - 1。

图 6. 等差数列可视化

递增等差数列 (d > 0)

1
2
3
4
5
6
7
8

递减等差数列 (d < 0)

1
2
3
4
5
6
7
8

常数列 (d = 0)

1
2
3
4
5
6
7
8

前 n 项和公式

等差数列前 n 项和记作 Sₙ,计算公式有两种形式:

形式一:首项 + 末项

Sₙ = n(a₁ + aₙ) / 2

形式二:首项 + 公差

Sₙ = na₁ + n(n-1)d / 2

这两个公式本质相同,因为 aₙ = a₁ + (n - 1)d。

例如,求等差数列 2, 5, 8, 11, 14 的前 5 项和:S₅ = 5×(2 + 14) / 2 = 40。

等差中项

如果三个数 a, b, c 成等差数列,那么 b 叫做 a 和 c 的等差中项(arithmetic mean)。

b = (a + c) / 2

等差中项实际上就是两个数的算术平均值。

图 7. 等差数列性质图示

线性增长

1234567

前 n 项和(二次增长)

1234567

等差数列的应用

📊
时间序列

等差数列常用于描述均匀变化的时间序列,如匀速运动的位移。

💰
财务计算

等额本金还款方式中,每期还款额构成等差数列。

🎯
算法分析

循环嵌套的时间复杂度分析中,经常用到等差数列求和。

📐
几何问题

高斯小时候巧算 1+2+...+100,利用的就是等差数列求和公式。

等差数列探索器

调节首项a和公差d,观察数列和累积和的变化

181623300713202633Index, kTerm, aₖ

数列公式

aₖ = a + (k-1)d
通项公式
Sₙ = n(2a + (n-1)d)/2
前n项和公式

参数设置

视图模式

计算结果

前n项和:465.00
第n项:30.00

📈 等差数列特征

• 线性增长:每项比前一项增加固定的公差d

• 图形特征:在坐标系中,各项在一条直线上

• 累积和:二次函数增长(d≠0时)

• 求和公式:Sₙ = n·(首项 + 末项)/2

14.4 用正多边形估算π

古希腊数学家阿基米德的方法:用圆内接和外接正多边形的周长从上下两侧逼近圆周长。 随着边数n增加,上界和下界都趋向π。

下界(内接): n·sin(π/n)
上界(外接): n·tan(π/n)

用正多边形估算圆周率

观察π的上界和下界如何随着多边形边数增加而收敛

速度:
边数 n:6
π边数 nπ估计值1020304050

真实值

π = 3.14159265

下界估计(内接多边形)

公式:n × sin(π/n)
值:3.00000000
误差:0.14159265

上界估计(外接多边形)

公式:n × tan(π/n)
值:3.46410162
误差:0.32250896

估计区间

3.000000 < π < 3.464102
区间宽度:0.46410162
收敛进度
💡 数学原理:随着正多边形边数n趋向无穷,内接多边形周长从下方逼近2π,外接多边形周长从上方逼近2π。 当n→∞时,lim[n×sin(π/n)] = π,lim[n×tan(π/n)] = π。

14.6 累加:大写西格玛

求和符号

求和符号(summation symbol)——大写西格玛 Σ (capital sigma)——是表达求和的便捷记法。

以下式为例,aᵢ 指这求和中的每一项。下角标 i 代表索引(index variable 或 index),也叫序号:

∑ aᵢ = a₁ + a₂ + ⋯ + aₙ₋₁ + aₙ
(19)

Σ 下侧和上侧的数字分别代表了求和索引下限(lower bound of summation)和求和索引上限(upper bound of summation)。如图 11 所示。

图 11. 大写西格玛求和记号

∑aᵢi=1nUpper limit (sum endswith this number)Summation symbolTermLower limit (sum startswith this number)Index of summation

常用表达索引的字母有 i、j、k、m、n 等。采用什么索引字母并不影响求和结果。比如:

∑ aᵢ = ∑ aⱼ = ∑ aₖ
(20)

Σ 中索引上下限可以都是具体正整数。比如:

∑ aᵢ = a₁ + a₂ + a₃ + a₄ + a₅
(21)

Σ 中索引上下限也可以都是代数符号。比如:

∑ aᵢ = aₘ + aₘ₊₁ + ⋯ + aₙ₋₁ + aₙ
(22)

Σ 的索引也可以是满足集合运算的标签:

∑ aᵢ
(23)

降维

如图 12 所示,当索引 i 在一定范围变化时,比如 1 ~ n,数列 {aᵢ} (i = 1 ~ n) 本身相当于一个数组,而索引 i 像是为向。

对 {aᵢ} (i = 1 ~ n) 求和,相当于在 i 方向上将数组"压扁",得到一个标量 ∑ aᵢ。∑ aᵢ 除以 n(也就是数列元素个数),便得到平均数。

从空间角度来看,数列 {aᵢ} 是一维数组,索引 i 就是它的维度,而求和运算 ∑ aᵢ 相当于千降维,得到的"和"只是一个数值,没有维度。

图 12. 从数组角度看求和

a1
a2
a3
a4
↓ i
Σ
∑ aᵢ

线性代数运算

看到这里,大家是否想得到,此处第 12 数列 {aᵢ} 相当于一个列向量 a,即:

a = [a₁, a₂, ⋮, aₙ]ᵀ
(24)

本书第 2 章曾讲向量和矩阵时提到过,对列向量 a 所有元素求和可以利用如下向量内积或矩阵运算得到。

∑ aᵢ = I · a = a · I = [a₁, a₂, ⋮, aₙ]ᵀ [1, 1, ⋯, 1]ᵀ = aᵀ I = aᵀ I = [1, 1, ⋯, 1] [a₁, a₂, ⋮, aₙ]ᵀ
(25)

图 13. 从向量内积和矩阵乘法角度看求和

1
1
1
1
·
aᵢ
aᵢ
aᵢ
aᵢ
=
@
aᵢ
aᵢ
aᵢ
aᵢ
·
1
1
1
1
@
1
=
∑ aᵢ

下面介绍几个有关求和和符号的重要法则。

14.7 数列极限:微积分的一块基石

数列极限

数列 {aₙ} 极限存在必满足定义如下。

设 {aₙ} 为一数列。如果存在常数 C。对于任意给定的正数 ε,不管 ε 有多小,总存在正整数 N,使得 n > N 时,如下不等式均成立。

|aₙ - C| < ε
(30)

那么我称数 C 是数列 {aₙ} 的极限。也可以说,数列 {aₙ} 收敛于 C:

lim aₙ = C
(31)

其中,lim 意为"limit"的缩写。n → ∞ 表达"n 趋向无穷"。

如果,极限 C 不存在,则称数列 {aₙ} 极限不存在。

几个例子

给定如下等比数列:

aₙ = 1/2ⁿ
(32)

当 n 趋向于无穷,数列值趋向于零:

lim aₙ = lim 1/2ⁿ = 0
(33)

图 28. 收敛数列

(a)

(b)

(c)

对于如下数列,当 n 趋向于无穷时,数列值恒为 0,不定性极限值:因此,不存在极限:

aₙ = (-1)ⁿ
(34)

对于如下数列,当 n 趋向于无穷时,数列值急速增加至无穷,即发散:因此,也不存在极限:

aₙ = 2ⁿ
(35)

收敛的数列,可以由下而上收敛、且上而下收敛、振荡收敛。

图 28 给出了三个收敛数列的例子。图 28 (c) 对应的数列如下:

lim (1 + 1/n)ⁿ = e
(36)

数列和的极限

此外,数列之和也可以收敛,下面就是一个收敛的数列之和。数列之和随 n 变化趋势如图 29 (a) 所示。

1 + 1/2 + 1/3 + 1/4 + 1/5 + ⋯ + ∑ 1/n = 2
(37)

如图 29 (b) 所示,以下数列之和也是收敛数于 1:

1/(1×2) + 1/(2×3) + 1/(3×4) + 1/(4×5) + 1/(5×6) + ⋯ + ∑ 1/(n(n+1)) = 1
(38)

如图 29 (c) 所示,目对于数反数 e 也可以用数列和的极限来求出:

∑ 1/n! = 1 + 1/(1×2) + 1/(1×2×3) + 1/(1×2×3×4) + ⋯ = e
(39)

但是 1/n 这个数列之和并非一顶级而元素之和:

1 + 1/2 + 1/3 + 1/4 + 1/5 + ⋯ + ∑ 1/n
(60)

如果在以上数列中每一项都加元素 0 之类,这个数列之和收敛:

1 - 1/2 + 1/3 - 1/4 + 1/5 - ⋯ + ∑ (-1)ⁿ⁺¹/n = ln(2)
(61)

图 29. 数列和的收敛

(a)

(b)

(c)

数列收敛演示

观察不同数列的部分和如何收敛到极限值

Limit = 2.7181251020501000.00.51.01.52.02.53.0n (对数刻度)部分和 Sₙ

当前数列

阶乘倒数
∑(1/k!)
极限值: e ≈ 2.718

选择数列

收敛说明

部分和: Sₙ = ∑ₖ₌₀ⁿ aₖ

收敛: lim(n→∞) Sₙ = L

红色虚线: 表示极限值

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

🎯 收敛速度对比

几何级数

指数快速收敛

调和级数变形

较快收敛

阶乘倒数

极快收敛到e

14.8 数列极限估算圆周率

本书第 3 章介绍,古代数学家通过割圆法不断增加圆周率的估算精度。随着数学方法的发展,很多数学家发现可以用数列和来逼近圆周率。这是圆周率估算的一次颠覆性进步。

比如莱布尼茨发现,如下数列之和逼近 π/4:

π/4 ≈ 1 - 1/3 + 1/5 - 1/7 + ⋯ + (-1)ⁿ⁻¹/(2n-1)
(62)

即

π = 4∑ (-1)ᵏ⁻¹/(2k-1)
(63)

图 30. 数列之和逼近圆周率

πIndex, kApproximation of π2.42.83.23.64.0120406080100

Bk3_Ch14_06.py 绘制图 30。

图 30 所示为上式随着 k 不断增加逼近圆周率的值,随着这两个数学工具是微积分的基础。

大家在学习大百格玛求和时,请务必从几何、数据、维度、矩阵这四个视角去分析和运算;不然,复杂层层叠叠和运算会让大家垂头转向。

此外,有了数列和极限这两个数学概念,我们在圆周率估算方法上又进一步。

章节总结

关键要点

📈
芝诺悖论
无限分割
📊
数列分类
等差与等比
∑
求和符号
大写西格玛Σ
🎯
数列极限
微积分基石
π
估算圆周率
极限逼近

核心概念

  • ▸芝诺悖论:通过无限分割时间和空间,引出数列和极限的思想,阿基里斯追乌龟问题
  • ▸等差数列:aₖ = a + (k-1)d,前 n 项和 Sₙ = n(2a+(n-1)d)/2,线性增长特性
  • ▸等比数列:aₖ = a·qᵏ⁻¹,q的绝对值决定增长或衰减,符号决定是否振荡
  • ▸求和符号Σ:∑ᵢ₌₁ⁿ aᵢ = a₁ + a₂ + ⋯ + aₙ,降维操作,可用向量内积和矩阵运算表示
  • ▸数列极限:lim(n→∞) aₙ = C,当 |aₙ - C| < ε 对任意 ε > 0 成立时,数列收敛于C
  • ▸级数收敛:几何级数 ∑(1/2ᵏ) = 2,阶乘倒数级数 ∑(1/k!) = e ≈ 2.718
  • ▸莱布尼茨公式:π = 4∑ (-1)ᵏ⁻¹/(2k-1),用交替级数估算圆周率
  • ▸正多边形估算π:n·sin(π/n) < π < n·tan(π/n),n→∞ 时两边都趋向π

🎯 实际应用

微积分基础

数列极限是微积分的核心概念,连续性、导数和积分都建立在极限基础上。

算法分析

求和符号Σ用于分析算法时间复杂度,如等差数列和为O(n²),循环嵌套分析。

线性代数

求和可用向量内积和矩阵乘法表示,连接离散数学和线性代数。

物理常数

自然底数e由阶乘倒数级数定义,圆周率π用莱布尼茨级数估算。

数值计算

用级数展开计算特殊函数值,如sin、cos、exp等,是数值分析的基本方法。

机器学习

梯度下降、批量处理、损失函数都大量使用求和符号和极限概念。