Einfuehrung in die Computeralgebra

Werbung
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)
Herunterladen