2026a

# residue


部分分式展开(部分分式分解)

函数库: TyMath

# 语法

r, p, k = residue(b,a)

b, a = residue(r,p,k)

# 说明

r, p, k = residue(b,a) 计算以如下形式展开的两个多项式之比的部分分式展开式的留数、极点和直项。

residue 的输入是由多项式 b = [bm ... b1 b0] 和 a = [an ... a1 a0] 的系数组成的向量。输出为留数 r = [rn ... r2 r1]、极点 p = [pn ... p2 p1] 和多项式 k。对于大多数教科书问题,k 为 0 或常量。示例


b, a = residue(r,p,k) 将部分分式展开式转换回两个多项式之比,并将系数返回给 b 和 a。示例

# 示例

求解具有实根的部分分式展开式

使用 residue 求以下多项式之比 F(s) 的部分分式展开式

using TyMath
b = [-4, 8]
a = [1, 6, 8]
r, p, k = residue(b, a)
r = 2-element Vector{Float64}:
  -12.0
  8.0

p = 2-element Vector{Float64}:
  -4.0
  -2.0

k = 0×0 Matrix{Float64}

此结果代表以下部分分式展开式

使用 residue 将部分分式展开转换回多项式系数。

b, a = residue(r, p, k)
b = 1×2 Matrix{Float64}:
  -4.0 8.0
  
a = 1×3 Matrix{Float64}:
  1.0 6.0 8.0

此结果表示初始分式 F(s)。

展开具有复数根和同次分子及分母的分式

如果分子的次数与分母的次数相等,输出 k 可以是非零值。

求解具有复数根和同次分子和分母的两个多项式 F(s) 之比的部分分式展示式,其中 F(s) 为

using TyMath
b = [2, 1, 0, 0]
a = [1, 0, 1, 1]
r, p, k = residue(b, a)
r = 3-element Vector{ComplexF64}:
   0.5354179059386032 + 1.0389917087094538im
   0.5354179059386032 - 1.0389917087094538im
 -0.07083581187720643 + 0.0im

p = 3-element Vector{ComplexF64}:
  0.3411639019140098 + 1.1615413999972526im
  0.3411639019140098 - 1.1615413999972526im
 -0.6823278038280195 + 0.0im

k = 1×1 Matrix{Float64}:
  2.0

residue 返回代表部分分式展开式的复数根和极点,以及常项 k

展开分子次数高于分母次数的分式

当分子次数大于分母次数时,输出 k 为代表 s 中多项式系数的向量。

使用 residue 执行 F(s) 的以下部分分式展开式。

using TyMath
b = [2, 0, 0, 1, 0]
a = [1, 0, 1]
r, p, k = residue(b, a)
r = 2-element Vector{ComplexF64}:
  0.5 - 1.0im
  0.5 + 1.0im

p = 2-element Vector{ComplexF64}:
 -0.0 + 1.0im
  0.0 - 1.0im

k = 1×3 Matrix{Float64}:
  2.0 0.0 -2.0

k 代表多项式

# 输入参数

b - 分子多项式的系数
数字向量

分子中的多项式的系数,指定为数字的向量,代表 s 的降幂中的多项式的系数。

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16

复数支持:

a - 分母多项式的系数
数字向量

分母中的多项式的系数,指定为数字的向量,代表 s 的降幂中的多项式的系数。

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16

复数支持:

# 输出参数

r - 部分分式展开式残差
数字的向量

部分分式展开式的残差,以数字列向量的形式返回。

p - 部分分式展开式的极点
数字的向量

部分分式展开式的极点,以数字列向量的形式返回。

k - 直项
数字的向量

直项,以数字行向量的形式返回,这些数字按 s 的降幂指定多项式的系数。

# 详细信息

部分分式展开式

考虑次数分别为 n 和 m 的两个多项式 b 和 a 的分式 F(s)

分式 F(s) 可以表示为几个简单分式之和。

此总和称为 F 的部分分式展开式。值 rm,...,r1 为残差,值 pm,...,p1 为极点,k(s) 为 s 多项式。对于大多数教科书问题,ks 为 0 或常量。

极点数 n 为:n = length(a)-1 = length(r) = length(p)

如果 length(b) < length(a),则直项向量为空;否则 length(k) = length(b) - length(a)+1

如果 p[j] = ... = p[j+m-1] 为 m 重极点,则展开式包括以下形式的项

# 算法

residue 首先会使用 roots 获取极点。接下来,如果分式不正确,则使用执行多项式长除法的 deconv 计算直项 k。最后,residue 通过计算移除了各个根的多项式来确定留数。对于重复根,resi2 计算重复根位置处的留数。

多项式之比的部分分式展开式以数值方法表示不适定问题。如果分母多项式 a(s) 与具有多个根的多项式接近,则数据的轻微改动(包括舍入误差)可使生成极点和留数产生任意大的变化。优先使用状态空间和零极点表示的问题公式。

# 另请参阅

deconv | poly | roots