Datei: Maple-Praktikum2.mws Datum: 28.2.2005 Erstellt von Prof. Dr. K. Warendorf unter Verwendung einer Vorlage von Dr. habil. D. Gröger Fachhochschule München, Fachbereich 03: Maschinenbau/Fahrzeugtechnik/Flugzeugtechnik ---------------------------------------------------------------------------------------------------------------Maple - Praktikum Teil 2: Analysis von Funktionen einer Variablen In diesem Worksheet lernen Sie das Arbeiten mit MAPLE auf dem Gebiet der Infinitesimalrechnung einer reellen Variablen kennen. Von einer Funktion einer reellen Variablen werden Graph, Nullstellen, Ableitungen, Extremwerte, Integrale und Taylor-Entwicklung berechnet. > restart; # Löschen aller Bindungen von Variablen Definition einer Funktion -------------------------------------------------------------------------------------------------------------------Funktionen einer reellen Variablen -------------------------------------------------------------------------------------------------------------------Die Standardfunktionen abs : Absolutbetrag signum : Signum (Vorzeichen) sqrt : Quadratwurzel sin , cos , tan , cot : Kreisfunktionen arcsin , arccos , arctan , arccot : Umkehrfuntionen der Kreisfunktionen exp : Exponentialfunktion ln : (natürlicher) Logarithmus sinh , cosh , tanh , coth : Hyperbelfunktionen arcsinh , arccosh , arctanh , arccoth : Umkehrfunktionen der Hyperbelfunktionen sind in Maple schon fest eingebaut und dürfen in jeder Formel verwendet werden. Beachten Sie : Bei der Anwendung von Funktionen ist das Argument stets in runde Klammern einzuschließen! Wie das nächste Beispiel zeigt, sieht MAPLE zur Definition neuer Funktionen eine an die Mathematik angelehnte Syntax vor: name := var -> funktionsvorschrift; > f := x -> x^2+3*x+5; # Funktion definieren Auch die Auswertung einer Funktion folgt der üblichen mathematischen Notation. Durch die Eingabe von f( ausdruck ) wird x im Funktionsterm durch ausdruck ersetzt, anschließend wird der Funktionsterm ausgewertet und das Ergebnis zurückgegeben. > f(sin(x)); Achtung : Verwechseln Sie nicht den Funktionsterm mit der Funktion selbst! Eine andere Möglichkeit zur Definition von Funktionen beruht auf der Anweisung unapply . Mit diesem Befehl wird ein Funktionsterm in die zugehörige Funktion umgewandelt: > y := x^2+3*x+5; > f := unapply(y,x); > f(sin(x)); # Funktionsterm definieren # Definition der zugehörigen Funktion # Anwendung von f y:=X^2+3x+5; Im Folgenden werden für späteres Experimentieren einige Funktionsterme zur Auswahl gestellt. > f:=unapply(x^2,x); > plot (f,-1..3,0..5,scaling = constrained); > f:=unapply(x^5+3*x^3+5*x-1,x); > plot (f,-3..10,7..-9,scaling=constrained); > f:= unapply(2/(1-x^3),x); > plot(f,-3..4,-5..13); > f:= unapply(ln(x+sqrt(x^2+1)),x); > plot(f,-3..3,-3..3); > f:=unapply(x*ln(x),X); > plot(f,-5..5,-5..5); Warning, unable to evaluate the function to numeric values in the region; see the plotting command's help page to ensure the calling sequence is correct > > > > > exp(x); x^2*exp(-x); x*(1-cos(x)); 2*cos(x)+3*sin(x); y1 :=unapply(sinh(x),x); > y2 :=unapply(cosh(x),x); > y3 :=unapply(arctan(x),x); > plot({y1,y2,y3},-2..4,-7..7,scaling=constrained, color = [red,green,blue]); Graph einer Funktion -------------------------------------------------------------------------------------------------------------------Graph einer Funktion -------------------------------------------------------------------------------------------------------------------Den Graphen einer Funktion kann man sehr bequem mit der MAPLE-Anweisung plot erzeugen. Besonders interessierende Bereiche für die unabhängige und die abhängige Variable können zwecks genauerer Darstellung als zusätzliche Parameter eingegeben werden. > f := unapply(x^5+3*x^3+5*x-1,x); > # Funktion definieren > plot(f,-2..2); # Einengung des Bereiches für x > plot(f,-2..2,-10..10,scaling = constrained); Bereiche für x und y # Einengung der Wenn man mit dem Kursor im Plot ist und mit der linken Maustaste klickt, sieht man den Plotrand. Klickt man mit der rechten Maustaste, so erscheint ein Menü, mit dem man den Plot verändern oder in die Zwischenablage kopieren kann. Es besteht auch die Möglichkeit, Graphen mehrerer Funktionen in einem einzigen Diagramm darzustellen. > g :=unapply(2/(1-x^3),x); > f :=unapply((7*x^4-17*x)^3,x); > plot({f,g},0..2,-5..5,color = [red,green]); von f und # Graphen > plot({f,g},0..2,-5..5); # Einengung der Bereiche für x und y Warning, unable to evaluate 1 of the 2 functions to numeric values in the region; see the plotting command's help page to ensure the calling sequence is correct Informieren Sie sich über den Befehl plot . Es gibt viele Parameter, die das Leben einfacher machen. Als Übung schauen Sie sich die Graphen von Skalierung auf der x- und y-Achse an! und im Intervall [-1;1] mit gleicher Nullstellenberechnung --------------------------------------------------------------------------------------------------------------------Nullstellenberechnung --------------------------------------------------------------------------------------------------------------------- Nullstellen von Funktionen können mit den MAPLE-Befehlen solve oder fsolve ermittelt werden. Bei der Anweisung solve wird versucht, die Nullstellen exakt zu ermitteln. > f := unapply(x^5+3*x^3+5*x-1,x); # Funktion definieren > solve(f(x)=3,x); # Exakte Lösung > y:=x->x^2-3; > solve(y(x)=0,x); > %[1];#erstes element der liste > evalf(%); > plot (f,-3..3,-5..7); In dem letzten Beispiel ist eine Darstellung der Lösung in Form von Wurzelausdrücken nicht möglich, daher zeigt MAPLE nur eine Beschreibung dieser Lösung an. Die numerischen Werte erhält man dann mit dem Befehl evalf : > evalf(%); # Numerische Lösung Wie man sieht, gibt es eine reelle Lösung und zwei Paare konjugiert komplexer Lösungen. Bei der Anweisung fsolve werden die Nullstellen sofort als Dezimalbrüche ausgegeben. Dabei versucht MAPLE im allgemeinen, eine einzige reelle Nullstelle zu finden, für Polynomfunktionen werden jedoch alle Nullstellen berechnet. Man kann den Bereich, in dem eine Nullstelle gesucht werden soll, durch eine zusätzliche Eingabe eingrenzen. > fsolve(f(x)=0,x); # Reelle Nullstelle von f > g := unapply(x*(1-cos(x)),x); # Neue Funktion definieren > x1 := fsolve(g(x)=0,x); > x2 := fsolve(g(x)=0,x,6..7); > fsolve(g(x)=0,x,1..6); # Nullstelle 0 # Nullstelle 2*Pi # Keine Nullstelle vorhanden > g(x1); g(x2); # Probe Differentiation, Berechnung von Extremwerten ---------------------------------------------------------------------------------------------------------------------Differentiation, Berechnung von Extrem- und Wendestellen ---------------------------------------------------------------------------------------------------------------------Für das Differenzieren gibt es zwei MAPLE-Befehle: diff für Funktionsterme und den D Operator für Funktionen. Die dabei auftretenden Funktionsterme können evtl. mit dem Befehl simplify vereinfacht werden. > diff(x^5+3*x^3+5*x-1,x); # Term der Ableitung > y:=2/(1-x^3); > diff(y,x); # Funktionsterm definieren # Term der Ableitung > diff(ln(x+sqrt(x^2+1)),x); > simplify(%); Ableitungsterms # Vereinfache den letzten > f := unapply(x^5+3*x^3+5*x-1,x); # Funktion definieren > D(f); # Ableitung (als Funktion) > D(x->2/(1-x^3)); # Direkte Eingabe der Funktion Höhere Ableitungen bildet man durch mehrfache Angabe der unabhängigen Variablen, was mit dem $ -Operator abgekürzt werden kann. > diff(f(x),x,x); # 2.Ableitung > solve(D(f)(x)=0); > diff(f(x),x$3); # 3.Ableitung Notwendige Bedingung für eine lokale Extremstelle ist das Verschwinden der ersten Ableitung. Hinreichend ist das Verschwinden der ersten und das Nichtverschwinden der zweiten Ableitung. > f := unapply(x^2*exp(-x),x); # Funktion definieren > plot (f,-3..5,-1..5); > solve(D(f)(x)=0); # Nullstellen der ersten Ableitung > D(D(f))(0); > D(D(f))(2); # Test mit 2.Ableitung > Was folgt daraus für die Extremwerte? Berechnen Sie als Übung die Extremwerte von g(x)= im Intervall . Integration --------------------------------------------------------------------------------------------------------------------Integration --------------------------------------------------------------------------------------------------------------------Für das Integrieren steht der MAPLE-Befehl int zur Verfügung, bei bestimmten Integralen werden die Integrationsgrenzen hinzugesetzt. Man beachte, dass dieser Befehl nur auf Funktions terme anwendbar ist. Wir beginnen mit unbestimmten Integralen. > y := x^5+3*x^3+5*x-1; > Y := int(y,x); > diff(Y,x); # Funktionsterm definieren # Term einer Stammfunktion # Probe Wir probieren weitere Beispiele: > > > > > int(x^2*exp(-x),x); diff(%,x); int(ln(x+sqrt(x^2+1)),x); diff(%,x); simplify(%); # # # # # Term einer Stammfunktion Probe Term einer Stammfunktion Probe Vereinfchung des Terms Es gibt elementare Funktionen, deren unbestimmtes Integral sich nicht durch elementare Funktionen ausdrücken lässt. Ein Beispiel hierfür ist: > y:=exp(-t^2); > int(y,t); In der Ausgabe bedeutet erf die Gaußsche Fehlerfunktion (error function), die als Integralfunktion folgendermaßen definiert ist: > x -> 2/sqrt(Pi)*int(exp(-t^2),t=0..x); Damit sind wir bei den bestimmten Integralen angelangt. MAPLE versucht auch hier, exakt zu rechnen. Numerische Werte erhält man mit dem anschließenden Befehl evalf . > > > > > > > int(x^5+3*x^3+5*x-1,x=1..3); # Integrationsbereich = [1,3] int(x^2*exp(-x),x=0..1); # Exaktes Integral evalf(%); # Numerischer Wert des Integrals int(ln(x+sqrt(x^2+1)),x=0..1); evalf(%); int(exp(-t^2),t=1..2); evalf(%); Aufgabe: Man berechne das Integral von 0 bis 4 für die Funktion (4-x)*sinh(x) ! > int((4-x)*sinh(x),x=0..4); > evalf(%); Taylor-Reihen --------------------------------------------------------------------------------------------------------------------Taylor-Reihen --------------------------------------------------------------------------------------------------------------------Mit dem MAPLE-Befehl taylor( TaylorEntwicklung von der Funktion bricht also nach der Potenz , , ) werden die ersten um den Entwicklungspunkt einzugeben. Der voreingestellte Wert von Ohne Angabe von ermittelt. > > > > ermittelt. Die Entwicklung ab. Der Restterm wird mit O( Wünscht man eine Taylor-Entwicklung bis zur Ordnung der Summanden der ) bezeichnet. -Potenzen, so ist demnach ist 6. wird der Entwicklungspunkt 0 gewählt, d.h., die McLaurin-Reihe von taylor(exp(x),x); taylor(exp(x),x=1); taylor(exp(x),x,4); taylor(1/x,x=1,3); # McLaurin-Reihe bis zur Ordnung 5 # Taylor-Reihe um x=1 bis zur Ordnung 5 # McLaurin-Reihe bis zur Ordnung 3 Im nächsten Beispiel wird die McLaurin-Reihe einer nicht-elementaren Funktion berechnet. > int(exp(x^3),x); > taylor(%, x); Mit der Anweisung convert( ,polynom) kann ein Restterm beseitigt und damit eine TaylorEntwicklung in ein Taylor-Polynom umgewandelt werden. > > > > f := x -> sqrt(1-x); t5 := taylor(f(x),x); convert(t5,polynom); T5 := unapply(%,x); # McLaurin-Reihe bis zur Ordnung 5 # Umwandlung in ein Polynom 5.Grades # Zugehörige Polynom-Funktion Um die Güte der Approximation zu veranschaulichen, plotten wir die Graphen von und : > plot({f,T5},-2..2); Noch ein ähnliches Beispiel ! > > > > > g := x -> ln(cos(x)); t6 := taylor(g(x),x=1,7): # Taylor-Reihe bis zur Ordnung 6 convert(t6,polynom): # Umwandlung in ein Taylor-Polynom T6 := unapply(%,x); # Zugehörige Polynom-Funktion plot({g,T6},0..Pi/2,-5..0); Aufgaben --------------------------------------------------------------------------------------------------------------------Übungsaufgaben --------------------------------------------------------------------------------------------------------------------1. Berechnen Sie die erste und zweite Ableitung der Funktion plotten Sie die Graphen der drei Funktionen in einem einzigen Diagramm für den Bereich . > f := x -> exp(4-x^2)*(cos(x)); > fx:=D(f); > fxx:=D(D(f)); und , > plot({f,fx,fxx},-8..8,color=[red,black,blue]); > > > > > > > 2. Untersuchen Sie, für welche Werte von die Funktion ein lokales Maximum und ein lokales Minimum hat. Plotten Sie zur Veranschaulichung des Ergebnisses die Funktionsgraphen zu den Parameterwerten der und für einen geeigneten Bereich -Achse, wobei n die Anzahl der Buchstaben Ihres Vornamens ist. > restart; > f := x -> x^3-3*a*x+a; > F:=solve (D(f) > D(D(f)) (x)=0,x); (F[1]); > > > > > > > > > > > 3. Für die Funktion bestimmte Integral in den Grenzen 0 bis 5. ermittle man das unbestimmte Integral und das 4. Wie lauten die ersten 10 nicht verschwindenden Glieder der Taylor-Entwicklung der Tangensfunktion um den Ursprung? > > > > f:=x->exp(4-x^2)*cos(x); g:=(D(f)); h:=(D(D(f))); plot({f,g,h}); > > > > > > > > restart; f:=x->x^3-3*a*x+a: D(f); solve(D(f)(x)=0); a:=6; plot(f); a:='a'; a:=-6; > plot(f); > restart; > f:=sqrt(x^2-2*x+5): > int(f,x=0..5); > > > > > restart; f:=tan(x): t10:=taylor(tan(x),x=0); convert(t10,polynom); plot(unapply (%,x)); >