Aufgabe 1 Schreiben Sie ein Programm, das über den reellen sowie über den komplexen Zahlen quadratische Matrizen der Größe n zufällig erzeugt und von diesen Matrizen das charakteristische Polynom bestimmt. Das charakteristische Polynom soll faktorisiert werden. Es soll entschieden werden, ob die Matrizen diagonalisierbar sind. Untersuchen Sie mit Ihrem Programm viele verschiedene zufällig erzeugte Matrizen. Folgende Fragen sollen Sie dabei untersuchen: • Wie groß ist der Anteil der diagonalisierbaren Matrizen. • Wie groß ist der Anteil der Matrizen, deren charakteristisches Polynom in Linearfaktoren zerfällt. Ihre Ergebnisse hängen natürlich von n ab und davon, wie Sie die Matrizen zufällig erzeugen. Aufgabe 2 Implementieren Sie das Gauß-Jordan-Verfahren zum Lösen linearer Gleichungssysteme über den reellen Zahlen. Ihre Implementierung soll auch die Anazhl Schritte zählen (wieviele Umformungen [E1], [E2] und [E3]), die notwendig sind, um die Matrix in zeilenreduzierte Normalform zu transformieren. Wenden Sie Ihr Programm auf viele verschiedene, zufällig erzeugte Probleme an. Zählen Sie jeweils die Anzahl Schritte, die benötigt werden, und stellen Sie diese Anzahlen grafisch dar (d.h. Sie sollten z.B. auf der x-Achse die Anzahl der benötigten Schritte, und auf der y Achse die entsprechenden Häufigkeiten auftragen). Aufgabe 3 Implementieren Sie das Gauß-Jordan-Verfahren und das Gauß-Verfahren zum Lösen linearer Gleichungssysteme über endlichen Körpern Fp . Testen Sie die Laufzeiten für verschiedene zufällig erzeugte Probleme. Aufgabe 4 Sie lernen zu Beginn des zweiten Semesters, dass jede reelle symmetrische Matrix diagonalisierbar ist. Bestimmen Sie für zufällig erzeugte symmetrische Matrizen, die nur die Einträge 0 und 1 haben, jeweils den betragsgrößten und betragskleinsten Eigenwert. Bestimmen Sie auch die Determinanten dieser Matrizen. Aufgabe 5 Erzeugen Sie zufällig (n × m)-Matrizen über Fp und bestimmen deren Rang (Sie dürfen die in MAPLE eingebaute Routine zur Rangbestimmung benutzen). Stellen Sie Ihre Ergebnisse grafisch dar: Mich würde interessieren, wie gross jeweils der Anteil der Matrizen vom Rang i = 1, . . . , n (für feste n, m und p) ist. 1 Aufgabe 6 Implementieren Sie das RSA-Verfahren! Implementieren Sie auch eine Attacke, wie man (durch Probieren!) den geheimen Schlüssel finden kann. Bis zu welcher Größe von n gelingt Ihnen das? Mit welchem Aufwand? Aufgabe 7 Das Gewicht eines Vektors v ∈ F2n ist die Anzahl der Koordinaten 6= 0. Ist U ein Unterraum in F2n , so sei ai := |{v ∈ U : Gewicht von v ist i}|. Das Polynom Pn i i=0 ai x heißt das Gewichtspolynom von U . Bestimmen Sie die Gewichtspolynome von zufällig erzeugten Unterräumen. Bestimmen Sie insbesondere das kleinste Gewicht 6= 0. Aufgabe 8 Implementieren Sie den Euklidischen Algroithmus zur ggT-Bestimmung ganzer Zahlen. Ihr Verfahren soll auch die Anzahl Schritte zählen, die der Algorithmus benötigt. Testen Sie Ihr Verfahren für zufällig erzeugte (große) Zahlen. Aufgabe 9 Implementieren Sie den Euklidischen Algroithmus zur ggT-Bestimmung von Polynomen in Fp [x]. Sie dürfen die Division von Polynomen mit Rest, die in MAPLE implementiert ist, benutzen. Ihr Verfahren soll auch die Anzahl Schritte zählen, die der Algorithmus benötigt. Testen Sie Ihr Verfahren für zufällig erzeugte (große) Polynome. Aufgabe 10 Für eine Funktion f : Fpn → Fpn definieren wir für v ∈ Fpn δ(v) = |{f (x + v) − f (x) : x ∈ Fpn }|. Ferner definieren wir die Multimenge (d.h. wir zählen auch die Vielfachheiten, wie oft ein Element auftritt) ∆(f ) := {δ(v) : v ∈ Fpn } Bestimmen Sie für verschiedene p, n und zufällig gewählte f die Mengen ∆(f ), insbesondere den Maximalwert in ∆(f ). Aufgabe 11 Implementieren Sie die beiden in der Vorlesung behandelten Verfahren zur Inversenbestimmung einer Matrix. Zählen Sie auch die Rechenoperationen, die jeweils notwendig sind. Vergleichen Sie die Laufzeiten anhand zufällig erzeugter Probleme. 2 Aufgabe 12 Implementieren Sie zwei Verfahren zur Determinantenbestimmung, einmal basierend auf der Leibniz-Formel, und einmal basierend auf dem Laplace’schen Entwicklungssatz. Vergleichen Sie die Laufzeiten Ihrer Verfahren anhand zufällig erzeugter Matrizen. Aufgabe 13 Implementieren Sie das Gram-Schmidt’sche Orthonormalisierungsverfahren. Aufgabe 14 Implementieren Sie die “Cramer’sche Regel” und das Gauß-Verfahren zur Lösung linearer Gleichungssysteme. Vergleichen Sie die Laufzeiten anhand zufällig erzeugter Gleichungssysteme. 3