微积分40. 有理函数的积分法(上)

有理函数积分是微积分中的重要内容,也是实际问题中常见的积分类型。本文将系统讲解有理函数积分的基本概念、核心方法和Python工具实现,帮助读者建立系统的解题思路。

一、有理函数的数学定义与分类

有理函数是指两个多项式的商,具体定义为:

设 P n ( x ) P_n(x) Pn(x) 与 Q m ( x ) Q_m(x) Qm(x) 分别是 n n n 次和 m m m 次多项式,则称分式 Q m ( x ) P n ( x ) \frac{Q_m(x)}{P_n(x)} Pn(x)Qm(x) 为有理函数。

根据分子与分母多项式的次数关系,有理函数可分为两类:

  • 真分式 :当 m < n m < n m<n 时,分子次数小于分母次数,例如 x + 1 x 2 + 2 x + 3 \frac{x+1}{x^2+2x+3} x2+2x+3x+1
  • 假分式 :当 m ≥ n m \geq n m≥n 时,分子次数大于等于分母次数,例如 x 3 + 2 x x 2 + 1 \frac{x^3+2x}{x^2+1} x2+1x3+2x

重要结论 :任何假分式都可以通过多项式除法化为一个多项式与一个真分式的和。即存在多项式 S ( x ) S(x) S(x) 和次数小于 n n n 的多项式 R ( x ) R(x) R(x),使得: Q m ( x ) P n ( x ) = S ( x ) + R ( x ) P n ( x ) \frac{Q_m(x)}{P_n(x)} = S(x) + \frac{R(x)}{P_n(x)} Pn(x)Qm(x)=S(x)+Pn(x)R(x)

因此,有理函数的积分问题最终都归结为真分式的积分问题

二、有理函数积分的基本方法

有理函数积分的一般步骤如下:

  1. 判断分式类型:如果是假分式,先用多项式除法将其化为多项式与真分式的和
  2. 分母因式分解:将分母分解为一次因式和二次不可约因式的乘积
  3. 部分分式分解:根据分母因式类型,将分式拆解为简单分式的和
  4. 确定待定系数:通过比较系数法或赋值法求出各分式的系数
  5. 逐项积分:对分解后的简单分式分别积分

1. 分母为一次重因式的积分法

例题 :求 ∫ 5 x 2 + 3 ( x + 2 ) 3 d x \int \frac{5x^2+3}{(x+2)^3} dx ∫(x+2)35x2+3dx

求解步骤

第一步:部分分式分解 5 x 2 + 3 ( x + 2 ) 3 = A x + 2 + B ( x + 2 ) 2 + C ( x + 2 ) 3 \frac{5x^2+3}{(x+2)^3} = \frac{A}{x+2} + \frac{B}{(x+2)^2} + \frac{C}{(x+2)^3} (x+2)35x2+3=x+2A+(x+2)2B+(x+2)3C

第二步:通分比较系数 右端通分得: A x 2 + ( 4 A + B ) x + ( 4 A + 2 B + C ) ( x + 2 ) 3 \frac{Ax^2 + (4A+B)x + (4A+2B+C)}{(x+2)^3} (x+2)3Ax2+(4A+B)x+(4A+2B+C)

比较系数:

  • A = 5 A = 5 A=5
  • 4 A + B = 0 4A + B = 0 4A+B=0 ⇒ B = − 20 B = -20 B=−20
  • 4 A + 2 B + C = 3 4A + 2B + C = 3 4A+2B+C=3 ⇒ C = 23 C = 23 C=23

第三步:逐项积分 ∫ 5 x 2 + 3 ( x + 2 ) 3 d x = 5 ∫ 1 x + 2 d x − 20 ∫ 1 ( x + 2 ) 2 d x + 23 ∫ 1 ( x + 2 ) 3 d x \int \frac{5x^2+3}{(x+2)^3} dx = 5\int \frac{1}{x+2} dx - 20\int \frac{1}{(x+2)^2} dx + 23\int \frac{1}{(x+2)^3} dx ∫(x+2)35x2+3dx=5∫x+21dx−20∫(x+2)21dx+23∫(x+2)31dx

第四步:计算结果 = 5 ln ⁡ ∣ x + 2 ∣ + 20 x + 2 − 23 2 ( x + 2 ) 2 + C = 5\ln|x+2| + \frac{20}{x+2} - \frac{23}{2(x+2)^2} + C =5ln∣x+2∣+x+220−2(x+2)223+C

2. 分母为不同一次因式的积分法

