Documentation |
Create a polynomial using b-adic expansion
This functionality does not run in MATLAB.
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 c_{i} 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.
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)
p(7)
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)
n |
An integer, a polynomial of type DOM_POLY, or a polynomial expression |
b |
An integer greater than 1 |
x |
The indeterminate: an identifier |
polynomial if the first argument is a polynomial or an integer. Otherwise, a polynomial expression.