∫π每天一道数学题
← 返回数学分析
数学分析 · 第 5 讲 · 2026-10-01 · 约 12 分钟

第5讲 连续性——「图像不断线」为什么不够用

高中说连续就是图像不断开。这一讲讲这个定义为什么不能用,以及数学上真正的连续长什么样。核心是:有一整类函数你根本画不出来,但它们在数学分析里极其重要;以及为什么「闭区间上连续」这四个字里,闭区间三个字删掉就全盘皆错。

你在高中学过的定义大概是:

如果函数 y=f(x)y = f(x) 在区间 II 上的图像是一条连续不断的曲线,就称它在 II 上连续。

这个定义有个致命的问题:它默认函数有图像。

而有图像这件事,本身就是个奢侈的假设。

这一讲讲三个东西:连续的严格定义长什么样;为什么"画出来的连续"不够;以及闭区间上连续函数的四大性质——这四个性质你现在只会用结论,这一讲讲它们的证明。

先看一道会让你不舒服的题

考虑这个函数:

D(x)={1,x 是有理数0,x 是无理数D(x) = \begin{cases} 1, & x \text{ 是有理数} \\ 0, & x \text{ 是无理数} \end{cases}

它叫狄利克雷函数(Dirichlet function)。

问:它在哪儿连续?

答案是:处处不连续。 而且理由很简单:任取一点 x0x_0,无论它是有理数还是无理数,它旁边任意小的邻域里都同时挤着有理数和无理数。所以函数值在 0 和 1 之间疯狂跳,永远停不下来。

现在问题来了:你怎么画出它的图像?

画不出来。数轴上每一个点附近,有理点和无理点都稠密交错,你找不到任何一个小区间让函数值稳定下来。硬要画,就是整条数轴全涂成 0 和 1 两种颜色——那不是图像,那是一团噪点。

而"图像不断线"这个定义,对这个函数完全失效。 不是"难以应用",是"无法定义"。

类似的函数数学分析里一大堆:黎曼函数、托马函数(Thomae's function)、各种病态函数。它们的共同点是:不能用图说话,只能用定义说话。

所以连续必须有严格定义。

连续的定义:把极限那一套搬过来

第二讲讲过极限的 ε-δ 定义,连续就是它的一次小改动:

定义:函数 ff 在点 aa 连续,如果

∀ε>0, ∃δ>0, 使当 ∣x−a∣<δ 时, ∣f(x)−f(a)∣<ε\forall \varepsilon > 0,\ \exists \delta > 0,\ \text{使当}\ |x-a| < \delta\ \text{时,}\ |f(x) - f(a)| < \varepsilon

跟极限的定义比,只有两处不同:

  1. 0<∣x−a∣<δ0 < |x-a| < \delta 改成了 ∣x−a∣<δ|x-a| < \delta ——不再把 x=ax = a 挖掉了
  2. ∣f(x)−L∣<ε|f(x) - L| < \varepsilon 改成了 ∣f(x)−f(a)∣<ε|f(x) - f(a)| < \varepsilon ——极限值 LL 换成了函数值 f(a)f(a)

翻译一下:

ff 在 aa 连续   ⟺  \iff lim⁡x→af(x)=f(a)\lim\limits_{x\to a} f(x) = f(a)

连续就是"极限值等于函数值"。 一个式子说清三件事:极限存在、函数有定义、两者相等。

狄利克雷函数在任一点都不连续,因为任一点的极限都不存在——而函数值倒是有的(1 或 0)。极限不存在,连续就无从谈起。

顺带说一句:连续的定义证明不依赖图像。 这是它比高中定义强的地方。

单侧连续与间断点的分类

高中很少提"单侧连续",但它是必需的——因为很多函数只在一边有定义,或者两边表现完全不同。

左连续:lim⁡x→a−f(x)=f(a)\lim\limits_{x \to a^-} f(x) = f(a),记 f(a−)=f(a)f(a^-) = f(a) 右连续:lim⁡x→a+f(x)=f(a)\lim\limits_{x \to a^+} f(x) = f(a),记 f(a+)=f(a)f(a^+) = f(a)

函数在一点连续   ⟺  \iff 左连续且右连续。 这条在第二讲讲图灵机提过的"两边趋近"就是它。

间断点按"两侧极限的状态"分四类,这是标准分类:

类型左极限右极限例子
可去间断存在存在,且相等sin⁡xx\dfrac{\sin x}{x} 在 x=0x=0
跳跃间断存在存在,但不相等sgn(x)\text{sgn}(x) 在 x=0x=0
无穷间断无穷无穷1x\dfrac{1}{x} 在 x=0x=0
振荡间断不存在(非无穷)不存在(非无穷)sin⁡1x\sin\dfrac{1}{x} 在 x=0x=0

前两类合称第一类间断——共同点是两侧极限都存在(有限)。后两类是第二类——至少一侧极限不存在。

这个分类的意义在于:它给出了"坏的程度"的排序。 可去间断最温和(补一个点就连续了),跳跃次之(补不了,但至少两边都安分),无穷和振荡是彻底失控。

sin⁡xx\dfrac{\sin x}{x} 在 0 点是可去间断,所以高中让你们"补定义"成 1——那个操作的正当性就在这里:补上之后极限值等于函数值,连续了。

四大性质:为什么"闭区间"三个字删不得

现在讲闭区间上连续函数的性质。这四个定理你现在做题都在用,但从没证明过。

先说清楚它们需要什么前提:ff 在闭区间 [a,b][a,b] 上连续。

"闭区间"三个字,一个字都不能少。为什么?看完定理我给你反例。

定理一(有界性定理):ff 在 [a,b][a,b] 上有界

即存在 MM 使一切 ∣f(x)∣≤M|f(x)| \le M。

证明思路(反证):假设 ff 无上界。那么对每个自然数 nn,存在 xn∈[a,b]x_n \in [a,b] 使 f(xn)>nf(x_n) > n。这样得到一列 {xn}\{x_n\}。

关键一步:[a,b][a,b] 是有界区间,所以 {xn}\{x_n\} 是有界数列。由波尔查诺-魏尔斯特拉斯定理(有界数列必有收敛子列),存在子列 xnk→x0x_{n_k} \to x_0。因为 [a,b][a,b] 是闭区间,x0∈[a,b]x_0 \in [a,b]。

又因为 ff 在 x0x_0 连续,f(xnk)→f(x0)f(x_{n_k}) \to f(x_0)——一个有限数。

但 f(xnk)>nk≥kf(x_{n_k}) > n_k \ge k,所以 f(xnk)f(x_{n_k}) 趋于 +∞+\infty。既收敛到有限数,又趋于无穷,矛盾。 所以 ff 有上界。同理有下界。

看出来这个证明的结构了吗——它同时用了三样东西:[a,b][a,b] 有界(保证数列有界)、[a,b][a,b] 闭(保证极限点还在区间里)、ff 连续(保证函数值跟着收敛)。三样缺一样,链条就断。

定理二(最值定理):ff 在 [a,b][a,b] 上取到最大值和最小值

证明(只证最大值):由定理一,ff 有上界。设 MM 是 ff 在 [a,b][a,b] 上的上确界。

对每个自然数 nn,M−1nM - \dfrac{1}{n} 不再是上界(MM 是最小的),所以存在 dn∈[a,b]d_n \in [a,b] 使 f(dn)>M−1nf(d_n) > M - \dfrac{1}{n}。

再用一次波尔查诺-魏尔斯特拉斯:有界数列 {dn}\{d_n\} 有收敛子列 dnk→d0∈[a,b]d_{n_k} \to d_0 \in [a,b]。

连续保证 f(dnk)→f(d0)f(d_{n_k}) \to f(d_0)。而 f(dnk)→Mf(d_{n_k}) \to M(因为 ∣f(dnk)−M∣<1/nk|f(d_{n_k}) - M| < 1/n_k)。一个数列不能收敛到两个数,所以 f(d0)=Mf(d_0) = M。

最大值被取到了,就在 d0d_0 这一点。

定理三(零点定理):若 f(a)⋅f(b)<0f(a) \cdot f(b) < 0,则存在 c∈(a,b)c \in (a,b) 使 f(c)=0f(c) = 0

证明(用二分法,这是最漂亮的证明之一):

不妨设 f(a)<0<f(b)f(a) < 0 < f(b)。把区间二等分,看中点 x1=a+b2x_1 = \dfrac{a+b}{2} 处 ff 的符号:

  • 若 f(x1)=0f(x_1) = 0,已经找到了,收工。
  • 若 f(x1)<0f(x_1) < 0,把右端点换成 x1x_1,新区间 [a,x1][a, x_1] 仍是"左负右正"。
  • 若 f(x1)>0f(x_1) > 0,把左端点换成 x1x_1,新区间 [x1,b][x_1, b] 仍是"左负右正"。

无论哪种,新区间长度减半,且保持"两端异号"。重复这个过程,得到一列区间 [a,b]=I0⊃I1⊃I2⊃⋯[a,b] = I_0 \supset I_1 \supset I_2 \supset \cdots,长度是 b−ab-a 除以 2n2^n,趋于 0。

由闭区间套定理(一列长度趋于 0 的闭区间,交集恰有一点),存在唯一 c∈⋂Inc \in \bigcap I_n。

每个 InI_n 的两端点函数值异号,而 ff 连续,所以 f(c)=0f(c) = 0。证毕。

二分法夹出零点

每次折半,把零点锁进一个长度趋于零的区间里——这是构造性证明的典范

这个证明的价值不只是证明定理。 它给出了一个真的能找到零点的算法——这就是计算机上求方程数值解(二分法)的全部理论依据。你用这个解 2\sqrt{2},前 6 位只需要 20 步。

定理四(介值定理):ff 取到 f(a)f(a) 与 f(b)f(b) 之间的一切值

它是零点定理的推论:任取 μ\mu 在 f(a)f(a) 和 f(b)f(b) 之间,考虑辅助函数 F(x)=f(x)−μF(x) = f(x) - \mu。则 F(a)=f(a)−μF(a) = f(a) - \mu 和 F(b)=f(b)−μF(b) = f(b) - \mu 异号,由零点定理存在 cc 使 F(c)=0F(c) = 0,即 f(c)=μf(c) = \mu。

一条技巧,值得记住:把"存在性问题"化成"零点问题",是数学分析的常用招数。

"闭区间"三个字为什么删不得

前面反复说前提重要,现在给反例。

f(x)=1xf(x) = \dfrac{1}{x},定义在开区间 (0,1)(0,1) 上。它连续——每个点的极限都等于函数值,用 ε-δ 定义很好验。

但它在 (0,1)(0,1) 上无上界:

x=0.1→10,x=0.01→100,x=0.001→1000,x=0.0001→10000x = 0.1 \to 10,\quad x = 0.01 \to 100,\quad x = 0.001 \to 1000,\quad x = 0.0001 \to 10000

有界性定理直接失效。 因为证明链条的第一步——有界区间保证有界数列——虽然 (0,1)(0,1) 也有界,但第二步断了:数列 xn=1/nx_n = 1/n 在 (0,1)(0,1) 内,它的收敛子列收敛到 0,而 0 不在开区间里。连续性的那个 f(x0)f(x_0) 根本不存在。

"闭区间"的作用,就是把所有极限点关在区间内。 少了它,函数可以在边界上逃逸到无穷。

再补一个反例说明另一个方向:f(x)=xf(x) = x 在 (0,1)(0,1) 上连续且有界,但取不到最大值——上确界是 1,可 x=1x = 1 不在区间内。最值定理要求的是取到,不是趋近。

讲给学生听时,讲什么

第一,把"图像不断线"的适用边界划出来。 对初等函数(你会画的那些)它够用,对数学分析它完全不够。这不是纠错,是提醒:定义有适用范围。

第二,间断点分类要能背出判据。 考研和竞赛里最常见的坑就是看到"间断"就慌,其实只要问一句"两侧极限存在吗",四类立刻分流。

第三,二分法证明值得完整看一遍。 它是这个专题里第一个"构造性证明"——不是证明某物存在,是给出一个找到它的算法。这种思想会在后面反复出现(下一讲的夹逼、后面的牛顿迭代)。

第四,记住四个定理的前提。 做证明题时,题目给你"闭区间+连续",就是要你用这四个定理;给你"开区间",就是要你想反例。

思考与拓展

  1. 证明 f(x)=xf(x) = \sqrt{x} 在 x=0x = 0 处右连续。(提示:定义里 ∣x−0∣<δ|x - 0| < \delta 要换成 0≤x<δ0 \le x < \delta。)
  2. f(x)={xsin⁡1x,x≠00,x=0f(x) = \begin{cases} x\sin\dfrac{1}{x}, & x \ne 0 \\ 0, & x = 0\end{cases} 在 x=0x=0 处连续吗?证明你的判断。(提示:用夹逼,注意 ∣sin⁡(1/x)∣≤1|\sin(1/x)| \le 1。)
  3. 黎曼函数 R(x)R(x) 在无理点连续、在有理点间断。试想:这个函数的值在无理点是 0,有理点 p/qp/q 上是 1/q1/q。为什么它在无理点连续?(提示:qq 大的有理点很少,而且值很小。)
  4. 用二分法算 2\sqrt{2},从 [1,2][1,2] 开始,写前三步得到的区间,并估算多少步后误差小于 10−610^{-6}。
  5. 举一个定义在 [0,1][0,1] 上、连续、但最大值在端点取得的函数——这说明最值定理的"在某点取到"不保证在内部。

一句话总结

「连续就是极限值等于函数值」,这个定义不需要图像;闭区间上连续函数有界、取最值、有零点、取遍中间值——但闭区间三个字删掉,四条定理全部有反例。

附:本文涉及的史实出处

  • 连续的 ε-δ 定义:柯西 1821 年给出雏形,魏尔斯特拉斯 1860 年代定型(与极限定义同步)
  • 狄利克雷函数:由狄利克雷(Dirichlet)引入,是"处处不连续"的标准例子
  • 有界性定理、最值定理的标准证明依赖波尔查诺-魏尔斯特拉斯定理(有界数列有收敛子列)
  • 零点定理的二分法证明:构造性证明的经典范例,直接对应数值计算的二分法
  • 柯西对连续性的早期处理未区分一致连续,相关史实见第二讲出处
— Y. · 2026-10-01