GNU Octave Manual Version 3by John W. Eaton, David Bateman, Søren Hauberg Paperback (6"x9"), 568 pages ISBN 095461206X RRP £24.95 ($39.95) |

## 26.3 Products of Polynomials

__Function File:__**conv***(*`a`,`b`)- Convolve two vectors.
`y = conv (a, b)`

returns a vector of length equal to`length (a) + length (b) - 1`

. If`a`and`b`are polynomial coefficient vectors,`conv`

returns the coefficients of the product polynomial.See also deconv, poly, roots, residue, polyval, polyderiv, polyinteg

__Function File:__**deconv***(*`y`,`a`)- Deconvolve two vectors.
`[b, r] = deconv (y, a)`

solves for`b`and`r`such that`y = 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.See also conv, poly, roots, residue, polyval, polyderiv, polyinteg

__Loadable Function:__y =**conv2***(*`a`,`b`,`shape`)__Loadable Function:__y =**conv2***(*`v1`,`v2`,`M`,`shape`)-
Returns 2D convolution of

`a`and`b`where the size of`c`is given by`shape`= 'full'- returns full 2-D convolution
`shape`= 'same'- same size as a. 'central' part of convolution
`shape`= 'valid'- only parts which do not include zero-padded edges

By default

`shape`is 'full'. When the third argument is a matrix returns the convolution of the matrix`M`by the vector`v1`in the column direction and by vector`v2`in the row direction

__Function File:__`q`=**polygcd***(*`b`,`a`,`tol`)-
Find 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. Tolerance defaults to

sqrt(eps).

Note that this is an unstable algorithm, so don't try it on large polynomials.

Example

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 ]

See also poly, polyinteg, polyderiv, polyreduce, roots, conv, deconv, residue, filter, polyval, and polyvalm

__Function File:__[`r`,`p`,`k`,`e`] =**residue***(*`b`,`a`)- Compute the partial fraction expansion for the quotient of the
polynomials,
`b`and`a`.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)

__Function File:__[`b`,`a`] =**residue***(*`r`,`p`,`k`)__Function File:__[`b`,`a`] =**residue***(*`r`,`p`,`k`,`e`)- Compute 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 script mpoles.m.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.m 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

See also poly, roots, conv, deconv, mpoles, polyval, polyderiv, polyinteg

ISBN 095461206X | GNU Octave Manual Version 3 | See the print edition |