1.
Create the polynomial
over
Verify that it does not have any linear factors by evaluating
with each element of
and then check that
is irreducible.
Create a finite field of order
with the
FiniteField()
command, but include the
modulus
keyword set to the polynomial
to override the default choice.
Recreate
as a polynomial over this field. Check each of the
elements of the field to see if they are roots of the polynomial and list all of the elements which are roots. Finally, request that Sage give a factorization of
over the field, and comment on the relationship between your list of roots and your factorization.
2.
This problem continues the previous one. Build the ring of polynomials over
and within this ring use
to generate a principal ideal. Finally construct the quotient of the polynomial ring by the ideal. Since the polynomial is irreducible, this quotient ring is a field, and by
Proposition 21.12 this quotient ring is isomorphic to the number field in the previous problem.
Borrowing from your results in the previous question, construct five roots of the polynomial
within this quotient ring, but now as expressions in the generator of the quotient ring (which is technically a coset). Use Sage to verify that they are indeed roots. This demonstrates using a quotient ring to create a splitting field for an irreducible polynomial over a finite field.
3.
The subsection
Algebraic Elements relies on techniques from linear algebra and contains
Theorem 21.15: every finite extension is an algebraic extension. This exercise will help you understand this proof.
The polynomial
is irreducible over the rationals (Eisensteinβs criterion with prime
). Create a number field that contains a root of
By
Theorem 21.15, and the remark following, every element of this finite field extension is an algebraic number, and hence satisfies some polynomial over the base field (it is this polynomial that Sage will produce with the
.minpoly()
method). This exercise will show how we can use just linear algebra to determine this minimal polynomial.
Suppose that
a
is the generator of the number field you just created with
Then we will determine the minimal polynomial of
t = 3a + 1
using just linear algebra. According to the proof, the first five powers of
t
(start counting from zero) will be linearly dependent. (Why?) So a nontrivial relation of linear dependence on these powers will provide the coefficients of a polynomial with
t
as a root. Compute these five powers, then construct the correct linear system to determine the coefficients of the minimal polynomial, solve the system, and suitably interpret its solutions.
Hints: The
vector()
and
matrix()
commands will create vectors and matrices, and the
.solve_right()
method for matrices can be used to find solutions. Given an element of the number field, which will necessarily be a polynomial in the generator
a
, the
.vector()
method of the element will provide the coefficients of this polynomial in a list.
5.
Form the number field,
which contains a root of the irreducible polynomial
Name your root
a
. Verify that
factors, but does not split, over
With
now as the base field, form an extension of
where the quadratic factor of
has a root. Name this root
b
, and call this second extension of the tower
Use
M.<c> = L.absolute_field()
to form the flattened tower that is the absolute number field
M
. Find the defining polynomial of
M
with the
.polynomial()
method. From this polynomial, which must have the generator
c
as a root, you should be able to use elementary algebra to write the generator as a fairly simple expression.
should be the splitting field of
To see this, start over, and build from scratch a new number field,
using the simple expression for
c
that you just found. Use
d
as the name of the root used to construct
P
. Since
d
is a root of the simple minimal polynomial for
c
, you should be able to write an expression for
d
that a pre-calculus student would recognize.
Now factor the original polynomial
(with rational coefficients) over
to see the polynomial split (as expected). Using this factorization, and your simple expression for
d
write simplified expressions for the three roots of
See if you can convert between the two versions of the roots βby handβ, and without using the isomorphisms provided by the
.structure()
method on
M
.