Einführung in Matlab, 2. Teil
Transcrição
Einführung in Matlab, 2. Teil
Einführung in Matlab, 2. Teil Christof Eck, Monika Schulz und Jan Mayer 1 / 18 Plotten 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 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 Wertetabelle plot(X,Y); 3 / 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 Wertetabelle plot(X,Y); 4 Alternativ: plot(X,sin(X)); 3 / 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 Wertetabelle plot(X,Y); 4 Alternativ: plot(X,sin(X)); Beachte: Die Funktion, die geplottet werden soll, muss elementweise auf X anwendbar sein! 3 / 18 Plotten von mehreren Funktionen Mit Hilfe des Befehls hold on lassen sich mehrere Funktionen in ein Schaubild zeichnen. 4 / 18 Plotten von mehreren Funktionen Alternative: plot(X,[sin(X);cos(X)]); Die Farbe einer Graphik lässt sich zum Beispiel ändern durch Angabe von plot(X,cos(X),’red’); 5 / 18 Plotten der Hütchenfunktion Nicht vektorwertig definierte Funktionen müssen komponentenweise übergeben werden: 6 / 18 Plotten der Hütchenfunktion 1 Definiere Spaltenvektor X von x-Werten, z.B. X = (-2 : 0.1 : 2); 7 / 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 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 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 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 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 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 Plotten eines Kreises mit Radius 1 um den Ursprung Um eine unverzerrte Darstellung zu erhalten, muss der Befehl axis equal eingefügt werden. 9 / 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 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 Wertetabelle plot(x,y); 10 / 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 Wertetabelle plot(x,y); 5 Alternativ: plot(sin(t),cos(t)); 10 / 18 Plotten von Funktionen zweier Veränderlicher Grundlagen Beispiel: Plotte z = f (x, y ) = x 2 + y , x ∈ [0, 1] y ∈ [0, 1]. z 2 1 0 1 1 0.5 y 0.5 0 0 x 11 / 18 Plotten von Funktionen zweier Veränderlicher Grundlagen Es werden Matrizen X und Y benötigt, so dass die elementweise Auswertung von X und Y eine Matrix Z mit den Funktionswerten liefert. Beispiel: 0 0 0 0 0.5 1 Y = 0.5 0.5 0.5 X = 0 0.5 1 1 1 1 0 0.5 1 Diese Matrizen können mit der Funktion meshgrid erzeugt werden. 12 / 18 Plotten von Funktionen zweier Veränderlicher Grundlagen Für z = f (x, y ) = x 2 + y erhält man dann die Matrix der Funktionswerte 0 0.25 1 Z = 0.5 0.75 1.5 . 1 1.25 2 13 / 18 Plotten von Funktionen zweier Veränderlicher Befehl zum Erstellen einer 2D-Graphik: surf(X,Y,Z). 14 / 18 Plotten von Funktionen zweier Veränderlicher Vorgehensweise 1 Erzeuge Matrizen X und Y , z.B. [X,Y] = meshgrid(0:0.1:1, 0:0.1:1); 15 / 18 Plotten von Funktionen zweier Veränderlicher Vorgehensweise 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 bei denen die Funktion f ausgewertet werden soll, so werden die benötigten Matrizen X und Y erzeugt durch: [X,Y] = meshgrid(x,y); 15 / 18 Plotten von Funktionen zweier Veränderlicher Vorgehensweise 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 bei denen die Funktion f ausgewertet werden soll, so werden die 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 Funktion surf(X,Y,Z); 15 / 18 Plotoptionen und Modifizierung von Graphen 1 Modifizierung der Schattierung: shading faceted shading flat shading interp 16 / 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 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 3 und viele mehr Beschriftung: title(’Überschrift’) xlabel(’x-Achse’) 16 / 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 3 und viele mehr Beschriftung: title(’Überschrift’) xlabel(’x-Achse’) 4 Weitere Modifizierungen direkt am Graphen möglich! 16 / 18 Plotten von Funktionen zweier Veränderlicher Weitere Möglichkeiten: 1 Fläche ohne Gitter: surf(X,Y,Z, ’EdgeColor’, ’none’); 17 / 18 Plotten von Funktionen zweier Veränderlicher Weitere Möglichkeiten: 1 Fläche ohne Gitter: surf(X,Y,Z, ’EdgeColor’, ’none’); 2 „beleuchtete“ Fläche: surfl(X,Y,Z); 17 / 18 Plotten von Funktionen zweier Veränderlicher Weitere 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 Plotten von Funktionen zweier Veränderlicher Weitere 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 Plotten von Funktionen zweier Veränderlicher Weitere 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 Weitere Plotmöglichkeiten 1 Plotten von (parametrisierten) Kurven im Raum plot3(X,Y,Z); 18 / 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 −→ R2 mit (x, y ) 7→ (u, v ) quiver(x,y,u,v) 18 / 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 −→ R2 mit (x, y ) 7→ (u, v ) quiver(x,y,u,v) 3 Plotten von 3D-Vektorfeldern, d.h. von Funktionen D ⊆ R3 −→ R3 mit (x, y , z) 7→ (u, v , w) quiver3(x,y,z,u,v,w) 18 / 18