ground -- ground term (constant
coefficient) of a polynomial
Introductionground(p) returns the constant coefficient
p(0,0,...) of the polynomial p.
Call(s)ground(p)
ground(f)
ground(f, vars)
Parametersp |
- | a polynomial of type
DOM_POLY |
f |
- | a polynomial expression |
vars |
- | a list of indeterminates of the polynomial: typically, identifiers or indexed identifiers |
Returnsan element of the coefficient ring of p, an arithmetical expression, or FAIL.
p, f
Related
Functionscoeff, collect, degree, degreevec, lcoeff, ldegree, lmonomial, lterm, nterms, nthcoeff, nthmonomial, nthterm, poly, poly2list, tcoeff
Detailspoly, or an element of some polynomial
domain overloading ground.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.
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
1We 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]))
2 2
1, 3 y + 1, 2 x + 1, 1, 3 y + 1, 2 x + 1
The result is the evaluation at the origin:
>> subs(f, x = 0, y = 0), subs(f, x = 0), subs(f, y = 0)
2
1, 3 y + 1, 2 x + 1
Note the difference between ground and
tcoeff:
>> g := 2*x^2 + 3*y: ground(g), ground(g, [x]); tcoeff(g), tcoeff(g, [x]);
0, 3 y
3, 3 y
>> delete f, g:
Example
2The result of ground is not fully
evaluated:
>> p := poly(27*x^2 + a, [x]): a := 5: ground(p), eval(ground(p))
a, 5
>> delete p, a:
Example
3The following expression is syntactically not a
polynomial expression, and ground returns FAIL:
>> f := (x^2 - 1)/(x - 1): ground(f)
FAIL
After cancellation via normal, ground can
compute the constant coefficient:
>> ground(normal(f))
1
>> delete f: