Sample Output of AlgFields: Mathematica

This notebook contains examples of the functions described on the functions page.  

Getting Started

We first set the directory appropriately and load in the AlgFields package.

SetDirectory["C:\\Documents and Settings\\johndoe\\Desktop"] ;

In[2]:=

<<AlgFields.txt

FApprox

Before we can use the functions, we will need to declare a field.  We set the field K to be the field of rationals Q with a third root of 3 adjoined.  Note that by default the "first" root of x^3-3 is the one lying in the real numbers.  We use a polynomial with indeterminate a in order that the algebraic number may be referred to by a.

In[3]:=

FDeclareField[K, {a^3 - 3}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, 1.4422495703074083823, }}]}]

----

Now we can begin to proceed through the functions alphabetically.  We approximate a^2+ a in the complex numbers.  

In[4]:=

FApprox[a^2 + a, K]

Out[4]=

3.522333393

FClearField

Next we clear our field K.  While this is unnecessary in general, it may be used as a safety feature; if fields are cleared after they are used, it is less likely that Mathematica will be erroneously asked to perform a computation which may involve a great deal of time.

In[5]:=

FClearField[K]

----Details of field K----

  Algebraic Numbers:  {}

  Dimension over Q: 1

  Minimal Polynomials:  {}

  Root Approximations:  {}

----

We declare K again, this time specifying a particular root of x^3-3, namely the "second":

In[6]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

FCompletelyReducibleQ

First we declare a field as follows.

In[7]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

We ask whether or not x^3-3 factors completely over K.  When we learn that it does not, we ask for a complete factorization.

In[8]:=

FCompletelyReducibleQ[x^3 - 3, K]

Out[8]=

False

In[9]:=

FFactor[x^3 - 3, K]

Out[9]=

-(a - x) (a^2 + a x + x^2)

FDeclaredExtensionFieldQ

First we declare two fields.

In[10]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[11]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r1, r2, r3}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r1^3, r1^2 + r1 * r2 + r2^2, r1 + r2 + r3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

We ask whether M is declared as an extension field of K.

In[12]:=

FDeclaredExtensionFieldQ[M, K]

Out[12]=

False

However, we determine that M is an extension field of K as follows.  We ask whether the minimal polynomial of a in K is completely reducible in M.

In[13]:=

FCompletelyReducibleQ[x^3 - 3, M]

Out[13]=

True

FDeclareExtensionField

First we declare a field as follows.

In[14]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

Now we declare an extension field L of K by adjoining a square root of the algebraic number a.  We call this number b.

In[15]:=

FDeclareExtensionField[L, K, {b^2 - a}]

----Details of field L----

  Algebraic Numbers:  {a, b}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + a^3, -a + b^2}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{RowBox[{-, 0.7 ... [{RowBox[{-, 0.60046847758800136334}], +, RowBox[{1.04004191152595205727,  , }]}]}], }}]}]

----

FDeclareField

We declare L2 to be a field obtained by adjoining to the rationals a sixth root of 3.  

In[16]:=

FDeclareField[L2, {c^6 - 3}]

----Details of field L2----

  Algebraic Numbers:  {c}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + c^6}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{-, 1.2009369551760027267}], }}]}]

----

Notice that the selected root is real.  In order to make L2 identical to the field L defined under FDeclareExtensionField and, moreover, to make c equal to b, we choose the "fourth" root:

In[17]:=

FDeclareField[L2, {c^6 - 3}, {4}]

----Details of field L2----

  Algebraic Numbers:  {c}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + c^6}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.60046847758800136334}], +, RowBox[{1.04004191152595205727,  , }]}], }}]}]

----

FDeclarePrimeField

We may build finite fields by declaring them as extension over their prime field.  To declare a prime field, we use FDeclarePrimeField.  

In[18]:=

FDeclarePrimeField[K, 5]

----Details of finite field K----

  Prime subfield: GF(5)

  Algebraic Elements:  {}

  Dimension over GF(5): 1

  Minimal Polynomials:  {}

