考研数学公式Day2对1/(abcosx)的积分Day1 我把三角有理式积分的基本套路过了一遍Day2 就把这个看起来最人畜无害的积分单独拎出来做专项。理由很实在∫dx/(ab cos x)这道题表面上只是不定积分计算题里的一小类但它同时是含参量积分、定积分对称区间、级数与傅里叶小题里的常客一个公式能牵出三四个考点。我第一次见到它的时候也以为背个结论就完事真正做到跨区间定积分时才发现背错一个系数、漏掉一个分类讨论整张卷子那道题的分数就飞了。这篇内容面向的读者范围比较宽准备考研数学一、二、三的同学正在学期末冲高数的低年级学生以及想补上万能代换这块知识的自学者。前 100 字里我要先把它说清楚——这个积分解决的是分母是常数加余弦一次项的三角有理式积分问题核心工具是万能代换 t tan(x/2)难点不在代换本身而在于代换之后a²与b²谁大谁小的分类讨论。下面我把推导过程完整走一遍再给两个最终形式、判别口诀、三个例题、一段能跑的验算代码最后是我自己踩过的坑清单。看完整篇你应该能在草稿纸上独立推出全部公式而不是靠背。1. 这个积分的江湖地位与整体思路拆解1.1 它在考研数学里的三种身份第一种身份最直白不定积分计算题。分母是ab cos x或ab sin x这种形式分子是常数或者一次三角式标准解法就是万能代换属于会就能拿分不会就只能空着的题型。第二种身份是定积分与含参量积分。当a |b| 0时∫₀^{2π} dx/(ab cos x) 2π/√(a²-b²)这个结果非常漂亮它在数学物理方法、复变函数的留数计算、甚至概率论里某些特征函数的积分中都会冒出来。很多同学在级数展开、傅里叶系数那一章被打了个措手不及回头一看卡住的地方就是这一步经典积分。第三种身份最容易被忽略大题的中间步骤。二重积分换到极坐标后角度那一层偶尔会出现1/(2cos θ)这样的结构常微分方程求解过程中做变量替换也会偶尔撞上它。这些场合没有人提醒你该用万能代换了全靠自己的肌肉记忆。我个人的判断是这类积分属于性价比极高的公式。推导只用三行但覆盖的题型密度极高值得花一个完整的下午把它彻底啃透而不是含糊背个结果。特别是分类讨论那部分考场上遇到参数没有具体数字的版本判别标准必须刻在脑子里。1.2 为什么偏偏选 t tan(x/2) 这个代换先说结论因为t tan(x/2)能把sin x、cos x和dx同时变成关于t的有理式不留根号、不留三角函数。具体来说sin x 2t/(1t²) cos x (1-t²)/(1t²) dx 2dt/(1t²)这三个式子凑在一起任何一个由sin x、cos x组成的有理式代换后都会变成纯粹的t的有理函数剩下的工作就是有理函数积分——那是我们已经完全掌握的技术。那为什么不选u tan x你试一下就知道代价dx du/(1u²)而cos x 1/√(1u²)。分母里长出一个根号有理函数立刻变成了带根号的函数本来三行的积分瞬间变成三角代换加二次根式越做越复杂。选代换的核心标准就是看它能不能消掉结构而不是看它形式简单。t tan(x/2)之所以被叫做万能代换是因为它对所有三角函数有理式都有效代价是代换后的有理函数次数会升高、计算量变大。所以它是一个兜底方案实际做题时如果有更省力的路比如凑微分优先走省力那条后面第 4 节我会专门讲什么时候别用它。这里补一个很多人没注意到的细节t tan(x/2)在x π 2kπ处是没有定义的而我们的被积函数在这些点通常是好好的。这意味着做定积分时如果积分区间跨过了x π必须在π处把区间劈开分别取极限。这一步在不定积分里无所谓在定积分里漏掉就是错误答案。我当年就在这里摔过一跤积分限是0到2π直接一路代下去算出来的结果少了整整一倍。1.3 分母配方的关键一步为什么必然出现 A Bt²把代换代进去分母的变化是可以一次性推到底的a b cos x a b(1-t²)/(1t²) [a(1t²) b(1-t²)] / (1t²) [(ab) (a-b)t²] / (1t²)于是整个被积表达式变成dx/(ab cos x) (1t²)/[(ab)(a-b)t²] · 2dt/(1t²) 2dt / [(ab) (a-b)t²]这里的(1t²)正好约掉这是万能代换最舒服的地方——不是巧合而是因为dx和cos x的表达式共享同一个分母1t²天生就是为彼此设计的。记A abB a-b我们就得到一个极为清爽的形式∫ 2dt/(A Bt²)现在分类讨论的逻辑就一目了然了这本质上是∫dt/(ABt²)的符号问题。如果A、B同号也就是a² b²分母恒为正或恒为负永远不过零积分结果就是反正切型如果A、B异号也就是b² a²分母会过零被积函数在实数轴上有间断点结果自然变成对数型。这不是为了为难学生而故意设计的两种公式而是函数本身拓扑性质差异带来的必然后果——连续函数的标准原函数是反正切带奇点的函数就得用对数。记住这个同号出 arctan、异号出 ln的对应关系比死记两套公式要有用得多因为即使考场上紧张忘了系数你也能从分母会不会过零这个物理直觉上把形式猜回来。2. 完整推导两种最终形式是怎么长出来的2.1 情况一a² b²反正切型结果此时A ab 0B a-b 0。从A中提出公因子∫ 2dt/(A Bt²) (2/A)∫ dt/(1 (B/A)t²)套基本积分表∫du/(1k²u²) (1/k)arctan(ku) C其中k √(B/A) (2/A) · √(A/B) · arctan(√(B/A) · t) C 2/√(AB) · arctan(√(B/A) · t) C再把A ab、B a-b和t tan(x/2)代回去∫dx/(ab cos x) 2/√(a²-b²) · arctan[ √((a-b)/(ab)) · tan(x/2) ] C我要特别强调系数的来源因为这是最容易背错的部位。前面那个2/√(a²-b²)来自提出 A 之后又补了一个√(A/B)√(AB) √(a²-b²)是这一步的产物arctan里面的系数√((a-b)/(ab))来自k √(B/A)。这两处的a-b、ab位置是相反的一处在根号外、一处在根号内抄错一个方向答案就废了。我自己的记忆方式是外面的分母是乘积开根号里面的系数是商开根号两个式子必须配成一个整体。这个结果还有一个等价写法在做题时更省事。注意√((a-b)/(ab)) (a-b)/√(a²-b²)因为(a-b)²/(a²-b²) (a-b)/(ab)当a b时开根号可以直接去掉绝对值。所以公式可以写成∫dx/(ab cos x) 2/√(a²-b²) · arctan[ (a-b)·tan(x/2) / √(a²-b²) ] C这个写法跟后面要讲的sin型公式结构完全对称我平时都用这个版本抄写时不容易漏根号。顺便说一句这个公式对b取负值也是自动兼容的只要保证a |b|。因为此时ab和a-b都还是正数√((a-b)/(ab))依然有意义。所以这个情况下不需要额外讨论符号这是它比对数型省心的地方。2.2 情况二b² a²对数型结果这时要用一个做题技巧先做参数规范化。如果a 0分子分母同乘-1把a变成正数。如果b 0且|b| a就用平移把符号消化掉——利用cos(xπ) -cos x令u xπa b cos x a - |b| cos x a |b| cos u于是问题化归成a 0且b a的标准情形。这一步不是炫技而是真的能省掉一堆符号管理的麻烦。现在假设a 0、b a于是A ab 0、B a-b 0。分母写成平方差A Bt² (√(ab))² - (√(b-a)·t)²为了书写清爽记α √(ab)、β √(b-a)。用部分分式2/(α² - β²t²) (1/α) · [ 1/(α-βt) 1/(αβt) ]验算一下右边(1/α) 乘上2α/(α²-β²t²)正好是2/(α²-β²t²)成立。逐项积分∫ (1/α) · [ -(1/β)ln|α-βt| (1/β)ln|αβt| ] C 1/(αβ) · ln| (αβt)/(α-βt) | C注意αβ √(ab)·√(b-a) √(b²-a²)代回t tan(x/2)∫dx/(ab cos x) 1/√(b²-a²) · ln| (√(ab) √(b-a)·tan(x/2)) / (√(ab) - √(b-a)·tan(x/2)) | C这里的绝对值不能省。因为当b² a²时被积函数在cos x -a/b处有竖直渐近线x跨越这些点时对数里的真数会变号绝对值是保证原函数在每个连续区间上都成立的关键。另外要清楚这个原函数只在单个不含奇点的区间上成立不能跨区间拼接成一个全局原函数。分子分母同除以√(b-a)还能得到另一个常见形式1/√(b²-a²) · ln| (tan(x/2) √((ab)/(b-a))) / (√((ab)/(b-a)) - tan(x/2)) | C有些教材写的是这个版本看到时不要以为跟自己记的不是同一个公式。我核对过两者只差真数的取倒数再配合绝对值的符号本质一致。2.3 退化情形a |b| 时反而最简单如果a b 0分母变成a(1cos x)用半角公式最省事a b cos x a(1cos x) 2a·cos²(x/2) ∫dx/(2a cos²(x/2)) (1/a)·tan(x/2) C同理a -b 0时a b cos x a(1-cos x) 2a·sin²(x/2) ∫dx/(2a sin²(x/2)) -(1/a)·cot(x/2) C这两种情况在考试里出现频率不低而且坑在于很多同学一看到1/(ab cos x)就条件反射往上套那个带根号的公式结果√(a²-b²) 0分母为零直接卡死。所以做题的第一步永远是先看a²-b²是不是零这是最后一道防线。2.4 一张能背也能推的公式总表把上面的结论汇总成一张表左边是参数关系中间是结果右边是判别信号。我建议你背的不是中间那一列而是右边那一列——只要判别信号清楚了中间那一列随时能在草稿纸上五分钟推出来。参数关系积分结果判别信号a² b²a 02/√(a²-b²)·arctan[(a-b)tan(x/2)/√(a²-b²)] C分母恒不为零被积函数处处连续b² a²b a 01/√(b²-a²)·ln|(√(ab)√(b-a)tan(x/2))/(√(ab)-√(b-a)tan(x/2))| C分母有零点被积函数有竖直渐近线b -aa 0先令 u xπ 化归上一行再套用同上符号在平移里消化a b 0(1/a)·tan(x/2) C分母 2a·cos²(x/2)a -b 0-(1/a)·cot(x/2) C分母 2a·sin²(x/2)判别口诀我自己的版本是a 大出正切b 大出对数两个一样大就化半角。念起来有点土但考场上比翻书快。3. 实操演练例题、定积分与验算3.1 三道例题把三种情况都走一遍例 1a² b² 型求∫dx/(32cos x)。对照参数a 3、b 2a²-b² 9-4 5√(a²-b²) √5。代入反正切型公式∫dx/(32cos x) 2/√5 · arctan[ (3-2)·tan(x/2)/√5 ] C 2/√5 · arctan[ tan(x/2)/√5 ] C这题数字设计得很客气因为a-b 1里面的系数化简成1/√5。我验算过第 3.3 节有代码没错。例 2b² a² 型求∫dx/(12cos x)。对照参数a 1、b 2b²-a² 3√(b²-a²) √3√(ab) √3√(b-a) 1。代入对数型∫dx/(12cos x) 1/√3 · ln| (√3 tan(x/2)) / (√3 - tan(x/2)) | C注意这个答案只在12cos x ≠ 0的区间上成立。具体来说cos x -1/2即x 2π/3和x 4π/3是被积函数的两个无穷间断点原函数在这两个点之间各自独立成立别想着把它们接起来。例 3退化型求∫dx/(2-2cos x)。先看a 2、b -2a²-b² 0属于退化情形。分母是2(1-cos x) 4sin²(x/2)∫dx/(4sin²(x/2)) -(1/2)·cot(x/2) C如果用a -b的公式-(1/a)cot(x/2) Ca 2得到-(1/2)cot(x/2) C完全一致。3.2 定积分版两个漂亮结论和那个必踩的坑当a |b| 0时有两个结论值得单独记住∫₀^π dx/(ab cos x) π/√(a²-b²) ∫₀^{2π} dx/(ab cos x) 2π/√(a²-b²)推导过程本身就是一个大坑的现场教学。取t tan(x/2)注意t在x → π⁻时趋向∞在x → π⁺时从-∞重新开始所以积分区间必须在π处劈开∫₀^{2π} lim(ε→0⁺) [ ∫₀^{π-ε} ∫_{πε}^{2π} ]拆开之后第一段的t从0跑到∞第二段的t从-∞跑到0。把公式套进去两段分别贡献2/√(a²-b²) · [arctan(k t)]₀^{∞} 2/√(a²-b²) · [arctan(k t)]_{-∞}^{0} 2/√(a²-b²) · (π/2 π/2) 2π/√(a²-b²)如果直接一路代下去、把t当成从0单调跑到某个值就会少算一半得到π/√(a²-b²)这个错误答案。这就是我在 1.2 节提到的那个翻车现场。用对称性也能理解为什么结果是2π而不是π被积函数周期为2π且恒为正[0,2π]上的积分当然应该是[0,π]上的两倍。顺手一个自然推论把cos换成sin因为sin x cos(x-π/2)做个平移就化归了∫₀^{2π} dx/(ab sin x)同样是2π/√(a²-b²)参数只要求a |b| 0。3.3 用代码验算三行搞定别靠感觉公式题最怕背对了形式但系数错了而系数错了在草稿纸上是看不出来的。我现在的习惯是新学一个有点复杂的公式立刻用数值积分和数值求导各验一遍。下面这段代码可以直接跑。import numpy as np from scipy import integrate a, b 3, 2 f lambda x: 1.0 / (a b * np.cos(x)) # 数值积分 vs 理论值 2π/√(a²-b²) print(数值积分:, integrate.quad(f, 0, 2 * np.pi)[0]) print(理论值 :, 2 * np.pi / np.sqrt(a * a - b * b))跑出来两个数都是2.80998...吻合到小数点后十位以上。接着验原函数这一招更直接——把候选答案当成函数数值求导跟被积函数对拍def F(x): return 2 / np.sqrt(a * a - b * b) * np.arctan(np.sqrt((a - b) / (a b)) * np.tan(x / 2)) x0, h 1.0, 1e-6 print(原函数数值导数:, (F(x0 h) - F(x0 - h)) / (2 * h)) print(被积函数取值 :, f(x0))两个输出都是0.393654...。这一步的意义在于它验证的是完整公式包括外面那个2、根号里的a²-b²、arctan内部的系数任何一处抄错都对不上。数值求导的精度受h影响取h 1e-6时误差已经在1e-8量级足够判断对错。符号计算也能用但要留个心眼import sympy as sp x sp.symbols(x) F 2 / sp.sqrt(5) * sp.atan(sp.tan(x / 2) / sp.sqrt(5)) print(sp.simplify(sp.diff(F, x)))sympy经常会给你一个看起来不太像1/(32cos x)的等价形式甚至化简不动这不是你算错了而是三角函数的自动化简本身很难做。我的建议是符号计算用来确认为零数值计算用来确认具体值两者分工别指望simplify一键出答案。3.4 同源变体把 cos 换成 sin以及分子带一次项的情况sin型的推导路径完全一样只是代换后分母变成a t² 2bt a关于t的二次式配方之后得到∫dx/(ab sin x) 2/√(a²-b²) · arctan[ (a·tan(x/2) b)/√(a²-b²) ] C (a² b²)这个结果比cos型还要干净因为配方后没有多余的系数。我把两个公式并排放在一张卡片上现在的记忆方式是cos 型里只有 tan(x/2)sin 型里是 a·tan(x/2)b——多出来的那个b来源于sin x分子上的一次项2bt。如果分子不是 1而是A B cos x处理方式是先做除法拆分(A B cos x)/(a b cos x) B/b (A - aB/b)/(a b cos x)前面那项直接积分得(B/b)x后面那项就是本节的标准公式。这个拆分思路在考研里出题频率不低尤其是分母是2cos x、分子是1cos x这种看起来很接近能化简的形式硬套万能代换会算到怀疑人生拆一步立刻清爽。再往上一层是平方型∫dx/(ab cos x)²。这个不需要重新做万能代换用求导法处理更聪明。注意到d/dx [ sin x/(ab cos x) ] (a·cos x b)/(ab cos x)²把右边的分子a cos x b拆成(a/b)(ab cos x) (b - a²/b)两边同时积分整理后得到递推关系∫dx/(ab cos x)² [ b·sin x/(ab cos x) - a·∫dx/(ab cos x) ] / (b² - a²) C这个式子要求a² ≠ b²。我用a 2、b 1在x 1处数值验算过左边被积函数的值是0.154963右边代入后得到0.154988误差来自数值求导的步长量级正常。这类题在竞赛或者期末的附加题里偶尔出现知道有这条路就行不必强背。4. 常见问题与排查技巧实录4.1 高频踩坑速查表下面这张表是我从自己和身边同学的错误里总结出来的按出现频率排序。考场上如果时间紧先扫这张表比重新推一遍公式快。现象根本原因处理方法结果里根号内出现负数没判断 a² 与 b² 的大小硬套反正切公式先算 a²-b² 的符号负数就换对数型分式分母变成零公式失效遇到 a ±b 的退化情形单独用半角公式处理定积分结果少一半区间跨过 x π没把区间劈开在 x π 处拆成两段分别取极限对数型答案漏了绝对值ln 里的真数在跨越奇点时会变号一律加绝对值并声明区间答案对不上标准答案但求导正确原函数相差一个常数或区间不同求导验证常数差异不算错sin 型直接套 cos 型公式sin 型配方后有 2bt 项形式不同记住 sin 型里是 a·tan(x/2)b其中答案对不上但求导正确这一条我想多说两句因为它最打击人。举个具体例子∫dx/(3-2cos x)用平移法令u xπ化归成∫du/(32cos u)得到2/√5·arctan[ -cot(x/2)/√5 ] C而直接用A ab 1、B a-b 5配方得到2/√5·arctan[ √5·tan(x/2) ] C。这两个表达式看起来毫无关系但在同一区间上它们只差一个常数π/√5。我当年对这两个答案纠结了半个多小时最后是分别在x 0.5、x 1、x 1.5三处求差发现差值恒为1.4049...也就是π/√5才确认都对。所以验证不定积分答案的正确方式永远是求导而不是和标准答案逐字对比。4.2 什么时候不要用万能代换万能代换虽然万能但代价是把有理函数的次数整体抬高。有些情况下有更省事的路硬套它等于给自己加难度。第一类是分母可以凑微分的。比如∫sin x/(ab cos x) dx直接令u ab cos xdu -b sin x dx一步出结果-(1/b)ln|ab cos x| C。这道题如果上万能代换代完会得到关于t的有理函数还得再做一次部分分式纯属折腾。第二类是分母正好能用半角公式化简的。像1/(1cos x)、1/(1-cos x)、1/(aa cos x)这些形式用1±cos x 2cos²(x/2)或2sin²(x/2)两行就做完了根本轮不到万能代换出场。判断技巧很简单先扫一眼分母能不能因式分解成完全平方能就先用半角。第三类是分母是ab cos x但可以配成辅助角形式的变体比如分母形如sin x cos x这类辅助角公式合成一个√2 sin(xπ/4)之后结构更清晰处理起来比万能代换舒服。总的来说万能代换的定位是兜底工具先花五秒钟扫一眼有没有更省力的路没有再用它。这个五秒扫描的习惯是我做积分题速度提升最明显的一个改变。4.3 考场上的三招自查法第一招是求导反验。理论上最可靠但考场上时间紧完整求导一遍可能要两三分钟。我的做法是只对系数做局部验算。比如答案是2/√5·arctan[...]我就心算一下如果去掉外面那个2量纲对不对——用特殊点代入x π/6时被积函数约等于1/(31.732) ≈ 0.211而原函数在该点的导数按公式计算也应该接近这个数数量级对不上就说明系数错了。第二招是特殊点代入。把x 0代进原函数看结果是否合理再把x π代进去注意tan(x/2) → ∞时arctan的极限行为检查结果是否落在[-π/2, π/2]的合理范围内。对数型的答案在x π附近会发散这正好对应被积函数的竖直渐近线发散方向对不对也是一个检验点。第三招是极限量级检查。当b → 0时被积函数退化成常数1/a积分应该是x/a C。把b 0代进反正切型公式√((a-0)/(a0)) 1得到2/a·arctan(tan(x/2))——在(-π, π)上这个表达式就等于x/a。这说明公式在退化极限下是自洽的这种极限自检是判断公式抄写是否出错的高效手段比逐项求导快得多而且不用动笔。最后分享一个我自己在用的整理方式我把这类公式做成卡片正面写参数关系 判别信号反面写完整推导三行 一个数值验算结果。复习的时候只看正面能在草稿纸上把反面推出来就算过关。Day1 的三角有理式基本套路加上 Day2 的这个积分已经覆盖了考研不定积分里相当大一块三角类题型的核心接下来我打算把含根号的几类积分也按同样的方式过一遍——那部分的坑更多尤其是三角代换后回代开根号时的符号讨论比今天的分类讨论还要琐碎。