12.8 Darstellung von Daten

Ziel:
Das Ziel der Übung ist es, den Umgang mit Daten und deren Visualisierung zu erlernen.
Voraussetzung:
Speichern Sie die files kerrtab-i.dat und kerrtab-pu.dat in Ihrem MATLAB-Directory ab (Skript: uebungsdaten).

  1. Animation:
    Erstellung eines Skripts anim.m, welches die Bewegung von Punkten entlang Kurven in einer Animation darstellt. Ein Punkt bewegt sich dabei entlang einer elliptischen Bahn, die unter Umständen im Laufe der Zeit eine Verkleinerung der Achsen erfährt. Diese Bahn wird beschrieben durch

    $\displaystyle x_1(t)$ $\displaystyle = a_1 cos(2\pi\nu_1 t) e^{-\kappa_1 t} \; ,$ (12.19)
    $\displaystyle y_1(t)$ $\displaystyle = b_1 sin(2\pi\nu_1 t) e^{-\kappa_1 t} \; .$ (12.20)

    Dieser Punkt wird von einem zweiten Punkt umrundet, wobei seine Bahn durch

    $\displaystyle x_2(t)$ $\displaystyle = x_1(t) + a_2 cos(2\pi\nu_2 t) e^{-\kappa_2 t} \; ,$ (12.21)
    $\displaystyle y_2(t)$ $\displaystyle = y_1(t) + b_2 sin(2\pi\nu_2 t) e^{-\kappa_2 t} \; ,$ (12.22)

    beschrieben wird. Die Zeit $ t$ soll dabei von 0 in Zeitschritten von $ \Delta t$ bis $ t_{end}$ laufen. Verwenden Sie dabei als Defaultwert eine sinnvolle Kombination von Frequenzen $ \nu$, Achsen $ a$ und $ b$, Dämpfungsfaktoren $ \kappa$ und Zeitwerten. Der erste Punkt soll dabei ein paar Umläufe machen, während in der zweite Punkt pro Umlauf den ersten mehrfach umkreist.

    Die Gestaltung der Graphik und die Auswahl der Defaultwerte ist Ihnen überlassen. Wählen Sie sie so, dass man eine interessante Animation sieht.

    Verwenden Sie dabei zur Erstellung der Graphik die Befehle figure, axes, line. Diese (alle) Graphikbefehle haben als Rückgabewert einen sogenannten Graphik-Handle, der einen weiteren Zugriff auf diese Graphikobjekte ermöglicht:

      fh = figure;
      clf reset;    % loescht alle Children, Eigenschaften
      set(fh,'Color',[1,1,0.8]);
      set(fh,.........)
    
    Damit kann man alle Eigenschaften von Graphikobjekten verändern. Dazu kann man sich im helpbrowser die Seite ''Handle Graphics Property Browser'' ansehen, die für alle Graphikobjekte Eigenschaften und mögliche Werte angibt. Eine Einführung zu diesem Konzept gibt es im Abschnitt 11.1. Verwenden Sie dieses Konzept um einige Einstellungen für figure und axes vorzunehmen.

    Das gleiche Konzept wird zur Animation von Graphiken verwendet. Dabei tauscht man in einer Schleife (while) z.B. die Daten einer Linie (eines Punktes) aus:

      lh = line(x,y,'LineStyle','none');
      set(lh,'Marker','o')
      % MarkerSize, MarkerEdgeColor, MarkerFaceColor, ....
      t = t_anf;
      while t <= t_end
        t = t + delta_t;
        x = ....
        y = ....
        set(lh,'XData',x,'YData',y);
        drawnow;
        pause( ........... )
      end
    
    Die Animation erfolgt also durch Austauschen der x- und y-Werte. Der Befehl drawnow stellt sicher, dass zu diesem Zeitpunkt ein Update der graphischen Ausgabe (Schirm) stattfindet. MATLAB merkt sich ansonsten Graphikbefehle in einer Art Pipeline und optimiert die Umsetzung.

    Damit sollte es Ihnen möglich sein, dass sich die Punkte über die Graphik bewegen. Wichtig dabei ist, dass man mit den Eigenschaften XLim bzw. YLim die Achsenlimits gleich am Anfang in entsprechender Größe einstellt, damit sich diese nicht bei der Bewegung mitändern. In manchen Fällen, will man das Achsensystem so gestalten, das es sich über die gesamte Graphik ausdehnt und unsichtbar bleibt. Dies erreicht man mit Hilfe der Eigenschaften Position und Visible.

    Ein wichtiger Punkt ist auch die oft notwendige Verzögerung der Graphikausgabe mit dem Befehl pause, da sonst oft die Animationen zu schnell abläuft. Dabei kann man mit den Befehlen clock und etime die gegenwärtige Zeit bzw. die verstrichene Zeit berechnen und damit ein vernünftiges Argument für pause berechnen:

      t_0 = clock;
      ......
      t_elapsed = etime(clock,t_0);
    
    Wenn dieser Teil funktioniert, ergänzen Sie die Ausgabe um ''Schweife'' beschränkter Länge, die jeder Punkt nach sich zieht. Diese stellen quasi eine Spur dar. Dafür führt man weitere zwei Linien ein, die nun nicht mehr nur aus einem Punkt sondern aus einer Reihe von Punkten bestehen. Dies kann man dadurch erreichen, dass man an die entsprechenden Vektoren bei jedem Zeitschritt vorne den neuen Punkt anfügt. Wenn die Vektoren die gewünschte Länge überschreiten, schneidet man den hinteren Bereich ab und animiert dann unter Verwendung von XData und YData diese Kurven.

  2. Kerrzelle:
    Erstellung eines Skripts kerr.m.

    1. Die Datei kerrtab-i.dat enthält eine Matrix mit folgendem Inhalt:
      • 1. Spalte: Winkel in Grad
      • 2. Spalte: Intensität von linear polarisiertem Licht
      • 3. Spalte: Intensität von zirkular polarisiertem Licht
      • 4. Spalte: Intensität von elliptisch polarisiertem Licht
      Die Daten (load) stammen von folgender Messung: Polarisiertes Licht wird durch einen Analysator geschickt. (Ein Analysator lässt nur eine Schwingungsrichtung von Licht durch.) Wird der Analysator gedreht, ändert sich die Intensität gemäß der oben gegebenen Matrix.
      Erzeugen Sie eine Grafik, in der alle drei Polarplots zu sehen sind. Beschriften Sie die Achsen und die Grafik entsprechend. Erzeugen Sie eine Legende.

    2. Bringt man isotrope Dielektrika in ein homogenes elektrisches Feld, so erhalten diese optische Eigenschaften einachsiger Kristalle, das heißt, sie werden doppelbrechend. Für den Phasenunterschied  $ \Delta\varphi$ von ordentlichem und außerordentlichem Strahl folgt nach dem empirischen Gesetz von Kerr:

      $\displaystyle \Delta \varphi = const\cdot U^2$ (12.23)

      $ const$ ...Konstante, die aber von der Wellenlänge des Lichtes abhängt
      $ U$ ...Spannung an einem Kondensator, der das elektrische Feld erzeugt


      Die Datei kerrtab-pu.dat enthält folgende Daten:

      • 1. Spalte: $ U^2$
      • 2. Spalte: $ \Delta\varphi$ für grünes Licht
      • 3. Spalte: Fehler für grünes Licht
      • 4. Spalte: $ \Delta\varphi$ für gelbes Licht
      • 5. Spalte: Fehler für gelbes Licht
      • 6. Spalte: $ \Delta\varphi$ für blaus Licht
      • 7. Spalte: Fehler für blaus Licht
      Erzeugen Sie eine Grafik, die $ \Delta\varphi$ als Funktion von $ U^2$ für die einzelnen Farben darstellt (alle drei in einer Grafik). Erforderlich: Beschriftung der Achsen und der Grafik; Fehlerbalken; Ausgleichsgeraden durch den Ursprung.

      Achtung: Der Befehl polyfit legt die Ausgleichsgerade nicht unbedingt durch den Ursprung. Wenn man das erreichen will, darf man für die Gerade nur die Formel $ y = kx$ verwenden. Die Steigung $ k$ ergibt sich dann aus

      $\displaystyle k = \frac{\sum_{I=1}^{N}x_i y_i}{\sum_{i=1}^{N}x_i^2},$

      wobei N die Anzahl der Datenpunkte ist.

Winfried Kernbichler 2005-04-26