Einführung in die Computeralgebra Übungsblatt 4 Sommersemester 2016 Michael Stoll 6. Mai 2016 Abgabe: Donnerstag, 12. Mai, bis 10:00 Uhr im Briefkasten (NW II, 2. Stockwerk rechts). Übungsaufgaben bitte handschriftlich bearbeiten (außer Programmieraufgaben); nur ein Name pro Blatt! — Schnellhefter und Deckblatt nicht vergessen! (1) Vergleichen Sie die Komplexität (führender Term der Anzahl an Operationen in K) des naiven Potenzierungsalgorithmus function power(b, e) input: b ∈ R, e ∈ Z≥0 . output: be . r←1 for i = 1 to e do r ← r · b end for return r end function mit der des Algorithmus durch sukzessives Quadrieren (ohne die rem a“-Operationen) ” für R = K[X] in den beiden Fällen e = 2k und e = 2k − 1. (25) (2) Der folgende Algorithmus berechnet die Determinante einer Matrix A über einem Körper K (das brauchen Sie nicht zu zeigen): function det(A) input: A = (aij ) ∈ Mat(n, K). output: det(A) ∈ K. if n = 0 then return 1 end if i ← 1; while i ≤ n and ai1 = 0 do i ← i + 1 end while if i > n then return 0 end if if i = 1 then s ← a11 else vertausche Zeile 1 und Zeile i in A; s ← −a11 end if u ← a−1 11 ; for j = 2 to n do a1j ← u · a1j end for for j = 2 to n do for k = 2 to n do ajk ← ajk − aj1 · a1k end for end for return s · det((aij )2≤i,j≤n ) end function Sie können im Folgenden die Hadamardsche Ungleichung | det(A)| ≤ k~a1 k · · · k~an k verwenden. Dabei seien ~a1 , . . . , ~an die Spalten von A und kxk die euklidische Länge eines Vektors. (a) Sei A ∈ Mat(n, Z) mit Einträgen |aij | ≤ M ; wir nehmen an, dass A in Mat(n, Q) invertierbar ist. Zeigen Sie, dass die Einträge von A−1 rationale Zahlen sind mit Zähler vom Betrag ≤ (n − 1)(n−1)/2 M n−1 und Nenner ein Teiler von det(A) (und damit vom Betrag ≤ nn/2 M n ). Hinweis: Cramersche Regel/adjunkte Matrix. A11 A12 (b) Wir betrachten die Blockmatrix A = mit A11 ∈ Mat(k, Q) inverA21 A22 tierbar und A22 ∈ Mat(n − k, Q) (und A12 , A21 von dazu passender Größe). Zeigen Sie, dass die Matrix A(k) im k-ten rekursiven Aufruf von det gegeben ist durch A22 − A21 A−1 11 A12 . (c) Zeigen Sie: Wenn A wie in Teil (a) Einträge in Z vom Betrag ≤ M hat, dann sind Zähler und Nenner der Einträge von A(k) durch 2k (k+3)/2 M k+1 bzw. k k/2 M k beschränkt. (d) Wir nehmen an, dass die vier Grundrechenarten für rationale Zahlen mit Länge von Zähler und Nenner ≤ ` mit einem Aufwand von `2 Wortoperationen ausführbar sind. Schätzen Sie den Aufwand in Wortoperationen für die Berechnung von det(A) (A ∈ Mat(n, Z), Einträge |aij | ≤ M ) mit dem Standardalgorithmus über Q möglichst gut nach oben ab. Dabei nehmen wir an, dass bei jedem Aufruf a11 6= 0 ist. Vergleichen Sie mit der Komplexität des Algorithmus von Beispiel 4.3! (15+20+20+20) (3) Bonus Problem. Perform the analogous comparison as in Problem (1), but for polynomials in Z[X] and in terms of word operations. Assume that the polynomial b has degree n and coefficients of absolute value ≤ M . (25 extra points)