JGU Logo JGU Logo JGU Logo JGU Logo

Institut für Informatik

Modellierung 1

Michael Wand &
David Hartmann
Wintersemester 21/22

Inverse Probleme & Eigenwerte

Übungsblatt 4
Letzte Änderung: 05. November 2021, 16:07 Uhr
Bearbeitung bis: Freitag, der 26.11.2021, 15 Uhr



Aufgabe 1 - Warm Up

Angenommen, eine \(3 \times 3\) Matrix \(C\) habe die Eigenwerte \(0, 1, 2\).
Berechnen Sie, falls möglich (oder argumentieren Sie, warum die Berechnung nicht möglich ist):

  1. Den Rang von \(C\).
  2. Die Determinante von \(C^T C\).
  3. Die Eigenwerte von \(C^T C\).
  4. Die Eigenwerte von \((C^2 + I)^{-1}\).

Aufgabe 2 - Konstruktion von symmetrischen Matrizen (und Quadriken) nach Spektrum


  1. Es sei \(u \in \mathbb{R}^d, ||u||>0\).
    Zeigen Sie, dass \(u\) ein Eigenvektor der Matrix \(uu^T\) ist, mit Eigenwert \(||u||^2\).
  2. Zeigen Sie, dass die Matrix \(uu^T\) nur einen einzigen Eigenvektor hat, der nicht Null ist.
  3. Sei nun \(u \in \mathbb{R}^d, ||u|| = 1\).
    Zeigen Sie, dass \(I - uu^T\) nur einen Eigenwert \(0\) besitzt, alle weiteren Eigenwerte sind \(1\).
    (Zum Eigenwert \(0\) gehören die Eigenvektoren \(c \cdot u,\, c \in \mathbb{R}^{\neq 0}\), aber das muss hier nicht bewiesen werden)

    Tipp: Was sind die Eigenwerte der Identitätsmatrix \(I\)?
  4. Konstruieren Sie eine symmetrische Matrix \(M\) mit den Eigenwerten \(\lambda_1, \dots, \lambda_d\) und orthogonales Eigenvektoren \(u_1, \dots, u_n\) (beides ist gegeben, daraus soll die Matrix gebaut werden).
    Zeigen Sie kurz, dass Ihre Konstruktion korrekt ist.
  5. Gegeben sei eine symmetrische Matrix \(M \in \mathbb{R}^{d \times d}\) (z.B. aus gemessenen Daten konstruiert).
    Benutzen Sie die SVD um diese Matrix als Linearkombination von Matrizen vom Rank \(1\) dazustellen.
    Kann dies auch für nicht symmetrische Matrizen funktionieren? (Tipp: Ja! Aber warum?)
    Hinweis: Das ist recht einfach; die eigentlich Aufgabe besteht darin, den Zusammenhang zu erkennen.

Aufgabe 3 - Inverse Probleme


Die Radontransformation Die Radontransformation Die Radontransformation Die Radontransformation
Abbildung 1: Die Radontransformation - für jeden möglichen Winkel \(\alpha \in [0, \pi]\) wird eine 1D Projektion durch Integration entlang von (hier parallelen) Linien (Parameter \(x \in [-\sqrt{2}, \sqrt{2}]\)) erzeugt. Eingabe ist ein 2D "Graustufen" Bild \(f: [-1,1]^2 \rightarrow [0,1]\). Die Radontransformation \(\text{RT}(f)\) liefert ein neues 2D Bild, dass für jeden Winkel \(\alpha\) und Längsparameter \(x\) das entsprechende Linienintegral liefert.


Aufgabe 3.1 - Die Radontransformation

  1. Vollziehen Sie noch einmal die Erklärung zur Radontransformation aus der Vorlesung genau nach, und überlegen Sie sich, wie man diese (für Pixelbilder) mit Hilfe von numerischer Integration diskretisieren kann.
  2. Implementieren Sie eine 2D Radontransformation.
    Laden Sie ein Bild ihrer Wahl ein (Graustufen reichen), berechnen Sie dessen Radontransformation und visualisieren Sie diese. Das Prinzip der Transformation ist in Abbildung 1 dargestellt.
  3. Bestimmen Sie als erstes die Matrix, die die Radontransformation (Abbildung von Pixeln auf die Werte der Linienintegrale) darstellt.
    Wir benötigen diese Matrix für den nächsten Aufgabenteil.

Aufgabe 3.2 - Die Inverse Radontransformation

  1. Untersuchen Sie die Eigenschaften der Transformation indem Sie sich die SVD der Transformationsmatrix ansehen.
    Insbesondere ist es sehr aufschlussreich, sich das Singulärwertspektrum anzusehen.
    Man stellt fest, dass die Radontransformation schlecht gestellt („ill-posed“) ist - die Spreizung der Singulärwerte ist relativ stark, was eine naive Invertierung schwierig macht (unmöglich mit echten, verrauschten Messdaten). Historisch ist dies eines der Probleme, die zur Entwicklung der Theorie schlecht gestellter Probleme geführt hat.
    Plotten Sie dazu das Spektrum – z.B. mit Matplotlib.
  2. Visualisieren Sie den Kern der Radontransformation:
    Zeigen Sie einige Beispiel von Eingabebildern, die fast vollständig auf null abgebildet werden.
    Im Gegenzug, finden Sie Eingabebilder die kaum durch die Transformation abgeschwächt werden.
    Hinweis: Schauen Sie sich die Singulärvektoren (auf der richtigen Seite der Matrix) an.
  3. Berechnen Sie nun die inverse Radontransformation mit Hilfe einer (entsprechend angepassten) Pseudoinversen (also eine SVD-basierte Matrixinversion bei der kleine Singulärwerte passend abgeschnitten werden).
    Wenden Sie diese auf verschiedene Eingabebilder an, bei denen unterschiedlich viel Rauschen künstlich hinzugefügt wurde (um einen realen Messprozess zu simulieren).

    Anmerkungen: Die Invertierung via SVD ist sehr teuer (in der Praxis wird das daher auch in der Regel anders implementiert, mittels schneller Fouriertransformation o.ä.). Bildgrößen von ca. \(64^2\) Pixel ließen sich in meinen Experimenten noch mit halbwegs vertretbarem Aufwand invertieren.

Beispiele (alle leicht vergrößtert):

Eingabebild Erdmännchen Eingabebild Erdmännchen Eingabebild Erdmännchen Eingabebild Erdmännchen
Eingabebild CatScan Eingabebild CatScan Eingabebild CatScan Eingabebild CatScan
Eingabebild
Radontransformation Erdmännchen Radontransformation Erdmännchen Radontransformation Erdmännchen Radontransformation Erdmännchen
Radontransformation CatScan Radontransformation CatScan Radontransformation CatScan Radontransformation CatScan
Radontransformation
Ausgabebild Erdmännchen Ausgabebild Erdmännchen Ausgabebild Erdmännchen Ausgabebild Erdmännchen
Ausgabebild CatScan Ausgabebild CatScan Ausgabebild CatScan Ausgabebild CatScan
Nach Invertierung
(Schwellwert \(\sigma \ge 0.001\),
kein zusätzliches Rauschen)