Dieses Modul stellt die Funktionalitaet zur Berechnung von Galoisgruppen. Dazu bestimmen wir zu einem gegebenen normierten separablen Polynom f zunaechst die Nullstellen, bestimmen dann ein primitives Element und nutzen schliesslich die Bijektion der galoissch Konjugierten des primitiven Elements mit den Elementen der Galoisgruppe aus.
- linearResolvent ∷ Poly Rational → R [Integer]
- galoisGroup ∷ Poly Rational → GaloisInfo Rational (Alg QinC)
- primitiveElement ∷ Alg QinC → Alg QinC → (Integer, Alg QinC, Poly Rational, Poly Rational)
- pseudoResolvent ∷ [Alg QinC] → ([Integer], Alg QinC, [Poly Rational])
- check_Galois ∷ IO ()
- demo ∷ IO ()
Documentation
linearResolvent ∷ Poly Rational → R [Integer]
Berechnet eine lineare galoissche Resolvente eines normierten separablen Polynoms ueber eine Abschaetzung, in der die Nullstellen des Polynoms eingehen.
Wird von den anderen Funktionen dieses Moduls nicht benutzt.
Siehe: Algebra I, Uebungsblatt 11, Aufgabe 12
galoisGroup ∷ Poly Rational → GaloisInfo Rational (Alg QinC)
Bestimmt die Galoisgruppe eines normierten separablen Polynoms.
∷ Alg QinC | x |
→ Alg QinC | y |
→ (Integer, Alg QinC, Poly Rational, Poly Rational) | (lambda, t, hX, hY), mit t = x + lambda*y, hX(t) = x und hY(t) = y. |
Berechnet zu zwei gegebenen algebraischen Zahlen x und y ein primitives Element t in der Form t = x + lambda*y fuer eine ganze Zahl lambda.
Berechnet zu einer gegebenen Liste von algebraischen Zahlen x_1,...,x_n ein primitives Element t in der Form t = lambda_1 x_1 + ... + lambda_n x_n und gibt ausserdem Zeugen der Rationalitaet der x_i in t zurueck, also Polynome hs mit eval t (hs!!i) == x_i.
(Es wird nicht garantiert, dass auf das zurueckgegebene primitive Element schon
simplifyAlg
aufgerufen wurde.)
Der Name pseudoResolvent erklaert sich dadurch, als dass im Spezifall, dass die x_i die Nullstellen eines separablen Polynoms sind, zumindest die Zahlen sigma * t, wobei sigma die entsprechende Galoisgruppe durchlaeuft, paarweise verschieden sind.
check_Galois ∷ IO ()
demo ∷ IO ()