有理函数部分分式展开:简化复杂计算的利器

介绍

在信号处理、控制理论和电路分析等领域,经常会遇到需要对有理函数进行部分分式展开的情况。有理函数通常表示为两个多项式的比值,部分分式展开可以将一个复杂的有理函数分解为多个简单的分式之和,这样便于对函数进行积分、求逆变换等操作。这段代码的具体用途就是将给定的有理函数 A(s)B(s)​ 进行部分分式展开,并输出展开后的各项系数。

原理

1. 导入必要的库 

from sympy import Symbol, pprint, Poly
from scipy.signal import residue
  • sympy 是一个用于符号数学的 Python 库,这里使用 Symbol 来定义符号变量,pprint 用于美观地打印数学表达式,Poly 用于处理多项式。
  • scipy.signal.residue 是一个用于计算有理函数部分分式展开的函数。

2. 定义符号变量和原始表达式 

  • s 是一个符号变量,表示复变量 s。
  • B_s 和 A_s 分别表示有理函数的分子多项式和分母多项式。

3. 打印原始表达式 

pprint(B_s/A_s)

使用 pprint 函数美观地打印出原始的有理函数  B(s) / A(s)​。

4. 展开表达式并形成多项式对象

B_s_poly = Poly(B_s.expand(), s)
A_s_poly = Poly(A_s.expand(), s)
  • expand() 方法用于展开多项式表达式。
  • Poly() 函数将展开后的表达式转换为多项式对象。

 5. 获取多项式的系数

num = B_s_poly.all_coeffs()
den = A_s_poly.all_coeffs()
  • all_coeffs() 方法用于获取多项式的所有系数,返回一个列表。

6. 打印多项式的系数 

print("num =", num)
print("den =", den)

打印出分子多项式和分母多项式的系数。

7. 进行部分分式展开
r, p, k = residue(num, den)
  • residue() 函数用于计算有理函数的部分分式展开。
  • r 是留数(residues)的列表,表示部分分式展开中每个分式的系数。
  • p 是极点(poles)的列表,表示部分分式展开中每个分式的分母的根。
  • k 是直接项(direct terms)的列表,表示部分分式展开中的多项式部分的系数。

8. 打印部分分式展开的结果 

print("r =", r)
print("p =", p)
print("k =", k)

 

打印出部分分式展开后的留数、极点和直接项。

总结

这段代码通过 sympy 库处理符号多项式,然后使用 scipy.signal.residue 函数对有理函数进行部分分式展开,最终输出展开后的各项系数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值