Mehrgittermethoden

Übungsaufgaben

Robert Speck & Dieter Moser, Sommersemester 2016

</center>


Das Kroneckerprodukt

Ist $A$ eine $m\times n$-Matrix und $B$ eine $p\times r$-Matrix, so ist das Kronecker-Produkt $C = A \otimes B$ definiert als $$C = (a_{ij} \cdot B) =\begin{pmatrix} a_{11} B & \cdots & a_{1n} B \\ \vdots & \ddots & \vdots \\ a_{m1} B & \cdots & a_{mn} B \end{pmatrix}.$$

  1. Ist das Kronecker-Produkt kommutativ?

  2. Zeigen Sie:

    1. $A\otimes (B+C)=A\otimes B+A\otimes C $

    2. $AC\otimes BD=(A\otimes B)(C\otimes D)$

    3. $\mathrm{Spur}(A \otimes B) = \mathrm{Spur}(A) \cdot \mathrm{Spur}(B)$

  3. Zeigen Sie:

    1. Sind $\{\lambda_i\}_{i=1..n}$ die Eigenwerte von $A$ und $\{\mu_j\}_{j=1..m}$ die Eigenwerte von $B$ dann sind $\{\lambda_i \, \mu_j\}_{i=1..n \atop j=1..m}$ die Eigenwerte von $A \otimes B$.

    2. Für die Spektralnorm gilt $\| A \otimes B \|_2 = \| A \|_2 \cdot \| B \|_2$.

    3. Sind $A,B$ invertierbar, so ist die Inverse $(A\otimes B)^{-1}=A^{-1} \otimes B^{-1}$.


Das Gauß-Seidel-Verfahren

Hier werden Sie zum ersten Mal das pyMG-Framework erweitern. Implementieren Sie Ihre Verfahren im Ordner project und nutzen Sie unter allen Umständen die vorgegebenen Klassen aus dem Ordner pymg. Zur Beantwortung von Fragen mit Code-Unterstützung (wie Teilaufgabe 1) arbeiten Sie bitte direkt in diesem Jupyter Notebook, evtl. mit Unterstützung von eigenen Skripten aus dem bin Ordner.

  1. Implementieren Sie das Gauß-Seidel-Verfahren und wenden Sie es für das Modellproblem $-\Delta u = 0$ mit $N=63$ Freiheitsgraden an. Nutzen Sie dazu als Anfangswerte die Fourier-Moden $w_2$ und $w_{16}$ sowie $(w_2+w_{16})/2$. Plotten Sie jeweils die Lösung nach 1 und nach 10 Iterationen und erklären Sie die Ergebnisse.
  2. Dokumentieren Sie den Code mit Hilfe des Sphinx-Frameworks (siehe Readme).

Erstellen Sie einen Release (welches auch das bearbeitete Notebook enthält) und reichen Sie den Link zum Release ein. Bei Einreichung wird dieses Notebook ausgeführt und erzeugt eine html-Version, die dann zur Korrektur genutzt wird. Achten Sie daher darauf, dass das Notebook ohne Fehler ausführbar ist und alle gewünschten Lösungen/Erklärungen enthält.

Zur Bewertung dieser Aufgabe werden das Notebook, die Dokumentation und die Commit-Messages einbegezogen.