----

Now we obtain a finite field of order 25 via a quadratic extension:

In[19]:=

FDeclareExtensionField[L, K, {a^2 + a + 2}]

----Details of finite field L----

  Prime subfield: GF(5)

  Algebraic Elements:  {a}

  Dimension over GF(5): 2

  Minimal Polynomials:  {2 + a + a^2}

----

FDeclareSplittingExtensionField

First we declare a field as follows.

In[20]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

Now we declare an extension field L of K by adjoining a square root of the algebraic number a.  We call this number b.

In[21]:=

FDeclareExtensionField[L, K, {b^2 - a}]

----Details of field L----

  Algebraic Numbers:  {a, b}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + a^3, -a + b^2}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{RowBox[{-, 0.7 ... [{RowBox[{-, 0.60046847758800136334}], +, RowBox[{1.04004191152595205727,  , }]}]}], }}]}]

----

Now L is a splitting field extension of K; it is a degree 2 extension given by a square root.  We check that this is true using FNormalQ.  However, AlgFields will not compute its Galois group since it was not declared as a splitting extension field. We do so and compute the Galois group.

In[22]:=

FNormalQ[L, K]

Out[22]=

True

In[23]:=

FGaloisGroup[L, K]

FGaloisGroup :: incorrectinput : Incorrect input to FGaloisGroup: not declared splitting field

In[24]:=

FDeclareSplittingExtensionField[L, K, x^2 - a, {b, bb}]

----Details of field L----

  Algebraic Numbers:  {a, b, bb}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + a^3, -a + b^2, b + bb}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{RowBox[{-, 0.7 ... }], ,, RowBox[{0.60046847758800136334, -, RowBox[{1.04004191152595205727,  , }]}]}], }}]}]

----

In[25]:=

FGaloisGroup[L, K]

Out[25]=

{{{b, bb}, {b, bb}}, {{b, bb}, {bb, b}}}

FDeclareSplittingField

We declare the splitting field M of x^3- 3 over the rationals and determine its Galois group.

In[26]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r4, r5, r6}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r4^3, r4^2 + r4 * r5 + r5^2, r4 + r5 + r6}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

In[27]:=

FGaloisGroup[M]

Out[27]=

{{{r4, r5, r6}, {r4, r5, r6}}, {{r4, r5, r6}, {r4, r6, r5}}, {{r4, r5, r6}, {r5, r4, r6}}, {{r4, r5, r6}, {r5, r6, r4}}, {{r4, r5, r6}, {r6, r4, r5}}, {{r4, r5, r6}, {r6, r5, r4}}}

FFactor, FFactorList

We start with a splitting field.

In[28]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r7, r8, r9}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r7^3, r7^2 + r7 * r8 + r8^2, r7 + r8 + r9}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

We factor x^3- 3 in two different ways over M.

In[29]:=

FFactor[x^3 - 3, M]

Out[29]=

(r7 - x) (r8 - x) (r7 + r8 + x)

In[30]:=

FFactorList[x^3 - 3, M]

Out[30]=

{{1, 1}, {r7 - x, 1}, {r8 - x, 1}, {r7 + r8 + x, 1}}

The exponent of each factor is 1, and the constant multipliying the entire polynomial may be taken to be 1.  To see a more interesting case, we do the following.

In[31]:=

FFactorList[6 r8 + (-6 - 6 r7^2 r8) x + (6 r7^2 + 6 r7 r8) x^2 + (-6 r7 - 2 r8) x^3 + 2 x^4, M]

Out[31]=

{{2, 1}, {r7 - x, 3}, {r8 - x, 1}}

Hence the polynomial factors as 2 * (r7 - x)^3 * (r8 - x).

FFindFactor

We begin with a splitting field M.

In[32]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r10, r11, r12}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r10^3, r10^2 + r10 * r11 + r11^2, r10 + r11 + r12}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

Now we seek the factor of our original polynomial x^3- 3 which has r11 as a root.  Since we are factoring over M, this factor must be x - r11.  

