39
Einführung in Matlab, 2. Teil Christof Eck, Monika Schulz und Jan Mayer 1 / 18

Einf hrung in Matlab, 2. Teil - Universität · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Embed Size (px)

Citation preview

Page 1: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Einführung in Matlab, 2. Teil

Christof Eck, Monika Schulz und Jan Mayer

1 / 18

Page 2: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen einer Veränderlichen

Matlab plottet keine Funktionen, sondern Wertetabellen alsPolygonzug!

2 / 18

Page 3: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen einer Veränderlichen

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (0 : pi/100 : 2 * pi);

2 Definiere Spaltenvektor Y von y -Werten einer Funktion,z.B.

Y = sin(X);

3 / 18

Page 4: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen einer Veränderlichen

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (0 : pi/100 : 2 * pi);

2 Definiere Spaltenvektor Y von y -Werten einer Funktion,z.B.

Y = sin(X);

3 Plotte Wertetabelleplot(X,Y);

3 / 18

Page 5: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen einer Veränderlichen

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (0 : pi/100 : 2 * pi);

2 Definiere Spaltenvektor Y von y -Werten einer Funktion,z.B.

Y = sin(X);

3 Plotte Wertetabelleplot(X,Y);

4 Alternativ:plot(X,sin(X));

3 / 18

Page 6: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen einer Veränderlichen

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (0 : pi/100 : 2 * pi);

2 Definiere Spaltenvektor Y von y -Werten einer Funktion,z.B.

Y = sin(X);

3 Plotte Wertetabelleplot(X,Y);

4 Alternativ:plot(X,sin(X));

Beachte: Die Funktion, die geplottet werden soll, musselementweise auf X anwendbar sein!

3 / 18

Page 7: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von mehreren Funktionen

Mit Hilfe des Befehls hold on lassen sich mehrere Funktionenin ein Schaubild zeichnen.

4 / 18

Page 8: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von mehreren Funktionen

Alternative: plot(X,[sin(X);cos(X)]);

Die Farbe einer Graphik lässt sich zum Beispiel ändern durchAngabe von

plot(X,cos(X),’red’);

5 / 18

Page 9: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten der Hütchenfunktion

Nicht vektorwertig definierte Funktionen müssenkomponentenweise übergeben werden:

6 / 18

Page 10: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten der Hütchenfunktion

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (-2 : 0.1 : 2);

7 / 18

Page 11: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten der Hütchenfunktion

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (-2 : 0.1 : 2);

2 size(X,2); bestimmt die Länge des Spaltenvektors X.

7 / 18

Page 12: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten der Hütchenfunktion

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (-2 : 0.1 : 2);

2 size(X,2); bestimmt die Länge des Spaltenvektors X.3 Innerhalb der for – Schleife wird der Vektor Y

komponentenweise mit den Funktionswerten belegt:Y(i) = hfunc(X(i));

7 / 18

Page 13: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten der Hütchenfunktion

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (-2 : 0.1 : 2);

2 size(X,2); bestimmt die Länge des Spaltenvektors X.3 Innerhalb der for – Schleife wird der Vektor Y

komponentenweise mit den Funktionswerten belegt:Y(i) = hfunc(X(i));

4 Dann wird die Wertetabelle geplottet:plot(X,Y);

7 / 18

Page 14: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten der Hütchenfunktion

1 Definiere Spaltenvektor X von x-Werten, z.B.X = (-2 : 0.1 : 2);

2 size(X,2); bestimmt die Länge des Spaltenvektors X.3 Innerhalb der for – Schleife wird der Vektor Y

komponentenweise mit den Funktionswerten belegt:Y(i) = hfunc(X(i));

4 Dann wird die Wertetabelle geplottet:plot(X,Y);

7 / 18

Page 15: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von parametrisierten Kurven

Eine (stetige) Funktion [a, b] −→ R2, t 7→ (u(t), v(t)) heißt

ebene Kurve in Parameter-Form und

K = {(x , y) ∈ R2 | x = u(t), y = v(t), t ∈ [a, b]}.

ist der Graph der Kurve.

