This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Create a polynomial using b-adic expansion

MuPAD® notebooks are not recommended. 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.


genpoly(n, b, x)


genpoly(n, b, x) creates a polynomial p in the variable x from the b-adic expansion of n, such that p(b) = n. The integer coefficients of the resulting polynomial are greater than and less than or equal to .

The b-adic expansion of an integer n is defined by , such that the ci are symmetric remainders modulo b, i.e., for all i (see mods). From this expansion the polynomial is created. The polynomial is defined over the coefficient ring Expr.

If the first argument of genpoly is a (multivariate) polynomial, then it must be defined over the coefficient ring Expr and must have only integer coefficients. The third argument x must not be a variable of the polynomial. In this case each integer coefficient is converted into a polynomial in x as described above. The result is a polynomial in the variable x, followed by the variables of the given polynomial. (x is the main variable of the returned polynomial.)

The first argument n may also be a polynomial expression. In this case, it is converted into a polynomial using poly, then genpoly is applied as described above, and the result is again converted into a polynomial expression.

If the first argument is an integer or a polynomial, then the result is a polynomial of domain type DOM_POLY; otherwise it is a polynomial expression.


Example 1

We create a polynomial p in the indeterminate x such that p(7) = 15. The coefficients of p are between -3 and 3:

p := genpoly(15, 7, x)


Here is an example with a polynomial expression as input:

p := genpoly(15*y^2 - 6*y + 3*z, 7, x)

The return value has the same type as the first argument:

p := genpoly(poly(15*y^2 + 8*z, [y, z]), 7, x)

We check the result:

p(7, y, z)



An integer, a polynomial of type DOM_POLY, or a polynomial expression


An integer greater than 1


The indeterminate: an identifier

Return Values

polynomial if the first argument is a polynomial or an integer. Otherwise, a polynomial expression.

See Also

MuPAD Functions

Was this topic helpful?