 ConvolutionMatrix - Maple Help

PolynomialTools[Approximate]

 ConvolutionMatrix
 construct a Convolution matrix of a polynomial Calling Sequence ConvolutionMatrix(F, vars, degree) ConvolutionMatrix(F, vars, degree, rtableoptions=[options]) Parameters

 F - polynom vars - set or list of variables degree - non-negative integer options - (optional) options that are passed to the Matrix constructor Description

 • The ConvolutionMatrix command returns a Matrix that represents polynomial multiplication of F by a polynomial of the given degree (total degree) when the polynomial to multiply is represented as a vector as returned by CoefficientVector.
 • A Sylvester matrix can be considered to be a block matrix composed of two convolution matrices and the SylvesterMatrix command calls this one.
 • The approximate polynomial division command Divide solves up a least squares problem on the output of this command. Examples

 > $\mathrm{with}\left(\mathrm{PolynomialTools}:-\mathrm{Approximate}\right):$
 > $f≔{x}^{2}+{y}^{2}-1;$$g≔{x}^{2}+xy+y+1$
 ${f}{≔}{{x}}^{{2}}{+}{{y}}^{{2}}{-}{1}$
 ${g}{≔}{{x}}^{{2}}{+}{x}{}{y}{+}{y}{+}{1}$ (1)
 > $\mathrm{fg}≔\mathrm{sort}\left(\mathrm{expand}\left(fg\right),\left[x,y\right]\right)$
 ${\mathrm{fg}}{≔}{{x}}^{{4}}{+}{{x}}^{{3}}{}{y}{+}{{x}}^{{2}}{}{{y}}^{{2}}{+}{x}{}{{y}}^{{3}}{+}{{x}}^{{2}}{}{y}{+}{{y}}^{{3}}{-}{x}{}{y}{+}{{y}}^{{2}}{-}{y}{-}{1}$ (2)
 > $\mathrm{Cf}≔\mathrm{ConvolutionMatrix}\left(f,\left[x,y\right],\mathrm{degree}\left(g,\left\{x,y\right\}\right)\right)$
 ${\mathrm{Cf}}{≔}\begin{array}{c}\left[\begin{array}{cccccc}{-1}& {0}& {0}& {0}& {0}& {0}\\ {0}& {-1}& {0}& {0}& {0}& {0}\\ {0}& {0}& {-1}& {0}& {0}& {0}\\ {1}& {0}& {0}& {-1}& {0}& {0}\\ {0}& {0}& {0}& {0}& {-1}& {0}\\ {1}& {0}& {0}& {0}& {0}& {-1}\\ {0}& {1}& {0}& {0}& {0}& {0}\\ {0}& {0}& {1}& {0}& {0}& {0}\\ {0}& {1}& {0}& {0}& {0}& {0}\\ {0}& {0}& {1}& {0}& {0}& {0}\\ {⋮}& {⋮}& {⋮}& {⋮}& {⋮}& {⋮}\end{array}\right]\\ \hfill {\text{15 × 6 Matrix}}\end{array}$ (3)
 > $\mathrm{vg}≔\mathrm{PolynomialTools}:-\mathrm{CoefficientVector}\left(g,\left[x,y\right]\right)$
 ${\mathrm{vg}}{≔}\left[\begin{array}{c}{1}\\ {0}\\ {1}\\ {1}\\ {1}\\ {0}\end{array}\right]$ (4)

This matrix vector product computes the polynomial product

 > $\mathrm{vfg}≔\mathrm{Cf}·\mathrm{vg}$
 ${\mathrm{vfg}}{≔}\begin{array}{c}\left[\begin{array}{c}{-1}\\ {0}\\ {-1}\\ {0}\\ {-1}\\ {1}\\ {0}\\ {1}\\ {0}\\ {1}\\ {⋮}\end{array}\right]\\ \hfill {\text{15 element Vector[column]}}\end{array}$ (5)
 > $\mathrm{PolynomialTools}:-\mathrm{FromCoefficientVector}\left(\mathrm{vfg},\left[x,y\right]\right)$
 ${{x}}^{{4}}{+}{{x}}^{{3}}{}{y}{+}{{x}}^{{2}}{}{{y}}^{{2}}{+}{x}{}{{y}}^{{3}}{+}{{x}}^{{2}}{}{y}{+}{{y}}^{{3}}{-}{x}{}{y}{+}{{y}}^{{2}}{-}{y}{-}{1}$ (6) Compatibility

 • The PolynomialTools:-Approximate:-ConvolutionMatrix command was introduced in Maple 2021.
 • For more information on Maple 2021 changes, see Updates in Maple 2021.