例题 :求 ∫ x − 2 ( x − 3 ) ( x − 5 ) d x \int \frac{x-2}{(x-3)(x-5)} dx ∫(x−3)(x−5)x−2dx

求解步骤

第一步:部分分式分解 x − 2 ( x − 3 ) ( x − 5 ) = A x − 3 + B x − 5 \frac{x-2}{(x-3)(x-5)} = \frac{A}{x-3} + \frac{B}{x-5} (x−3)(x−5)x−2=x−3A+x−5B

第二步:通分比较系数 右端通分得: ( A + B ) x − ( 5 A + 3 B ) ( x − 3 ) ( x − 5 ) \frac{(A+B)x - (5A+3B)}{(x-3)(x-5)} (x−3)(x−5)(A+B)x−(5A+3B)

比较系数:

  • A + B = 1 A + B = 1 A+B=1
  • 5 A + 3 B = 2 5A + 3B = 2 5A+3B=2

解得: A = − 1 2 A = -\frac{1}{2} A=−21, B = 3 2 B = \frac{3}{2} B=23

第三步:逐项积分 ∫ x − 2 ( x − 3 ) ( x − 5 ) d x = − 1 2 ∫ 1 x − 3 d x + 3 2 ∫ 1 x − 5 d x \int \frac{x-2}{(x-3)(x-5)} dx = -\frac{1}{2}\int \frac{1}{x-3} dx + \frac{3}{2}\int \frac{1}{x-5} dx ∫(x−3)(x−5)x−2dx=−21∫x−31dx+23∫x−51dx

第四步:计算结果 = − 1 2 ln ⁡ ∣ x − 3 ∣ + 3 2 ln ⁡ ∣ x − 5 ∣ + C = -\frac{1}{2}\ln|x-3| + \frac{3}{2}\ln|x-5| + C =−21ln∣x−3∣+23ln∣x−5∣+C

三、有理函数积分的Python实现

使用Python的SymPy库可以自动化完成有理函数的积分计算,以下是一个完整的示例:

1. 一次重因式的Python验证

见calculus/chapter07/note40_test01.py

python 复制代码
import sympy as sp
x = sp.Symbol('x')
expr1 = (5*x**2 + 3) / (x + 2)**3

# 步骤1:先对原始有理函数进行部分分式分解
partial_frac1 = sp.apart(expr1, x)
print("部分分式分解: ", partial_frac1)

# 步骤2:对分解后的各项分别积分
integral_from_partial = sp.integrate(partial_frac1, x)
print("通过部分分式积分的结果: ", integral_from_partial)

# 步骤3:直接积分原始表达式
direct_integral = sp.integrate(expr1, x)
print("直接积分结果: ", direct_integral)

# 步骤4:检查两者是否一致
if sp.simplify(integral_from_partial - direct_integral) == 0:
    print("✓ 部分分式积分与直接积分结果一致")
else:
    print("✗ 结果不一致,需检查")

输出结果

复制代码
部分分式分解:  5/(x + 2) - 20/(x + 2)**2 + 23/(x + 2)**3
通过部分分式积分的结果:  (40*x + 57)/(2*x**2 + 8*x + 8) + 5*log(x + 2)
直接积分结果:  (40*x + 57)/(2*x**2 + 8*x + 8) + 5*log(x + 2)
✓ 部分分式积分与直接积分结果一致

2. 不同一次因式的Python验证

见calculus/chapter07/note40_test02.py

python 复制代码
import sympy as sp
x = sp.Symbol('x')
expr1 = (x - 2)/((x - 3)*(x - 5))

# 步骤1:先对原始有理函数进行部分分式分解
partial_frac1 = sp.apart(expr1, x)
print("部分分式分解: ", partial_frac1)

# 步骤2:对分解后的各项分别积分
integral_from_partial = sp.integrate(partial_frac1, x)
print("通过部分分式积分的结果: ", integral_from_partial)

# 步骤3:直接积分原始表达式
direct_integral = sp.integrate(expr1, x)
print("直接积分结果: ", direct_integral)

# 步骤4:检查两者是否一致
if sp.simplify(integral_from_partial - direct_integral) == 0:
    print("✓ 部分分式积分与直接积分结果一致")
else:
    print("✗ 结果不一致,需检查")

输出结果

复制代码
部分分式分解:  -1/(2*(x - 3)) + 3/(2*(x - 5))
通过部分分式积分的结果:  3*log(x - 5)/2 - log(x - 3)/2
直接积分结果:  3*log(x - 5)/2 - log(x - 3)/2
✓ 部分分式积分与直接积分结果一致

四、关键技术要点分析

4.1 部分分式分解的原理与技巧