In[33]:=

FFindFactor[x^3 - 3, r11, M]

Out[33]=

r11 - x

FFindFactorRt

First we declare two fields.

In[34]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[35]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r13, r14, r15}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r13^3, r13^2 + r13 * r14 + r14^2, r13 + r14 + r15}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

We seek the appropriate factor of x^3 - 3over M which is equal to a.  Now by examining the complex approximations, we see that a = r14.  However, we may still find the appropriate factor with root a without this knowledge, as follows.  We first find the internal root number corresponding to a.  (In fact, we used this number when we originally declared the field.)

In[36]:=

FRootNumber[x^3 - 3, a, K]

Out[36]=

2

Now we ask for the factor giving a root with the correct number; in this way we refer to a without using an expression in a.  

In[37]:=

FFindFactorRt[x^3 - 3, Root[x^3 - 3, 2], M]

Out[37]=

r14 - x

FGaloisGroup

We declare the splitting field M of x^3- 3 over the rationals and determine its Galois group.

In[38]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r16, r17, r18}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r16^3, r16^2 + r16 * r17 + r17^2, r16 + r17 + r18}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

In[39]:=

grpM = FGaloisGroup[M]

Out[39]=

{{{r16, r17, r18}, {r16, r17, r18}}, {{r16, r17, r18}, {r16, r18, r17}}, {{r16, r17, r18}, {r1 ... 7, r18}, {r17, r18, r16}}, {{r16, r17, r18}, {r18, r16, r17}}, {{r16, r17, r18}, {r18, r17, r16}}}

Notice that the first pair of lists is simply r16, r17, r18 twice, indicating the automorphism induced by r16->r16, r17->r17, r18->r18.  The second and third are transpositions (exchanging r17 and r18, and exchanging r16 and r17, respectively).  The fourth is induced by a three-cycle r16->r17->r18->r16.  We'll check that this map is an automorphism, which it must be since it is an element of the Galois group.

In[40]:=

FMapIsIsoQ[M, grpM[[4]]]

Out[40]=

True

Now let's use this pair to apply the corresponding automorphism to r16*r17.

In[41]:=

FMap[r16 * r17, M, grpM[[4]]]

Out[41]=

r16^2

At first glance this may seem incorrect, but notice that r17*r18 = r16^2 in M:

In[42]:=

FSimplifyE[r16^2 - r17 * r18, M]

Out[42]=

0

FMap simply returned the reduced form of r17*r18 in M.

FGaloisResolvent

We find the Galois resolvent associated to the alternating group on three letters inside the symmetric group on three letters.  It is a degree 2 polynomial.

In[43]:=

a3ins3 = FGaloisResolvent[(x1 - x2) * (x1 - x3) * (x2 - x3), {x1, x2, x3}, X]

Out[43]=

X^2 - σ1^2 σ2^2 + 4 σ2^3 + 4 σ1^3 σ3 - 18 σ1 σ2 σ3 + 27 σ3^2

We can evaluate this resolvent for the polynomial x^3-3.

In[44]:=

FSubstituteInGaloisResolvent[a3ins3, x^3 - 3]

Out[44]=

243 + X^2

Alternatively, we can perform these operations at once, saving the resolvent as myresolv.

In[45]:=

FGaloisResolvent[(x1 - x2) * (x1 - x3) * (x2 - x3), {x1, x2, x3}, X, x^3 - 3, myresolv]

Out[45]=

243 + X^2

FInvert

First we declare a field as follows.

In[46]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

We find the reduced form for the expression 1/(a^2+ a) in K.

In[47]:=

FInvert[a^2 + a, K]

Out[47]=

-1/4 + a/4 + a^2/12

FIrreducibleQ

First we declare a field as follows.

In[48]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

We determine whether certain polynomials are irreducible over K.

In[49]:=

FIrreducibleQ[a^2 + a x + x^2, K]

Out[49]=

True

In[50]:=

FIrreducibleQ[a^2 - x^2, K]

