> # Einfuehrung in die Handhabung von Maple # # Maple ist ein sehr leistungsfaehiges Computeralgebrasystem (CAS) # # Computeralgebra stellt unter einer einheitlichen Oberflaeche # vier sich ergaenzende Faehigkeiten zur Verfuegung: # # -- Numerisches Rechnen (wie Taschenrechner) # -- Symbolisches Rechnen (z.B. Berechnen von Integralen) # -- 2- und 3-dimensionale graphische Darstellung # -- Programmiersprache > > restart: # Maple kennt zwei Arten von Anweisungen # 1) Zuordnungsanweisungen (einer Variablen wird ein Wert zugewiesen) assign=zuweisen # Wenn ein Echo von Maple gewuenscht ist, muss die Anweisung # mit ; abgeschlossen werden, sonst mit : # Beispiele: > a:=3; > b:=4: > c:=a+b; # 2) Abfrageanweisung (der aktuelle Wert eines Ausdrucks oder einer Variablen wird abgefragt) # Beispiele: > a; b; c; d; # Wenn rechts und links von einer Zuweisung derselbe Name einer # Variablen auftritt, dann ist rechts der bisherige Wert und # links der neu zugewiesene Wert gemeint: > b:=b+2; > A:=b+d; > a; A; # Man bemerkt, dass Maple Gross- und Kleinschreibung unterscheidet # Arithmetische Operationen: > a*b; > a/b; > a*(b+c); # Nur runde Klammern zugelassen! > b^a; # Hinter ^ immer ein Leerzeichen eingeben, sonst Fehlerquelle # So wird der Variablen c ihr bisheriger Wert wieder entzogen (unassign). # Der neue Wert der Variablen c ist ihr Name c. > c:='c': > c; # Ausgabe eines Textes (string) in Anfuehrungszeichen, sonst Fehlermeldung: > "Richtiger Text"; > Falscher Text; # Rechnen mit exakten Zahlen und mit numerischen Naeherungen: > p:=1/3; q:=7/19; p+q; > q_num:=evalf(q); > 19*q; 19*q_num; > r:=sqrt(2); r_num1:=sqrt(2.0); r_num2:=evalf(r); > r^2; r_num1^2; r_num2^2; > evalf(Pi,150); # Zusammenfassungen von Objekten: # Aufzaehlungen (Sequenzen), Listen, Mengen (sequence, list, set) # Der Befehl seq erzeugt eine Aufzaehlung > restart: > a:=seq(i^2,i=4..9); # Listen sind nichts als Aufzaehlungen, die in eckige Klammern eingeschlossen sind: > a_liste:=[a]; # Hier Anwendungen von Listen: > seq([i,i^2],i=4..9); # Aufzaehlung von Listen > seq(i^2,i=[3,5,11]); # Weiteres Beispiel: > s:=seq(10-9*i+i^2,i=1..30); > s_liste:=[s]; > max(s); # Groesster (maximaler) Wert der Aufzaehlung > min(s); # Kleinster (minimaler) Wert der Aufzaehlung > sort(s_liste); # Sortieren der Liste # Auswahl eines Elements (der Index erscheint in eckigen Klammern), hier das fuenfte Element: > s[5]; s_liste[5]; # Umwandlung in eine Menge = Einschluss in geschweifte Klammern > s_menge:={s}; # Verwandte Syntax: Addition und Multiplikation statt Aufzaehlung > seq(i,i=1..10); > add(i,i=1..10); > mul(i,i=1..10); > 10!; # Zum Vergleich > # Ausdruecke in Maple: # Sie enthalten Variable (mindestens eine). Sind diesen Variablen # zuvor Zahlen als Werte zugewiesen worden, dann handelt es sich # um einen numerischen Ausdruck, sein Wert ist eine Zahl. Beispiel: > restart: > x:=5; > y:=x^2-3; # y ist ein numerischer Ausdruck > x:='x'; > x; y; # Auch wenn x sein Wert wieder entzogen wird, behaelt y seinen zugewiesenen Wert. # Wenn der Variablen im Ausdruck kein Wert zugewiesen ist, dann handelt es # sich um eine unabhaengige Veraenderliche. Der Ausdruck haengt funktional # von dieser ab und heisst daher Funktionsausdruck. Beispiel: > restart: > y:=x^2-3; # Einen solchen Ausdruck kann man graphisch darstellen: > plot(y,x); # Die Auswertung fuer einen bestimmten Wert der unabhaengigen # Veraenderlichen kann mit subs erfolgen, ohne diese Variable # oder den Funktionsausdruck bleibend zu veraendern: > subs(x=5,y); > x; y; # Dasselbe laesst sich auf weniger zweckmaessige Weise wie folgt erreichen: > x:=5; y; > x:='x'; > x; y; # Erzeugung von Wertetabellen zu einem Funktionsausdruck: > w_auf:=seq(subs(x=0.6*i,[x,y]),i=-3..5); > w_liste:=[w_auf]; # Das ist jetzt eine Liste von Listen (listlist). # Man kann sie zur besseren Lesbarkeit in Matrixform ueberfuehren: > convert(w_liste,matrix); # Man kann sie auch graphisch darstellen: > plot(w_liste,style=point); # Ohne die Option wird style=line angenommen, d.h. die Punkte # werden zu einem Polygonzug verbunden: > plot(w_liste); # Gleichzeitige Darstellung des Funktionsausdrucks und des Polygonzugs: > plot([y,w_liste],x=-2..3);