28.3 多项式的乘积

 
y = conv (a, b)
y = conv (a, b, shape)

对两个向量 ab 进行卷积。

ab 是两个多项式的系数向量时,卷积表示乘积多项式的系数向量。

结果的大小由可选的 shape 参数决定,其取值如下:

shape = "full"

返回完整的卷积。(默认值) 结果是一个长度等于 length (a) + length (b) - 1 的向量。

shape = "same"

返回卷积的中心部分,其大小与 a 相同。

shape = "valid"

仅返回不包含零填充边缘的部分。 结果的大小为 max (size (a) - size (b) + 1, 0)

另请参阅: deconv, conv2, convn, fftconv

 
C = convn (A, B)
C = convn (A, B, shape)

返回 AB 的 N 维卷积。

结果的大小由可选的 shape 参数决定,其取值如下:

"full"

返回完整的卷积。(默认值)

"same"

返回卷积的中心部分,其大小与 A 相同。 卷积的中心部分从索引 floor ([size(B)/2] + 1) 开始。

"valid"

仅返回不包含零填充边缘的部分。 结果的大小为 max (size (A) - size (B) + 1, 0)

另请参阅: conv2, conv

 
b = deconv (y, a)
[b, r] = deconv (y, a)

对两个向量进行解卷积(多项式除法)。

[b, r] = deconv (y, a) 求解 br,使得 y = conv (a, b) + r

如果 ya 是多项式系数向量,则 b 将包含多项式商的系数,而 r 将是阶数最低的余数多项式。

另请参阅: conv, residue

 
C = conv2 (A, B)
C = conv2 (v1, v2, m)
C = conv2 (…, shape)

返回 AB 的二维卷积。

结果的大小由可选的 shape 参数决定,其取值如下:

"full"

返回完整的卷积。(默认值)

"same"

返回卷积的中心部分,其大小与 A 相同。 卷积的中心部分从索引 floor ([size(B)/2] + 1) 开始。

"valid"

仅返回不包含零填充边缘的部分。 结果的大小为 max (size (A) - size (B) + 1, 0)

当第三个参数是一个矩阵时,返回矩阵 m 与向量 v1 在列方向上的卷积,以及与向量 v2 在行方向上的卷积。

另请参阅: conv, convn

 
q = polygcd (b, a)
q = polygcd (b, a, tol)

求两个多项式的最大公约数。

这等价于将所有公共根相乘得到的多项式。结合 deconv,可以化简两个多项式的比率。

容差 tol 默认为 sqrt (eps)

注意:这是一个数值不稳定的算法,不应用于大规模多项式。

示例代码:

polygcd (poly (1:8), poly (3:12)) - poly (3:8)
⇒  [ 0, 0, 0, 0, 0, 0, 0 ]
deconv (poly (1:8), polygcd (poly (1:8), poly (3:12))) - poly (1:2)
⇒  [ 0, 0, 0 ]

另请参阅: poly, roots, conv, deconv, residue

 
[r, p, k, e] = residue (b, a)
[b, a] = residue (r, p, k)
[b, a] = residue (r, p, k, e)

第一种调用形式计算多项式 ba 之商的部分分式展开。

该商定义为:

B(s)    M       r(m)        N
---- = SUM ------------- + SUM k(i)*s^(N-i)
A(s)   m=1 (s-p(m))^e(m)   i=1

其中 M 是极点的数量(即 rpe 的长度),k 向量是一个阶数为 N-1 的多项式,表示直接项,而 e 向量指定了第 m 个极点的重数。

例如,

b = [1, 1, 1];
a = [1, -5, 8, -4];
[r, p, k, e] = residue (b, a)
   ⇒  r = [-2; 7; 3]
   ⇒  p = [2; 2; 1]
   ⇒  k = [](0x0)
   ⇒  e = [1; 2; 1]

其表示以下部分分式展开:

        s^2 + s + 1       -2        7        3
   ------------------- = ----- + ------- + -----
   s^3 - 5s^2 + 8s - 4   (s-2)   (s-2)^2   (s-1)

第二种调用形式执行逆运算,从部分分式展开计算重构的多项式商 b(s)/a(s);由 rpk 指定的残差、极点和直接多项式,以及极点重数 e 表示。

如果重数 e 未明确指定,则重数由函数 mpoles 确定。

例如:

r = [-2; 7; 3];
p = [2; 2; 1];
k = [1, 0];
[b, a] = residue (r, p, k)
   ⇒  b = [1, -5, 9, -3, 1]
   ⇒  a = [1, -5, 8, -4]

其中 mpoles 用于确定 e = [1; 2; 1]

或者,也可以显式指定重数,例如:

r = [7; 3; -2];
p = [2; 1; 2];
k = [1, 0];
e = [2; 1; 1];
[b, a] = residue (r, p, k, e)
   ⇒  b = [1, -5, 9, -3, 1]
   ⇒  a = [1, -5, 8, -4]

其表示以下部分分式展开:

 -2        7        3         s^4 - 5s^3 + 9s^2 - 3s + 1
----- + ------- + ----- + s = --------------------------
(s-2)   (s-2)^2   (s-1)          s^3 - 5s^2 + 8s - 4

另请参阅: mpoles, poly, roots, conv, deconv


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2