Out[50]=

False

FMakeTower

FMakeTower is used to redeclare a field so that algebraic numbers are adjoined in a different order than before.  In this way reduced forms with respect to other sequences of algebraic numbers may be computed.  We declare K1 to be the rationals with the square root of 3 adjoined and K2 to be K1 with the square root of 5 adjoined.  Then we build a tower from the rationals by first adjoining the square root of 15--the product of the first two algebraic numbers--and then adjoining the square root of 3 and the square root of 5.

In[51]:=

FDeclareField[K1, {a^2 - 3}, {2}]

----Details of field K1----

  Algebraic Numbers:  {a}

  Dimension over Q: 2

  Minimal Polynomials:  {-3 + a^2}

RowBox[{  Root Approximations: , , RowBox[{{, 1.7320508075688772935, }}]}]

----

In[52]:=

FDeclareExtensionField[K2, K1, {b^2 - 5}]

----Details of field K2----

  Algebraic Numbers:  {a, b}

  Dimension over Q: 4

  Minimal Polynomials:  {-3 + a^2, -5 + b^2}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.7320508075688772935, ,, RowBox[{-, 2.2360679774997896964}]}], }}]}]

----

In[53]:=

FMinPoly[a * b, x, K2]

Out[53]=

-15 + x^2

In[54]:=

FMakeTower[K3, KI, K2, c, a * b]

----Details of field KI----

  Algebraic Numbers:  {c}

  Dimension over Q: 2

  Minimal Polynomials:  {-15 + c^2}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{-, 3.8729833462074168852}], }}]}]

----

----Details of field K3----

  Algebraic Numbers:  {c, a, b}

  Dimension over Q: 4

  Minimal Polynomials:  {-15 + c^2, -3 + a^2, b - (a * c)/3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 3.8729833462074168852}], ,, 1.7320508075688772935, ,, RowBox[{-, 2.2360679774997896964}]}], }}]}]

----

FMap, FMapIsIsoQ

We declare the splitting field M of x^3- 3 over the rationals and determine its Galois group.

In[55]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r19, r20, r21}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r19^3, r19^2 + r19 * r20 + r20^2, r19 + r20 + r21}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

In[56]:=

grpM = FGaloisGroup[M]

Out[56]=

{{{r19, r20, r21}, {r19, r20, r21}}, {{r19, r20, r21}, {r19, r21, r20}}, {{r19, r20, r21}, {r2 ... 0, r21}, {r20, r21, r19}}, {{r19, r20, r21}, {r21, r19, r20}}, {{r19, r20, r21}, {r21, r20, r19}}}

Notice that the first pair of lists is simply r19, r20, r21 twice, indicating the automorphism induced by r19->r19, r20->r20, r21->r21.  The second and third are transpositions (exchanging r20 and r21, and exchanging r19 and r20, respectively).  The fourth is induced by a three-cycle r19->r20->r21->r19.  We'll check that this map is an automorphism, which it must be since it is an element of the Galois group.

In[57]:=

FMapIsIsoQ[M, grpM[[4]]]

Out[57]=

True

Now let's use this pair to apply the corresponding automorphism to r19*r20.

In[58]:=

FMap[r19 * r20, M, grpM[[4]]]

Out[58]=

r19^2

At first glance this may seem incorrect, but notice that r20*r21 = r19^2 in M:

In[59]:=

FSimplifyE[r19^2 - r20 * r21, M]

Out[59]=

0

FMap simply returned the reduced form of r20*r21 in M.

Now we examine an extension which has Galois group the alternating group of degree 3, checking that there is a permutation of the roots, transposing two roots, which is not an automorphism.

In[60]:=

FDeclareSplittingField[MM, x^3 - 3 * x + 1]

----Details of field MM----

  Algebraic Numbers:  {r22, r23, r24}

  Dimension over Q: 3

  Minimal Polynomials:  {1 - 3 * r22 + r22^3, -2 + r22 + r22^2 + r23, 2 - r22^2 + r24}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 1.8793852415718167681}], ,, 0.34729635533386069770, ,, 1.5320888862379560704}], }}]}]

