28.3 Products of Polynomials
- : conv (a, b)
- : conv (a, b, shape)
-
Convolve two vectors a and b.
When a and b are the coefficient vectors of two polynomials, the convolution represents the coefficient vector of the product polynomial.
The size of the result is determined by the optional shape argument which takes the following values
-
shape =
"full"
-
Return the full convolution. (default) The result is a vector with length equal to
length (a) + length (b) - 1
. -
shape =
"same"
-
Return the central part of the convolution with the same size as a.
-
shape =
"valid"
Return only the parts which do not include zero-padded edges. The size of the result is
max (size (a) - size (b) + 1, 0)
.
-
shape =
- : C = convn (A, B)
- : C = convn (A, B, shape)
-
Return the n-D convolution of A and B.
The size of the result is determined by the optional shape argument which takes the following values
-
shape =
"full"
-
Return the full convolution. (default)
-
shape =
"same"
-
Return central part of the convolution with the same size as A. The central part of the convolution begins at the indices
floor ([size(B)/2] + 1)
. -
shape =
"valid"
Return only the parts which do not include zero-padded edges. The size of the result is
max (size (A) - size (B) + 1, 0)
.
-
shape =
- : b = deconv (y, a)
- : [b, r] = deconv (y, a)
-
Deconvolve two vectors (polynomial division).
[b, r] = deconv (y, a)
solves for b and r such thaty = conv (a, b) + r
.If y and a are polynomial coefficient vectors, b will contain the coefficients of the polynomial quotient and r will be a remainder polynomial of lowest order.
- : conv2 (A, B)
- : conv2 (v1, v2, m)
- : conv2 (…, shape)
-
Return the 2-D convolution of A and B.
The size of the result is determined by the optional shape argument which takes the following values
-
shape =
"full"
-
Return the full convolution. (default)
-
shape =
"same"
-
Return the central part of the convolution with the same size as A. The central part of the convolution begins at the indices
floor ([size(B)/2] + 1)
. -
shape =
"valid"
Return only the parts which do not include zero-padded edges. The size of the result is
max (size (A) - size (B) + 1, 0)
.
When the third argument is a matrix, return the convolution of the matrix m by the vector v1 in the column direction and by the vector v2 in the row direction.
-
shape =
- : q = polygcd (b, a)
- : q = polygcd (b, a, tol)
-
Find the greatest common divisor of two polynomials.
This is equivalent to the polynomial found by multiplying together all the common roots. Together with deconv, you can reduce a ratio of two polynomials.
The tolerance tol defaults to
sqrt (eps)
.Caution: This is a numerically unstable algorithm and should not be used on large polynomials.
Example code:
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 ]
- : [r, p, k, e] = residue (b, a)
- : [b, a] = residue (r, p, k)
- : [b, a] = residue (r, p, k, e)
-
The first calling form computes the partial fraction expansion for the quotient of the polynomials, b and a.
The quotient is defined as
B(s) M r(m) N ---- = SUM ------------- + SUM k(i)*s^(N-i) A(s) m=1 (s-p(m))^e(m) i=1
where M is the number of poles (the length of the r, p, and e), the k vector is a polynomial of order N-1 representing the direct contribution, and the e vector specifies the multiplicity of the m-th residue’s pole.
For example,
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]
which represents the following partial fraction expansion
s^2 + s + 1 -2 7 3 ------------------- = ----- + ------- + ----- s^3 - 5s^2 + 8s - 4 (s-2) (s-2)^2 (s-1)
The second calling form performs the inverse operation and computes the reconstituted quotient of polynomials, b(s)/a(s), from the partial fraction expansion; represented by the residues, poles, and a direct polynomial specified by r, p and k, and the pole multiplicity e.
If the multiplicity, e, is not explicitly specified the multiplicity is determined by the function
mpoles
.For example:
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] where mpoles is used to determine e = [1; 2; 1]
Alternatively the multiplicity may be defined explicitly, for example,
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]
which represents the following partial fraction expansion
-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
© 1996–2020 John W. Eaton
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://octave.org/doc/v6.3.0/Products-of-Polynomials.html