# 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) 与具有多个根的多项式接近,则数据的轻微改动(包括舍入误差)可使生成极点和留数产生任意大的变化。优先使用状态空间和零极点表示的问题公式。