无穷小、无穷大与渐近阶:等价无穷小与大 O 记号
比较趋于零的快慢,掌握等价无穷小替换,它只能用在乘除里,别乱用。记好大 O、小 o、Θ 这几个渐近记号,统一用这套语言描述量级。
- 定义无穷小与无穷大,掌握二者的倒数关系,会判断高阶、同阶与等价
- 推导并熟记六组常用等价无穷小,理解其来源,别死记。
- 等价替换只能用在乘除运算里,加减运算不能用,给你举个反例
- 统一理解 O、o、Θ 记号在 x→0 与 n→∞ 两种语境下的含义,建立增长速度阶梯
同样趋于 0,速度却天差地别——这就是「阶」
x、x²、sinx 在 x→0 时都趋于 0,都是无穷小,但它们趋于 0 的速度完全不同:x=0.01 时 x²=0.0001,小了一百倍。阶就是用来定量描述这种快慢差异的语言。它一头连着微积分(泰勒展开、极限速算),一头连着计算机科学(算法复杂度 O(n)、O(log n)、收敛速率),是少数你会在数学课和工程代码里反复同时见到的概念,值得彻底打通。
3.1 无穷小、无穷大及其倒数关系
若 lim x→a α(x)=0,称 α 为 x→a 时的无穷小;若 |β(x)|→∞,称 β 为无穷大。注意:无穷小不是很小的数,无穷大也不是很大的数,它们描述的是变量的变化趋势,常数里只有 0 是无穷小。两者不取零值时有倒数关系:β→∞ ⟺ 1/β→0。有限个无穷小的和、积仍是无穷小;无穷小乘有界量仍是无穷小,这条常用来处理 x·sin(1/x):sin(1/x) 有界、x→0,故整体→0。
为什么不说「α 很小」要引入阶?因为「小」是相对的,还随过程变,单独一个无穷小没法判断它算不算快;只有把两个无穷小放一起求比值,才能客观比出谁先消失。阶本质是相对速度的比较关系,脱离比较对象谈「高阶/低阶」没用。下面所有定义都以比值 lim α/β 的形式给——比值才是客观、能判定的量。
比较两个无穷小 α、β(β≠0):若 lim α/β=0,α 是 β 的高阶无穷小,记 α=o(β)(α 趋于 0 更快);若 lim α/β=c≠0,是同阶;若 c=1,是等价,记 α~β;若比值趋于∞,α 是低阶(更慢)。
由阶的比较还能得到几条运算直觉。其一,高阶被低阶吸收(主部吸收):若 α=o(β),则 α+β~β——趋于 0 时更快消失的项被更慢的主项吸收,正如 n→∞ 时 n²+n~n²。其二,等价关系满足自反、对称与传递(α~β、β~γ ⟹ α~γ),因此可以链式替换。其三,等价无穷小的乘积、商仍等价,但和差必须逐项核对阶数,不能想当然。这套规则统称主部思想:抓住占主导的那一项、其余写成高阶小量 o(·),正是后面泰勒展开逐级逼近的操作核心。
若 β~α,就把 β 称为 α 的等价主部,写成 α=β+o(β)。求极限时用主部替换、误差记为 o;求近似时主部决定一阶行为、o 决定精度。泰勒公式本质就是把复杂函数写成『常数主部+线性主部+二次主部+……+高阶小』,阶数看得越细、近似越准。
3.2 六组常用等价无穷小:逐一推导,不死记
x→0 时的等价无穷小表及其依据
sinx~x:就是上节的 sinx/x→1。tanx~x:tanx/x=(sinx/x)·(1/cosx)→1。1−cosx~x²/2:即 (1−cosx)/x²→1/2,注意它是 x 的二阶。ln(1+x)~x:令 t=ln(1+x),则 1+x=et,(ln(1+x))/x=t/(et−1),配合下一条即得 1。ex−1~x:令 u=ex−1,x=ln(1+u),(ex−1)/x=u/ln(1+u)→1。(1+x)α−1~αx(α 为任意实数):取对数 ln(1+x)~x 后用 eαln(1+x)−1~αln(1+x)~αx。
它们说的都是在0附近,复杂函数能用最简单的单项式近似,这就是泰勒展开取第一项的雏形,stage-12后面讲泰勒时会把它们统一成一个公式。
用数值亲手感受阶的差距:取 x=0.001,此时 x=10⁻³、x²=10⁻⁶、1−cosx≈x²/2=5×10⁻⁷,而 sinx≈0.0009999998 与 x 几乎相等。x² 与 1−cosx 比 x 小了约一千倍,这就是「高阶」的直观含义——每多出一阶,在小量处就多一个数量级的压制,泰勒展开正是靠这样逐阶叠加来不断逼近原函数。
x→0时,下面哪个是x的高阶无穷小(趋于0比x更快)?
就拿这个乘除综合极限题走完整流程:求 lim x→0 (e2x−1)·sin3x / [x·ln(1−x)]。先确认整体是乘除结构,能逐因子替换。再把趋于0的部分代标准式:e2x−1~2x(令u=2x,eu−1~u),sin3x~3x,ln(1−x)~−x(令u=−x)。代入相消:(2x)(3x)/(x·(−x))=6x²/(−x²)=−6。全程不碰加减,合法且一步到位。别这么写:如果题目改成两个互为等价的项相减,必须退回因式分解或泰勒多展一阶,绝不能直接替换。
3.3 等价无穷小替换:强大,但有一条致命边界
求极限时,乘除因子可以整体换成它的等价无穷小。比如lim x→0 tanx·ln(1+2x)/(1−cosx),把tanx~x、ln(1+2x)~2x、1−cosx~x²/2代入,算出来是x·2x/(x²/2)=4。这招在乘除结构里用,又快又准。
等价无穷小只能替换乘除因子。相加减的两项里分别替换,可能把决定结果的高阶差消掉,得到错误的0。 经典反例:lim x→0 (tanx−sinx)/x³。若用tanx~x、sinx~x相减得0,判极限为0——错。正确值是1/2,原因正是两者的一阶项相同、相减后留下二阶差。 拿不准时用泰勒展开多保留一阶,永远安全。
手算正确版本:tanx−sinx=sinx(1/cosx−1)=sinx·(1−cosx)/cosx,于是 (tanx−sinx)/x³=[sinx/x]·[(1−cosx)/x²]·(1/cosx)→1·(1/2)·1=1/2。你看,不在减法里替换,而是先因式分解成乘除结构,等价工具就重新合法了。
3.4 渐近记号 O、o、Θ:一套语言,两种语境
大 O:f=O(g) 表示 |f/g| 在该极限过程中有界,被某个常数倍的 g 控制住;小 o:f=o(g) 表示 f/g→0,严格更快/更小;Θ:f=Θ(g) 表示 f/g 被两个正常数夹在中间,同数量级;Ω 表示下界 f≥cg。同一套记号在两个方向用:x→0 时 x²=O(x),x² 比 x 更小更快;n→∞ 时 n²=O(n³),n² 增长比 n³ 慢。方向相反但本质一样,都是比较量级。
渐近记号有几条像代数一样的运算律,估复杂度时可直接用:O(f)+O(g)=O(max(f,g)),只留较大项,所以O(n²)+O(n)=O(n²);O(f)·O(g)=O(fg);常数可提出,O(cf)=O(f)。小o满足o(f)+o(f)=o(f)、f·o(g)=o(fg)。分析嵌套循环时反复用乘法律,外层n次、内层n次,就是O(n²);分析顺序结构时用加法律,只留主导项,这和微积分里「主部吸收高阶」是一回事。
关心谁更快趋于 0:sinx=O(x)、1−cosx=Θ(x²)、x²=o(x)。余项写成 o(x) 表示「比 x 更快趋于 0 的部分」,泰勒公式 f(x)=f(0)+f′(0)x+o(x) 就是用一阶直线近似、误差是高阶小量。
大O只描述长期趋势,刻意忽略常数系数和低阶项:1000n和n都是O(n),但n很小的时候,常数系数反而决定快慢。工程上不能只看O就断言一定更快,还要结合实际数据规模、内存访问模式和常数开销。渐近阶回答的是规模无限增大时谁最终胜出,不直接回答当前数据量上谁快,二者在小规模问题上甚至可能给出相反结论。
x→0 时,判断 x·sin(1/x) 的极限,并说明用了哪条无穷小性质3.5 增长速度阶梯:工程上的「规模感」
x→∞ 时函数增长有严格的快慢阶梯:log n 远慢于任何正幂 na(a>0),任何正幂又远慢于任何大于 1 的指数 bn(b>1),再往后是阶乘 n!、幂指 nn,即 log n ≪ na ≪ bn ≪ n! ≪ nn。n=1000 时 n²=10⁶ 尚可、2n 是天文数字,这就是为什么指数复杂度算法在输入稍大时必然不可行,也是理解大模型计算量、样本复杂度随参数规模膨胀的基础直觉。
把主部思想用到 n→∞:任意多项式只看最高次项,3n³+5n²−100n+7~3n³(n→∞),因为其余项相对最高次都是 o(n³);这与 x→0 时「最低次主导」恰好相反,方向不同但逻辑一致——谁占主导取决于变量是趋于 0 还是趋于 ∞。给一组 n=10⁶ 的数量级直觉:log₂n≈20、n=10⁶、n²=10¹²、2n≈10 的 30 万次方,指数项大到没有任何现实设备能承受,这就是为什么 O(n²) 在百万级尚可一搏、O(2n) 却彻底无解。
最后埋个伏笔:比较阶最通用的武器是洛必达法则(连续情形,导数应用章节讲)和它的离散版本 Stolz 定理(数列情形)——当两个无穷小或无穷大之比是 0/0、∞/∞ 时,可以对分子分母分别求导(或求相邻项之差)后再比,把「比趋于极限的速度」转化为「比导数/比增量」。你现在只需知道这座桥的存在,它把待定型、渐近阶与下一章的导数连成一体。
判断两个量谁高阶,实操就两招。连续情形求lim f/g:得0则分子更高阶(趋于0更快)、得∞则分子更低阶、得非零常数则同阶。离散数列比值难求就取对数,把乘幂拉成乘法再比,比如比2n和n¹⁰:取对数后是n·ln2对比10ln n,前者线性、后者对数,n一大前者必然反超,所以2n最终远大于任何固定次幂n¹⁰。就记这句:对数打不过幂、幂打不过指数,阶乘与幂指又比普通指数更猛。
训练复杂度、收敛速率、误差界都用渐近阶写:梯度下降在光滑凸条件下目标误差是 O(1/t),t 是迭代步数;加速梯度法能到 O(1/t²);样本复杂度常写成 O(1/ε²) 量级,意思是误差减半要约4倍样本;大模型的 scaling law 用幂律描述损失随参数或数据量下降的阶。读懂 O/o/Θ,才能比较两篇论文谁的方法渐近更快、快多少,不会被单组实验数字迷惑。
求 lim x→0 (sinx−x)/x³:用 sinx~x 在减法里替换会得 0,这是非法的加减替换;改用泰勒把 sinx 多展一阶,sinx=x−x³/6+o(x³),于是 sinx−x=−x³/6+o(x³),除以 x³ 得 −1/6,这才是正确答案。乘除结构用一阶等价足矣,一旦出现同阶相减、主项抵消,就必须把每项多展到抵消后剩下的那一阶。把它和 (tanx−sinx)/x³=1/2 放在一起记:凡是减法后结果反常地变成 0,先怀疑自己是不是展得不够,而不是极限真为 0。
判无穷小阶:求 α/β 的极限,得 0 为高阶、非零常数为同阶、1 为等价;乘除结构可直接等价替换;加减结构先因式分解或泰勒多展一阶,禁止分别替换;含振荡但有界的因子,用『无穷小×有界=无穷小』;比较增长速度直接套 log≪幂≪指数≪阶乘≪幂指阶梯。
本节小结
无穷小/无穷大描述趋于0或无穷的趋势,二者在不取零时互为倒数;用比值极限区分高阶o、同阶Θ、等价~。六组等价无穷小(sinx、tanx~x,1−cosx~x²/2,ln(1+x)、ex−1~x,(1+x)α−1~αx)都可由sinx/x→1与对数换元推出,本质是泰勒一阶近似。等价替换只在乘除中合法,加减中使用会抹掉高阶差((tanx−sinx)/x³ 正确为1/2而非0)。O/o/Θ是统一的量级语言,在x→0与n→∞两语境同构,增长阶梯log≪幂≪指数≪阶乘≪幂指是复杂度与scaling的直觉底座。
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
它把「无限接近」这种模糊说法严格化:对任意你给定的接近程度 ε(函数值与目标的差距),我都能找到一个 δ(自变量的范围),只要自变量落在这个范围内就能保证输出达到你要的精度。这套「以有限控无限」的语言是整个微积分的地基,也是绝大多数证明题的标准书写套路。