Octave – Teil 2: Funktionen, Graphen und komplexe Zahlen
Ebenen im Raum, Plotten von mehrdimensionalen Funktionen
Eine Ebene im Raum ist eine lineare Funktion der Form R
3 → R
3 mit f(x,y)=z. Für das Plotten mehrdimensionaler Funktionen müssen aber noch einige Dinge beachtet werden. Man betrachte die Funktion y = 2x+3y
>> x=-10:1:10; >> y = x; >> plot3(x,y,2*x+3*y);
liefert leider nur eine Gerade, da für jeden x-Wert der entsprechende y-Wert ausgewählt wird und dies auf der x−y-Ebene eine Gerade ergibt. Der folgende Plot, in dem alle y-Werte 0 sind, zeigt dies anschaulich:
>> plot3(x,y,0*x,'o');
Es reicht also nicht, nur die x- und y-Werte als Liste zu bekommen, man braucht ein ganzes Netz. Daher ist der Befehl meshgrid
eine gute Wahl:
>> [XX, YY] = meshgrid(x,y);
Hier wird mit den beiden x- und y-Achsenabschnitten in die beiden Matrizen XX und YY ein Netz von gleichmäßigen Punkten generiert. Konkret bestehen die Variablen x und y aus Listen, und meshgrid schreibt in die neuen Variablen alle Kombinationsmöglichkeiten der Einträge dieser beiden Listen. Anschaulich wird das Ganze, wenn man es zeichnet:
>> plot3(XX,YY,0*XX,'o');
Jetzt sind die Grundlagen gelegt, damit die Ebene gezeichnet werden kann:
>> plot3(XX,YY,2*XX+3*YY,'-');
Das Problem ist nun, dass dies immer noch nicht einer richtigen Fläche entspricht, da alle Werte nur wie eine normale Funktion miteinander verbunden sind. Die Möglichkeit, die Flächen zu triangulieren, gibt es mit plot3
nicht, wohl aber mit dem Befehl mesh
:
>> mesh(XX,YY,2*XX+3*YY);
liefert das gewünschte Ergebnis. Die Farben entsprechen dabei den Werten der z-Achse. Hier wird allerdings nur ein Gitter gezeichnet. Wenn man die Flächen füllen möchte, nutzt man den Befehl surf
:
>> surf(XX,YY,2*XX+3*YY);
Es sei noch erwähnt, das man neben den von plot
und plot3
schon bekannten Befehlen wie xlabel
auch den Befehl colorbar
verwendet kann, um eine Legende für die Farben im Graph anzuzeigen.