Datei: Maple-Kurs3.mw Datum: 20.08.2004 Erstellt von Prof. Dr. Ing. Warendorf Dr. habil. unter Verwendung einer Vorlage von D. Gröger, Fachhochschule München, Fachbereich 03: Maschinenbau/Fahrzeugtechnik/Flugzeugtechnik -------------------------------------------------------------------------------------------------------------------Maple - Praktikum des Zentrums für Hochschuldidaktik der bayerischen Fachhochschulen (DiZ) Teil 4: Funktionen von 2 Variablen (Flächen im Raum ) In diesem Worksheet konzentrieren wir uns das Thema: Die Analysis von Funktionen zweier unabhängigen Veränderlichen. Wir zeigen, wie man von ebenen Kurven, die in Parameter- oder in Polarform gegeben sind, Plots erstellen sowie Steigungen, Krümmungen, Längen und Inhalte von Sektorflächen berechnen kann. Von einer Funktion zweier Variablen werden Graph, Höhenlinien, Schnitte mit Ebenen parallel zu Koordinatenebenen gezeichnet und partielle Ableitungen, Extremstellen und Tangentialebenen ermittelt. > restart; # Löschen aller Bindungen von Variablen Definition einer Funktion Graphische Darstellung --------------------------------------------------------------------------------------------------------------------Graphische Darstellung --------------------------------------------------------------------------------------------------------------------Es gibt mehrere Möglichkeiten der graphischen Darstellung einer Funktion zweier Variablen. Wir beginnen mit dem Graphen, der als Fläche im Raum aufgefasst und mit dem Befehl plot3d dreidimensional dargestellt wird. Im Gegensatz zu dem Befehl plot müssen hier die Bereiche der Variablen angegeben werden. > plot3d(x^2+y^2,x=-5..5,y=-5..5); # Drehparaboloid > plot3d(x^2-y^2,x=-5..5,y=-5..5); # Einschaliges Hyperboloid Wenn man sich mit dem Kursor im Plot befindet und die linke Maustaste drückt, erscheint der Plotrand. Klickt man dann mit der rechten Maustaste, so erscheint ein Menü zur Bearbeitung des Plots. Die Voreinstellung ist ohne sichtbare Koordinatenachsen. Bei gedrückter linker Maustaste kann man den Graphik drehen (die Blickrichtung verändern). Ohne erhöhte Zeichengenauigkeit ergäbe sich in den folgenden Beispielen ein höchst unrealistisches Bild des Graphen: > plot3d((1-x^2)/(y^2-2*x^2),x=-5..5,y=-5..5,numpoints=1000); > plot3d(y/(x-1)-54/x^2,x=-5..5,y=-5..5,numpoints=1000); # Van der Waalssche Funktion Eine weiterer Befehl zur Erhöhung der Zeichengenauigkeit ist grid , wodurch die Anzahl der Datenpunkte in zwei Richtungen festgelegt wird, also etwa [50,50] für 2500 Punkte. Mit der Option orientation bestimmt man die Blickrichtung, aus der die Graphik betrachtet wird. Bei der Voreinstellung von [45,45] sehen Sie die Graphik von schräg oben, die x-Achse zeigt nach vorne links, die y-Achse nach vorne rechts. Eine gebrächlichere Ansicht lautet [-45,60]: Die Ansicht ist dann nicht mehr so steil von oben, die x-Achse zeigt nach rechts vorne, die y-Achse nach rechts hinten. > plot3d(sin(x*y),x=0..7,y=0..7,axes=framed,scaling=constrained); > plot3d(sin(x*y),x=0..7,y=0..7,axes=framed,grid=[50,50], scaling=constrained,orientation=[-45,60]); > plot3d(sin(6*sqrt(x^2+y^2)),x=-2..2,y=-2..2,axes=framed, scaling=constrained); > plot3d(sin(6*sqrt(x^2+y^2)),x=-2..2,y=-2..2,axes=framed, grid=[40,40],scaling=constrained,orientation=[-45,60]); Eine andere Möglichkeit der graphischen Darstellung von Funktionen zweier Variablen ist das Zeichnen von Höhenlinien. Hierzu verwendet man die Anweisung implicitplot aus dem Paket plots . Wir stellen zunächst einzelne Höhenlinien dar (etwa für die Höhen 1,2,-1,-2): > f := (x,y) -> x^2-y^2; # Funktion definieren > c := -1; # Höhe vorgeben > plots[implicitplot](f(x,y)=c,x=-5..5,y=-5..5,grid=[50,50]); Mit plots[implicitplot] wird der nur der Befehl implicitplot aus dem Paket plot geladen. Wollen Sie mehrere Befehle aus dem Paket plot verwenden, dann ist es sinnvoll, das Paket vollständig zu laden. Danach können die Befehle direkt angesprochen werden. Das Paket bleibt dann bis zur Ausführung des Befehls restart geladen. Syntax: > with(plots); > implicitplot(f(x,y)=c,x=-5..5,y=-5..5,grid=[50,50]); Nun werden die Kurven in einem einzigen Diagramm abgebildet. Schnittkurvendiagramme Höhenlinien > höhenlinien := {seq(f(x,y)=c,c=-5..5)}; > plots[implicitplot](höhenlinien,x=-5..5,y=-5..5,grid=[50,50]); Wir führen noch ein weiteres Beispiel vor: > f := (x,y) -> x^2+y^2; # Funktion definieren > höhenlinien := {seq(f(x,y)=c,c=0..10)}: > plots[implicitplot](höhenlinien,x=-5..5,y=-5..5,grid=[50,50]); Ähnlich wie Höhenlinien können auch die Schnitte des Funktionsgraphen mit Ebenen parallel zur (y,z)-Ebene bzw. mit Ebenen parallel zur (x,z)-Ebene zur Veranschaulichung des Graphen dienen. parallel zur (y,z)-Ebene > f := (x,y) -> x^2-y^2; # Funktion definieren > c := 0; # Abstand zur (y,z)-Ebene festlegen > plot(f(c,y),y=-5..5); # Plot einer Schnittkurve > schnitte1 := {seq(f(c,y),c=0..5)}; # Menge von Schnittkurven > plot(schnitte1,y=-5..5); # Plot aller Schnittkurven > > > > > f := (x,y) -> x^2+y^2; # Funktion definieren c := 0; # Abstand zur (x,z)-Ebene festlegen plot(f(x,c),x=-5..5); # Plot einer Schnittkurve schnitte2 := {seq(f(x,c),c=0..5)}: # Menge von Schnittkurven plot(schnitte2,x=-5..5); # Plot aller Schnittkurven Natürlich gehört zu einer angemessenen Darstellung auch eine Beschriftung der einzelnen Höhenlinien bzw. Schnittkurven. Hierfür dient die MAPLE-Anweisung plots[textplot]([ x , y , 'text' ]) , wodurch der angegebene Text zentriert über der Position (x,y) angegeben wird. Also beispielsweise: > p1 := plot(f(x,c),x=-5..5): > p2 := plots[textplot]([4,10,'c=0']): > plots[display]({p1,p2}); Partielle Ableitungen, Extremstellen Aufgaben 1. Gegeben sei die Funktion . Ermitteln Sie eine Wertetabelle (Funktionswerte für alle Kombinationen) für x=-2, -1 , 1, 2 und y=-2, -1 , 1, 2 . Benutzen Sie dazu eine for Schleife 2. Zeichnen Sie in einem Diagramm die Graphen der Funktionen , in dem , Bereich von -5 bis 5 für und . Beschriften Sie die einzelnen Graphen! 3. a) Plotten Sie den Graphen der Funktion in einem geeigneten Bereich für und die Ihnen am Besten erscheinende Ansicht zu erhalten. b) Plotten Sie die Höhenlinien von . Variieren Sie die Darstellungsoptionen, um für c=-2, c=-1.5, c=-1, .... , c=+2. Welches c ist für die waagerechten Linien verantwortlich? Warum sind es mehrere waagerechten Linien? 4. a) Ermitteln Sie sämtliche partiellen Ableitungen erster und zweiter Ordnung der Funktion . b) Bestimmen Sie die Tangentialebene an die obige Funktion im Punkt P=(1;2;z). Plotten Sie die Funktion und die Tangentialebene in einem Diagramm. Versuchen Sie eine Darstellung zu finden, in der die Tangentialebene und die Funktion gut erkennbar ist. 5. Gegeben ist die implizite Funktion Bestimmen Sie die Ableitung ( ' = Finden Sie zuerst heraus welchen Wert y hat. =0. / ) an der Stelle P (1,y). > ERGAENZUNGEN Dr. Pöschl Fourierreihe der Sägezahnfunktion: > y1:=1/2 - 1/Pi*sin(x); > y2:= y1 - 1/Pi*sin(2*x)/2; > y3:= y2 - 1/Pi*sin(3*x)/3; > plot({y1,y2,y3},x=0..4*Pi,color=[red,blue,green]); Funktionen mit 2 Variablen: > restart; > f:= x^2 + y^2;# > Rotationsparaboloid (Blumenvase) Zeichnen des Graphen > plot3d(f,x=-2..2,y=-2..2); > plot3d(f,x=-2..2,y=-2..2,axes=boxed); > Schöner sieht es aus in Polarkoordinaten (r = Radius und t=Winkel) > plot3d([r*cos(t),r*sin(t),r^2],t=0..2*Pi,r=0..3): > %; > > > restart; > with(plots); Warning, the name changecoords has been redefined > p:=plot3d([r*cos(t),r*sin(t),r^2],t=0..2*Pi,r=0..3): > display(p,style=hidden); > display(p,style=patchnogrid); > display(p,style=patchcontour);# Höhenlinien zeichnen > display(p,style=patchcontour,shading=zhue); Erster Winkel 60 Grad zur Z-Achse um x Achse gedreht,zweiter Winkel = Längengrad die letzten 3 Zahlen addidive Farbmischung rot gruen blau > display(p,light=[60,90,1,0,0]); > display(p,light=[60,90,1,1,1]); > display(p,light=[180,0,1,1,1]);# Beleuchtung von unten > z := x^2-y^2;# Sattelfläche > plot3d(z,x=-2..2,y=-2..2); > z := (x^2-y^2)*(x^3-y^3);# Sattelfläche mitflachem Bereich > plot3d(z,x=-2..2,y=-2..2);# > z:= sqrt(x^2+y^2);# Kegel > plot3d(z,x=-2..2,y=-2..2);# Aufgabe. Kegel mit Kreisberandung oben darstellen (Parameterdarstellung) !! > > plot3d([r*cos(t),r*sin(t),r],t=0..2*Pi,r=0..3); > >