Subsections


12.3 Spiralen, Schwebung, Gaußverteilung

Ziel:
Umgang mit Funktionen. Setzen von Defaultwerten für Inputparameter. Erstellen einfacher Plots.

Vorraussetzung:
Grundlagen von Funktionen in MATLAB.

Erstellen Sie ein Skript sfunk.m, das alle folgenden Funktionen testet und einfache Kurven der Funktionen erstellt. Erklärungen zu den Plotbefehlen finden Sie in dem Abschnitt 11.2.1 bzw. in der MATLAB-Hilfe für plot.

Defaultwerte kann man setzen, indem man die Anzahl der Input-Variablen überprüft. Dafür steht nach dem Aufruf der Funktion die Variable nargin zur Verfügung. Darüberhinaus bietet sich auch die Funktion isempty an. Erklärungen dafür finden Sie in dem Abschnitt 7.1.6.


12.3.1 Spiralen

Schreiben Sie eine MATLAB-Funktion spirale1, die mit dem Aufruf

 [x,y] = spirale1(t,nu,a1,a2)
folgende Funktion berechnet

$\displaystyle x(t)$ $\displaystyle = a_1 e^{-a_2 t} \cos(2 \pi \nu t)$    
$\displaystyle y(t)$ $\displaystyle = a_1 e^{-a_2 t} \sin(2 \pi \nu t) \; ,$    

wobei $ t$ ein Zeitvektor ist. Der Defaultwert für die Frequenz $ \nu$ soll $ 5$ sein und für $ a_1$ und $ a_2$ sollen als Defaultwert $ 1$ gesetzt werden. Erzeugen Sie im zugehörigen Testskript sfunk einen vernünftigen Zeitvektor und plotten Sie $ y$ als Funktion von $ x$, bzw. $ x$ und $ y$ als Funktion von $ t$.

Schreiben Sie eine MATLAB-Funktion spirale2, die mit dem Aufruf

 [x,y] = spirale2(t,nu,a1,a2)
folgende Funktion berechnet

$\displaystyle x(t)$ $\displaystyle = a_1 \log(1 + a_2 t) \cos(2 \pi \nu t)$    
$\displaystyle y(t)$ $\displaystyle = a_1 \log(1 + a_2 t) \sin(2 \pi \nu t) \; ,$    

wobei $ t$ ein Zeitvektor ist. Der Defaultwert für die Frequenz $ \nu$ soll $ 5$ sein und für $ a_1$ und $ a_2$ sollen als Defaultwert $ 1$ gesetzt werden. Erzeugen Sie im Skript einen vernünftigen Zeitvektor und plotten Sie $ y$ als Funktion von $ x$, bzw. $ x$ und $ y$ als Funktion von $ t$.

\includegraphics[width=0.45\textwidth]{appdata/spirale}


12.3.2 Schwebung

Schreiben Sie eine MATLAB-Funktion schwebung, die mit dem Aufruf

 [x,y] = schwebung(t,nu1,nu2,a1)
folgende Funktion berechnet

$\displaystyle x(t)$ $\displaystyle = a_1 \left( \sin(2 \pi \nu_1 t) + \cos(2 \pi \nu_2 t) \right)$    
$\displaystyle y(t)$ $\displaystyle = a_1 \left( \sin(2 \pi \nu_1 t) - \cos(2 \pi \nu_2 t) \right) \; ,$    

wobei $ t$ ein Zeitvektor ist. Die Defaultwerte für die Frequenz $ \nu_1$ und $ \nu_2$ sollen $ 5$ und $ 4.5$ sein. Der Defaultwert für für $ a_1$ soll $ 1$ sein. Erzeugen Sie im Skript einen vernünftigen Zeitvektor und plotten Sie $ x$ und $ y$ als Funktion von $ t$, bzw. $ y$ als Funktion von $ x$. Der Zeitvektor sollte so gewählt werden, dass man das Phänomen der Schwebung erkennen kann. Die Darstellung $ y$ als Funktion von $ x$ nennt man eine Lissajous-Figur. Die Kurve schließt sich zum ersten Mal, wenn $ t_0=0$ und $ t_{end}=1/\left\vert \nu_1 - \nu_2 \right\vert$ ist.

\includegraphics[width=0.45\textwidth]{appdata/schwebung} \includegraphics[width=0.45\textwidth]{appdata/schwebungxy}


12.3.3 Gaußverteilung

In der Wahrscheinlichkeitsrechnung und auch in der Physik hat die Normalverteilung bzw. Gaußverteilung eine große Bedeutung. Sie ist definiert durch

$\displaystyle g(x)= \frac{1}{\sqrt{2\pi}\sigma} \exp\left\{-\frac{(x-x_{0})^2}{2 \sigma^2}\right\} \; ,$    

wobei $ x_{0}$ und $ \sigma$ die Parameter der Verteilung sind. In $ x_{0}$ liegt sowohl das Maximum als auch das Symmetriezentrum, und $ \sigma$ ist der Abstand von diesem Zentrum zu den Wendepunkten. Wie für jede Wahrscheinlichkeitsverteilung gilt

$\displaystyle \int_{-\infty}^{\infty} g(x) dx = 1 \; .$    

In der Physik verwendet man häufig auch eine Summation über mehrere Gaußfunktionen mit jeweils unterschiedlichen Parametern. Dies hat den Sinn, dass man gleichzeitig mehrere Maxima darstellen kann. Allgemein kann man die Funktion dann definieren als

$\displaystyle g(x)= \sum_{k=1}^{n} \frac{1}{n \sqrt{2\pi} \sigma_k} \exp\left\{-\frac{(x-x_{0k})^2}{2 \sigma_k^2}\right\} \; ,$    

wobei $ x_{0k}$ und $ \sigma_k$ die gleiche Bedeutung wie vorher haben. Die Summation erfolgt über alle $ n$ Werte der Parameter $ x_{0k}$ und $ \sigma_k$.

Schreiben Sie eine MATLAB-Funktion gauss1d, die mit folgendem Aufruf

  g(x) = gauss1d(x,x0,sigma)
die Gaußverteilung als Funktion des Vektors $ x$ berechnet. Setzen Sie die Defaultwerte $ x_{0}=[-1,1]$ und $ \sigma=[0.5,1]$.

\includegraphics[width=0.45\textwidth]{appdata/gauss}

Winfried Kernbichler 2005-04-26