拉格朗日余项里的 (\theta),很多同学第一眼会懵:这玩意儿不是中值定理里的一个“点”吗,怎么还让求极限?它确实可以求,而且答案还很规整。通常教材里不展开讲,但考研数学一里偶尔会以小题或大题中间步骤的形式出现。这篇文章直接给结论、给推导、给例题、给排错方法,看完你就能把这类题拿稳。
先说明适用条件:如果函数 (f(x)) 在 (x_0) 附近有足够高阶的连续导数,并且 (f^{(n+2)}(x_0)\neq 0),那么对 (f(x)) 在 (x_0) 处作 (n) 阶泰勒展开,拉格朗日余项中那个 (\theta) 的极限是
[ \lim_{x\to x_0}\theta=\frac{1}{n+2}. ]
这个结论可以秒杀大部分常见函数。下面把为什么成立、怎么严格写过程、背后的一般规律,以及用 Python 数值验证的方法全部讲清楚。
1. 核心结论速览
在展开正题之前,先把整篇文章的关键信息做成一张表,方便你快速判断自己需要重点看哪一部分。
| 项目 | 说明 |
|---|---|
| 所属方向 | 高等数学 / 考研数学一 |
| 核心题型 | 泰勒公式拉格朗日余项中的参数 (\theta) 求极限 |
| 标准结论 | 若 (f^{(n+2)}(x_0)\neq 0),则 (\theta\to \frac{1}{n+2}) |
| 核心方法 | 与带佩亚诺余项的泰勒展开比较系数 |
| 前置知识 | 泰勒公式、佩亚诺余项、拉格朗日余项、等价无穷小、极限四则运算 |
| 常见出题位置 | 数一选择题、填空题,偶尔作为证明题中间步骤 |
| 主要易错点 | 把 (\theta) 当成常数、漏掉高阶项、系数分母写错 |
| 扩展结论 | 若下一非零项阶数为 (q),则 (\theta=\left(\frac{1}{C_q^{n+1}}\right)^{\frac{1}{q-n-1}}) |
| 建议练习时间 | 认真推导一遍后,常规题 30 分钟内可以覆盖 |
这张表前半部分是标准考试结论,后半部分是理解这类题的通用框架。接下来逐层拆开。
2. 这题的难点在哪:(\theta) 不是一个固定常数
很多同学第一次遇到这个问题时,会下意识把拉格朗日余项
[ R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1} ]
里的 (\xi) 当成一个固定点。实际上 (\xi) 依赖于 (x),通常写成
[ \xi=x_0+\theta(x-x_0),\quad 0<\theta<1. ]
当 (x\to x_0) 时,(\xi\to x_0),但 (\theta) 本身却未必趋于某个明显值。它可能趋于 (0),可能趋于某个常数,也可能不收敛,具体取决于函数的泰勒展开结构。
所以,求 (\theta) 的极限不能把 (\theta) 当常数去求导,也不能直接令 (x\to x_0) 代入,因为 (\theta) 是隐藏在余项里的隐函数。正确思路是把拉格朗日余项的表达式和另一个已知的精确展开式放在一起比较,让 (\theta) 的“主项”暴露出来。
3. 前置知识:拉格朗日余项到底在说什么
泰勒公式有两种常见余项:
带佩亚诺余项:
[ f(x)=\sum_{k=0}^{n}\frac{f^{(k)}(x_0)}{k!}(x-x_0)^k+o((x-x_0)^n). ]
带拉格朗日余项:
[ f(x)=\sum_{k=0}^{n}\frac{f^{(k)}(x_0)}{k!}(x-x_0)^k+\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1}, ]
其中 (\xi=x_0+\theta(x-x_0)),(0<\theta<1)。
佩亚诺余项只告诉误差是 ((x-x_0)^n) 的高阶无穷小,信息量小但好算;拉格朗日余项给出了误差的精确表达式,但里面的 (\xi) 不确定。求 (\theta) 的极限,本质上就是把这两种余项的信息结合起来。
同时要注意泰勒展开的一个性质:在给定展开阶数后,带佩亚诺余项的展开式是唯一的。也就是说,如果你能用其他方式写出 (f(x)) 的展开,那么对应系数必须一致。这个唯一性就是比较系数的依据。
4. 通用推导:为什么 (\theta) 的极限是 (\frac{1}{n+2})
令 (h=x-x_0),考虑 (x\to x_0),即 (h\to 0)。先写出 (f(x_0+h)) 的 (n) 阶泰勒展开,拉格朗日余项形式为
[ f(x_0+h)=\sum_{k=0}^{n}\frac{f^{(k)}(x_0)}{k!}h^k+\frac{f^{(n+1)}(x_0+\theta h)}{(n+1)!}h^{n+1}. ]
另一方面,因为 (f) 在 (x_0) 附近有 (n+2) 阶导数,所以可以写出带佩亚诺余项且多展开一项的形式:
[ f(x_0+h)=\sum_{k=0}^{n}\frac{f^{(k)}(x_0)}{k!}h^k+\frac{f^{(n+1)}(x_0)}{(n+1)!}h^{n+1}+\frac{f^{(n+2)}(x_0)}{(n+2)!}h^{n+2}+o(h^{n+2}). ]
两式相减,左边等于 (0),于是前面 (n+1) 项抵消,剩下
[ \frac{f^{(n+1)}(x_0+\theta h)}{(n+1)!}h^{n+1}-\frac{f^{(n+1)}(x_0)}{(n+1)!}h^{n+1}-\frac{f^{(n+2)}(x_0)}{(n+2)!}h^{n+2}=o(h^{n+2}). ]
两边同时除以 (\frac{h^{n+1}}{(n+1)!}),得到
[ f^{(n+1)}(x_0+\theta h)-f^{(n+1)}(x_0)-\frac{f^{(n+2)}(x_0)}{n+2}h=o(h). ]
接下来对 (f^{(n+1)}(x_0+\theta h)) 在 (x_0) 处作一阶泰勒展开。因为 (\theta h\to 0),所以
[ f^{(n+1)}(x_0+\theta h)=f^{(n+1)}(x_0)+f^{(n+2)}(x_0)\theta h+o(h). ]
代入上式,得到
[ f^{(n+2)}(x_0)\theta h-\frac{f^{(n+2)}(x_0)}{n+2}h=o(h). ]
如果 (f^{(n+2)}(x_0)\neq 0),两边除以 (h),再令 (h\to 0),就有
[ \theta\to \frac{1}{n+2}. ]
推导过程并不复杂,关键是抓住“拉格朗日余项里的高阶导数展开后,线性主项必须和佩亚诺余项的下一项系数相等”这一条主线。
5. 典型例题实战
下面用三个常见函数做完整演示。每个题都先写拉格朗日余项形式,再写佩亚诺展开,最后比较系数。
5.1 (f(x)=e^x),在 (x_0=0) 处展开到 (n=1)
拉格朗日余项形式:
[ e^x=1+x+\frac{e^{\theta x}}{2}x^2. ]
同时写出带佩亚诺余项且展开到 (x^3) 的形式:
[ e^x=1+x+\frac{1}{2}x^2+\frac{1}{6}x^3+o(x^3). ]
比较两个式子中 (x^2) 以后的系数,先看 (x^2) 项:
[ \frac{e^{\theta x}}{2}=\frac{1}{2}+\frac{1}{6}x+o(x). ]
所以
[ e^{\theta x}=1+\frac{1}{3}x+o(x). ]
两边取对数:
[ \theta x=\ln\left(1+\frac{1}{3}x+o(x)\right)=\frac{1}{3}x+o(x). ]
因此
[ \theta\to \frac{1}{3}. ]
当 (n=1) 时,(\frac{1}{n+2}=\frac{1}{3}),与结论一致。
5.2 (f(x)=\sin x),在 (x_0=0) 处展开到 (n=3)
拉格朗日余项形式:
[ \sin x=x-\frac{x^3}{6}+\frac{\sin(\theta x)}{24}x^4. ]
这里 (n=3),余项中的导数是 (f^{(4)}(\xi)=\sin \xi)。
同时写出:
[ \sin x=x-\frac{x^3}{6}+\frac{x^5}{120}+o(x^5). ]
比较 (x^4) 及更高阶项:
[ \frac{\sin(\theta x)}{24}x^4=\frac{x^5}{120}+o(x^5). ]
因此
[ \sin(\theta x)=\frac{x}{5}+o(x). ]
由于 (\sin(\theta x)\sim \theta x),得到
[ \theta x\sim \frac{x}{5}\quad\Rightarrow\quad \theta\to \frac{1}{5}. ]
而 (\frac{1}{n+2}=\frac{1}{5}),再次验证结论。
5.3 (f(x)=\ln(1+x)),在 (x_0=0) 处展开到 (n=1)
拉格朗日余项形式:
[ \ln(1+x)=x-\frac{x^2}{2(1+\theta x)^2}. ]
同时写出:
[ \ln(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}+o(x^3). ]
比较 (x^2) 以后的系数:
[ -\frac{x^2}{2(1+\theta x)^2}=-\frac{x^2}{2}+\frac{x^3}{3}+o(x^3). ]
两边除以 (-x^2):
[ \frac{1}{2(1+\theta x)^2}=\frac{1}{2}-\frac{x}{3}+o(x). ]
所以
[ \frac{1}{(1+\theta x)^2}=1-\frac{2x}{3}+o(x). ]
反过来:
[ (1+\theta x)^2=1+\frac{2x}{3}+o(x). ]
展开左边:
[ 1+2\theta x+o(x)=1+\frac{2x}{3}+o(x). ]
因此
[ \theta\to \frac{1}{3}. ]
符合结论。
从这三个例子可以看出,标准思路不是把 (\theta) 解出来再取极限,而是把拉格朗日余项和佩亚诺余项同时展开,比较系数直接读出 (\theta) 的极限。
6. 特殊情况:当 (f^{(n+2)}(x_0)=0) 时怎么办
标准结论要求 (f^{(n+2)}(x_0)\neq 0)。如果这一项恰好为 (0),那么高阶项会从更后面的阶数开始,(\theta) 的极限也会有新的表达式。
设 (f) 在 (x_0) 处展开到 (n) 阶后,带佩亚诺余项的展开式中,下一个非零项为 (q) 次项,即
[ f(x)=P_n(x)+\frac{f^{(n+1)}(x_0)}{(n+1)!}h^{n+1}+\frac{f^{(q)}(x_0)}{q!}h^{q}+o(h^{q}), ]
其中 (q>n+1),且中间阶数的项全都为 (0)。再用前面类似的方法比较系数,可以得到
[ \theta^{q-n-1}=\frac{1}{C_q^{n+1}}. ]
所以
[ \theta=\left(\frac{1}{C_q^{n+1}}\right)^{\frac{1}{q-n-1}}. ]
这里 (C_q^{n+1}) 是组合数。当 (q=n+2) 时,这个公式就退化成 (\theta=\frac{1}{n+2})。
看一个简单例子:(f(x)=x^2+x^4),在 (x_0=0) 处展开到 (n=1)。
拉格朗日余项形式:
[ x^2+x^4=0+0\cdot x+\frac{f''(\theta x)}{2}x^2. ]
因为 (f''(x)=2+12x^2),所以
[ x^2+x^4=\frac{2+12\theta^2x^2}{2}x^2=(1+6\theta^2x^2)x^2. ]
两边除以 (x^2):
[ 1+x^2=1+6\theta^2x^2. ]
因此
[ \theta^2=\frac{1}{6}\quad\Rightarrow\quad \theta\to\frac{1}{\sqrt6}. ]
这里 (n=1),下一非零项阶数 (q=4),代入公式:
[ C_4^{2}=6,\quad q-n-1=4-1-1=2, ]
[ \theta=\left(\frac{1}{6}\right)^{\frac12}=\frac{1}{\sqrt6}. ]
结果完全一致。
所以遇到 (f^{(n+2)}(x_0)=0) 时,不要慌,先看 (q) 是多少,再用扩展公式。
7. 用 Python 做数值验证
理论推导容易手滑,用 Python 做一下数值验证,能快速确认结论是否可靠。下面给三个可运行的代码示例。
7.1 验证 (e^x) 的 (\theta) 极限
对 (e^x) 展开到一阶,可以直接从方程中解出 (\theta):
import math def theta_exp(h, n=1): # e^h 的 n 阶泰勒多项式 poly = sum(h**k / math.factorial(k) for k in range(n + 1)) # 拉格朗日余项 = e^h - poly = e^(theta h) * h^(n+1) / (n+1)! left = math.exp(h) - poly # 解出 theta return math.log(math.factorial(n + 1) * left / h**(n + 1)) / h for h in [0.1, 0.01, 0.001, 0.0001]: print(f"h={h:.4f}, theta={theta_exp(h, 1):.6f}")运行结果会看到 (\theta) 越来越接近 (0.333333),也就是 (\frac13)。
7.2 验证 (x^2+x^4) 的 (\theta) 极限
对 (f(x)=x^2+x^4) 展开到一阶,(\theta) 可以直接解析表达式:
import math def theta_quart(h): # f(h) - [f(0) + f'(0)h] = h^2 + h^4 left = h**2 + h**4 # f''(x) = 2 + 12x^2,余项: f''(theta h) / 2 * h^2 # 所以 left = (1 + 6*theta^2*h^2) * h^2 return math.sqrt((left / h**2 - 1) / (6 * h**2)) for h in [0.1, 0.01, 0.001]: print(f"h={h:.4f}, theta={theta_quart(h):.6f}")结果会稳定在 (0.408248) 附近,也就是 (\frac{1}{\sqrt6})。
7.3 通用公式计算器
把扩展公式写成一个小函数,可以快速预测不同 (n) 和 (q) 下的 (\theta) 极限:
import math def comb(n, k): return math.factorial(n) / (math.factorial(k) * math.factorial(n - k)) def theta_limit(n, q): # 条件:q > n + 1 if q <= n + 1: return None return (1 / comb(q, n + 1)) ** (1 / (q - n - 1)) # 常见情形 print("n=1, q=2:", theta_limit(1, 2)) # 应接近 1/3 print("n=1, q=4:", theta_limit(1, 4)) # 应接近 1/sqrt(6) print("n=3, q=5:", theta_limit(3, 5)) # 标准情形 1/5输出结果可以和前面例题对应上。这段代码不是考试工具,而是帮你理解“如果高阶导数连续出现多个零,(\theta) 极限会变成什么”的规律。
8. 考场规范写法与常见错误
这类题目在考场上不需要写太多字,但关键步骤不能少。推荐按下面这个模板写。
设 (x) 充分接近 (x_0),由拉格朗日余项:
[ f(x)=P_n(x)+\frac{f^{(n+1)}(x_0+\theta(x-x_0))}{(n+1)!}(x-x_0)^{n+1}. ]
又因为 (f^{(n+2)}(x_0)\neq 0),写出
[ f(x)=P_n(x)+\frac{f^{(n+1)}(x_0)}{(n+1)!}(x-x_0)^{n+1}+\frac{f^{(n+2)}(x_0)}{(n+2)!}(x-x_0)^{n+2}+o((x-x_0)^{n+2}). ]
比较系数,得
[ \frac{f^{(n+2)}(x_0)}{(n+1)!}\theta=\frac{f^{(n+2)}(x_0)}{(n+2)!}, ]
所以
[ \theta\to\frac{1}{n+2}. ]
注意最后一步比较系数其实是省略了 (o(h)) 项后的极限写法,考场上这样写是能得分的,但要确保前面的展开都是正确的。
常见错误主要有三个。第一个是把 (\theta) 当常数,直接对余项求导,这是最严重的问题。第二个是漏写分母阶乘,把 ((n+1)!) 和 ((n+2)!) 搞混,导致系数变成 (1/(n+1))。第三个是忽略高阶无穷小,在还没有取极限时就把 (o(x)) 直接丢掉,导致比较系数时缺项。
可以把这些错误整理成一张排查表:
| 错误现象 | 可能原因 | 纠正方法 |
|---|---|---|
| (\theta) 极限算出 (1/(n+1)) | 分母阶乘写错 | 检查 ((n+2)!) 与 ((n+1)!) 的比值 |
| 展开后无法消去主项 | 佩亚诺余项展开阶数不够 | 多展开一阶到 (n+2) 次项 |
| (\theta) 极限不收敛 | (f^{(n+2)}(x_0)=0),需要判断 (q) | 用扩展公式,先确定下一非零项阶数 |
| 比较系数时漏掉 (o(h)) | 过早扔掉高阶无穷小 | 保留无穷小项,取极限前不要忽略 |
| 式子两边约分错误 | 没有检查除数是否为零 | 先确认 (f^{(n+2)}(x_0)\neq 0) |
9. 扩展:与拉格朗日中值定理中 (\theta) 极限的关系
当 (n=0) 时,上面这个结论其实就是拉格朗日中值定理里的 (\theta) 极限。
拉格朗日中值定理说,若 (f) 在 ([x_0,x]) 上连续、在 ((x_0,x)) 内可导,则存在 (\xi=x_0+\theta(x-x_0)),使得
[ f(x)-f(x_0)=f'(\xi)(x-x_0). ]
如果把 (n=0) 代入标准结论,得到
[ \theta\to\frac{1}{0+2}=\frac12. ]
也就是说,当 (x\to x_0) 时,中值点大约落在区间中点附近,前提是 (f''(x_0)\neq 0)。这个结论在很多导数估值题里很常用。理解了拉格朗日余项的 (\theta) 极限,也就顺带理解了拉格朗日中值定理里的 (\theta) 极限,两者是同一个框架下的东西。
10. 与泰勒展开唯一性的联系
整类题能这样做,本质上依赖于带佩亚诺余项的泰勒展开的唯一性。同一个函数在同一展开中心、同一展开阶数下,无论用什么方法展开,得到的系数必须一致。
拉格朗日余项里含有 (\theta),但它表示的误差量是真实存在的。把拉格朗日余项写成导数形式,再把这个导数在 (x_0) 处展开,得到的每一项都必须和佩亚诺余项展开中的对应项一致。这样一来,(\theta) 就会出现在更高阶项的系数里。
所以,做题时遇到陌生函数,不要试图把 (\theta) 解成显式表达式,那是自找麻烦。正确做法永远是:
- 写出拉格朗日余项;
- 写出至少到 (n+2) 阶的佩亚诺余项展开;
- 比较 (n+2) 阶系数;
- 解出 (\theta) 的极限。
如果 (n+2) 阶系数恰好为零,就继续往后找第一个非零项,再用扩展公式。
11. 一份最小可用的做题清单
最后给你一份可以直接照着操作的清单,适合考前快速复习。
- 判断题目给出的展开阶数 (n),并写出拉格朗日余项的标准形式。
- 检验 (f^{(n+2)}(x_0)) 是否为 (0)。
- 若不为 (0),直接写答案 (\theta=\frac{1}{n+2})。
- 若为 (0),继续找下一个非零项阶数 (q),计算组合数 (C_q^{n+1})。
- 用扩展公式 (\theta=\left(\frac{1}{C_q^{n+1}}\right)^{\frac{1}{q-n-1}}) 确定极限。
- 遇到具体函数时,用比较系数法写步骤,不要直接背答案。
这个清单适用于绝大多数考研数学一里的拉格朗日余项 (\theta) 极限题。第一次做不熟很正常,建议把 (e^x)、(\sin x)、(\ln(1+x))、((1+x)^\alpha) 四个函数各算一遍,手感马上就不一样了。对这个考点来说,最值得先验证的是 (e^x) 展开到一阶,因为步骤最清晰,最容易检查出系数问题;最容易踩的坑是忽略高阶项的存在,直接把无穷小丢掉,导致 (\theta) 的极限差一个常数因子。把这些坑都绕过去,这类题基本就是送分题了。