Plots
- In MATLAB sind eine Vielzahl von Plot-Typen verfügbar.
- Übersicht über alle Plots: https://de.mathworks.com/help/matlab/creating_plots/types-of-matlab-plots.html.
Darstellen von 2D-Graphen
- Verwenden von
fplot
für das einfache Darstellen von Funktionen:
- Einstellen des Intervalls der x-Werte:
→ y-Bereich wird automatisch bestimmt aus minimalem und maximalem Funktionswert.
Funktionen zum Anpassen und Beschriften von Abbildungen
title(text)
: Titel über dem Graphen.xlabel(text)
,ylabel(text)
: Beschriftung der x- und y-Achse.xlim([min, max])
,ylim([min, max])
: Intervall der x- und y-Achse.xticks([...])
,yticks([...])
: Zahlen an der x- und y-Achse.grid('on')
,grid('off')
: Gitter aktivieren oder deaktivieren.legend({'Graph1', 'Graph2'})
: Legenden bei der Anzeige mehrere Graphen in einer Abbildung.
Aufgabe
Stellen Sie die ersten beiden Perioden der Sinusspannung \(u(t) = \sqrt 2\cdot 230\,\text V \cdot \sin\left(2\pi\cdot 50\,\text{Hz}\cdot t\right)\) graphisch dar. Beschriften Sie den Graph, wie im folgenden Bild.
Lösung
Beispiel
Verwenden Sie den hold('on')
-Befehl, um eine Sinus- und eine Cosinus-Schwingung in einer Abbildung gleichzeitig darzustellen.
fplot(@(t) 230 * sqrt(2) * sin(2*pi*50*t), [0 1/25])
hold('on')
fplot(@(t) 230 * sqrt(2) * cos(2*pi*50*t), [0 1/25])
legend('Sinus-Schwingung', 'Cosinus-Schwingung')
hold('off')
→ Wenn der hold('on')
-Befehl in einem Skript verwendet wird, sollte ein hold('off')
-Befehl am Ende des Skriptes folgen, um den Ausgangszustand wiederherzustellen. Sonst kann es passieren, dass weitere Graphen in diesen Plot gezeichnet werden.
Aufgabe
Zeichnen Sie die drei Außenleiterspannungen eines Dreiphasenwechselstrom-Systems. Die Amplitude der Spannungen beträgt \(\widehat u = \sqrt 2 \cdot 230\,\text V\), die Frequenz beträgt \(50\,\text{Hz}\) und die Phasen sind um jeweils \(-120^\circ\) verschoben.
Erzeugen Sie die folgende Abbildung :
Lösung
Anpassen der Farbe, Marker und Linietyp der Graphen
siehe https://de.mathworks.com/help/matlab/ref/linespec.html
Beispiel:
Abspeichern der Figure
- Der Graph kann über File → Save abgespeichert werden.
- Es stehen mehrere Ausgabeformate zur Verfügung:
.fig
- MATLAB-Figure:
Internes MATLAB-Format. Eine Figure-Datei kann wieder mit MATLAB geöffnet werden. Der Graph kann bearbeitet werden. (Kleine Fehler können ausgebessert werden)..fig
-Dateien können in der Regel nicht in andere Programme importiert werden..png
,.bmp
: Verlustfreie Rastergrafiken
Für den Export des Figures in eine Webseite. Das Bild besitzt in der Regel eine geringe Auflösung..svg
,.eps
,.pdf
,.emf
: Vektorgrafiken
Zum Einfügen des Figures in LaTeX oder Word. Vektorgrafiken können beliebig skaliert werden. Aus diesem Grund entstehen keine Skalierungsartefakte..emf
für neue Versionen für Word
Beispiel
Verwenden Sie den subplot
-Befehl, um mehrere Graphen in einer Abbildung nebeneinander anzuzeigen.
Verwenden der subplot(m, n, p)
-Funktion
→ Erstellen eines \(m\times n\)-Rasters (\(m\): Zeilen, \(n\): Spalten)
Der nächste Graph wird in die Position \(p\) gezeichnet. Es wird zuerst spaltenweise nummeriert.
Lösung
Beispiel:
subplot(2, 1, 1)
fplot(@(t) 230 * sqrt(2) * sin(2*pi*50*t), [0 1/25])
subplot(2, 1, 2)
fplot(@(t) 230 * sqrt(2) * cos(2*pi*50*t), [0 1/25])
Es können für p
auch mehrere Elemente angegeben werden. So können Graphen in unterschiedlichen Größen ausgegeben werden.
Aufgabe
Schreiben Sie das vorangegange Skript um, damit die Graphen nebeneinander dargestellt werden.
Lösung
Verwenden des subplot
-Befehls für mehrere Graphen verschiedener Größen.
Verwenden des Plot-Befehls
Mit Hilfe des Plot-Befehls können eine Vielzahl von Graphen dargestellt werden. Dieser Befehl stellt Punkte auf einem Graphen dar und verbindet diese.
Beispiel
Stellen Sie die Folge \({3, 6, 1, 2, 5}\) graphisch dar.
Schauen Sie sich die Ausgabe des folgenden Skriptes an. Interpretieren Sie das Ergebnis.
Beispiel
Stellen Sie die 50-Hz-Sinusschwingung mit Hilfe des plot
-Befehls dar.
- Ein Zeitvektor wird mit Hilfe der
linspace
-Funktion erzeugt. 100 Werte werden von 0 bis 1/25 gleich verteilt. - Es werden elementweise die Spannungswerte berechnet.
- Beide Vektoren werden zum Zeichnen des Plots übergeben.
Aufgabe
Stellen Sie die Kondensator-Ladefunktion mit Hilfe der plot
-Funktion graphisch dar.
Lösung
Welche Zeitbasis?
Aufgabe
Stellen Sie den Einheitskreis mit Hilfe einer Parameterfunktion und dem plot
-Befehl graphisch dar.
Lösung
%Einheitskreis plot
%% Berechnung
t=linspace(0,2*pi,100);
x=cos(t);
y=sin(t);
%% Plot
plot(x,y)
%axis('equal')
axis('square')
- Ohne Axis-Square wird der Plot als Ellipse dargestellt
- Verwenden von
axis('square')
oderaxis('equal')
, um die x- und y-Achse gleich einzuteilen.
Darstellen von Polarplots
Beispiel
Stellen Sie die folgende Polarfunktion graphisch dar.
mit
-
Möglichkeit: Umwandeln der Polarkoordinaten in kartesische Koordinaten
\[ x = r(\varphi)\cdot \cos \varphi, \quad y = r(\varphi)\cdot \sin \varphi\] -
Möglichkeit: Verwendung des
polarplot
-Befehls
Aufgabe
Stellen Sie die Richtwirkung von Antennen graphisch dar.
In der Hochfrequenztechnik wird die Antennenlänge \(l\) in Abhängigkeit der Wellenlänge \(\lambda\) der Trägerfrequenz \(f\) angegeben.
Der Zusammenhang zwischen Wellenlänge und Trägerfrequenz: \(\lambda = \frac{c}{f}\).
Normieren Sie die Darstellung, indem Sie die Graphen für \(E_0 = 1\) zeichnen.
-
\(l = \lambda / 2\) (Halbwellenstab):
\[ E(\vartheta) = E_0 \cdot\left| \frac{\cos\left( \frac{\pi}{2} \cos \vartheta \right)}{\sin \vartheta}\right| \]
-
\(l = 1\cdot\lambda\) (Vollwellenstab)
\[ E(\vartheta) = E_0 \cdot\left| \frac{\sin\left( \pi \cos \vartheta \right)}{\sin \vartheta}\right| \]
-
\(l = \frac{3}{2} \lambda\)
\[ E(\vartheta) = E_0 \cdot\left| \frac{\cos\left( \frac{3\pi}{2} \cos \vartheta \right)}{\sin \vartheta}\right| \]
Lösung
theta = linspace(1e-5, 2*pi-1e-5, 200);
E1 = abs(cos(pi/2*cos(theta)) ./ sin(theta));
E2 = abs(sin(pi*cos(theta)) ./ sin(theta));
E3 = abs(cos(3*pi/2*cos(theta)) ./ sin(theta));
polarplot(theta, E1);
hold('on')
polarplot(theta, E2);
polarplot(theta, E3);
hold('off')
Die Graphen haben bei \(\vartheta = k\cdot 2\pi\) eine Unstetigkeit. Um diese zu kaschieren, werden diese Werte ausgeklammert.
Lösung
Setzen von weiteren Einstellungen des Polarplots:
Der polarplot
-Befehl kann auch für die Darstellung komplexer Funktionen verwendet werden!
3D-Plots
- MATLAB besitzt eine Vielzahl von Befehlen für die grafische Darstellung dreidimensionaler Funktionen.
- Es muss im Dreidimensionalen zwischen der Darstellung von Kurven und Flächen unterschieden werden.
Darstellung von 3D-Kurven
Die Darstellungen von Kurven im Dreidimensionalen erfolgt häufig in der Parameter-Form. Bei einer Kurve gibt es immer einen freien Parameter.
Beispiel
Stellen Sie die folgende dreidimensionale Kurve mit Hilfe der plot3
-Funktion graphisch dar.
Stellen Sie die Kurve mit Hilfe der axis('equal')
-Funktion maßstabsgetreu dar. Wie muss die Funktion verändert werden, um die Feder wieder zusammenzudrücken?
Aufgabe
Stellen Sie die folgende Funktion graphisch dar.
Lösung
Aufgabe
Stellen Sie die folgende Funktion graphisch dar.
Lösung
Darstellen von 3D-Flächen
- Flächen im Dreidimensionalen haben immer zwei freie Parameter.
-
Oft werden Flächen als Graph über der x-y-Ebene dargestellt (Höhenkarte):
\[ z = f(x, y) \]
Beispiel
Stellen Sie die folgende Fläche graphisch dar.
Erklärung zur meshgrid
-Funktion
- In der Regel wird in MATLAB die
meshgrid
-Funktion verwendet, um die Matrizen der freien Parameter zu erstellen, mit denen elementweise die Koordinaten eines Punktes der Fläche berechnet werden können. - Eingabeparameter: Verteilung der freien Parameter als Vektor.
- hier: Verwendung der
linspace
-Funktion, um Werte aus \([-5, 5]\) zu erhalten. - Ausgabewert:
x
- undy
-Matrix, sodass elementweise die z-Koordinate aller x- und y-Kombinationen berechnet werden können. - Vereinfachtes Beispiel:
Funktionen zur Darstellung von 3D-Flächen
surf
-Funktion
Darstellung der Fläche als 3D-Oberfläche
mesh
-Funktion
Darstellung der Fläche als Maschennetz
contour
undcontourf
Höhenkarte des Graphen in 2D
Aufgabe
Stellen Sie die folgende Wellenfunktion graphisch dar.
Lösung
Aufgabe
Die Lösung einer partiellen Differentialgleichung ergibt die folgende Wärmeleitgleichung im Intervall \((x, y) \in [0, \pi] \times [0, 5]\).
Stellen Sie eine Approximation der Lösung graphisch dar.
Tipp:
Schreiben Sie die ersten vier Glieder der Funktion aus. Stellen Sie die Summe der ersten vier Glieder graphisch dar. Versuchen Sie anschließend die Summe von \(n\) Gliedern mit einer for
-Schleife zu berechnen.
Zusatz:
Wie kann die Funktion verändert werden, sodass \(T_1 = 20^\circ C\) und \(T_2 = 50^\circ C\) gilt?
Lösung
Skizze der Wärmeverteilung am Rand der betrachteten Fläche.
Partielle Differentialgleichung:
Randwerte:
Lösung
[x, y] = meshgrid(linspace(0, pi, 100), linspace(0, 5, 100));
z = 4 / (1*pi) * sin(1*x) .* exp(-1*y) ...
+ 4 / (3*pi) * sin(3*x) .* exp(-3*y) ...
+ 4 / (5*pi) * sin(5*x) .* exp(-5*y) ...
+ 4 / (7*pi) * sin(7*x) .* exp(-7*y);
Verwenden einer for
-Schleife:
[x, y] = meshgrid(linspace(0, pi, 100), linspace(0, 5, 100));
z = 0;
for n = 0:100
z = z + 4 / ((2*n+1)*pi) * sin((2*n+1)*x) .* exp(-(2*n+1)*y);
end
Zusatz:
Es handelt sich um eine lineare partielle Differentialgleichung, also gilt:
Aufgabe
Stellen Sie die Oberfläche einer Kugel graphisch dar.
Tipp:
Eine Kugeloberfläche kann nicht als Graph dargestellt werden. Verwenden Sie die Polardarstellung der Kugel und \(\varphi, \vartheta\) als die beiden freien Parameter.
Lösung
mit