Lineare Algebra II Übungsbetrieb Euklidischer Algorithmus Erweiterter euklidischer Algorithmus Ein euklidischer Ring ist ein Ring R zusammen mit einer Gradabbildung δ : R −→ N ∪ {−∞} in dem ein „Teilen mit Rest“ existiert. Das heißt: Für alle x, y ∈ R existieren q, r ∈ R mit x = qy + r und δ(r) < δ(y). Beispiele sind: • Z ist euklidisch mit der Gradabbildung δ(z) = |z| für alle z 6= 0 und δ(0) = −∞ • Sei k ein Körper, dann ist k[X] euklidisch mit δ(f ) = deg(f ) für alle 0 6= f und δ(0) = −∞ • Auch der Ring der Gaußschen Zahlen Z[i] ist euklidisch mit δ(z) = zz für z 6= 0 und δ(0) = −∞ Finde den ggT Der euklidische Algorithmus findet für x, y ∈ R (wobei R euklidischer Ring) den ggT(x, y) wie folgt: (i) Finde q1 , r1 ∈ R mit x = q1 y + r1 und δ(r1 ) < δ(y). Dies ist möglich, da R euklidischer Ring. (ii) Ist r1 = 0, so gilt y | x und damit ggT(x, y) = y. (iii) Sonst finde q2 , r2 ∈ R mit y = q2 r1 + r2 wie oben (das heißt teile den Divisor von oben y mit Rest durch den vorherigen Rest r1 ). (iv) Ist r2 = 0, so ist r1 = ggT(x, y). (v) Sonst teile wieder den Divisor r1 durch den Rest r2 , sprich finde q3 , r3 ∈ R mit r1 = q3 r2 + r3 . (vi) Ist r3 = 0, so ist r2 = ggT(x, y) (vii) Ansonsten verfahre immer weiter so. Der Beweis, dass dieses Verfahren abbricht ist einfach (der Grad der Reste wird immer kleiner, muss also irgendwann bei ri = 0 ankommen). Dass das Ergebnis ein gemeinsamer Teiler ist, folgt durch einsetzen, dass er der größte solche ist, ist Übung. c Daniel Heiß Seite 1 Lineare Algebra II Übungsbetrieb Euklidischer Algorithmus Beispiel in Z Finde ggT(11760, 8932): 11760 u 8932 u 2828 u 448 140 u = 1 · 8932 = 3 · 2828 = 6 · 448 = 3 · 140 = 5 · 28 y y y y + 2828 + 448 + 140 + 28 + 0 Die letzte Division lässt Rest 0, also ist der vorherige Rest – nämlich 28 – der gesuchte ggT, sprich ggT(11760, 8932) = 28. Beispiel in Q[X] Bestimme den ggT von f := X 3 − 2X 2 − X + 2 und g := X 3 − 4X 2 + 3X: X 3 − 2X 2 − X + 2 X 3 − 4X 2 + 3X 2X 2 − 4X + 2 = s s 1 · X 3 − 4X 2 + 3X + 2X 2 − 4X + 2 + −2X + 2 + 0 u = 1 2X −1 · 2X 2 − 4X + 2 = −X + 1 · −2X + 2 u Also ist ggT(f, g) = −2X + 2. Beispiel in Z[i] Bestimme den ggT von z := 8 − 4i und w := 10 + 30i. 10 + 30i 8 − 4i s = −1 + 4i · 8 − 4i = 1+i · 2 − 6i x + 2 − 6i + 0 Also ggT(z, w) = 2 − 6i. Erweiterter euklidischer Algorithmus Der euklidische Algorithmus lässt sich erweitern und man erhält eine Darstellung von ggT(x, y) als Linearkombination in x und y, sprich man erhält Koeffizienten λ, µ ∈ R mit c Daniel Heiß Seite 2 Lineare Algebra II Übungsbetrieb Euklidischer Algorithmus ggT(x, y) = λx + µy. Dazu löst man die vorletzte Zeile des euklidischen Algorithmus (dort ist der Rest der Division gleich ggT(x, y)) nach dem Rest auf und erhält eine Gleichung (∗) für den ggT. Nun löst man die Zeile darüber nach dem Rest auf und setzt diesen dann in (∗) ein und fasst zusammen. Dann geht man wieder eine Zeile hoch, löst nach dem Rest auf und setzt ihn in die neue Gleichung (∗) ein und fasst zusammen. Am Ende erhält man das Gewünschte. Beispiel in Z 11760 u 8932 u 2828 u 448 140 u = 1 · 8932 = 3 · 2828 = 6 · 448 = 3 · 140 = 5 · 28 y y y y + 2828 + 448 + 140 + 28 + 0 Zunächst die unterste Zeile die den ggT(11760, 8932) = 28 enthält nach diesem auflösen: 28 = 448 − 3 · 140 (∗) Nun die Zeile drüber (also Zeile 3) nach dem Rest 140 auflösen und in (∗) einsetzen liefert: 28 = 448 − 3 · 2828 − 6 · 448 = 19 · 448 − 3 · 2828 (†) Wieder eine Zeile im obigem euklidischen Algorithmus nach oben – also in Zeile 2 – nach dem Rest 448 auflösen und in (†) einsetzen liefert: 28 = 19 · 8932 − 3 · 2828 − 3 · 2828 = 19 · 8932 − 60 · 2828 (♥) Und abschließend das Ganze mit der obersten Zeile liefert dann: 28 = 19 · 8932 − 60 · 11760 − 1 · 8932 = 79 · 8932 − 60 · 11760 Erhalte also: ggT(8932, 11760) = 79 · 8932 − 60 · 11760. Beispiel in Q[X] Gehe vor wie oben und erhalte: 1 ggT(f , g) = X · g − 2 c Daniel Heiß 1 X − 1 · f. 2 Seite 3