Ground term (constant coefficient) of a polynomial

Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.


ground(f, vars)


ground(p) returns the constant coefficient p(0, 0, …) of the polynomial p.

The first argument can either be a polynomial expression, or a polynomial generated by poly, or an element of some polynomial domain overloading ground.

If the first argument f is not element of a polynomial domain, then ground converts the expression to a polynomial via poly(f). If a list of indeterminates is specified, then the polynomial poly(f, vars) is considered.

The constant coefficient is returned as an arithmetical expression.

The result of ground is not fully evaluated. Evaluation can be enforced by the function eval. Cf. Example 2.

ground returns FAIL if f cannot be converted to a polynomial in the specified indeterminates. Cf. Example 3.


Example 1

We demonstrate how the indeterminates influence the result:

f := 2*x^2 + 3*y + 1:
ground(f), ground(f, [x]), ground(f, [y]),
ground(poly(f)), ground(poly(f, [x])), ground(poly(f, [y]))

The result is the evaluation at the origin:

subs(f, x = 0, y = 0), subs(f, x = 0), subs(f, y = 0)

Note the difference between ground and tcoeff:

g := 2*x^2 + 3*y:
ground(g), ground(g, [x]);
tcoeff(g), tcoeff(g, [x]);

delete f, g:

Example 2

The result of ground is not fully evaluated:

p := poly(27*x^2 + a, [x]): a := 5:
ground(p), eval(ground(p))

delete p, a:

Example 3

The following expression is syntactically not a polynomial expression, and ground returns FAIL:

f := (x^2 - 1)/(x - 1): ground(f)

After cancellation via normal, ground can compute the constant coefficient:


delete f:



A polynomial of type DOM_POLY


A polynomial expression


A list of indeterminates of the polynomial: typically, identifiers or indexed identifiers

Return Values

Element of the coefficient ring of p, an arithmetical expression, or FAIL.

Overloaded By

f, p

Was this topic helpful?