第 3 章 极限
学习目标
- 理解数列极限与函数极限的含义
- 掌握极限的四则运算法则
- 理解无穷小与无穷大
- 掌握夹逼定理与两个重要极限
- 会用 NumPy 数值验证极限
3.1 数列的极限:越走越近,但不一定到达
第 2 章反复出现一个动作:「让 越来越小,看结果逼近哪个数」。这一章把这个动作正式化,它叫极限。
先从最简单的对象开始:数列。把整数 按规则排成一串数:
这一串数越来越接近 0。虽然每一项都不是 0,但想让它多接近 0 都行:想让 与 0 的距离小于 ,只要取 ;想让距离小于 ,取 。这种「要多接近有多接近」,就叫收敛。
数列极限:若对任意给定的正数 (可以任意小),都存在正整数 ,使得当 时,有
则称数列 的极限是 ,记作 。
直觉版本:无论你给多小的误差 , 从某一项之后就一直待在这个误差范围内。注意两个细节:
- 只要求「从某一段之后」,前面几项怎么跳都无所谓,极限看的是尾巴;
- 可以永远不等于 ——极限是「逼近的目标」,不是「必须到达的终点」。
for n in range(1, 8):
print(f"n = {n} a_n = {1/n:.6f}")n = 1 a_n = 1.000000
n = 2 a_n = 0.500000
n = 3 a_n = 0.333333
n = 4 a_n = 0.250000
n = 5 a_n = 0.200000
n = 6 a_n = 0.166667
n = 7 a_n = 0.1428573.2 函数极限:自变量逼近某一点
数列的自变量 只能往无穷大走。函数更丰富:自变量 可以逼近任何一点 。
函数极限:设函数 在 附近有定义(可以不定义在 本身),若当 无限接近 但 时, 无限接近常数 ,就记作
严格定义:对任意 ,都存在 ,使得当 时,有 。
严格定义里的 是「允许 偏离 多远」, 是「要求 离 多近」:先给定任意小的 ,总能找到足够小的 ,让 在 的这个邻域内时函数值全部落在 的 范围内。这保证「接近 就接近 」,没有任何反例。
验证 在 时的极限是 4,左右两边都逼近:
for h in [1, 0.1, 0.01, 0.001, -0.001, -0.01, -0.1, -1]:
x = 2 + h
print(f"x = {x:7.3f} f(x) = {x**2:7.4f}")x = 3.000 f(x) = 9.0000
x = 2.100 f(x) = 4.4100
x = 2.010 f(x) = 4.0401
x = 2.001 f(x) = 4.0040
x = 1.999 f(x) = 3.9960
x = 1.990 f(x) = 3.9601
x = 1.900 f(x) = 3.6100
x = 1.000 f(x) = 1.0000左边()与右边()同时逼近 4,所以极限存在且等于 4。

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(1.2, 2.8, 400)
y = x ** 2
fig, ax = plt.subplots(figsize=(7, 5.5))
ax.plot(x, y, color="tab:blue", label="f(x) = x²")
# 极限的「带」:x 靠近 2 时,f(x) 落在 4 附近
ax.fill_between([1.8, 2.2], 3.96, 4.04, color="tab:orange", alpha=0.18, label="f(x) 在 4 附近")
ax.fill_between([1.9, 2.1], 3.96, 4.04, color="tab:green", alpha=0.28, label="更窄的 x 范围")
ax.scatter([2], [4], color="tab:red", s=40, zorder=4)
ax.annotate("(2, 4)", (2, 4), textcoords="offset points", xytext=(10, -10), color="tab:red")
ax.axhline(4, color="tab:red", linestyle="--", linewidth=1)
ax.axvline(2, color="tab:red", linestyle="--", linewidth=1)
ax.set_xlim(1.2, 2.8)
ax.set_ylim(1.2, 8.2)
ax.grid(True, linestyle=":", alpha=0.5)
ax.legend(loc="upper left")
ax.set_title("lim_{x→2} x² = 4:范围越缩越紧")
fig.savefig("book/public/figs/fig03-limit.png", dpi=120, bbox_inches="tight")
plt.close(fig)一个关键事实,必须牢牢记住:
极限只看 靠近 时函数的行为,不管 那一点本身的值。哪怕 不存在,极限也可能存在。这个区别在第 4 章讲「连续」时会再次登场。
3.3 极限的四则运算法则
设 、,则:
和、差法则的证明思路(这是理解的关键):要求 任意小。由三角不等式,
给定 ,让 与 的距离小于 、 与 的距离小于 ,两者加起来就小于 。乘积法则与商法则的证明同样用 - 语言,思路是「把差距拆成可控的小块」;这一章先记住结论,重点是会用。
用法示例:求 。
这里每步都用了「和、差、积」法则。事实上,对多项式函数,直接把 代进去就得到极限值——这叫代入法。但注意:代入法只对连续函数可靠(第 4 章解释),遇到 型必须先化简。
3.4 无穷小与无穷大
无穷小:极限为 0 的量。比如 、、(当 )。注意「无穷小」不是「很小的数」,而是「以 0 为极限的变量」—— 虽然小,但它是个常数,不是无穷小。
无穷大:当 (或 )时, 无限增大,记作 (或 )。无穷大不是数,而是一种「无界变化」的描述。
无穷小的用处:极限计算中,「 型」的困难,在于分子分母同时趋于 0,不能直接除。解决办法是先比较两个无穷小「谁趋于 0 更快」。例如:
分子 和分母 都是无穷小,但它们在 0 附近「速度相当」,比值趋于 1。这就是下一个重要极限。
3.5 两个重要极限
第一个重要极限:
这里的 用弧度。几何推导(不依赖计算器):在单位圆中,圆心角 (很小)对应的扇形夹在两个三角形之间,比较面积得到
当 时,,两边都逼近 1,由夹逼定理(下一节), 也逼近 1。
import numpy as np
for x in [1.0, 0.5, 0.1, 0.01]:
print(f"x = {x:<5} sin(x)/x = {np.sin(x)/x:.6f}")x = 1.0 sin(x)/x = 0.841471
x = 0.5 sin(x)/x = 0.958851
x = 0.1 sin(x)/x = 0.998334
x = 0.01 sin(x)/x = 0.999983第二个重要极限:
这是自然常数 的由来之一(第 6 章会从「增长」的角度再讲它)。数值上:
for n in [1, 10, 100, 1000, 100000]:
print(f"n = {n:<7} (1+1/n)^n = {(1 + 1/n)**n:.8f}")n = 1 (1+1/n)^n = 2.00000000
n = 10 (1+1/n)^n = 2.59374246
n = 100 (1+1/n)^n = 2.70481383
n = 1000 (1+1/n)^n = 2.71692393
n = 100000 (1+1/n)^n = 2.71826824逼近 2.71828,但永远不相等——极限是目标,不是终点。
3.6 夹逼定理
夹逼定理(挤压定理):若在 附近有
且 ,则 。
直觉:三个选手赛跑, 被夹在 和 中间。、 都跑到 ,中间的 想不跑到 都不行。刚才推导 用的就是这个定理。
经典例子:()。 在 0 附近剧烈震荡,但正弦函数的值永远在 和 之间,所以
两边都趋于 0,由夹逼定理,。
import numpy as np
for x in [1.0, 0.5, 0.1, 0.01]:
print(f"x = {x:<5} f(x) = {x**2 * np.sin(1/x):.7f}")x = 1.0 f(x) = 0.8414710
x = 0.5 f(x) = 0.2273244
x = 0.1 f(x) = -0.0054402
x = 0.01 f(x) = -0.0000506
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(-0.8, 0.8, 2000)
f = x ** 2 * np.sin(1 / x)
fig, ax = plt.subplots(figsize=(7, 5))
ax.plot(x, f, color="tab:blue", linewidth=0.8, label="f(x) = x²sin(1/x)")
ax.plot(x, x ** 2, color="tab:red", linestyle="--", label="y = x²")
ax.plot(x, -x ** 2, color="tab:green", linestyle="--", label="y = -x²")
ax.axhline(0, color="black", linewidth=0.8)
ax.axvline(0, color="black", linewidth=0.8)
ax.scatter([0], [0], color="tab:red", s=40, zorder=4)
ax.annotate("极限 = 0", (0, 0), textcoords="offset points", xytext=(8, 10), color="tab:red")
ax.set_xlim(-0.8, 0.8)
ax.set_ylim(-0.65, 0.65)
ax.grid(True, linestyle=":", alpha=0.5)
ax.legend(loc="upper left", fontsize=9)
ax.set_title("夹逼:x²sin(1/x) 被 ±x² 夹住")
fig.savefig("book/public/figs/fig03-squeeze.png", dpi=120, bbox_inches="tight")
plt.close(fig)3.7 动手实践:求极限的完整流程
求 。直接代入得到 ,但分子可以因式分解:
约分依据:平方差公式 ,且 时 ,可以约分。于是
注意:约分后的 在 处有意义,但原函数在 处没定义(分母为 0)。因为极限不看 这一点本身,所以结果仍然是 4。
import numpy as np
for h in [0.1, 0.01, 0.001, -0.001, -0.01, -0.1]:
x = 2 + h
ratio = (x ** 2 - 4) / (x - 2)
print(f"x = {x:7.3f} 比值 = {ratio:7.4f}")x = 2.100 比值 = 4.1000
x = 2.010 比值 = 4.0100
x = 2.001 比值 = 4.0010
x = 1.999 比值 = 3.9990
x = 1.990 比值 = 3.9900
x = 1.900 比值 = 3.9000常见错误
| 错误写法/理解 | 原因 |
|---|---|
| 认为 | 极限与函数值无关;该式成立要等第 4 章「连续」的额外条件 |
| 遇到 直接说「无意义,没有极限」 | 只是「不能直接代入」,先化简(因式分解、通分、有理化)再算 |
| 把无穷小说成「很小的数」 | 无穷小是极限为 0 的变量,不是某个固定的数 |
| 对商法则忘记要求 | 分母极限为 0 时商法则失效,需要其他方法 |
| 用数值表判断极限时只从一边逼近 | 必须左右两边都逼近同一个数,极限才存在 |
章末练习
基础
- 写出数列 的前 5 项,并说出 等于几。
- 求 ,写出四则运算法则的应用步骤。
- 用因式分解求 。
提高
- 用 - 语言解释:为什么 ?若要求 , 至少取多少?
- 求 。提示:写成 ,再用第一个重要极限。
挑战
- 证明 存在,但 不存在。提示:一个用夹逼,一个找两条不同的逼近路径得到不同结果。
- 用 Python 计算 当 的值,猜测它逼近哪个数。
章末自测
每题选择一个最佳答案。本书不附答案:完成后交由老师或 AI 老师批改讲解。
- 等于?
- A. 不存在
- B.
- C.
- D.
- 等于?
- A.
- B.
- C. 不存在
- D.
- 极限 与函数值 的关系是?
- A. 一定相等
- B. 无关,极限只看 靠近 时的行为
- C. 必须存在
- D. 极限更大
- 等于?
- A.
- B. 不存在
- C.
- D.
- 设 、,则 等于?
- A.
- B.
- C.
- D.
- 等于?
- A.
- B.
- C. 不存在
- D.
- 等于?
- A.
- B.
- C.
- D.
- 夹逼定理要求 ,且 、 的极限同为 ,则 的极限是?
- A. 可能不存在
- B.
- C.
- D.
- 无穷小指的是?
- A. 很小的常数
- B. 极限为 0 的变量
- C. 负数
- D. 分数
- 判断极限是否存在时,应?
- A. 只看右侧逼近
- B. 只看左侧逼近
- C. 左右两侧逼近同一个数
- D. 直接代入