8 / 18

Page 16: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von parametrisierten Kurven

Eine (stetige) Funktion [a, b] −→ R2, t 7→ (u(t), v(t)) heißt

ebene Kurve in Parameter-Form und

K = {(x , y) ∈ R2 | x = u(t), y = v(t), t ∈ [a, b]}.

ist der Graph der Kurve.

Zum Beispiel ist

K = {(x , y) ∈ R2 | x = sin t , y = cos t , t ∈ [0, π]}

ein Kreis mit Radius 1 um den Ursprung.

8 / 18

Page 17: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten eines Kreises mit Radius 1 um den Ursprung

Um eine unverzerrte Darstellung zu erhalten, muss der Befehlaxis equal eingefügt werden.

9 / 18

Page 18: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten parametrisierter Kurven

K plotten:1 Definiere Spaltenvektor t von t-Werten, z.B.

t = (0 : pi/100 : 2 * pi)’;

2 Definiere Spaltenvektor x von x-Werten, z.B.x = sin(t);

10 / 18

Page 19: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten parametrisierter Kurven

K plotten:1 Definiere Spaltenvektor t von t-Werten, z.B.

t = (0 : pi/100 : 2 * pi)’;

2 Definiere Spaltenvektor x von x-Werten, z.B.x = sin(t);

3 Definiere Spaltenvektor y von y -Werten, z.B.y = cos(t);

4 Plotte Wertetabelleplot(x,y);

10 / 18

Page 20: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten parametrisierter Kurven

K plotten:1 Definiere Spaltenvektor t von t-Werten, z.B.

t = (0 : pi/100 : 2 * pi)’;

2 Definiere Spaltenvektor x von x-Werten, z.B.x = sin(t);

3 Definiere Spaltenvektor y von y -Werten, z.B.y = cos(t);

4 Plotte Wertetabelleplot(x,y);

5 Alternativ:plot(sin(t),cos(t));

10 / 18

Page 21: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherGrundlagen

Beispiel: Plotte

z = f (x , y) = x2 + y , x ∈ [0, 1] y ∈ [0, 1].

00.5

1

0

0.5

10

1

2

xy

z

11 / 18

Page 22: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherGrundlagen

Es werden Matrizen X und Y benötigt, so dass dieelementweise Auswertung von X und Y eine Matrix Z mit denFunktionswerten liefert.Beispiel:

X =

0 0.5 10 0.5 10 0.5 1

Y =

0 0 00.5 0.5 0.51 1 1

Diese Matrizen können mit der Funktion meshgrid erzeugtwerden.

12 / 18

Page 23: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherGrundlagen

Für z = f (x , y) = x2 + y erhält man dann die Matrix derFunktionswerte

Z =

0 0.25 10.5 0.75 1.51 1.25 2

.

13 / 18

Page 24: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier Veränderlicher

Befehl zum Erstellen einer 2D-Graphik:

surf(X,Y,Z) .

14 / 18

Page 25: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherVorgehensweise

1 Erzeuge Matrizen X und Y , z.B.[X,Y] = meshgrid(0:0.1:1, 0:0.1:1);

15 / 18

Page 26: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherVorgehensweise

1 Erzeuge Matrizen X und Y , z.B.[X,Y] = meshgrid(0:0.1:1, 0:0.1:1);

Genauer: sind x und y Vektoren der x- bzw. y -Werte beidenen die Funktion f ausgewertet werden soll, so werdendie benötigten Matrizen X und Y erzeugt durch:

[X,Y] = meshgrid(x,y);

15 / 18

Page 27: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherVorgehensweise

1 Erzeuge Matrizen X und Y , z.B.[X,Y] = meshgrid(0:0.1:1, 0:0.1:1);

Genauer: sind x und y Vektoren der x- bzw. y -Werte beidenen die Funktion f ausgewertet werden soll, so werdendie benötigten Matrizen X und Y erzeugt durch:

[X,Y] = meshgrid(x,y);

2 Erzeuge Matrizen Z der Funktionswerte, z.B.Z = X.ˆ2+Y;

