迭代数据何时值得相信?¶
先备知识¶
有限极限的证明必须给出:对任意 \(\varepsilon>0\),存在 \(N\),使所有 \(n\ge N\) 都满足误差要求。有限前缀只能展示有限项;再长的表格也不能直接覆盖整个尾部。若已经证明显式公式,则可以用 \(\varepsilon\)--\(N\) 定义把公式变成证书。
学习目标¶
完成本单元后,你应能:
- 用有限迭代表提出明确、可反驳的长期猜想;
- 比较稳定靠近、周期振荡和缓慢变化三种外观;
- 解释小增量、图像与有限前缀为何都不是收敛证明;
- 把数值探索、代数结构和 \(\varepsilon\)--\(N\) 证书分成不同证据层级。
牵引问题¶
下面三条递推都很短:
计算器可以迅速输出很多位小数。什么时候这些数据值得相信?更准确地说:它们能支持什么结论,又不能支持什么结论?
探索与猜想¶
统一取初值 \(x_1=1\),手算前六项(小数取六位):
| \(n\) | A:\(1/(2+x_n)\) | B:\(1-x_n\) | C:\(x_n/(1+x_n)\) |
|---|---|---|---|
| 1 | 1.000000 | 1.000000 | 1.000000 |
| 2 | 0.333333 | 0.000000 | 0.500000 |
| 3 | 0.428571 | 1.000000 | 0.333333 |
| 4 | 0.411765 | 0.000000 | 0.250000 |
| 5 | 0.414634 | 1.000000 | 0.200000 |
| 6 | 0.414141 | 0.000000 | 0.166667 |
合理的猜想分别是:A 在某个约为 \(0.4142\) 的值附近交替靠近;B 在 \(0\) 与 \(1\) 之间周期振荡;C 可能等于 \(1/n\) 并趋于 \(0\)。表格本身没有证明任何一个“对所有充分大的 \(n\)”的陈述,但它指出了下一步应寻找的代数关系或反例。
概念与理论¶
数据、猜想与证书¶
本章把证据分成三层:
- 有限数据: 用于发现模式、检查计算、寻找反例候选;
- 结构命题: 用代数或归纳证明每个指标都满足某个公式或性质;
- 极限证书: 对任意误差构造门槛,并控制整个尾部。
从第 1 层跳到第 3 层是逻辑缺口。可靠流程是:先让数据提出可检验猜想,再寻找第 2 层结构,最后按定义完成第 3 层证明。
三个常见假证书¶
小增量不是证书。 \(|a_{n+1}-a_n|\) 很小只比较相邻两项,不说明它们靠近某个固定实数。例如 \(a_n=\sqrt n\) 满足
给定 \(\varepsilon>0\),取正整数 \(N>1/\varepsilon^2\);若 \(n\ge N\),上式严格小于 \(\varepsilon\),所以相邻增量趋于 \(0\)。但 \(a_n\) 无界,所以不可能收敛到有限实数。
图像变平不是证书。 像素宽度、纵轴尺度和浮点舍入都可能隐藏缓慢变化或小幅振荡;图像只显示有限窗口。
长前缀不是证书。 任意有限前缀之后都可以另行接上完全不同的尾部。例如一列前一百万项全为 \(0\),以后恒为 \(1\);前缀再稳定也不决定最终行为。
递推 C 的完整证书¶
定理。 若 \(x_1=1\) 且 \(x_{n+1}=x_n/(1+x_n)\),则 \(x_n=1/n\),因而 \(x_n\to0\)。
障碍。 表格中的 \(1,1/2,1/3,\ldots\) 只是模式;必须证明公式覆盖全部正整数,并从定义证明极限。
路线。 先归纳证明显式式 \(x_n=1/n\),再使用已证明的倒数数列 \(\varepsilon\)--\(N\) 论证。
逐步证明。 当 \(n=1\) 时,\(x_1=1=1/1\)。假设某个 \(n\ge1\) 有 \(x_n=1/n\),则
由归纳法,\(x_n=1/n\) 对所有 \(n\in\mathbb N\) 成立。任取 \(\varepsilon>0\),由阿基米德性质取整数 \(N>1/\varepsilon\)。若 \(n\ge N\),则
所以 \(x_n\to0\)。\(\square\)
假设使用。 初值启动归纳;递推式完成归纳步骤;阿基米德性质提供误差门槛。
常见错误。 只从前三项猜出 \(1/n\) 就直接引用其极限,漏掉了“递推确实永远产生 \(1/n\)”这一步。
方法迁移。 当递推表呈现简单模式时,先用归纳把猜想升级为结构命题,再用定义处理极限。
递推 B 的振荡证书¶
若 \(x_1=1\) 且 \(x_{n+1}=1-x_n\),则代入两次得
因此奇数项恒为 \(1\),偶数项恒为 \(0\)。要证明它没有有限极限,可对任意候选 \(L\) 注意:\(0\) 与 \(1\) 相距 \(1\),至少一个到 \(L\) 的距离不小于 \(1/2\);否则三角不等式将给出 \(1<1\)。每个尾部都有奇数项和偶数项,故取 \(\varepsilon_L=1/2\),每个尾部都出现离 \(L\) 至少 \(1/2\) 的项。于是它不收敛于任何有限 \(L\)。
这里有限表提示了周期,真正的证书是恒等式 \(x_{n+2}=x_n\) 加上极限定义的否定。
递推 A 目前能说到哪里¶
对 \(x_1=1\)、\(x_{n+1}=1/(2+x_n)\),可归纳证明 \(x_n>0\),且 \(n\ge2\) 时 \(0<x_n<1/2\)。若某个数 \(\ell\) 在一次更新后保持不变,它必须满足
其正解为 \(\sqrt2-1\)。表格因而提示“迭代可能趋于这个不动值”的猜想,但解出不动值不等于证明迭代收敛。本章尚未获得把递推中的极限直接穿过分式所需的法则,也没有给出控制任意尾部误差的估计,因此此处只能记录猜想,不能宣布证明完成。
例题与迁移¶
例:用短程序生成而不裁决¶
下面的 Python 只复现有限迭代表:
def iterate(step, x, count):
values = [x]
for _ in range(count - 1):
x = step(x)
values.append(x)
return values
print(iterate(lambda x: 1 / (2 + x), 1.0, 8))
改变 count 可以扩大观察窗口,却不会把有限循环变成对无限尾部的证明。程序的角色是检查手算、发现模式和暴露反例候选。
例:显示精度制造的“稳定”¶
若只显示三位小数,\(1/n\) 在很大一段范围内可能连续打印为 0.000。这不表示后续精确值都等于 \(0\);事实上每个 \(1/n\) 都是正数。相反,递推 B 若纵轴缩放过大,\(0\) 与 \(1\) 的跳动也可能视觉上变小。舍入值和绘图尺度都不能替代精确不等式。
即时检验与回望¶
- 对递推 A 解出方程 \(\ell=1/(2+\ell)\),是否已经证明迭代收敛于 \(\ell\)?
答案
没有。方程只筛选“假如存在极限时可能的候选值”,没有证明极限存在,也没有给出任意误差对应的尾部门槛。
- 为什么 \(|a_{n+1}-a_n|\to0\) 不能单独证明 \((a_n)\) 收敛?
答案
它只说明相邻步长变小,不说明总位置靠近某个固定实数。\(a_n=\sqrt n\) 的相邻差趋于 \(0\),但数列无界,因此没有有限极限。
习题与答案¶
习题 1:为三条递推分类证据¶
对 A、B、C 的前六项表,分别写出一个“数据支持的猜想”和一个“表格尚未证明的事项”。
答案
A 猜想趋于约 \(0.4142\),但表格未证明极限存在;B 猜想在 \(0,1\) 间周期振荡,但表格未证明所有后续项保持周期;C 猜想 \(x_n=1/n\) 并趋于 \(0\),但表格既未证明显式公式覆盖所有 \(n\),也未给出任意误差的门槛。
习题 2:证明两周期¶
设 \(x_{n+1}=1-x_n\)。证明 \(x_{n+2}=x_n\),并判断什么初值会使数列恒定。
答案
直接代入得 \(x_{n+2}=1-x_{n+1}=1-(1-x_n)=x_n\)。若要恒定,须 \(x_1=1-x_1\),即 \(x_1=1/2\);此时每项都是 \(1/2\)。其他初值在 \(x_1\) 与 \(1-x_1\) 两值之间交替。
习题 3:由递推反推显式式¶
设 \(x_1=1/2\) 且 \(x_{n+1}=x_n/(1+x_n)\)。猜测并证明显式公式,再证明其极限。
答案
猜测 \(x_n=1/(n+1)\)。初值成立;若 \(x_n=1/(n+1)\),则
归纳得公式。给定 \(\varepsilon>0\),取整数 \(N>1/\varepsilon\);\(n\ge N\) 时 \(|x_n|=1/(n+1)<1/n\le1/N<\varepsilon\),故 \(x_n\to0\)。
习题 4:长前缀反例¶
给定正整数 \(K\),构造两个前 \(K\) 项完全相同、但一个收敛于 \(0\)、另一个收敛于 \(1\) 的数列。
答案
令 \(a_n=0\) 对所有 \(n\);令
两列前 \(K\) 项相同。\(a_n\to0\);而 \(b_n\) 从 \(K+1\) 项起恒为 \(1\),所以 \(b_n\to1\)。任何固定长度的前缀都不能决定极限。
习题 5:审查一份数值论证¶
有人说:“我画了前 \(10^5\) 项,曲线已经变平,而且最后两项相差小于 \(10^{-12}\),所以数列收敛。”指出缺失的逻辑,并写出真正需要证明的命题。
答案
图像和最后一步差只涉及有限信息,既未指定候选极限 \(L\),也未控制第 \(10^5\) 项以后的所有项。真正需要证明的是:存在某个 \(L\in\mathbb R\),使
若先从数据猜出 \(L\),仍须通过代数估计或结构定理构造这个 \(N\)。
常见误区与后续¶
- 把候选值当存在性证明: 解递推的形式平衡方程,只能筛选可能极限。
- 把计算长度当量词: 再大的有限
count也不能代表“所有 \(n\ge N\)”。 - 把相邻差小当作靠近固定值: 缓慢漂移仍可能无界。
- 把舍入后的相等当精确相等: 显示位数会隐藏非零误差。
- 让代码承担它没有证明的结论: 代码适合生成数据;收敛结论需要覆盖无限尾部的数学证书。
本单元没有新增生产算法。递推 A 的收敛性将在后续章节获得足够理论工具后再证明;此时最可靠的结论是:数据提出猜想,定义规定证明债务。