Table Of ContentArbeiten mit Maple
Einführung in ein Computeralgebrasystem
Jerome Reyes-Rodriguez
Mithilfe von Computeralgebrasystemen wie Maple kann man Berechnungen
exakt durchführen. Dazu werden besondere Variablentypen und symbolische
Algorithmen genutzt. Im Gegensatz zur numerischen Berechnung können mit
beliebig kleinen oder großen Zahlen gearbeitet werden. Auch ist es möglich,
nach verschiedenen mathematischen Gesetzen, Umformungen durchzuführen.
Dies sind nur einige Fähigkeiten von Computeralgebrasystemen (CAS).
In dieser Einführung wird zunächst erklärt, was Computeralgebrasysteme
überhaupt sind und wie sie arbeiten. Ihre Arbeitsweise wird anhand eines Bei-
spiels mit Polynomen gezeigt. Danach werden unterschiedliche CAS verglichen
und deren Vor- und Nachteile hervorgehoben.
Im zweiten Teil wird der Umgang mit Maples Benutzeroberfläche bespro-
chen. Danach werden einige für die Mathematik wichtige Variablentypen ein-
geführt. In Abschnitt 7 werden nützliche und direkt ausführbare Prozeduren
vorgeführt. Im vorletzen Abschnitt wird kurz gezeigt, wie man schlichte Zeich-
nungenundAnimationeninMaplekreirt.ZuletztwirddasProgrammierenmit
Maple in kurzen Beispielen demonstriert und die Syntax der einzelnen Befehle
erklärt.
Inhaltsverzeichnis
I. Computeralgebrasysteme - CAS 1
1. Was ist ein Computeralgebrasystem 1
2. Polynome in Computeralgebrasystemen 2
2.1. Präfixnotation: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Notation mittels Koeffizienten: . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. So arbeitet ein Computeralgebrasystem 3
4. Welche Vor- und Nachteile haben die verschiedenen CAS? 5
II. Maple 6
5. Die Benutzeroberfläche in Maple 6
5.1. Worksheet- und Document Mode . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2. Wichtiges zu der Werkzeugleiste . . . . . . . . . . . . . . . . . . . . . . . . 7
6. Mathematische Objekte 7
6.1. Ausdrücke und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1.1. Gleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1.2. Stückweise definierte Funktionen . . . . . . . . . . . . . . . . . . . . 9
6.2. Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2.1. Erzeugen von Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2.2. Elementare Mengenoperationen . . . . . . . . . . . . . . . . . . . . . 10
6.3. Punkte, Geraden und Ebenen . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.3.1. 2D Punkte und Geraden erstellen . . . . . . . . . . . . . . . . . . . . 11
6.3.2. 3D Punkte und Geraden erstellen . . . . . . . . . . . . . . . . . . . . 11
6.3.3. Einige Prozeduren im geometry- und geom3d-Paket . . . . . . . . . 12
6.4. Vektoren und Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.4.1. Vektoren und Matrizen erstellen . . . . . . . . . . . . . . . . . . . . 13
6.4.2. Auf den Inhalt von Vektoren und Matrizen zugreifen . . . . . . . . . 15
6.4.3. Rechnen mit Vektoren und Matrizen . . . . . . . . . . . . . . . . . . 16
7. Prozeduren für verschiedene Mathematische Themengebiete 18
7.1. Wichtige Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2. Gleitkommadarstellung von Lösungen . . . . . . . . . . . . . . . . . . . . . 18
7.3. Lineare Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.3.1. Lösen linearer Gleichungssysteme . . . . . . . . . . . . . . . . . . . . 19
7.3.2. BerechnenderDiagonalform/JordanschenNormalenformeinerMatrix 20
7.3.3. Gram-Schmidt Orthogonalisierung . . . . . . . . . . . . . . . . . . . 20
7.4. Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.4.1. Grenzwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.4.2. Partialbruchzerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.4.3. Ableitungen und Integrale . . . . . . . . . . . . . . . . . . . . . . . . 21
7.5. Gewöhnliche Differentialgleichungen . . . . . . . . . . . . . . . . . . . . . . 23
7.6. Integraltransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
I
8. Graphische Darstellung und Animationen 24
8.1. Zeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.1.1. 2D- Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.1.2. 3D- Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2. Animationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
9. Programmieren in Maple 28
9.1. Einlesen von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9.2. Eigene Prozeduren erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.3. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.4. Verzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.4.1. Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
II
Teil I.
Computeralgebrasysteme - CAS
Wenn es darum geht, exakte Rechenergebnisse zu erhalten, so kann uns die Gleitkomma-
rechnunginCoderMatlabnichtweiterhelfen.DieseProgrammesinddadurchbeschränkt,
dass Zahlen nur mit endlicher Länge gespeichert werden und die Rechenoperationen meist
numerische Fehler erzeugen.
EinVorteildernumerischenBerechnungistihreGeschwindigkeit.DaserrechneteErgebnis
kann dabei ausreichend genau sein, falls der Fehler bei den Berechnungen beschränkt und
kleingenugbleibt.DasZielderNumerikistesdaherfürverschiedenenumerischeMethoden
Fehlerabschätzungen zu finden und Konvergenzkriterien anzugeben.
In Computeralgebrasystemen wie Maple hingegen, kann man mit Zahlen beliebiger Größe
rechnen und erhält exakte Ergebnisse. Was Computeralgebrasysteme (Abkürzung: CAS)
sonst noch können wird in den folgenden Kapiteln besprochen.
1. Was ist ein Computeralgebrasystem
Computeralgebrasysteme sind Programme die dazu konzipiert wurden, mathematische
Umformungen und Berechnungen symbolisch durchzuführen. Beim symbolischen Rechnen
werden Variablen und Konstanten als eigene Objekte im Algebrasystem gespeichert. Diese
werden nicht ausgewertet und bleiben bei Umformungen erhalten. Dies hat gegenüber der
numerischen Variante den Vorteil, exakte Ergebnisse zu liefern.
Um symbolisch zu rechnen muss man dem Computer die Arbeit mit mathematischen
Strukturen beibringen. Das Anwenden von Äquivalenzumformungen, das Rechnen mit ra-
tionalenZahlenoderdasLesenvonErgebnissenausIntegrationstabellensindBeispielefür
Operationen, die als Algorithmen in CAS enthalten sind. Dadurch sind solche Programme
in der Lage jeden einzelnen Schritt von Handrechnungen nachzuahmen.
Zu den Fähigkeiten von Algebrasystemen gehören:
• Das Lösen von linearen- und nichtlinearen Gleichungen.
• Das Lösen von vielen Differential- und partiellen Differentialgleichungen.
• Exaktes Rechnen mit beliebig großen Zahlen, Brüchen und Wurzeln.
• Rechnen mit Variablen und Konstanten.
• Arbeiten mit Mengen, Vektoren, Matrizen und anderen mathematischen Objekten.
ImFolgendenbetrachtenwirzweiBeispiele.Imerstenwirdgezeigt,wieeinmathematisches
ObjektinnerhalbeinesComputeralgebrasystemsaussieht.Imzweitenwirdbetrachtetwel-
che Operationen vom CAS durchgeführt werden um zwei Ausdrücke auszumultiplizieren.
1
2. Polynome in Computeralgebrasystemen
Eine mathematische Struktur die in Algebrasystemen implementiert ist, sind Polynom-
ringe. Hier wollen wir uns ansehen, wie Polynome in einer Variablen innerhalb von CAS
gespeichert werden.
Es gibt drei verschiedene Darstellungstypen:
2.1. Präfixnotation:
Polynome werden als Liste von Wörtern abgespeichert. Die Addition wird dabei mit add,
die Multiplikation mit multiply, symbolische Variablen mit symbol und Zahlen mit dem
Schlagwort number gekennzeichnet. Um die Reihenfolge der Rechenoperationen anzuzei-
gen, nutzt man die sogenannte Baumdarstellung. Durch Einrücken wird angezeigt, welche
Operation wann ausgeführt wird. Mit dieser Notation kann man alle mathematischen
Ausdrücke, mit geeigneten Schlagwörtern, darstellen.
Notation 1:
4x2+3x−7 wird abgespeichert als
add
multiply
symbol("x")
symbol("x")
number(4)
multiply
symbol("x")
number(3)
number(−7)
2.2. Notation mittels Koeffizienten:
Möchte man nur mit Polynomen rechnen, genügt es die Koeffizienten a der Polynome
i
n
Xa xi in einer Liste zu speichern. Die verschiedenen Rechenoperationen für Polynome
i
i=0
müssen dann mit den Listen verwirklicht werden. Im Vergleich mit der Präfixnotation ist
die Koeffizientennotation bei den Rechnungen viel schneller.
Notation 2:
4x2+3x−7 wird abgespeichert als
(4, 3, 7)
Für Polynome wie 7x1000 −1 würde man in der Liste 999 mal den Wert 0 als Koeffizient
speichern. Daher nutzt man bei solchen Ausdrücken eine dritte Notation. Hierbei wird zu
dem jeweiligen Koeffizenten zusätzlich ihre Potenz in der Liste gespeichert.
Notation 3:
7x1000−1 wird abgespeichert als
( (1000 2), (0 −1))
2
Die drei Repräsentationen von Polynomen müssen also je nach Problemstellung gewählt
werden:
Notation 1 WennmanmitpolynomialenundnichtpolynomialenAusdrückenrechnenmöch-
te
√
( Bsp.: (2x2+4x)(3x−3+ 7x) )
Notation 2 Wenn das Polynom im Verhältnis zum Grad viele Koeffizienten besitzt die
ungleich 0 sind.
Notation 3 Wenn das Polynom im Verhältnis zum Grad fast keine Koeffizienten ungleich
0 besitzt.
3. So arbeitet ein Computeralgebrasystem
Mit der in Abschnitt 2.1 beschriebenen Präfixnotation, wird nun das Ausmultiplizieren
zweier Polynome im CAS, Schritt für Schritt erklärt. Hierbei nutzt das Algebrasystem
vordefinierte Rechengesetze wie die Distributionsregel.
In Maple kann man den Ausdruck (x+7)(x+6) mit dem Befehl expand() ausmultipli-
zieren.
Folgende Schritte werden dann durchgeführt:
1. Stelle den Ausdruck (x+7)(x+6) mit 3. Da immer noch ein add unter einem
der Präfixnotation dar. multiply steht muss die Distributi-
onsregel noch einmal ausgeführt wer-
den.
multiply
add
symbol("x")
number(7)
add
symbol("x")
number(6) add
add
multiply
2. Da unter einem multiply ein add
symbol("x")
steht, wird die Distributionsregel an-
symbol("x")
gewandt.
multiply
number(7)
add
symbol("x")
multiply
multiply
add
add
symbol("x")
symbol("x")
number(7)
number(7)
symbol("x")
number(6)
multiply
add
symbol("x")
number(7)
number(6)
3
4. Und ein drittes mal wird die Distribu- 6. Die unteren zwei Zahlen kann man
tionsregel angewandt. ausmultiplizieren.
add
multiply
add
symbol("x")
add
symbol("x")
multiply
multiply
symbol("x")
number(7)
symbol("x")
symbol("x")
multiply
multiply
number(7)
symbol("x")
symbol("x")
number(6)
add
multiply
multiply
number(42)
symbol("x")
number(6)
7. Als nächstes kann man Terme mit
multiply
dem symbol(“x“) zusammenfassen.
number(7)
number(6)
add
multiply
symbol("x")
symbol("x")
multiply
number(13)
symbol("x")
multiply
5. Nun kann man andere Regeln nutzen. number(42)
Wenn zwei add untereinander stehen,
kann die zuerst ausgeführten Additio-
8. Die Multiplikation von x mit sich
nen weglassen werden.
selbst kann als Quadrat mit dem
Schlagwort square zusammengefasst
werden.
add
multiply add
symbol("x") square
symbol("x") symbol("x")
multiply multiply
number(7) number(13)
symbol("x") symbol("x")
multiply number(42)
symbol("x")
number(6) 9. Jetzt gibt es keine Regel mehr, die
multiply angewendet werden muss und man er-
number(7) hält das Ergebnis.
number(6)
x^2 + 13x + 24
4
4. Welche Vor- und Nachteile haben die verschiedenen CAS?
Im Vergleich unterscheiden sich die Computeralgebrasysteme in ihrer Geschwindigkeit,
den Platz den sie im Arbeitsspeicher benötigen und der Anzahl der Aufgaben die gelöst
werden können. Auf der Homepage von Nasser M. Abassi gibt es einen unabhängigen
Integrations-Test verschiedener Computeralgebra-Software. Dieser wurde im August 2015
durchgeführt und vergleicht die Programme Rubi, Mathematica, Maple und Mupad. Auf
der Seite von Albert Rich Rubi sind alle mathematischen Probleme aufgelistet, die in
diesem Test durchgearbeitet wurden.
Das Ergebnis der Tests wurde in Folgender Tabelle zusammengefasst:
System percentage not mean median mean median median median
solved solved CPU CPU size size normali- normali-
(sec) (sec) zed zed
size size
Rubi 99.903 50 0.840 0.185 140.2 103 0.997 1.000
Mathematica 96.731 1689 2.407 0.168 2284.8 99 7.674 1.000
Maple 88.276 6058 0.123 0.017 26054.2 130 141.592 1.298
Mupad 54.750 23381 1.940 0.234 796.1 87 3.905 1.125
Tabelle 1: Ergebnisse der Computer Algebra Testläufe, Tabelle ist auf der Homepage von
M. Abassi zu finden
Aus dieser Tabelle kann man entnehmen, dass Mathematica (Rubi ist ein Plugin für Ma-
thematica)diemeistenProblemelösenkann.Matlabversagtbeivielender51671gestellten
Problemen, benötigt aber am wenigsten Speicherplatz. Maple ist nicht weit hinter Mathe-
matica, was die Anzahl der gelösten Probleme angeht, kann aber zusätzlich durch seine
Geschwindigkeit Punkten.
In diesem Test wurden aber nur Integrationsprobleme betrachtet. Wenn es zum Beispiel
umdasLösenvonDifferential-undpartiellenDifferentialgleichungengehtfindetMapleim
Moment die meisten symbolischen Ergebnisse. Retardierte Differentialgleichungen (Eng-
lisch:DelayedDifferentialEquations)oderDifferential-algebraischeGleichungenhingegen,
können nur von Mathematica gelöst werden.
5
Teil II.
Maple
In unseren Computerlaboren sind zur Zeit zwei Computeralgebrasysteme vorhanden. Zum
einen die symbolische Toolbox von Matlab namens MuPad und zum anderen das von
Maplesoft entwickelte Maple. Im Vergleich zu MuPad ist Maple die stärkere Computeral-
gebrasoftware und hat eine klare und einfach zu bedienende Oberfläche.
Die Entwicklung von Maple (mathematical manipulation language) wurde 1980 von der
Symbolic Computational Group an der Universität von Waterloo in Kanada begonnen.
Nach der Firmengründung von Maplesoft in 1988 wurde das Programm vermarktet und
wird bis heute ständig weiterentwickelt.
Maple selbst wurde mithilfe zweier Programmiersprachen geschrieben. Der Systemkern
(Kernel)vonMaple,derdieMaple-ProgrammierspracheenthältwurdeinCprogrammiert,
die Bedienoberfläche hingegen mit Java.
In den folgenden Abschnitten werden wir uns mit der Bedienung von Maple auseinander
setzen und danach verschiedene mathematische Probleme in kleinen Beispielprogrammen
lösen.
5. Die Benutzeroberfläche in Maple
Öffnet man Maple, so wird man zunächst feststellen, dass die Sprache der Oberfläche
Englischist.DasgleichegiltfürdieMaple-Hilfe.ZurzeitgibteskeindeutschesSprachpaket
für Maple. Hat man Schwierigkeiten mit Englisch, so helfen hier nur Wörterbücher und
Online-Übersetzer.
Auf dem Linken Rand der Bedienoberfläche sind viele anklickbare Register, wie „Expres-
sion“ zu sehen. Mit ihnen kann man nahezu alle mathematischen Aufgaben per Kli´ck er-
stellen und lösen. Hat man in dem Register „Expression“ zum Beispiel das Integral fdx
gewählt, so kann man das f mit irgendeiner Funktion ersetzen und mit dem Drücken
der Eingabetaste auswerten. Zusätzlich gibt es die Möglichkeit, durch Rechtsklick auf den
Ausdruck, viele andere Operationen, wie das Auswerten an einem Punkt (Evaluate at a
Point), durchzuführen.
IndieserEinführungwerdenwirunsnichtnähermitderBenutzeroberflächebefassen.Eine
ausführliche Beschreibung aller Funktionen der Oberfläche ist in dem Benutzerhandbuch
von Maple [1] zu finden. Wir werden uns näher mit den Befehlen beschäftigen, die hinter
den anklickbaren Operationen stecken.
5.1. Worksheet- und Document Mode
Unter File→New sind zwei mögliche Modi zu finden, in denen man arbeiten kann. Um
Lösungen mathematischer Probleme zu finden, sind beide Modi gleichwertig. Sie unter-
scheidensichnurinderDarstellungderEin-undAusgabe.EineausführlicheBeschreibung
der Unterschiede findet man auf Maples Internetseite.
Der Worksheet Modus enthält die klassische Umgebung, mit der man in Maple pro-
grammiert. In ihm werden Befehle ausgeschrieben und einzelne Eingaben mit getrennt.
ImDocumentModuswerdendieBefehleundAusgabeschönformatiertals2D-Mathematik
ausgegeben. In Maple gibt es hierzu 2D-Input und 2D-Output. Die Ausgabe wird, im ge-
gensatz zur 1D-Ausgabe, wie per Hand geschrieben, ausgegeben.
6
ˆ
x−2 4
2D-Mathe: = 1, x2dx
α
0
1D-Mathe: (x−2)/alpha = 1, int(x2,x = 0..4)
Der Document Modus kann dazu genutzt werden, interaktive Dokumente zu erstellen.
Im Menüpunkt File→New→Templates... gibt es viele Beispiele solcher interaktiver Do-
kumente. In ihnen werden verschiedene mathematische Probleme gelöst und Schritt für
Schritt beschrieben.
In beiden Modi können Befehle mit der Eingabetaste ausgeführt werden und mit Um-
schalt + Eingabe wird die Ausführung verhindert. Mit dem Semikolon „;“ werden Be-
fehle beendet und im der 1D-Eingabe muss am Ende ein Semikolon gesetzt werden. Der
Doppelpunkt „:“ kann dazu genutzt werden, die Ausgabe von Befehlen zu unterdrücken.
Kommentare kann man mit dem Rautezeichen „#“ erstellen. Die Hilfe zu bestimmten
Prozeduren kann man mit ? Prozedurname aufrufen.
In diesem Skript werden wir immer im Worksheet Modus arbeiten.
5.2. Wichtiges zu der Werkzeugleiste
Eine praktische Funktion der Werkzeugleiste sind die Ausrufezeichen . Mithilfe der
drei Ausrufezeichen kann man alle, auf dem Dokument befindlichen, Anweisungen nach-
einander ausführen lassen. Das einfache Rufezeichen führt nur die Anweisung aus, in der
sich der Mauszeiger gerade befindet.
In der Werkzeugleiste direkt über dem Arbeitsbereich
Abbildung 1: Werkzeugleiste mit verschiedenen Reitern
gibt es für Text, Mathe, Zeichnungen und Animationen verschiedene Reiter. Hierbei
muss man darauf achten, dass man im Document Modus mit der Option Text keine
ausführbaren Anweisungen schreiben kann. Die Eingabe ist nur alls Kommentar ohne
Rautezeichen gedacht. Im Worksheet Modus kann man mit der Text Option Befehle
eingeben. Diese müssen dann aber mit Semikolon „;“ beendet werden.
6. Mathematische Objekte
In Maple kann man mit allen Datentypen arbeiten, die auch in C zur Verfügung stehen.
Diese sind nicht alle beim Start von Maple nutzbar. Daher muss man mit dem Befehl
with() gegebenenfalls die nötigen Bibliotheken laden. Informationen zu den gewünschten
Datentypen findet man in der Maple-Hilfe.
Hier möchten wir uns nur auf die mathematischen Objekte, wie Mengen, Matrizen und
Funktionen beschränken.
Wichtig:DieZuweisungvonVariablenwirdinMaplemit„:=“durchgeführt.DasGleich-
heitszeichen alleine wird für Gleichungen verwendet!
7
Description:durchgeführt und vergleicht die Programme Rubi, Mathematica, Maple und Mupad. Auf .. hier aber die Parameterdarstellung angegeben werden!