Documentation

`polylib`::`decompose`

Functional decomposition of a polynomial

MuPAD® notebooks will be removed in a future release. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.

Syntax

```polylib::decompose(`p`)
polylib::decompose(`p`, `x`)
```

Description

`polylib::decompose(p,x)` returns a sequence of polynomials q1, …, qn such that p(x) = q1(… qn(x) …).

The second argument may be left out if the polynomial is univariate, as in Example 1.

If a polynomial has several decompositions, it is not specified which of them is returned.

Examples

Example 1

In the simplest case, an univariate polynomial is decomposed with respect to its only variable:

`polylib::decompose(x^4+x^2+1)`

Example 2

If there are several variables, a main variable must be specified:

`polylib::decompose(y*x^4+y,y);`

Parameters

 `p` Polynomial or polynomial expression `x` One of the indeterminates of the polynomial `p`

Return Values

If a decomposition is possible, `polylib::decompose` returns it as an expression sequence, each element being of the same type as the input. If no decomposition is possible, the input is returned.

`p`

References

A description of the algorithm behind `polylib::decompose` can be found in Barton and Zippel, Polynomial decomposition algorithms, Journal of Symbolic Computation, 1 (1985), pp. 159–168.