Module: sage.rings.polynomial.polynomial_quotient_ring_element
Elements of Quotients of Univariate Polynomial Rings
We create a quotient of a univariate polynomial ring over
.
sage: R.<x> = ZZ[] sage: S.<a> = R.quotient(x^3 + 3*x -1) sage: 2 * a^3 -6*a + 2
Next we make a univeriate polynomial ring over
.
sage: S.<y> = S[]
And, we quotient out that by
.
sage: T.<z> = S.quotient(y^2+a)
In the quotient
is
.
sage: z^2 -a
And since
, we have:
sage: z^6 3*a - 1
sage: R.<x> = PolynomialRing(Integers(9)) sage: S.<a> = R.quotient(x^4 + 2*x^3 + x + 2) sage: a^100 7*a^3 + 8*a + 7
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3-2) sage: a a sage: a^3 2
For the purposes of comparison in SAGE the quotient element
is equal to
. This is because when the comparison
is performed, the right element is coerced into the parent of
the left element, and
coerces to
.
sage: a == x True sage: a^3 == x^3 True sage: x^3 x^3 sage: S(x^3) 2
Author: William Stein
Class: PolynomialQuotientRingElement
self, parent, polynomial, [check=True]) |
Create an element of the quotient of a polynomial ring.
Input:
Functions: charpoly,
fcp,
field_extension,
lift,
list,
matrix,
minpoly,
norm,
trace
self, var) |
The characteristic polynomial of this element, which is by definition the characteristic polynomial of right multiplication by this element.
Input:
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quo(x^3 -389*x^2 + 2*x - 5) sage: a.charpoly('X') X^3 - 389*X^2 + 2*X - 5
self, [var=x]) |
Return the factorization of the characteristic polynomial of this element.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3 -389*x^2 + 2*x - 5) sage: a.fcp('x') x^3 - 389*x^2 + 2*x - 5 sage: S(1).fcp('y') (y - 1)^3
self, names) |
Given a polynomial with base ring a quotient ring, return a 3-tuple: a number field defined by the same polynomial, a homomorphism from its parent to the number field sending the generators to one another, and the inverse isomorphism.
Input:
sage: R.<x> = PolynomialRing(QQ) sage: S.<alpha> = R.quotient(x^3-2) sage: F.<a>, f, g = alpha.field_extension() sage: F Number Field in a with defining polynomial x^3 - 2 sage: a = F.gen() sage: f(alpha) a sage: g(a) alpha
Over a finite field, the corresponding field extension is not a number field:
sage: R.<x> = GF(25,'b')['x'] sage: S.<a> = R.quo(x^3 + 2*x + 1) sage: F.<b>, g, h = a.field_extension() sage: h(b^2 + 3) a^2 + 3 sage: g(x^2 + 2) b^2 + 2
We do an example involving a relative number field:
sage: R.<x> = QQ['x'] sage: K.<a> = NumberField(x^3-2) sage: S.<X> = K['X'] sage: Q.<b> = S.quo(X^3 + 2*X + 1) sage: F, g, h = b.field_extension('c')
Another more awkward example:
sage: R.<x> = QQ['x'] sage: K.<a> = NumberField(x^3-2) sage: S.<X> = K['X'] sage: f = (X+a)^3 + 2*(X+a) + 1 sage: f X^3 + 3*a*X^2 + (3*a^2 + 2)*X + 2*a + 3 sage: Q.<z> = S.quo(f) sage: F.<w>, g, h = z.field_extension() sage: c = g(z) sage: f(c) 0 sage: h(g(z)) z sage: g(h(w)) w
Author Log:
self) |
Return lift of this polynomial quotient ring element to the unique equivalent polynomial of degree less than the modulus.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3-2) sage: b = a^2 - 3 sage: b a^2 - 3 sage: b.lift() x^2 - 3
self) |
Return list of the elements of self, of length the same as the degree of the quotient polynomial ring.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3 + 2*x - 5) sage: a^10 -134*a^2 - 35*a + 300 sage: (a^10).list() [300, -35, -134]
self) |
The matrix of right multiplication by this element on the power basis for the quotient ring.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3 + 2*x - 5) sage: a.matrix() [ 0 1 0] [ 0 0 1] [ 5 -2 0]
self) |
The minimal polynomial of this element, which is by definition the minimal polynomial of right multiplication by this element.
self) |
The norm of this element, which is the norm of the matrix of right multiplication by this element.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3 -389*x^2 + 2*x - 5) sage: a.norm() 5
self) |
The trace of this element, which is the trace of the matrix of right multiplication by this element.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3 -389*x^2 + 2*x - 5) sage: a.trace() 389
Special Functions: __cmp__,
__getitem__,
__init__,
__int__,
__invert__,
__iter__,
__long__,
__neg__,
__reduce__,
_add_,
_div_,
_im_gens_,
_latex_,
_mul_,
_repr_,
_sub_
self, other) |
Compare this element with something else, where equality testing coerces the object on the right, if possible (and necessary).
self) |
Coerce this element to an int if possible.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3-2) sage: int(S(10)) 10 sage: int(a) Traceback (most recent call last): ... TypeError: cannot coerce nonconstant polynomial to int
self) |
Coerce this element to a long if possible.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3-2) sage: long(S(10)) 10L sage: long(a) Traceback (most recent call last): ... TypeError: cannot coerce nonconstant polynomial to long
self) |
sage: R.<x> = QQ[] sage: S.<a> = R.quotient(2*x^3 + 3/2*x -1/3) sage: 2 * a^3 -3/2*a + 1/3 sage: loads(dumps(2*a^3)) == 2*a^3 True
self, right) |
Return the sum of two polynomial ring quotient elements.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3-2) sage: (a^2 - 4) + (a+2) a^2 + a - 2 sage: int(1) + a a + 1
self, right) |
Return the quotient of two polynomial ring quotient elements.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3-2) sage: (a^2 - 4) / (a+2) a - 2
self) |
sage: R.<x> = QQ[] sage: S.<a> = R.quotient(3*x^3 + 3/2*x -1/3) sage: latex(a*(3 * a^3) + S.modulus()) -\frac{3}{2} a^{2} + \frac{1}{3} a
self, right) |
Return the product of two polynomial ring quotient elements.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3-2) sage: (a^2 - 4) * (a+2) 2*a^2 - 4*a - 6
self) |
sage: R.<x> = QQ[] sage: S.<a> = R.quotient(3*x^3 + 3/2*x -1/3) sage: 3 * a^3 + S.modulus() -3/2*a + 1/3
self, right) |
Return the difference of two polynomial ring quotient elements.
sage: R.<x> = PolynomialRing(QQ) sage: S.<a> = R.quotient(x^3 - 2) sage: (a^2 - 4) - (a+2) a^2 - a - 6 sage: int(1) - a -a + 1
See About this document... for information on suggesting changes.