Dom
::Polynomial
Domains of polynomials in arbitrarily many indeterminates
MuPAD® notebooks will be removed in a future release. 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.
Dom::Polynomial(<R, <Order>
>)
Dom::PolynomialRorder(p
)
Dom::PolynomialRorder(lm, v
)
Dom::Polynomial(R, ..)
creates the domain
of polynomials in arbitrarily many indeterminates over the commutative
ring R
in distributed representation.
Dom::Polynomial
represents polynomials in
arbitrarily many indeterminates over arbitrary commutative rings.
It is simply a front end to the domain Dom::DistributedPolynomial([],R,Order)
and
thus all usual algebraic and arithmetical polynomial operations are
implemented. Please see the documentation for Dom::DistributedPolynomial
for a list of
methods.
Dom::Polynomial(R, Order)
creates a domain
of polynomials in arbitrarily many indeterminates over a domain of
category Cat::CommutativeRing
in
sparse distributed representation with respect to the monomial ordering Order
.
If Dom::Polynomial
is called without any
argument, a polynomial domain over the domain Dom::ExpressionField(normal)
with
respect to the lexicographic monomial ordering is created.
Only commutative coefficient rings of type DOM_DOMAIN
which
inherit from Dom::BaseDomain
are
allowed. If R
is of type DOM_DOMAIN
but does not
inherit from Dom::BaseDomain
,
the domain Dom::ExpressionField
(normal)
will
be used instead.
Only identifiers should be used as polynomial indeterminates,
since when creating a new element from a polynomial or a polynomial
expression the function indets
is
first called to get the identifiers and then the polynomial is created
with respect to these identifiers.
It is highly recommend to use only coefficient rings with unique zero representation. Otherwise it may happen that, e.g., a polynomial division will not terminate or a wrong degree will be returned.
Please note that for reasons of efficiency not all methods check their arguments, not even at the interactive level. In particular, this is true for many access methods, converting methods and technical methods. Thus, improper use of these methods may result in confusing error messages.
The following call creates the polynomial domain over the rationals.
PR:=Dom::Polynomial(Dom::Rational)
Since the monomial ordering was not specified, this domain is created with the default value for this parameter.
It is rather easy to create elements of this domain, as, e.g.,
a := PR(x*(2*x + y^3)  7/2)
b := PR(x*(2*t + z^3)  6)
c := a^2b/3+3

A commutative ring, i.e., a domain of category 

A monomial ordering, i.e., one of the predefined orderings 

A polynomial or a polynomial expression. 

List of monomials, which are represented as lists containing the coefficients together with the exponents or exponent vectors. 

List of indeterminates. 
"characteristic"  The characteristic of this domain, which is the characteristic
of 
"coeffRing"  The coefficient ring of this domain as defined by the
parameter 
"key"  The name of the domain created. 
"one"  The neutral element w.r.t. 
"ordering"  The monomial order as defined by the parameter 
"zero"  The neutral element w.r.t. 
To create polynomials from expressions with no suitable indeterminates
the dummy variable _dummy
is introduced. With this
variable it is possible to create elements from constants which otherwise
would fail. The drawback of this approach is that two mathematically
equal polynomials may have variable lists which differ by this dummy
variable.