----

In[61]:=

FGaloisGroup[MM]

Out[61]=

{{{r22, r23, r24}, {r22, r23, r24}}, {{r22, r23, r24}, {r23, r24, r22}}, {{r22, r23, r24}, {r24, r22, r23}}}

In[62]:=

FMapIsIsoQ[MM, {{r22, r23, r24}, {r22, r24, r23}}]

Out[62]=

False

FMinPoly

We declare the splitting field M of x^3- 3 and determine the minimal polynomials of two elements.

In[63]:=

FDeclareSplittingField[M, x^3 - 3]

----Details of field M----

  Algebraic Numbers:  {r25, r26, r27}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + r25^3, r25^2 + r25 * r26 + r26^2, r25 + r26 + r27}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{1.4422495703074083823, ... ox[{RowBox[{-, 0.7211247851537041912}], +, RowBox[{1.2490247664834064794,  , }]}]}], }}]}]

----

In[64]:=

FMinPoly[r25 + r26 * r27, x, M]

Out[64]=

-12 - 9 x + x^3

In[65]:=

FMinPoly[r25 + r26^2, x, M]

Out[65]=

144 - 108 x + 81 x^2 - 24 x^3 + 9 x^4 + x^6

FNormalQ

First we declare a field as follows.

In[66]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

Now we declare an extension field L of K by adjoining a square root of the algebraic number a.  We call this number b.

In[67]:=

FDeclareExtensionField[L, K, {b^2 - a}]

----Details of field L----

  Algebraic Numbers:  {a, b}

  Dimension over Q: 6

  Minimal Polynomials:  {-3 + a^3, -a + b^2}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{RowBox[{-, 0.7 ... [{RowBox[{-, 0.60046847758800136334}], +, RowBox[{1.04004191152595205727,  , }]}]}], }}]}]

----

Now L is a splitting field extension of K; it is a degree 2 extension given by a square root.  We check that this is true using FNormalQ.  (However, AlgFields will not compute its Galois group since it was not declared as a splitting extension field.  See FDeclareSplittingExtensionField for information on declaring L as a splitting field.)

In[68]:=

FNormalQ[L, K]

Out[68]=

True

We can check that L is not normal over the the rationals Q.

In[69]:=

FNormalQ[L]

Out[69]=

False

FPolynomialExtendedGCD, FPolynomialGCD

We declare a field and then compute polynomial GCDs.

In[70]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[71]:=

FPolynomialGCD[x^3 + x^2 * (-2a - 1) + x * (a^2 + a), x^2 + (-2a - 2) * x + a^2 + 2a, x, K]

Out[71]=

-a + x

In[72]:=

FPolynomialExtendedGCD[x^3 + x^2 * (-2a - 1) + x * (a^2 + a), x^2 + (-2a - 2) * x + a^2 + 2a, x, K]

Out[72]=

{-a + x, {4/11 - (2 a)/11 + a^2/11, -4/11 + (2 a)/11 - a^2/11 + (-4/11 + (2 a)/11 - a^2/11) x}}

Hence we can form a K[X]-linear combination of the two polynomials to achieve the GCD.

In[73]:=

FSimplifyP[(4/11 - (2 a)/11 + a^2/11) * (x^3 + x^2 * (-2a - 1) + x * (a^2 + a)) + (-4/11 + (2 a)/11 - a^2/11 + (-4/11 + (2 a)/11 - a^2/11) x) * (x^2 + (-2a - 2) * x + a^2 + 2a), x, K]

Out[73]=

-a + x

FPolynomialOrbit

We find the polynomial orbit associated to (x1-x2)*(x1-x3)*(x2-x3) acted upon by the symmetric group on three letters.  The orbit contains two elements, the second the negative of the first.

In[74]:=

FPolynomialOrbit[(x1 - x2) * (x1 - x3) * (x2 - x3), {x1, x2, x3}]

