ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

泰勒展开与麦克劳林级数:从切线近似到工程应用一次讲透

泰勒展开与麦克劳林级数:从切线近似到工程应用一次讲透 翻开高数书泰勒级数和泰勒展开这一章可能是很多人的“劝退点”。大量公式、各种余项、还要背麦克劳林级数一眼望去全是字母和阶乘。但如果你考研、做数值计算、甚至只是想把一些复杂函数变成可计算的形式泰勒展开都是绕不开的工具。麦克劳林级数作为展开点取零的特例因为形式最简洁反而是日常使用频率最高的那一支。这篇文章我不想堆公式而是想从一个“切线近似”的直觉说起把泰勒展开背后的逻辑、常用展开、实操方法和常见坑一次讲透希望能帮你从“背公式”升级到“会用公式”。1. 泰勒展开到底在做什么先忘掉公式看直觉1.1 一条切线给出的“第一版近似”先回到最朴素的问题给定一个函数 f(x)比如 sinx、lnx、eˣ 这种我们能不能用一个简单的函数来“模仿”它最简单的模仿是在某个点附近用一条直线去贴它。这就是高数开篇就学过的微分近似f(x) ≈ f(x₀) f′(x₀)(x - x₀)这个式子有很直观的几何意义在 x₀ 这个点曲线和切线在这一点上不仅函数值相同斜率也相同。所以离 x₀ 非常近的时候切线几乎和曲线重合。很多年前我第一次学到这里时感觉这就是个“局部小把戏”只适合在很小范围内用。事实也确实如此——直线的精度有限x 稍微离开 x₀偏差就开始变大。那怎么让近似更精确顺着这个思路想直线不够就加一个弯曲的项让近似曲线在 x₀ 处的凹凸性也和原函数一致还不够就再加一项让更高阶的信息也对上。每多加一项就能在 x₀ 附近多贴住原函数一重“形状特征”。这里的关键点就来了函数在一点的信息不只是函数值和一阶导数二阶导数代表凹凸变化三阶导数代表凹凸变化的速率……这些高阶信息都被泰勒级数一点一点“榨”了出来。1.2 为什么偏偏选多项式泰勒展开的思路是拿一个多项式去逼近原函数。为什么是多项式而不是三角函数、指数函数或者其他什么东西原因很实际。第一多项式是“计算友好型”函数它只有加减乘和正整数次幂哪怕手算、哪怕用老式计算器都能直接算出数值结果。第二多项式求导、求积分都极其简单每一项单独处理就行不会像复合函数那样需要链式法则反复套。第三教科书里的核心结论已经保证在收敛域内无穷级数的部分和确实能无限制逼近原函数。用电脑做数值计算时三角函数、指数函数、对数函数底层往往就是靠泰勒级数或类似级数做近似展开的。所以泰勒级数本质上是在做一件事把一个看起来“不太好惹”的函数拆成无穷多个“好欺负”的幂函数之和然后在需要的精度处截断只保留前几项。1.3 系数是怎么定出来的泰勒公式的完整长相现在来看标准的泰勒公式。f(x) 在 x₀ 附近展开成f(x) f(x₀) f′(x₀)(x - x₀) f″(x₀)/2! · (x - x₀)² … f⁽ⁿ⁾(x₀)/n! · (x - x₀)ⁿ Rₙ(x)每一项的系数为什么是 f⁽ⁿ⁾(x₀)/n!你只要对等式两边反复求导再代入 x x₀ 就能验证。第一次求导代入二次项以后全带着 (x - x₀) 的因子统统归零剩下的一次项系数就是 f′(x₀)求二阶导代入剩下的是 2! 倍的二次项系数所以二次项系数是 f″(x₀)/2!依此类推。这个系数规律不是凑的而是为了保证“求 n 次导后在展开点的值与原函数完全相同”这一天然要求。这也是为什么每一项都带着 n! 的原因。这里的 x₀ 就是展开中心。把 x₀ 0 代入就得到麦克劳林公式f(x) f(0) f′(0)x f″(0)/2! · x² … f⁽ⁿ⁾(0)/n! · xⁿ Rₙ(x)麦克劳林级数其实就是泰勒级数在 x₀ 0 的特殊形式因为取值点选得巧很多项的系数算出来会很干净所以教材里会单独给它一个名字。后面我们讨论的大部分例子都默认用麦克劳林展开。还有一个必须交代的部分是余项 Rₙ(x)。它代表我们截断到 n 次项之后和真实函数之间的差距。最常见的两种写法皮亚诺余项Rₙ(x) o((x - x₀)ⁿ)意思是当 x → x₀ 时余项比 (x - x₀)ⁿ 更快地趋于零。这种写法适合求极限因为只关心趋近行为不关心具体误差大小。拉格朗日余项Rₙ(x) f⁽ⁿ⁺¹⁾(ξ)/(n1)! · (x - x₀)ⁿ⁺¹其中 ξ 在 x₀ 和 x 之间。这种写法能给出误差的具体上界适合做近似计算和不等式证明。两类余项各有各的用武之地后面我会分别举例说明。2. 麦克劳林级数五张“王牌”展开式2.1 核心展开式与收敛域麦克劳林展开做多了之后你会发现真正需要死记硬背的其实没几个。把下面这五张“王牌”记熟足以应对绝大多数场景函数麦克劳林展开收敛域eˣ1 x x²/2! x³/3! …(-∞, ∞)sinxx - x³/3! x⁵/5! - x⁷/7! …(-∞, ∞)cosx1 - x²/2! x⁴/4! - x⁶/6! …(-∞, ∞)ln(1x)x - x²/2 x³/3 - x⁴/4 …(-1, 1](1x)ᵅ1 αx α(α-1)/2! · x² …视 α 而定通常 (-1,1)几个记忆技巧。sinx 和 cosx 是一对只会出现奇数次幂和偶数次幂而且正负号交替eˣ 则是所有阶乘项都有符号全是正。ln(1x) 和 1/(1-x) 是一对好朋友1/(1-x) 1 x x² x³ …而 ln(1x) 展开后是 x - x²/2 x³/3 - x⁴/4 …正好是 1/(1x) 1 - x x² - x³ … 从 0 到 x 逐项积分的结果。我当年学的时候就是把这两组配对记忆效果比孤立背公式好很多。还有一点容易被忽略收敛域。eˣ、sinx、cosx 在整个实数轴上收敛而 ln(1x) 收敛域是 (-1, 1]在 x 1 时取到端点值1/(1-x) 在 |x|1 时收敛。用麦克劳林展开做近似时要特别注意 x 的绝对值是否小于 1否则误差会非常大甚至级数根本发散越加项越离谱。2.2 从“核心展开”推“派生展开”这些王牌展开式的价值不仅在于它们本身还在于它们能作为“原材料”推出大量派生展开式。比如把 eˣ 展开式里的 x 换成 2x就得到 e^{2x} 的麦克劳林展开e^{2x} 1 2x (2x)²/2! (2x)³/3! … 1 2x 2x² 4/3 · x³ …同理把 ln(1x) 的 x 换成 -x²就得到 ln(1 - x²) -x² - x⁴/2 - x⁶/3 - …。这种方法叫换元法操作上就是“整体代入”比直接对复合函数反复求导快得多。再比如标准展开里出现 1/(1-x)稍加变形就得到 1/(1x²) 1 - x² x⁴ - x⁶ …这个展开在计算 arctanx 的近似时特别有用。arctanx 的导数正好是 1/(1x²)所以把 1/(1x²) 的展开从 0 到 x 逐项积分就能得到arctanx x - x³/3 x⁵/5 - x⁷/7 …这个式子不仅形式漂亮还顺带解决了“没有计算器怎么估 π”这个经典问题。后面在应用部分我会具体展开讲。3. 泰勒展开实操拿到一个函数怎么展开3.1 方法一直接法老老实实求导最笨也最稳妥的方法是按定义算。给定函数 f(x)要求在 x₀ 处展开到 n 阶就直接算 f(x₀)、f′(x₀)、f″(x₀)…… 一直算到 f⁽ⁿ⁾(x₀)再代入公式。以一个简单函数为例求 f(x) sinx 在 x₀ π/4 处的三阶泰勒展开。先算f(π/4) √2/2f′(x) cosxf′(π/4) √2/2f″(x) -sinxf″(π/4) -√2/2f‴(x) -cosxf‴(π/4) -√2/2。代入泰勒公式sinx ≈ √2/2 √2/2 · (x - π/4) - √2/2 / 2! · (x - π/4)² - √2/2 / 3! · (x - π/4)³注意展开点不是 0所以每一幂次都是 (x - π/4) 的形式不能直接套麦克劳林公式。这是初学者最容易翻车的地方看到 x 就默认是 0 点展开结果每一项都错。直接法的优点是通用缺点是计算量大。函数稍微复杂一点求导就成灾难。比如 f(x) e^{x}·sinx用直接法求前三阶就要用莱布尼茨公式稍不留神就出错。所以实际做题时优先考虑间接法。3.2 方法二间接法站在王牌展开式肩膀上间接法的思路是尽量把目标函数变形套用已知的展开式而不是重新求导。举一个考研爱考的题求 e^{x}·sinx 在 x 0 处的三阶麦克劳林展开。直接求导很痛苦但如果先把两个展开式截断到三阶再相乘就简单很多。eˣ ≈ 1 x x²/2 x³/6sinx ≈ x - x³/6。两者相乘只需要保留到 x³ 项(1 x x²/2 x³/6)·(x - x³/6) x x² (1/2 - 1/6)x³ … x x² 1/3 · x³因为只要三阶四次及以上的项直接不写。这个过程中有个关键技巧乘法时不必把所有项都展开只挑乘积中次数 ≤ 3 的项组合即可能省不少时间。比如 eˣ 中的 x³/6 乘以 sinx 中的 -x³/6会得到 x⁶ 的项完全可以扔掉。再举一个例子求 ln[(1x)/(1-x)] 的麦克劳林展开。直接用 ln(1x) - ln(1-x)然后套两个已知展开式ln(1x) x - x²/2 x³/3 - x⁴/4 … ln(1-x) -x - x²/2 - x³/3 - x⁴/4 - …两者相减偶数次项全部抵消只剩奇数次项ln[(1x)/(1-x)] 2(x x³/3 x⁵/5 …)这个结果在双曲函数相关计算里经常出现。可以看到间接法一旦用熟展开效率能提升一个量级而且不容易算错。3.3 方法三逐项求导与逐项积分幂级数在收敛域内可以逐项求导、逐项积分这是一件非常强大的武器。它意味着我们不需要直接展开目标函数而是可以展开它的导数再积回去或者展开它的积分再求导拿回来。最经典的案例是 arctanx。我们知道 d/dx arctanx 1/(1x²)。先展开 1/(1x²)1/(1x²) 1 - x² x⁴ - x⁶ …|x| 1两边从 0 到 x 逐项积分arctanx x - x³/3 x⁵/5 - x⁷/7 …同理ln(1x) 也能通过 1/(1x) 1 - x x² - x³ … 积分得到。这个方法在考试中出现频率很高特别是证明题和级数求和题里需要你反着用先识别出某个函数展开式是另一个函数展开式的导数或积分然后再“平移”过去。逐项求导的使用场景也很多。比如已知 1/(1-x) 1 x x² x³ …两边求导得到 1/(1-x)² 1 2x 3x² 4x³ …这个式子在线代递推、概率论母函数里都经常用到。3.4 展开到几阶一个容易被低估的判断技巧“展开到几阶”是所有学习者最头疼的问题之一。展开阶数不够误差大展开阶数太多算起来费时还容易错。我的判断规则很简单展开后分母的阶数决定展开的目标阶数。比如求极限 lim (sinx - x)/x³分母是 x³那就把 sinx 至少展开到三阶写到 x³ 这一项为止。为什么因为 (sinx - x)/x³ 化简后分子的最低次项是 x³ 级别的只有写到这一阶极限值才会稳定出现。再看 lim (eˣ - 1 - x)/x²分母是 x²那就把 eˣ 展开到二阶就得eˣ 1 x x²/2 o(x²)代入后分子 x²/2 o(x²)极限为 1/2。如果只展开到一阶分子就成了 0 o(x²)除以 x² 后根本定不下来这就是典型的“展开阶数不够”问题。分子分母都是多项式的乘除结构时有一个更谨慎的做法展开到“分子分母可能抵消后的剩余最低阶”再多一阶。比如分子里两个函数相减最低次项有时会抵消那就得多展开一阶才能看到真实差值。sinx - x 就是一个例子sinx 的一阶项也是 x与后面的 -x 抵消必须写到 x³ 项才出现第一个非零贡献。这种“需要多展一阶”的坑几乎每个人都会踩一次。4. 泰勒展开的三个典型应用场景4.1 求极限比洛必达更“稳”的选择求极限是泰勒展开最经典的应用。很多极限题用洛必达法则也能做但洛必达有个毛病越求导越复杂还容易在 0/0 型循环里出不来。泰勒展开则是一条直线直接把一个函数变成多项式然后看最低次项答案往往一眼可见。来看一个典型的例子lim (x → 0) (sinx - x)/x³用直接法需要洛必达三次每次都要对 sinx - x 求导用泰勒展开sinx x - x³/6 o(x³)代入(sinx - x)/x³ (-x³/6 o(x³))/x³ -1/6 o(1)极限直接就是 -1/6。整个过程不到三行。再举一个稍微复杂的例子lim (x → 0) (eˣ - 1 - x)/x²同样eˣ 1 x x²/2 o(x²)代入(eˣ - 1 - x)/x² (x²/2 o(x²))/x² 1/2这种题如果洛必达第一次求导是 (eˣ - 1)/(2x)第二次是 eˣ/2也能做但明显泰勒展开的书写量更小、出错率更低。我个人的习惯是只要极限式里同时出现 sinx、cosx、eˣ、ln(1x) 中的两个以上先试试泰勒展开十次里有八次比洛必达快。还有一点特别好用的经验多个函数相加或相减时先用等价无穷小把能替换的替换掉再对剩余部分用泰勒展开效率最高。但要注意等价无穷小本质上就是泰勒展开的最低阶项如果最低阶项相互抵消就不能用等价无穷小只能老老实实多展开几阶。4.2 近似计算手算 π 和 e 的现场麦克劳林级数在手算近似值时非常好用。比如想算 e 的近似值直接用 x 1 代入 eˣ 的展开式e 1 1 1/2! 1/3! 1/4! …代入前几项就能得到不错的结果。前 5 项1 1 0.5 0.1667 0.0417 2.7084。真实的 e ≈ 2.71828误差不到 0.01。想提高精度再加一项 1/120 ≈ 0.00833结果变成约 2.71667误差继续缩小。这里用拉格朗日余项还能估算误差上限理论支撑很扎实。更经典的是利用 arctanx 展开式估算 π。我们知道 arctan(1) π/4所以π/4 arctan(1) 1 - 1/3 1/5 - 1/7 …这个式子叫莱布尼茨公式形式非常漂亮但收敛奇慢。代入前 100 项精确度也差强人意。实际更好用的组合是马青公式类的变形用 arctan(1/5) 和 arctan(1/239) 组合去算 π收敛速度快很多。这说明一个道理泰勒展开虽然“哪里都能用”但具体怎么用、选哪个展开点、代哪个 x 值直接决定了计算效率。这就是为什么我们需要理解展开式的收敛域和误差衰减速度而不只是背公式。在工程领域信号处理里的 sinc 函数、物理学里的单摆周期公式很多时候都是取泰勒展开的前一项或前两项作为近似模型。单摆在小角度下sinθ ≈ θ这就是麦克劳林展开取一阶项的结果要更高精度就取到 θ - θ³/6。一个看似简单的级数支撑着大量实际计算。4.3 证明不等式拉格朗日余项的用武之地泰勒展开除了算数还能用来证明不等式这是考研证明题里的一大类。最典型的证明当 x 0 时eˣ 1 x x²/2。用带拉格朗日余项的麦克劳林展开到二阶eˣ 1 x x²/2 e^ξ / 3! · x³其中 ξ ∈ (0, x)因为 x 0且 e^ξ 0所以余项大于 0立刻得到 eˣ 1 x x²/2。这里的关键是拉格朗日余项给了我们一个“可控制的正负号”从而把不等式问题转化成了余项符号问题。再看另一个经典不等式当 x 0 时ln(1x) x。用麦克劳林展开到一阶ln(1x) x - x² / [2(1ξ)²]其中 ξ ∈ (0, x)因为 x² / [2(1ξ)²] 0所以 ln(1x) x。这个结论在很多极限题和积分不等式题里都会作为中间步骤出现。用泰勒展开展开证明不等式核心心法是给函数一个“带余项的精确表达式”而不是一个“约等于”。皮亚诺余项只能说明极限行为证明不等式必须有拉格朗日余项才能给出定量估计。备考时这两类余项的使用场景一定要分清楚。5. 大家都踩过的坑泰勒展开常见问题排查5.1 错误一展开点不是 0却直接套麦克劳林这是最高频的错误。麦克劳林展开要求展开位置是 x 0展开结果是关于 x 的幂次但如果要在 x 1、x π/4 等位置展开就必须写成关于 (x - x₀) 的幂次。很多同学初学时展开点换成 π/4 之后还在那里算“x 的几次方”格式直接崩掉。记住一条铁律展开式的每一项都是“展开中心与自变量的差”的幂次。看到 (x - x₀)才有泰勒看到 x才谈麦克劳林。5.2 错误二余项随便丢误差心里没数求极限时写成 f(x) 多项式 o(xⁿ)这个 o 不能少更不能写成等号。比如 sinx x - x³/6事实上 sinx 和这个多项式并不相等差一个高阶无穷小。严格写应该是 sinx x - x³/6 o(x³)。做题时 o(x³) 不参与具体计算但必须出现在中间过程里否则逻辑上有漏洞。在做近似计算时错误更隐蔽只写近似值不说明误差。比如用展开式前 5 项计算 e得到 2.7084但如果不说明误差范围这个数字的“有效位数”就无法判断。严谨的做法是利用拉格朗日余项给一个误差上限比如 R₅(1) e^ξ / 6! ≤ e / 720 ≈ 0.0038远小于当前精度位这样得到的近似值才可信。5.3 错误三复合函数展开忘换底复合函数是展开错误的重灾区。比如把 sin(x²) 展开很多同学会直接套 sin 的公式写成 x² - (x²)³/6这没错但一定要统一再化简x² - x⁶/6 x¹⁰/120 - …。这里要注意的是换个元之后原来的 “x” 就变成了整体变量 u而最终结果要还原成关于 x 的幂次。还有一个常见误区sin(x²) 只写到二阶sinu u - u³/6所以 sin(x²) x² - x⁶/6 …实际上最低非零项是 x² 之后的下一个就是 x⁶中间 x³、x⁴、x⁵ 全都没有。如果不经过换元直接“脑补”很容易多写一堆不存在的项。5.4 错误四级数展开与收敛域割裂只记展开式不记收敛域是另一个大坑。比如 1/(1-x) 的展开式 1 x x² … 只有在 |x| 1 时才成立。你要是拿 x 2 代入得到 1 2 4 8 …级数发散毫无意义。但很多人做题时只在“形式”上套公式从不检查代进去的 x 是否在收敛域内。实际做题时只要 x 趋近于 0或者题目明确说“在 0 附近展开”收敛一般没问题但遇到参数范围讨论、近似计算应用时收敛域就必须重视。5.5 实操心得怎么把泰勒展开练成本能说了这么多最后分享一点个人经验。我当年学泰勒展开时最大的瓶颈不是理解公式而是记不住常用展开式、判断不了展开阶数。后来用的方法是把五张核心展开式抄在卡片上每天花十分钟默写一遍连续一周后基本形成肌肉记忆。然后专门刷了二十道求极限题每一道都只用泰勒展开禁用洛必达一个月之后再看这类题基本一眼就能判断展开到几阶、用哪个展开式。另外一个练习技巧是“反向验证”把 eˣ、sinx、cosx 的展开式前几项重写成一个多项式用计算器比较在 x 0.1、0.5、1 处的真实值和近似值感受一下误差随阶数和距离的变化。这样你对“为什么只在 0 附近用麦克劳林”“为什么阶数越高越精确”会有更具体的体感远比死记结论有说服力。我第一次做这个实验时x 0.1 处用四阶展开的误差已经小到 10⁻⁷ 级别那种“数学公式真的能用”的震撼比背十遍定理都管用。
返回列表