部分分式分解是有理函数积分的核心技巧,其数学原理基于以下定理:

定理 :设 Q ( x ) P ( x ) \frac{Q(x)}{P(x)} P(x)Q(x)是一个真分式,且分母 P ( x ) P(x) P(x)已分解为不可约多项式的乘积,则该有理函数可唯一表示为最简分式之和。

具体分解方法取决于分母的因式结构:

  1. 单重一次因式 :对于分母中的每个一次因式 ( x − a ) (x-a) (x−a),分解式中对应一项 A x − a \frac{A}{x-a} x−aA
  2. k重一次因式 :对于k重一次因式 ( x − a ) k (x-a)^k (x−a)k,分解式中对应k项: A 1 x − a + A 2 ( x − a ) 2 + ⋯ + A k ( x − a ) k \frac{A_1}{x-a} + \frac{A_2}{(x-a)^2} + \cdots + \frac{A_k}{(x-a)^k} x−aA1+(x−a)2A2+⋯+(x−a)kAk
  3. 单重二次不可约因式 :对于二次不可约因式 ( p x 2 + q x + r ) (px^2+qx+r) (px2+qx+r),分解式中对应一项 B x + C p x 2 + q x + r \frac{Bx+C}{px^2+qx+r} px2+qx+rBx+C
  4. k重二次不可约因式 :对于k重二次不可约因式 ( p x 2 + q x + r ) k (px^2+qx+r)^k (px2+qx+r)k,分解式中对应k项: B 1 x + C 1 p x 2 + q x + r + B 2 x + C 2 ( p x 2 + q x + r ) 2 + ⋯ + B k x + C k ( p x 2 + q x + r ) k \frac{B_1x+C_1}{px^2+qx+r} + \frac{B_2x+C_2}{(px^2+qx+r)^2} + \cdots + \frac{B_kx+C_k}{(px^2+qx+r)^k} px2+qx+rB1x+C1+(px2+qx+r)2B2x+C2+⋯+(px2+qx+r)kBkx+Ck

待定系数法的求解技巧

  • 留数法:等式两边同时乘以某个因子,再令该因子为零,解出待定系数
  • 特殊值法:选取特殊的x值代入方程,简化计算
  • 比较系数法:通分后比较分子多项式的各项系数,建立方程组

4.2 部分分式分解的数学本质

部分分式分解的本质是将有理函数分解为更简单的部分,以便于积分运算。这种分解与有理数分解为部分分数类似,都是将复杂对象分解为简单组成部分的方法。

从代数角度看,部分分式分解基于多项式环上的唯一分解定理。实数域上不可约多项式只能是一次或二次多项式,而复数域上所有不可约多项式都是一次的。这解释了为什么实数域上的部分分式分解总会产生一次和二次分式。

4.3 常见错误与注意事项

在进行有理函数积分时,需要注意以下常见错误:

  1. 忽略分式类型判断:未先将假分式通过多项式除法化为真分式
  2. 分母因式分解不彻底:导致部分分式分解不正确
  3. 待定系数求解错误:特别是重因式情况下的系数确定
  4. 积分常数遗漏:不定积分中忘记添加常数C
  5. 对数函数的绝对值符号 :积分 ∫ 1 x d x = ln ⁡ ∣ x ∣ + C \int \frac{1}{x}dx = \ln|x| + C ∫x1dx=ln∣x∣+C中的绝对值符号容易被忽略

总结

本文系统介绍了有理函数积分的基本方法和实现技巧。关键在于掌握部分分式分解的原理,将复杂的有理函数转化为最简分式的和,然后逐项积分。

通过Python的SymPy库,我们可以自动化这一过程,大大提高计算效率和准确性。在实际应用中,建议先手动理解计算原理,再借助工具进行验证和复杂计算。

在下一篇文章中,我们将继续探讨分母包含二次因式的有理函数积分,以及三角有理式的积分方法。

相关推荐
荷蒲1 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)3 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机3 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor6924 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy4 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源
月光船幽幽5 小时前
真实即粗糙,光滑是伪造
人工智能·python
一次旅行5 小时前
Attention机制从数学到工程:拆解缩放点积+多头注意力|附可运行PyTorch实现与踩坑指南
人工智能·pytorch·python
泡干脆面就番茄5 小时前
NumPy 科学计算完全指南:从数组创建到广播机制
python·numpy
denggun123455 小时前
信号量(DispatchSemaphore vs AsyncSemaphore)、swift协作式线程池 and python信号量
开发语言·python·swift
起光5 小时前
Python类与对象(一)
python