函数极限
上一章把“附近”翻译成了邻域、聚点和删去邻域。现在终于可以把这套语言用在微积分里最熟悉、也最容易被说得含糊的一句话上:当 x 越来越靠近 a 时,f(x) 越来越靠近 L。
这句话在计算课里很好用,却留下了几个逃不过去的问题:什么叫“越来越近”?只从左边靠近算不算?函数在 a 处没有定义,极限还能不能谈?本章要做的不是推翻你原来的直觉,而是给它装上一把刻度尺。以后每次说“趋近”,我们都能明确写出需要控制什么、谁先提出要求、谁负责回应。
本章只讨论实变量的实值函数。你将学会用 ε–δ 语言证明极限,判断左右极限、无穷远处的极限和无穷极限,使用运算法则与夹逼定理,并借助数列找到那些看图很难说清的“不存在”。
从数列的尾部走到函数的邻域
先回忆数列极限。说 an→L,意思是:不管别人把允许误差 ε>0 压得多小,我们总能找一个整数 N;从第 N 项起,所有后续项都满足
∣an−L∣<ε.
这里“足够靠后”由 n≥N 表示。数列的输入只有 1,2,3,…,所以只要守住尾部就够了。
函数没有“下一项”。当我们研究 x 靠近 a 时,输入可以从左边来、右边来,也可以沿着各种零碎的集合靠近。因此,数列里的“从某项以后”必须换成一句几何上的要求:让 x 落进以 a 为中心、半径为 δ 的小邻域。
设 E⊂R,f:E→R,并且 a 是 E 的聚点。后一个条件排除了“附近根本没有可供比较的定义域点”的空话。我们说
x→a,x∈Elimf(x)=L
当且仅当:对任意 ε>0,都存在 δ>0,使得对每个 x∈E,只要
0<∣x−a∣<δ,
就有
∣f(x)−L∣<ε.
当定义域和语境已经清楚时,通常简写为
x→alimf(x)=L.
一场可以无限加码的较量
这串量词第一次读起来很像密码。把它读成一场较量会顺得多。
有人先报出一个输出端的要求:“我只允许 f(x) 和 L 相差不到 0.01。”这就是他选择的 ε。你不能挑一个自己喜欢的宽松标准;对方可以把要求改成 10−8,也可以再小。
你的任务是回应:“行。只要你把 x 控制在离 a 不到某个距离 δ 的地方,我保证输出误差满足你的要求。”这个 δ 可以随着 ε 改变。要求越苛刻,允许的输入范围往往越窄,这很正常。
真正关键的是出场顺序:先给 ε,再选 δ,最后才让任意满足条件的 x 接受检验。若先看见某个具体 x,再临时为它挑一个 δ,就没有控制住邻域里的所有点;那不是极限定义。
极限是一个“对所有足够近的输入都有效”的承诺,不是“我能找到一些输入让函数值靠近”的陈述。后者太弱:许多没有极限的函数也总能挑出几条表现良好的路径。
为什么要删去中心点
条件中的 0<∣x−a∣ 不是排版细节。它告诉我们,极限观察的是 a 附近的函数行为,故意不看 x=a 这一点。于是 f(a) 可以没有定义,也可以被赋成一个和 完全不同的数。
例如,定义
h(x)=x−2x2−4(x
当 x=2 时可以约去因子,得到 h(x)=x+2。因此,当 x 靠近 2 而不等于 时, 靠近 。原来的规则在 处没有定义,并不妨碍
x→2limh(x)=4.
你还可以另设 h(2)=−10;邻近点的计算没有变化,极限仍是 4。下一章会利用这个区别来解释连续性:在那里,函数在点上的实际值才会被拿来和极限对账。
极限不会有两个答案
同一个函数在同一种趋近方式下不可能同时趋近两个不同实数。这个结论看似当然,证明却很能说明 ε–δ 语言的力量。
假设 f(x) 在 x→a 时既趋近 L 又趋近 K,并且 L=K。令
ε=3∣L−K∣.
两个极限承诺各给出一个半径 δL,δK。取较小者,δ=min{δL。由于 是定义域的聚点,我们能选到某个 满足 。这个同一个函数值必须同时落在 和 的两个误差带里,于是
∣L−K∣≤∣L−f(x)∣+∣f(x)−K∣<
这不可能。所以一旦极限存在,候选值只能有一个。
例题:把误差一路传回输入端
证明
x→3lim(4x−7)=5.
任取 ε>0。我们先算输出端到底离目标差多少:
∣(4x−7)−5∣=
线性函数里,误差恰好是 ∣x−a∣ 的常数倍。更常见的麻烦是,误差中还混进一个看上去会变动的因子。
例题:先把多余因子关进小范围
证明
x→2limx2=4.
误差分解为
∣x2−4∣=∣x−2∣∣x+2∣.
不能直接说 ∣x+2∣ 很小;当 x 靠近 2 时,它反而接近 4。我们要的只是先给它一个固定上界。要求 ∣x−2∣<1 时,便有 ,从而 。于是只要再让 ,就能得到所需误差。
取
δ=min{1,5ε}.
若 0<∣x−2∣<δ,第一个限制保证 ∣x+2∣<5,第二个限制保证
∣x2−4∣=∣x−2∣∣x+2∣<5∣x−2∣
这种“先用一个固定半径控制旁边因子,再用含 ε 的半径控制真正的小量”的做法,以后会反复出现。
从左、从右,以及定义域的边缘
双侧极限默认允许 x 从 a 的两边靠近。若定义域在 a 的一侧没有足够近的点,或者问题刻意只关心一侧,就必须把方向写出来。
设 E 在 a 左边有任意靠近 a 的点,且 f 在那些点上有意义。左极限
x→a−limf(x)=L
表示:对每个 ε>0,存在 δ>0,使得当 x∈E 且
a−δ<x<a
时,有 ∣f(x)−L∣<ε。右极限
x→a+limf(x)=L
则把输入条件改成
a<x<a+δ.
右极限还要求 E 在 a 右边有任意靠近 a 的点。这里同样只看删去中心点;f(a) 本身不参与左极限或右极限的定义。
双侧极限的判别
当定义域在 a 两侧都有任意靠近的点时,
x→alimf(x)=L
当且仅当
x→a−limf(x)=L且
必要性很好理解:双侧邻域里的所有点都合格,当然左半边和右半边也都合格。反过来,给定一个 ε,左右极限分别给出 δ− 与 δ+;取两者较小值后,无论 x 落在左边还是右边,误差都小于 。
例如,对 x=1 定义
p(x)={2x+1,x2+1,
左侧靠近时,p(x) 趋近 3;右侧靠近时,p(x) 趋近 2。两边给出的答案不同,因此
x→1limp(x)
不存在。这里即使补写一个 p(1),也无法让双侧极限出现;问题不是中心点漏了一个数,而是两边的邻近行为彼此冲突。
相反,若把右侧规则改成 x+2,两侧都趋近 3。无论此时把 p(1) 定义成什么,双侧极限都会是 3。
对定义在 [0,∞) 上的 x,在 处真正可观察的是右侧。写 才把定义域说完整;不能把左边根本没有函数值的情形含混地当成一次双侧检验。
走向无穷远时,阈值代替半径
当 x→+∞,我们不再围着某个有限点缩小邻域,而是把输入不断推向数轴右端。这里先假定定义域 E 在上方无界;否则“所有足够大的定义域点”根本不存在,条件会变成空话。说
x→+∞limf(x)=L
是指:对任意 ε>0,存在一个实数 M,使得对所有定义域中的 x,只要
x>M,
就有
∣f(x)−L∣<ε.
若 x→−∞,则要求 E 在下方无界,并把输入条件改成 x<M。这和数列的 ε–N 定义几乎是同一件事:数列要求编号越过门槛 N,函数要求实数输入越过门槛 。
例题:一个有理函数在远处的行为
证明
x→+∞limx+45x−2=5.
不要只写“最高次项相除得到 5”。那是计算规律的压缩写法;用定义检验时,先把差算出来:
x+45x−2−5
当 x>1 时,x+4>x>0,所以
x+4−22
给定 ε>0,取
M=max{1,ε22}.
若 x>M,便有 22/x<ε,从而函数值与 5 的距离小于 ε。这证明了极限。
函数值冲向无穷,不等于有限极限
“函数越来越大”也需要精确定义。若对任意实数门槛 B>0,都能找到 δ>0,使得每个定义域中的 x 一旦满足
0<∣x−a∣<δ,
就有
f(x)>B,
我们写作
x→alimf(x)=+∞.
把最后一个不等式换成 f(x)<−B,便是 limx→af(x)=−∞。一侧和无穷远处的版本完全类似:保留相应的输入方向,把“任意大的门槛 ”放在输出端。
这里的 +∞ 不是一个实数。通常说“极限存在”时,本课程指的是存在有限实数极限;若要把 +∞ 或 −∞ 也算进讨论,必须明确说是在扩充的意义下讨论。
例题:证明无穷极限
证明
x→3lim(x−3)21=
任取一个门槛 B>0。令
δ=B1.
只要 0<∣x−3∣<δ,平方后得到 (x−3)2<1/B,因而
(x−3)21>B.
这正是定义要求。它也说明为什么该函数在 3 处没有有限实数极限:函数值可以超过任何高的门槛,不可能被压进某个固定实数 L 周围的误差带。
方向不能省略。例如
x→0+limx1=
左右行为不一致,所以 1/x 在 0 处没有双侧极限;即使允许无穷符号,也不能把 +∞ 和 −∞ 当作同一个答案。
运算法则是有条件的许可
设 f,g:E→R 在 a 附近有定义,并且
x→alimf(x)=A,x→alimg(
那么有限极限满足
x→alim(f+g)(x)=A+B,
x→alim(f−g)(x)=A−B,
x→alim(cf)(x)=cA(c∈R),
以及
x→alim(fg)(x)=AB.
商法则还多一个不能删掉的条件:若 B=0,则在 a 的某个删去邻域里 g(x) 也不为零,且
x→alimg(x)f(x)=
为什么 B=0 能保证附近分母不为零?对 g 的极限定义取误差 ∣B∣/2。当 x 足够靠近 a 时,
∣g(x)−B∣<2∣B∣.
由三角不等式可得
∣g(x)∣≥∣B∣−∣g(x)−B∣>2∣
这一步不是繁琐的补充,而是商式在附近真的有意义的保证。
这些法则可以从 ε–δ 定义逐条推出。证明乘积时,通常先利用 f(x)→A 得到 f(x) 在 a 附近有界,再分解
f(x)g(x)−AB=f(x)(g(x)−B)+
你会再次看到“先做局部控制,再分配误差”的结构。
例题:可以直接代入的情形
求
x→2limx2+1x3+
恒等函数和常数函数在每一点都有预期的极限。分子、分母由有限次加法与乘法组成,因此可分别代入;分母的极限为 22+1=5=0,商法则可用。于是
x→2limx2+1x
若直接代入使分母极限为 0,法则失效,但结论尚未确定。它可能是一个可以约去的缺口,例如
x−3x2−9=x+3(x
此时极限是 6;也可能函数值无界,或者没有极限。0/0 是“还需要继续分析”的信号,不是答案。
不要把含有 +∞、−∞ 的形式机械塞进四则法则。像 +∞−∞、0⋅∞、 一类表达式没有自动结论,必须回到具体函数的变形或定义。
夹逼:振荡并不一定会毁掉极限
有时我们看不出中间函数会怎样靠近目标,却能给它套上两个会合的边界。设当 x∈E 且 0<∣x−a∣ 足够小时,
u(x)≤f(x)≤v(x),
并且
x→alimu(x)=L,x→alimv(x
那么
x→alimf(x)=L.
证明很短。给定 ε>0,让 x 同时足够靠近 a,以至于 u(x)>L−ε 且 。中间的 被迫满足
L−ε<f(x)<L+ε,
也就是 ∣f(x)−L∣<ε。
例题:振幅被压扁的振荡
证明
x→0limx4cosx2=0.
在 x=0 时,−1≤cos(2/x)≤1。由于 x4,乘上 不会改变不等号方向:
−x4≤x4cosx2≤x
两边都在 x→0 时趋近 0,所以夹逼定理给出原极限为 0。
这里 cos(2/x) 在 0 附近并没有安静下来,反而越振越快。极限存在的原因是前面的 x4 把每次振荡的高度压得任意小。判断极限时,别只问“有没有振荡”,还要问“振幅有没有被压到零”。
用数列检查所有靠近路径
函数极限和前面学过的数列极限之间有一条很实用的桥。设 a 是 E 的聚点,f:E→R。那么
x→a,x∈Elimf(x)=L
当且仅当:对每一列满足
xn∈E∖{a},xn→a
的数列,都有
f(xn)→L.
它把“邻域里所有足够近的点”翻译成“所有可能逼近 a 的点列”。注意是每一列,不是找一列顺眼的数列验算即可。
这个判别法为什么可靠
若函数极限等于 L,任取一列 xn→a 且 xn=。给定 ,函数极限先给出一个 ;数列收敛再给出一个 ,使得 时 。由于每项又都不等于 ,函数极限的条件可以直接使用,得到
∣f(xn)−L∣<ε.
所以函数值列收敛到 L。
反过来,若函数极限不等于 L,那么存在某个固定的 ε0>0,无论把邻域半径缩得多小,总能找到一个定义域点 x,满足
0<∣x−a∣<δ
却有
∣f(x)−L∣≥ε0.
现在对每个 n∈N,把 δ 取成 1/n,选出这样的 xn。于是 ,所以 ;但 永远离 至少 ,不可能收敛到 。这说明只要所有靠近的数列都给出同一个结果,函数极限就确实存在。
例题:两条路径足以推翻极限
证明
x→0limsinx1
不存在。
取
rn=6π
分母都趋于 +∞,所以 rn→0、sn→0,并且各项均不为 。但是
sinrn1=sin(6
而
sinsn1=sin(6
同一个输入目标点,沿两条都合法的路径,却得到两个不同的函数值极限。若双侧函数极限存在,所有路径都必须给出同一个答案;矛盾。因此原极限不存在。
不存在要说清楚是哪一种失败
“图像很乱”不是证明。遇到极限不存在时,通常有三条可检验的路线。
第一,左右极限不同。对
q(x)=x∣x∣(x=0),
有 q(x)=1(x>0)而 q(x)=−1(x<0)。因此左右极限不同,双侧极限不存在。
第二,构造两条数列路径。刚才的 sin(1/x) 就属于这一类。它在两侧都剧烈振荡,直接比左右极限反而不如两条专门挑出的路径清楚。
第三,证明它不能有有限极限。若 1/(x−3)2 在 3 处趋近某个有限 L,那么取误差 1 后,函数值最终应被困在 L−1 与 之间;可它会超过任意大的门槛。这个矛盾说明没有有限极限。进一步用上一节的定义,我们还能给出更准确的结论:它趋于 。
解题时怎样把定义落到纸上
面对一个具体极限,先别急着把符号套进公式。可以按下面的顺序检查。
先看定义域和趋近方式。目标点附近函数在哪些点有定义?是双侧靠近、左侧靠近、右侧靠近,还是 x 走向无穷远?
若要作 ε–δ 证明,先从 倒推,尽量把它写成或估计成 的倍数。出现额外因子时,先用一个固定半径控制它。
练习 1:一行定义证明
证明
x→−1lim(3x+5)=2.
任取 ε>0,取 δ=ε/3。若 0<∣x+1∣<δ,则
练习 2:缺口不影响邻近极限
用 ε–δ 定义证明
x→2limx−2x2+x−6
当 x=2 时,
x−2x
练习 3:左右极限能否接上
对 x=0 定义
r(x)={x+2,x2+2,
判断 limx→0r(x) 是否存在。
当 x→0− 时,使用左侧规则 x+2,所以
x→0
练习 4:无穷远处的阈值
证明
x→+∞limx+24x−3=4.
给定 ε>0,考虑
x+24x
练习 5:用两条路径否定极限
用序列判别法证明
x→0limcosx1
不存在。
取
xn=2πn1,y
函数极限到这里已经有了完整的局部语言:删去邻域告诉我们忽略中心点,左右极限告诉我们方向不能含混,数列判别法则把所有靠近方式放到同一张检查表上。下一章只多加一条要求:如果函数在中心点也有定义,而且这个实际值恰好等于邻近极限,我们就称它在该点连续。