Out[74]=

{(x1 - x2) (x1 - x3) (x2 - x3), (x1 - x2) (x1 - x3) (-x2 + x3)}

FPolynomialQuotient, FPolynomialRemainder

We declare a field and then compute polynomial quotients and remainders over that field.

In[75]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[76]:=

FPolynomialQuotient[x^3 + a * x + 2, (a^2 + 3) * x^2 + a^2, x, K]

Out[76]=

(1/4 + a/12 - a^2/12) x

In[77]:=

FPolynomialRemainder[x^3 + a * x + 2, (a^2 + 3) * x^2 + a^2, x, K]

Out[77]=

2 + (-1/4 + (5 a)/4 - a^2/4) x

As a check:

In[78]:=

FSimplifyP[((a^2 + 3) * x^2 + a^2) * (1/4 + a/12 - a^2/12) x + 2 + (-1/4 + (5a)/4 - a^2/4) x, x, K]

Out[78]=

2 + a x + x^3

FRootNumber

We declare a field and then compute the minimal polynomials and root numbers of two elements.

In[79]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[80]:=

FMinPoly[a + a^2, x, K]

Out[80]=

-12 - 9 x + x^3

In[81]:=

FRootNumber[-12 - 9 x + x^3, a + a^2, K]

Out[81]=

3

In[82]:=

FMinPoly[a - 2, x, K]

Out[82]=

5 + 12 x + 6 x^2 + x^3

In[83]:=

FRootNumber[5 + 12 x + 6 x^2 + x^3, a - 2, K]

Out[83]=

2

FSetField

We set the default field to a field we define, as follows.

In[84]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[85]:=

FSetField[K]

Default field set to K .

In[86]:=

FShowField[]

----Details of field Fdefaultfield----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

FShowField

FShowField simply repeats the data provided when the field was declared.

In[87]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[88]:=

FShowField[K]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

FSimplifyE, FSimplifyP

We declare a field and then find reduced forms for some expressions and for the coefficients of a polynomial over the field.

In[89]:=

FDeclareField[K, {a^3 - 3}, {2}]

----Details of field K----

  Algebraic Numbers:  {a}

  Dimension over Q: 3

  Minimal Polynomials:  {-3 + a^3}

RowBox[{  Root Approximations: , , RowBox[{{, RowBox[{RowBox[{-, 0.7211247851537041912}], -, RowBox[{1.2490247664834064794,  , }]}], }}]}]

----

In[90]:=

FSimplifyE[a^2 + 2 * (a^4 + a^3), K]

Out[90]=

6 + 6 a + a^2

In[91]:=

FSimplifyE[(6 + 6 a + a^2) * FInvert[a, K], K]

Out[91]=

6 + a + 2 a^2

In[92]:=

FSimplifyE[a^3, K]

Out[92]=

3

In[93]:=

FSimplifyP[(x - a)^10, x, K]

Out[93]=

27 a - 270 x + 405 a^2 x^2 - 1080 a x^3 + 1890 x^4 - 756 a^2 x^5 + 630 a x^6 - 360 x^7 + 45 a^2 x^8 - 10 a x^9 + x^10

FSubstituteInGaloisResolvent

We find the Galois resolvent associated to the alternating group on three letters inside the symmetric group on three letters and then evaluate this resolvent for two polynomials.

In[94]:=

a3ins3 = FGaloisResolvent[(x1 - x2) * (x1 - x3) * (x2 - x3), {x1, x2, x3}, X]

Out[94]=

X^2 - σ1^2 σ2^2 + 4 σ2^3 + 4 σ1^3 σ3 - 18 σ1 σ2 σ3 + 27 σ3^2

In[95]:=

FSubstituteInGaloisResolvent[a3ins3, x^3 - 3]

Out[95]=

243 + X^2

In[96]:=

FSubstituteInGaloisResolvent[a3ins3, x^3 + x^2 + 1]

Out[96]=

31 + X^2


Created by Mathematica  (January 10, 2005)