3 Plotte Funktionsurf(X,Y,Z);

15 / 18

Page 28: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotoptionen und Modifizierung von Graphen

1 Modifizierung der Schattierung:

shading faceted shading flat

shading interp

16 / 18

Page 29: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotoptionen und Modifizierung von Graphen

1 Modifizierung der Schattierung:

shading faceted shading flat

shading interp

2 Modifizierung der Axen:

axis([xmin xmax ymin ymax])

axis equal und viele mehr

16 / 18

Page 30: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotoptionen und Modifizierung von Graphen

1 Modifizierung der Schattierung:

shading faceted shading flat

shading interp

2 Modifizierung der Axen:

axis([xmin xmax ymin ymax])

axis equal und viele mehr3 Beschriftung:

title(’Überschrift’)

xlabel(’x-Achse’)

16 / 18

Page 31: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotoptionen und Modifizierung von Graphen

1 Modifizierung der Schattierung:

shading faceted shading flat

shading interp

2 Modifizierung der Axen:

axis([xmin xmax ymin ymax])

axis equal und viele mehr3 Beschriftung:

title(’Überschrift’)

xlabel(’x-Achse’)

4 Weitere Modifizierungen direkt am Graphen möglich!

16 / 18

Page 32: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherWeitere Möglichkeiten:

1 Fläche ohne Gitter:surf(X,Y,Z, ’EdgeColor’, ’none’);

17 / 18

Page 33: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherWeitere Möglichkeiten:

1 Fläche ohne Gitter:surf(X,Y,Z, ’EdgeColor’, ’none’);

2 „beleuchtete“ Fläche:surfl(X,Y,Z);

17 / 18

Page 34: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherWeitere Möglichkeiten:

1 Fläche ohne Gitter:surf(X,Y,Z, ’EdgeColor’, ’none’);

2 „beleuchtete“ Fläche:surfl(X,Y,Z);

3 Nur Gitter:mesh(X,Y,Z);

17 / 18

Page 35: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherWeitere Möglichkeiten:

1 Fläche ohne Gitter:surf(X,Y,Z, ’EdgeColor’, ’none’);

2 „beleuchtete“ Fläche:surfl(X,Y,Z);

3 Nur Gitter:mesh(X,Y,Z);

4 Höhenlinien:contour(X,Y,Z);

17 / 18

Page 36: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Plotten von Funktionen zweier VeränderlicherWeitere Möglichkeiten:

1 Fläche ohne Gitter:surf(X,Y,Z, ’EdgeColor’, ’none’);

2 „beleuchtete“ Fläche:surfl(X,Y,Z);

3 Nur Gitter:mesh(X,Y,Z);

4 Höhenlinien:contour(X,Y,Z);

5 Schattierte Karte:pcolor(X,Y,Z);

17 / 18

Page 37: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Weitere Plotmöglichkeiten

1 Plotten von (parametrisierten) Kurven im Raum

plot3(X,Y,Z);

18 / 18

Page 38: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Weitere Plotmöglichkeiten

1 Plotten von (parametrisierten) Kurven im Raum

plot3(X,Y,Z);

2 Plotten von 2D-Vektorfeldern, d.h.

von Funktionen D ⊆ R2 −→ R

2 mit (x , y) 7→ (u, v)

quiver(x,y,u,v)

18 / 18

Page 39: Einf hrung in Matlab, 2. Teil - Universität  · PDF filePlotten von Funktionen einer Veränderlichen Matlab plottet keine Funktionen, sondern Wertetabellen als Polygonzug! 2/18

Weitere Plotmöglichkeiten

1 Plotten von (parametrisierten) Kurven im Raum

plot3(X,Y,Z);

2 Plotten von 2D-Vektorfeldern, d.h.

von Funktionen D ⊆ R2 −→ R

2 mit (x , y) 7→ (u, v)

quiver(x,y,u,v)

3 Plotten von 3D-Vektorfeldern, d.h.

von Funktionen D ⊆ R3 −→ R

3 mit (x , y , z) 7→ (u, v , w)

quiver3(x,y,z,u,v,w)

18 / 18