Gerald KAISER , HTBL Kapfenberg
Vorstellung von Maple V Release 3 |
Einleitung :
Maple V wurde an Universität von Waterloo ( Kanada ) entwickelt und ist in C geschrieben .
Maple besteht aus einem relativ kleinen Kern , der die Maple - Programmiersprache definiert und einer Menge ASCII-Code in dieser Programmiersprache , durch den die Kommandos definiert sind .
Es ist modular aufgebaut . Es werden nur diejenigen Rechenroutinen geladen , die es gerade zum Rechnen benötigt . Es besitzt über 2500 mathematische Funktionen .
Die Einteilung der Maple - Kommandos kann erfolgen in :
1) sofort verfügbare Kommandos ,
2) Kommandos , die mit " readlib" gelesen werden ,
3) Kommandos in " Packages" , die mit "with" aktiviert werden und
4) Kommandos in der "share-Library"
zu 2) Mit Hilfe des Kommandos readlib kann man auf einzelne Befehle in Packages zugreifen .
z.Bsp.: det:=readlib(`linalg/det`): . Wird das Kommando det benötigt , so lädt Maple den dafür benötigten Code .
zu 3) Eine Menge von Befehlen und Kommandos befinden sich in Packages und Libraries , die erst bei Bedarf geladen werden . Dies erfolgt mit z.Bsp.: with (linalg) . Wird die with- Anweisung mit einem Strichpunkt abgeschlossen , so erscheint eine Liste mit den neuen Schlüsselwörtern .
zu 4) In der "share-Library" sind eine Reihe von Zusatzkommandos und Packages gemeint , die zwar mit Maple ausgeliefert werden , aber nicht zur Standard-Library gehören. Sie stammen von Maple-Anwendern , die den Code zur Verfügung stellen .
Online-Hilfe :
Es existieren praktisch zu allen definierten Funktionen und Kommandos Hilfetexte .
Der Aufruf erfolgt durch ? Kommando .
Die Programmierung von Maple ist Pascal ähnlich aufgebaut und einfach zu erlernen .
Ein Problem von Maple V ist , daß nur ein Arbeitsblatt geöffnet werden kann . Hat man genügend Arbeitsspeicher , so kann man Maple V zweimal starten und man kann dann mit zwei Arbeitsblättern gleichzeitig arbeiten .
Der Symbolprozessor von Mathcad basiert ebenfalls auf Maple .
Am ehesten kann Maple noch mit Mathematica verglichen werden , da beide Programme syntax-orientiert sind .In Wirklichkeit unterscheiden sich beide Programme doch grundlegend . Der Kern von Mathematica ist wesentlich größer , als der Kern von Maple .Die Programmierung von Mathematica bedarf einer intensiven Einarbeitung .Im Regelfall rechnet Maple schneller als Mathematica .
Die folgenden Seiten geben eine Einführung in die grundlegenden Befehle und Funktionen , mit denen man viele Aufgaben der Schulmathematik lösen kann .
Bildschirm :
Das Arbeitsblatt besteht aus einzelnen Regionen .
1.Eingaberegion
2.Ausgaberegion
3.Grafikregion
4.Textregion
1.Eingabebereich : Hier werden die einzelnen Kommandos und Befehle eingegeben , die mit einem Strichpunkt oder einem Doppelpunkt abgeschlossen werden müssen . Der Start der Berechnung erfolgt mit < ENTER > oder mit einem Doppelklick der Maus . Bei einem Strichpunkt erscheint die Berechnung am Bildschirm , bei einem Doppelpunkt nicht .Ist die Eingabe länger als eine Zeile , so kommt man mit < Shift > + < ENTER> in die nächste Zeile .
2.Ausgabebereich : Eine Ausgabe erfolgt nur dann , wenn wie bereits erwähnt , die Eingabe mit einem Doppelpunkt abgeschlossen wird . Mit unterschiedlichen Befehlen kann man auf die einzelnen Ergebnisse zugreifen .
3.Grafikbereich : Mit dem Plot-Befehl erscheint ein Grafikfenster .
In den einzelnen Menüs kann z.Bsp. die Linienart , die Linienstärke und die unterschiedlichen Achsenformen eingestellt werden .Nach dem Einfügen kann keine Änderung mehr erfolgen .
4.Textbereich :
Mit <F5> kann der Textmodus aktiviert und deaktiviert werden .
Lösen von Gleichungen :
Zum Lösen von Gleichungen stehen folgende Kommandos zur Verfügung .
solve( Gleich,x) - fsolve(Gleich,x=a..e,option)
>gl1:=x^3-1/2*a*x^2+13/3*x^2;
> solve(gl1,x);
Die einzelnen Lösungen werden als Folge ausgegeben und Mehrfachlösungen werden auch mehrfach angegeben .
Wenn solve nicht in der Lage ist , die Lösungen explizit anzugeben , obwohl es erkennt , daß Lösungen existieren , wird RootOf verwendet .Darin wird die charakteristische Gleichung eines
Polynoms zur Darstellung der daraus existierenden Nullstellen verwendet . Mit allvalues werden alle Lösungen des RootOf-Terms ermittelt .
> poly:=45*x^6-2*x^5-45*x^4+10*x^2-12*x+1;
>loes:=solve(poly,x);
> allvalues(loes);
fsolve ermittelt im allgemeinen nur eine reelle Lösung . Bei Polynomen werden alle reelle Lösungen angegeben . Durch Angabe eines Bereiches können bestimmte Intervalle auf Lösungen untersucht werden . Durch die Angabe des Schlüsselwortes complex wird fsolve veranlaßt auch komplexe Lösungen anzugeben .
>fsolve(poly,x);
> fsolve(poly,x=1..3);
> fsolve(poly,x,complex);
Gleichungssysteme :
> system1:={a/x+b/y=4,2*a/x+3/y=1};
> loes:=solve(system1,{x,y});
Mit dem Kommando subs können Lösungen weiter verwendet werden . In diesem Fall wird die Probe durchgeführt .
> subs(loes,system1);
Das Zeichen " in der Klammer bedeutet , daß das Kommando auf die letzte Ausgabe angewendet wird . So kann man auf die letzten drei Ausgaben zugreifen (" " " ) .
> simplify(");
Probleme gibt es allgemein bei Wurzelgleichungen .
Grafik :
Eine 2D-Grafik läßt sich mit dem Kommando plot(Funktion,x=a..b,Optionen) erstellen.
Maple erstellt zunächst die Grafik in einem Grafikfenster . In diesem können einzelne Veränderungen durchgeführt werden .(z.Bsp.: Koordinatensystem , Linienart und - stärke usw.) Der Nachteil liegt aber darin , daß beim Neuzeichnen diese Änderungen immer wieder durchgeführt werden müssen .
Gibt man die entsprechenden Optionen an , so fällt dies weg .
>plot(tan(x),x=0..2*Pi,-4..4,discont=true,title=`Tan(x)`,scaling=constrained);
Die Option discont = true liefert eine verbesserte Darstellung an den Unsteigkeitsstellen .Wichtig ist die Option scaling=constrained , wenn man auf beiden Achsen die gleiche Skalierung möchte . Bei scaling=unconstrained wird der zur Verfügung stehende Platz optimal ausgenutzt.(Verzerrung !)
Parameterdarstellung :
>plot([2*(t-sin(t)),2*(1-cos(t)),t=0..4*Pi],axes =boxed);
Polarkoordinaten :
> plot([2*cos(2*phi),phi,phi=0..2*Pi],coords=polar);
>
Grenzwertberechnung :
Das Kommando limit(Funktion , x= a , option) berechnet den Grenzwert der Funktion an der Stelle a . Für option kann left , right , real oder complex verwendet werden .
> f:=1/x:
> Limit(f,x=0)=limit(f,x=0);
> Limit(f,x=0,left)=limit(f,x=0,left);
> Limit(f,x=0,right)=limit(f,x=0,right);
> Limit((1+x/n)^n,n=infinity)=limit((1+x/n)^n,n=infinity);
Differentiation :
Mit dem Befehl diff(Funktion , x$n ) wird die nte Ableitung der Funktion berechnet .
>Diff(sin(x)+x*cos(x),x)=diff(sin(x)+x*cos(x),x);
> Diff((x^3+1)^2/ln(x),x$2)=diff((x^3+1)^2/ln(x),x$2);
> simplify(");
partielle Ableitungen :
> Diff(exp(-x)*sin(y),x)=diff(exp(-x)*sin(y),x) ;
> Diff(exp(-x)*sin(y),y)=diff(exp(-x)*sin(y),y);
> Diff(exp(-x)*sin(y),x$2,y$2)=diff(exp(-x)*sin(y),x$2,y$2);
Integration :
Mit dem Befehl int(Funktion,x=a..b) wird eine symbolische Integration ausgeführt . Läßt man
die Integrationsgrenzen weg , so wird das unbestimmtes Integral errechnet .Findet Maple keine
Lösung , so wird das Integral in der Ausgabezeile unverändert ausgegeben .
Führt man hingegen evalf(int(Funktion,x=a..b)) aus, so wird eine numerische Integration durch-geführt .
> f:=x^3+2*x-4;
> Int(f,x)=int(f,x)+C;
Partialbruchzerlegung :
> Int((3*x-4)/(x^2-6*x+34),x)=int((3*x-4)/(x^2-6*x+34),x)+C;
Das nächste Beispiel zeigt , daß zunächst ohne nähere Angabe von u , Maple nicht in der Lage ist , das Integral zu lösen . Durch assume kann man für u eine Bedingung angeben . Für u < 0 divergiert das Integral und für u > 0 exisiert eine Lösung . Das Tildezeichen bedeutet , daß für u eine Bedingung vorliegt .
> k:=exp(-u*x)*ln(x)*sqrt(x):
> Int(k,x=0..infinity)=int(k,x=0..infinity);
> assume (u<0);Int(k,x=0..infinity)=int(k,x=0..infinity);
> assume (u>0);Int(k,x=0..infinity)=int(k,x=0..infinity);
> Int(1/x^2,x=0..infinity)=int(1/x^2,x=0..infinity);
> Limit(Int(1/x^2,x=n..infinity),n=0)=evalf(limit(int(1/x^2,x=n..infinity),n=0));
Mit der Option CauchyPrincipalValue können auch Integrale berechnet werden , die im Integrations-bereich eine oder mehrere Unstetigkeitsstellen besitzen .
> Int(1/x,x=-2..1)=int(1/x,x=-2..1,CauchyPrincipalValue);
Die Großschreibung z.Bsp. von Int ( .......) = int (....) , Diff ( .....) = diff ( .....) und Limit (........) = limit (........) bewirkt , daß bei der Berechnung in der Ausgabezeile die entsprechenden Operatoren angeschrieben werden .
Hinweis : Es gibt in der Zwischenzeit bereits die Version MAPLE V Release 4 .