Functional decomposition of a polynomial
This functionality does not run in MATLAB.
polylib::decompose(p) polylib::decompose(p, x)
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.
In the simplest case, an univariate polynomial is decomposed with respect to its only variable:
If there are several variables, a main variable must be specified:
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.
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.