36
Arbeiten 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- nungen und Animationen in Maple kreirt. Zuletzt wird das Programmieren mit Maple in kurzen Beispielen demonstriert und die Syntax der einzelnen Befehle erklärt.

Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Arbeiten mit MapleEinführung in ein Computeralgebrasystem

Jerome Reyes-Rodriguez

Mithilfe von Computeralgebrasystemen wie Maple kann man Berechnungenexakt durchführen. Dazu werden besondere Variablentypen und symbolischeAlgorithmen genutzt. Im Gegensatz zur numerischen Berechnung können mitbeliebig 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 verglichenund 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 Prozedurenvorgeführt. Im vorletzen Abschnitt wird kurz gezeigt, wie man schlichte Zeich-nungen und Animationen in Maple kreirt. Zuletzt wird das Programmieren mitMaple in kurzen Beispielen demonstriert und die Syntax der einzelnen Befehleerklärt.

Page 2: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Inhaltsverzeichnis

I. Computeralgebrasysteme - CAS 1

1. Was ist ein Computeralgebrasystem 1

2. Polynome in Computeralgebrasystemen 22.1. Präfixnotation: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.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 65.1. Worksheet- und Document Mode . . . . . . . . . . . . . . . . . . . . . . . . 65.2. Wichtiges zu der Werkzeugleiste . . . . . . . . . . . . . . . . . . . . . . . . 7

6. Mathematische Objekte 76.1. Ausdrücke und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

6.1.1. Gleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86.1.2. Stückweise definierte Funktionen . . . . . . . . . . . . . . . . . . . . 9

6.2. Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96.2.1. Erzeugen von Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . 96.2.2. Elementare Mengenoperationen . . . . . . . . . . . . . . . . . . . . . 10

6.3. Punkte, Geraden und Ebenen . . . . . . . . . . . . . . . . . . . . . . . . . . 116.3.1. 2D Punkte und Geraden erstellen . . . . . . . . . . . . . . . . . . . . 116.3.2. 3D Punkte und Geraden erstellen . . . . . . . . . . . . . . . . . . . . 116.3.3. Einige Prozeduren im geometry- und geom3d-Paket . . . . . . . . . 12

6.4. Vektoren und Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136.4.1. Vektoren und Matrizen erstellen . . . . . . . . . . . . . . . . . . . . 136.4.2. Auf den Inhalt von Vektoren und Matrizen zugreifen . . . . . . . . . 156.4.3. Rechnen mit Vektoren und Matrizen . . . . . . . . . . . . . . . . . . 16

7. Prozeduren für verschiedene Mathematische Themengebiete 187.1. Wichtige Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187.2. Gleitkommadarstellung von Lösungen . . . . . . . . . . . . . . . . . . . . . 187.3. Lineare Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

7.3.1. Lösen linearer Gleichungssysteme . . . . . . . . . . . . . . . . . . . . 197.3.2. Berechnen der Diagonalform/Jordanschen Normalenform einer Matrix 207.3.3. Gram-Schmidt Orthogonalisierung . . . . . . . . . . . . . . . . . . . 20

7.4. Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217.4.1. Grenzwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217.4.2. Partialbruchzerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . 217.4.3. Ableitungen und Integrale . . . . . . . . . . . . . . . . . . . . . . . . 21

7.5. Gewöhnliche Differentialgleichungen . . . . . . . . . . . . . . . . . . . . . . 237.6. Integraltransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

I

Page 3: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

8. Graphische Darstellung und Animationen 248.1. Zeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

8.1.1. 2D- Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248.1.2. 3D- Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

8.2. Animationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

9. Programmieren in Maple 289.1. Einlesen von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289.2. Eigene Prozeduren erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 299.3. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309.4. Verzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

9.4.1. Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

II

Page 4: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Teil I.Computeralgebrasysteme - CASWenn es darum geht, exakte Rechenergebnisse zu erhalten, so kann uns die Gleitkomma-rechnung in C oder Matlab nicht weiterhelfen. Diese Programme sind dadurch beschränkt,dass Zahlen nur mit endlicher Länge gespeichert werden und die Rechenoperationen meistnumerische Fehler erzeugen.Ein Vorteil der numerischen Berechnung ist ihre Geschwindigkeit. Das errechnete Ergebniskann dabei ausreichend genau sein, falls der Fehler bei den Berechnungen beschränkt undklein genug bleibt. Das Ziel der Numerik ist es daher für verschiedene numerische MethodenFehlerabschätzungen zu finden und Konvergenzkriterien anzugeben.In Computeralgebrasystemen wie Maple hingegen, kann man mit Zahlen beliebiger Größerechnen und erhält exakte Ergebnisse. Was Computeralgebrasysteme (Abkürzung: CAS)sonst noch können wird in den folgenden Kapiteln besprochen.

1. Was ist ein ComputeralgebrasystemComputeralgebrasysteme sind Programme die dazu konzipiert wurden, mathematischeUmformungen und Berechnungen symbolisch durchzuführen. Beim symbolischen Rechnenwerden Variablen und Konstanten als eigene Objekte im Algebrasystem gespeichert. Diesewerden nicht ausgewertet und bleiben bei Umformungen erhalten. Dies hat gegenüber dernumerischen Variante den Vorteil, exakte Ergebnisse zu liefern.Um symbolisch zu rechnen muss man dem Computer die Arbeit mit mathematischenStrukturen beibringen. Das Anwenden von Äquivalenzumformungen, das Rechnen mit ra-tionalen Zahlen oder das Lesen von Ergebnissen aus Integrationstabellen sind Beispiele fürOperationen, die als Algorithmen in CAS enthalten sind. Dadurch sind solche Programmein 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.

Im Folgenden betrachten wir zwei Beispiele. Im ersten wird gezeigt, wie ein mathematischesObjekt innerhalb eines Computeralgebrasystems aussieht. Im zweiten wird betrachtet wel-che Operationen vom CAS durchgeführt werden um zwei Ausdrücke auszumultiplizieren.

1

Page 5: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

2. Polynome in ComputeralgebrasystemenEine mathematische Struktur die in Algebrasystemen implementiert ist, sind Polynom-ringe. Hier wollen wir uns ansehen, wie Polynome in einer Variablen innerhalb von CASgespeichert 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 demSchlagwort number gekennzeichnet. Um die Reihenfolge der Rechenoperationen anzuzei-gen, nutzt man die sogenannte Baumdarstellung. Durch Einrücken wird angezeigt, welcheOperation wann ausgeführt wird. Mit dieser Notation kann man alle mathematischenAusdrücke, mit geeigneten Schlagwörtern, darstellen.

Notation 1:4x2 + 3x− 7 wird abgespeichert als

addmult ip ly

symbol ( " x " )symbol ( " x " )number (4 )

mult ip lysymbol ( " x " )number (3 )

number(−7)

2.2. Notation mittels Koeffizienten:Möchte man nur mit Polynomen rechnen, genügt es die Koeffizienten ai der Polynomen∑i=0

aixi in einer Liste zu speichern. Die verschiedenen Rechenoperationen für Polynome

müssen dann mit den Listen verwirklicht werden. Im Vergleich mit der Präfixnotation istdie 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 Koeffizientspeichern. Daher nutzt man bei solchen Ausdrücken eine dritte Notation. Hierbei wird zudem jeweiligen Koeffizenten zusätzlich ihre Potenz in der Liste gespeichert.

Notation 3:7x1000 − 1 wird abgespeichert als

( (1000 2) , (0 −1))

2

Page 6: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Die drei Repräsentationen von Polynomen müssen also je nach Problemstellung gewähltwerden:

Notation 1 Wenn man mit polynomialen und nichtpolynomialen Ausdrücken rechnen möch-te( Bsp.: (2x2 + 4x)(3x−3 +

√7x) )

Notation 2 Wenn das Polynom im Verhältnis zum Grad viele Koeffizienten besitzt dieungleich 0 sind.

Notation 3 Wenn das Polynom im Verhältnis zum Grad fast keine Koeffizienten ungleich0 besitzt.

3. So arbeitet ein ComputeralgebrasystemMit der in Abschnitt 2.1 beschriebenen Präfixnotation, wird nun das Ausmultiplizierenzweier Polynome im CAS, Schritt für Schritt erklärt. Hierbei nutzt das Algebrasystemvordefinierte 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) mitder Präfixnotation dar.

mul t ip lyadd

symbol ( " x " )number (7 )

addsymbol ( " x " )number (6 )

2. Da unter einem multiply ein addsteht, wird die Distributionsregel an-gewandt.

addmult ip ly

addsymbol ( " x " )number (7 )

symbol ( " x " )mult ip ly

addsymbol ( " x " )number (7 )

number (6 )

3. Da immer noch ein add unter einemmultiply steht muss die Distributi-onsregel noch einmal ausgeführt wer-den.

addadd

mult ip lysymbol ( " x " )symbol ( " x " )

mult ip lynumber (7 )symbol ( " x " )

mult ip lyadd

symbol ( " x " )number (7 )

number (6 )

3

Page 7: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

4. Und ein drittes mal wird die Distribu-tionsregel angewandt.

addadd

mult ip lysymbol ( " x " )symbol ( " x " )

mult ip lynumber (7 )symbol ( " x " )

addmult ip ly

symbol ( " x " )number (6 )

mult ip lynumber (7 )number (6 )

5. Nun kann man andere Regeln nutzen.Wenn zwei add untereinander stehen,kann die zuerst ausgeführten Additio-nen weglassen werden.

addmult ip ly

symbol ( " x " )symbol ( " x " )

mult ip lynumber (7 )symbol ( " x " )

mult ip lysymbol ( " x " )number (6 )

mult ip lynumber (7 )number (6 )

6. Die unteren zwei Zahlen kann manausmultiplizieren.

addmult ip ly

symbol ( " x " )symbol ( " x " )

mult ip lynumber (7 )symbol ( " x " )

mult ip lysymbol ( " x " )number (6 )

mult ip lynumber (42)

7. Als nächstes kann man Terme mitdem symbol(“x“) zusammenfassen.

addmult ip ly

symbol ( " x " )symbol ( " x " )

mult ip lynumber (13)symbol ( " x " )

mult ip lynumber (42)

8. Die Multiplikation von x mit sichselbst kann als Quadrat mit demSchlagwort square zusammengefasstwerden.

addsquare

symbol ( " x " )mult ip ly

number (13)symbol ( " x " )

number (42)

9. Jetzt gibt es keine Regel mehr, dieangewendet werden muss und man er-hält das Ergebnis.

x^2 + 13x + 24

4

Page 8: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

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östwerden können. Auf der Homepage von Nasser M. Abassi gibt es einen unabhängigenIntegrations-Test verschiedener Computeralgebra-Software. Dieser wurde im August 2015durchgeführt und vergleicht die Programme Rubi, Mathematica, Maple und Mupad. Aufder Seite von Albert Rich Rubi sind alle mathematischen Probleme aufgelistet, die indiesem Test durchgearbeitet wurden.Das Ergebnis der Tests wurde in Folgender Tabelle zusammengefasst:

System percentagesolved

notsolved

meanCPU(sec)

medianCPU(sec)

meansize

mediansize

mediannormali-

zedsize

mediannormali-

zedsize

Rubi 99.903 50 0.840 0.185 140.2 103 0.997 1.000Mathematica 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.298Mupad 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 vonM. Abassi zu finden

Aus dieser Tabelle kann man entnehmen, dass Mathematica (Rubi ist ein Plugin für Ma-thematica) die meisten Probleme lösen kann. Matlab versagt bei vielen der 51671 gestelltenProblemen, 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 seineGeschwindigkeit Punkten.In diesem Test wurden aber nur Integrationsprobleme betrachtet. Wenn es zum Beispielum das Lösen von Differential- und partiellen Differentialgleichungen geht findet Maple imMoment die meisten symbolischen Ergebnisse. Retardierte Differentialgleichungen (Eng-lisch: Delayed Differential Equations) oder Differential-algebraische Gleichungen hingegen,können nur von Mathematica gelöst werden.

5

Page 9: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Teil II.MapleIn unseren Computerlaboren sind zur Zeit zwei Computeralgebrasysteme vorhanden. Zumeinen die symbolische Toolbox von Matlab namens MuPad und zum anderen das vonMaplesoft 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 derSymbolic Computational Group an der Universität von Waterloo in Kanada begonnen.Nach der Firmengründung von Maplesoft in 1988 wurde das Programm vermarktet undwird bis heute ständig weiterentwickelt.Maple selbst wurde mithilfe zweier Programmiersprachen geschrieben. Der Systemkern(Kernel) von Maple, der die Maple-Programmiersprache enthält wurde in C programmiert,die Bedienoberfläche hingegen mit Java.In den folgenden Abschnitten werden wir uns mit der Bedienung von Maple auseinandersetzen und danach verschiedene mathematische Probleme in kleinen Beispielprogrammenlösen.

5. Die Benutzeroberfläche in MapleÖffnet man Maple, so wird man zunächst feststellen, dass die Sprache der OberflächeEnglisch ist. Das gleiche gilt für die Maple-Hilfe. Zurzeit gibt es kein deutsches Sprachpaketfür Maple. Hat man Schwierigkeiten mit Englisch, so helfen hier nur Wörterbücher undOnline-Ü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 Klick 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ückender Eingabetaste auswerten. Zusätzlich gibt es die Möglichkeit, durch Rechtsklick auf denAusdruck, viele andere Operationen, wie das Auswerten an einem Punkt (Evaluate at aPoint), durchzuführen.In dieser Einführung werden wir uns nicht näher mit der Benutzeroberfläche befassen. Eineausführliche Beschreibung aller Funktionen der Oberfläche ist in dem Benutzerhandbuchvon Maple [1] zu finden. Wir werden uns näher mit den Befehlen beschäftigen, die hinterden anklickbaren Operationen stecken.

5.1. Worksheet- und Document ModeUnter File→New sind zwei mögliche Modi zu finden, in denen man arbeiten kann. UmLösungen mathematischer Probleme zu finden, sind beide Modi gleichwertig. Sie unter-scheiden sich nur in der Darstellung der Ein- und Ausgabe. Eine ausführliche Beschreibungder 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.ImDocument Modus werden die Befehle und Ausgabe schön formatiert als 2D-Mathematikausgegeben. 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

Page 10: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

2D-Mathe: x− 2α

= 1,ˆ 4

0x2dx

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ürSchritt 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. DerDoppelpunkt „:“ kann dazu genutzt werden, die Ausgabe von Befehlen zu unterdrücken.Kommentare kann man mit dem Rautezeichen „#“ erstellen. Die Hilfe zu bestimmtenProzeduren kann man mit ? Prozedurname aufrufen.In diesem Skript werden wir immer im Worksheet Modus arbeiten.

5.2. Wichtiges zu der WerkzeugleisteEine praktische Funktion der Werkzeugleiste sind die Ausrufezeichen . Mithilfe derdrei Ausrufezeichen kann man alle, auf dem Dokument befindlichen, Anweisungen nach-einander ausführen lassen. Das einfache Rufezeichen führt nur die Anweisung aus, in dersich 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. Hierbeimuss man darauf achten, dass man im Document Modus mit der Option Text keineausführbaren Anweisungen schreiben kann. Die Eingabe ist nur alls Kommentar ohneRautezeichen gedacht. Im Worksheet Modus kann man mit der Text Option Befehleeingeben. Diese müssen dann aber mit Semikolon „;“ beendet werden.

6. Mathematische ObjekteIn 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 Befehlwith() gegebenenfalls die nötigen Bibliotheken laden. Informationen zu den gewünschtenDatentypen findet man in der Maple-Hilfe.Hier möchten wir uns nur auf die mathematischen Objekte, wie Mengen, Matrizen undFunktionen beschränken.Wichtig: Die Zuweisung von Variablen wird in Maple mit „:=“ durchgeführt. Das Gleich-heitszeichen alleine wird für Gleichungen verwendet!

7

Page 11: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

6.1. Ausdrücke und FunktionenAbbildungen und Gleichungen können in Maple in zwei Datentypen gespeichert werden.Bei Ausdrücken (engl.: expression) muss lediglich das gewünschte Objekt mit „:=“ zu-gewiesen werden.

[> F:=x^2+4;

Bei Funktionen (engl.: function) wird zusätzlich angegeben welche Variable im Urbildauf das Objekt abgebildet werden soll. Die Abbildungsvorschrift wird mit einem Pfeil „->“(Bindestrich + größer Zeichen) angezeigt.

[> F:=x−>x^2+4;

Audrücke können nur mit dem zusätzlichen Befehl subs(·), Funktionen hingegen mitmit runden Klammern F (·) ausgewertet werden. Weitere unterschiede und Beispiele sindin der unteren Tabelle zu finden.

Ausdrücke FunktionenEingabe F := x2 − 4; F := x− > x2 − 4;Auswertung subs(x = 3, F ); F (3);Gleichung lösen solve(F = 0); solve(F (x) = 0);Ableitung diff(F, x); D(F );

Tabelle 2: Unterschiede zwischen Ausdrücken und Funktionen in Maple

Setzt man in Funktionen eine symbolische Variable ein, so erhält man einen Ausdruck.F (x) wird dann zum Ausdruck x2 − 4 und man kann Befehle, die nur Ausdrücke alsÜbergabewert annehmen, verwenden. Die Auswertung einer Funktion ist dann auch mitsubs(x = 3, F (x)) möglich.Intern speichert Maple Funktionen als kleine Programme. Beispielsweise wird die Funk-tion y := x− > x2 als y := proc(x)x^2 end; abgespeichert. Was in C Funktionen sind( int function( ){ } ) wird in Maple Prozedur genannt. Wie diese aufgebaut sind, werdenwir uns in Abschnitt 9.2 ansehen.

6.1.1. Gleichungen

Das Gleichheitszeichen „=“ kann genutzt werden um Gleichungen als Ausdrücke zuspeichern. Auf die einzelnen Seiten der Gleichung kann man mit den Befehlen rhs() (righhand side) und lhs() (left hand side) zugreifen. Mit der solve()-Prozedur kann man dieGleichung lösen.

8

Page 12: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

[> g:=x^2−3=4∗x+4;[> rhs ( g ) ;[> lh s ( g ) ;[> so l v e ( g , x ) ;

x2 − 3 = 4x+ 44x+ 4x2 − 3

2 +√

11, 2−√

11

6.1.2. Stückweise definierte Funktionen

Die Prozedur piecewise() ermöglicht die definition von zusammengesetzten Abbildungen.Diese können als Ausdrücke oder Funktionen gespeichert werden. Als Argument erhältdie Prozedur immer einen Geltungsbereich und dann die dazugehörige Funktion.

# Ausduck[> fa := p i e c ew i s e (x<=−1,x^2 ,x<=1,exp (x+1),1<x , s i n (x−1)) ;# Funktion[> f f := x−>pi e c ew i s e (x<=−1,x^2 ,x<=1,exp (x+1),1<x , s i n (x−1)) ;

x2 x ≤ −1ex+1 x ≤ 1sin(x− 1) 1 < x

x 7→ piecwise(x <= −1, x2, x <= 1, ex+11 < x, sin(x− 1))

6.2. MengenEine Menge ist eine ungeordnete Folge von wohl unterscheidbaren Ausdrücken. Diese kön-nen in Maple mithilfe geschweifter Klammern {} erstellt werden. Die Möglichkeiten Men-gen zu erstellen und mit ihnen zu arbeiten ist in Maple sehr begrenzt. Man kann meinesWissens nur endliche Menge von Zahlen oder Symbolen als Mengen speichern.

6.2.1. Erzeugen von Mengen

In den Folgenden Beispielen wird die Indizierung von Variablen genutzt. Dazu setzt manden Index in eckigen Klammern hinter die Variable. In der MengeM3 wird mit seq() eineFolge von Zahlen erstellt. Im ersten Argument des Befehls wird zunächst ein allgemeinesFolgeglied in Abhängigkeit einer beliebigen Variable angegeben. Im zweiten Argument gibtman an welche Werte diese Variable annehmen soll.

9

Page 13: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

[> M1:={2 ,2 , 3 , 4 , 4 , 4 , 5} ;

M1 := {2, 3, 4, 5}

[> M2:={x [ 1 ] , x [ 2 ] , x [ 3 ] } ;

M2 := {x1, x2, x3}

[> M3:={ seq ( i , i =4 . . 9 ) } ;

M3 := {4, 5, 6, 7, 8, 9}

6.2.2. Elementare Mengenoperationen

Schnitt und Vereinigung zweier Mengen können mit dem Befehl intersect bzw. uniondurchgeführt werden.

[> M1 i n t e r s e c t M3;

{4, 5}

[> M1 union M3;

{2, 3, 4, 5, 6, 7, 8, 9}

Um zu prüfen ob bestimmte Elemente in einer Menge enthalten sind nutzt man die is()-Prozedur, für Teilmengen den Befehl subset.

[> i s (4 in M3) ;

true

[> {{3 ,4}} subset M1;

false

10

Page 14: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Die Anzahl der Elemente einer Menge erhält man mit der Prozedur nops().

[> nops (M3) ;

6

6.3. Punkte, Geraden und EbenenGeometrische Objekte wie zum Beispiel Polygone, Ebenen oder Würfel können in Mapleauch erstellt werden Dabei muss man für zweidimensionale Geometrie das Paket geome-try und für dreidimensionale Geometrie das Paket geom3d laden. Diese Pakete beinhaltenviele Prozeduren von denen wir nur einige wenige in diesem Abschnitt besprechen.

6.3.1. 2D Punkte und Geraden erstellen

Zunächst lädt man geometry mit dem Befehl with(geometry).

[> with ( geometry ) :

Dann kann man die Prozedur point() nutzen um Punkte zu definieren. Dabei steht imersten Argument der Name der neuen Variable und im zweiten die gewünschten Koordi-naten

[> point (P1 , [ 0 , 0 ] ) ; po int (P2 , [ 1 , 1 ] ) ;

Geraden werden dann entweder mithilfe zweier Punkte oder der Geradengleichung mitline() erstellt. Hierbei muss man am Ende noch definieren, welchen Namen die Koordina-tenachsen haben sollen. Diese Namen werden dann bei der erstellung der Geradengleichungverwendet.

[> l i n e ( g1 , [ P1 , P2 ] , [ x , y ] ) ; l i n e ( g2 , x−y , [ x , y ] ) ;

6.3.2. 3D Punkte und Geraden erstellen

Hierzu lädt man mit with(geom3d) das benötigte Paket.

[> with (geom3D ) :

Das Erstellen von Punkten erfolgt dann wie im zweidimensionalen Fall. Bei Geraden musshier aber die Parameterdarstellung angegeben werden!

[> point (P1 , [ 0 , 0 , 0 ] ) ; po int (P2 , [ 1 , 1 , 1 ] ) ; po int (P3 , [ 1 , − 1 , 3 ] ) ;

[> l i n e ( g1 , [ P1 , P2 ] ) ; l i n e ( g2 , [ t , t , t ] , t ) ;

11

Page 15: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Mithilfe dreier Punkte oder der Ebenengleichung kann man den Befehl plane() nutzen,um Ebenen zu erstellen.

[> plane ( e1 , [ P1 , P2 , P3 ] , [ x , y , z ] ) ; p lane ( e2 , 4∗x−2∗y−2∗z , [ x , y , z ] ) ;

6.3.3. Einige Prozeduren im geometry- und geom3d-Paket

Im Folgenden wird angenommen, dass diese Variablen vorhanden sind:

[> with ( geom3d ) :[> point (P1 , [ 3 , 5 , − 6 ] ) :[> l i n e ( g1 , [ t , 3∗ t+4 ,2∗ t ] , t ) :[> plane ( e1 , 4∗x−2∗y−2∗z , [ x , y , z ] ) :

Den Inhalt eines geomentrischen Objekts kann man sich mit detail() anzeigen lassen.

[> d e t a i l ( e1 ) ;

name of the object e1form of the object plane3d

equation of the plane 4x− 2y − 2z = 0

Der Befehl distance() gibt den Abstand zweier Objekte aus.

[> d i s t anc e (P1 , e1 ) ;

76√

6

Die Koordinaten eines Punktes kann man mit coordinates(), die Gleichung bzw. Para-meterform einer Geraden oder Ebene kann mit Equation() ausgelesen werden.

[> coo rd ina t e s (P1 ) ;[> Equation ( g1 , t ) ;[> Equation ( e2 , [ x , y , z ] ) ;

[3, 5,−6][t, 3t+ 4, 2t]

4x− 2y − 2z = 0

12

Page 16: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Den Winkel zwischen zwei Geraden oder einer Geraden und einer Ebene kann man mitFindAngle() bestimmen.

[> FindAngle ( g1 , e1 ) ;

− arcsin( 114√

21)

Projektionen von Punkten auf Geraden oder Geraden auf Ebenen erzeugt der Befehlprojection(). Hier ist P2 die Projektion von P1 auf die Ebene e1.

[> p r o j e c t i o n (P2 , P1 , e1 ) : c oo rd ina t e s (P2 ) ;

[23 ,

376 ,−

296

]

6.4. Vektoren und MatrizenVektoren können mit dem Befehl Vector(), Matrizen mit dem Befehl Matrix() erzeugtwerden. Eine Alternative dazu ist die Abkürzung mit den kleiner/größer Zeichen „<“ oder„>“.Verschiedene Prozeduren wie das Berechnen von Determinanten oder Eigenwerten findetman im Paket LinearAlgebra.

6.4.1. Vektoren und Matrizen erstellen

Der Inhalt von Vektoren und Matrizen kann eine beliebige, der schon besprochenen Va-riablentypen, sein. Dabei wird der Inhalt von Vektoren in eckigen Klammern übergeben.

[> v1:=Vector ( [ 1 , 2 , 3 ] ) ; #1. Mög l i chke i t[> v1 :=<2 ,3 ,3>; #2. Mög l i chke i t

123

13

Page 17: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Schreibt man nur eine Zahl in Vector() so erhält man einen Nullvektor.

[> v2:=Vector ( 3 ) ;

000

Mit der zusätzlichen Option shape kann man dem Vektor eine bestimmte Form geben.Hier wird damit ein konstanter Vektor erstellt.

[> v3:=Vector (3 , shape=constant [ 2 ] ) ;

222

Bei der Matrix werden die Zeilen in eckigen Klammern angegeben und mit Kommas ge-trennt. Achtung: Bei der alternativen Schreibweise gibt man die Spalten an, und trenntdiese durch ein „|“ !

[> A1:=Matrix ( [ [ 1 , 2 ] , [ 3 , 4 ] ] ) ; #1. Mög l i chke i t[> A1:=<<1,3>|<2,4>>; #2. Mög l i chke i t

[1 23 4

]

Schreibt man nur eine Zahl in Matrix() so erhält man eine Nullmatrix.

[> A2:=Matrix ( 2 ) ;

[0 00 0

]

14

Page 18: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Mit der Option shape=identity kann man eine Einheitsmatrix erstellen.

[> A3:=Matrix (3 , shape=i d en t i t y ) ;

1 0 00 1 00 0 1

Zuletzt kann man Matrizen aus anderen Matrizen und Vektoren zusammensetzen.

[> A4:=Matrix ( [ A3 , v3 ] ) ;

1 0 0 20 1 0 20 0 1 2

6.4.2. Auf den Inhalt von Vektoren und Matrizen zugreifen

Gibt man in runden Klammern hinter dem Namen eines Vektors oder einer Matrix denZeilen- oder Spaltenindex an, so wird der Inhalt der Zelle ausgegeben. Der Inhalt kann imgleichen Zug auch ausgewertet werden. Als Beispiel wird hier eine 2 × 2-Matrix erstellt,die eine Mengen und eine Funktionen enthält.

[> A:=Matrix ( [ [ 5 , { 4 , 5 , 6 } ] , [ x−>s in (x ) , 4 ] ] ) ;

[5 {4, 5, 6}

x→ sin(x) 4

]

Das zweite Element der Menge und der Wert von sin(x) an der Stelle π2 kann dann mit

folgenden Anweisungen ausgewertet werden.

[> A( 1 , 2 ) [ 2 ] ;[> A(2 , 1 ) ( Pi / 2 ) ;

51

15

Page 19: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Das Zuweisen neuer Werte in bestimmte Matrix-Zellen erfolgt ebenfalls mit dem Index inrunden Klammern. Dabei kann die Matrix auch um Zeilen oder Spalten erweitert werden!

[> A(2 , 2 ) :=17 ;[> A(1 , 3 ) :=7 ;

[5 {4, 5, 6}

x→ sin(x) 17

][

5 {4, 5, 6} 7x→ sin(x) 4 0

]

6.4.3. Rechnen mit Vektoren und Matrizen

Hier wird wieder angenommen, dass folgende Variablen definiert sind:

[> with ( LinearAlgebra ) :[> v:=Vector ( [ 2 , −1 , 3 ] ) :[> A:=Matrix ( [ [ 2 , − 1 , 1 ] , [ − 3 , 4 , 1 ] , [ 3 , 4 , 5 ] ] ) :[> B:=Matrix ( [A, v ] ) :

Möchte man Zahlen mit Matrizen multiplizieren, so muss man das Asteriskzeichen „*“nutzen. Bei der Matrix- bzw. Vektormultiplikation muss man einen Punkt „.“ setzen.Sobald bei einer Vektormultiplikation wie v.v die Dimensionen nicht übereinstimmen,wird automatisch das Skalarprodukt berechnet.

[> v . v ; A. v ; A.A;

14 8−717

10 −2 6−15 23 6

9 33 32

16

Page 20: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Transponieren erfolgt mit dem Befehl Transpose() oder der Abkürzung „^+“ (Dach undPluszeichen).

[> Transpose (v ) ; v^+; B^+;

[2 −1 3

][2 −1 3

]

2 −3 3−1 4 41 1 52 −1 3

Um die Länge eines Vektors mit der p-Norm zu berechnen |v| := (v21 + . . .+ v2

n)1p , benö-

tigt man den Befehl Norm(v,p). Die Zeilensummennorm einer Matrix erhält man mitNorm(A).

[> Norm(v , 2 ) ; Norm(A) ;

√1412

Die Prozeduren Determinant() und Rank() geben die Determinante und den Rangeiner Matrix zurück.

[> Determinant (A) ; Rank(B) ;

−103

Eigenvalues() und Eigenvectors() werden genutzt um die Eigenwerte und Eigenvek-toren zu bestimmen. Die Eigenwerte werden dabei in einem Vektor ausgegeben. Bei denEigenvektoren werden die Eigenwerte als Vektor und dazu die Eigenvektoren als Spalteneiner Matrix ausgegeben.

17

Page 21: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

[> Eigenva lues (A) ; E igenvector s (A) ;

53−√

113 +√

11

3 +

√11

3−√

115

,

49

107 ·

−2+√

11(−1+

√11)(1+

√11)

107

−2−√

11(−1−

√11)(1−

√11)

−13 −1

7−13+3

√11

−1+√

11 −17−13−3

√11

−1−√

111 1 1

Die Anweisung MatrixInverse() berechnet die Inverse einer gegebenen Matrix.

[> Matr ixInverse (A) ;

−85 − 9

1012

−95 − 7

1012

125

1110 −1

2

7. Prozeduren für verschiedene Mathematische ThemengebieteFür viele mathematische Problemstellungen gibt es in Maple nützliche Pakete. Diese ent-halten Prozeduren, mit denen man die Lösung der Probleme bestimmen kann. Im folgen-den Abschnitt werden einige Aufgaben mit Maple gelöst.

7.1. Wichtige KonstantenDie Zahl π erhält man in Maple, wenn man Pi eingibt. PI und pi stehen für den griechi-schen Klein- bzw. Großbuchstaben p. Die komplexe Einheit i ist in Maple in der Konstan-ten I und Unendlich ∞ in der Konstanten infinity gespeichert.

7.2. Gleitkommadarstellung von LösungenDa Maple versucht exakt zu rechnen, erhält man oftmals Lösungen der Form

107 ·

−2 +√

11(−1 +

√11)(1 +

√11)

.

Welche Zahl sich hinter dem Ausdruck verbirgt, kann man in diesen Fällen nur schwerschätzen. Der Befehl evalf() gibt eine Näherung des Audrucks in Dezimaldarstellungzurück.

18

Page 22: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

[> e v a l f ( s q r t ( 2 ) ) ; e v a l f ( Pi ) ;

1.4142135623.141592654

In der Konstanten Digits ist die Anzahl der angezeigten Stellen gespeichert. Um dieAnzahl der Ziffern global zu ändern, muss man dieser Variablen nur den gewünschtenWert zuordnen. Soll bei einer einzelnen Auswertung eine andere Anzahl an signifikantenZiffern ausgegeben werden, so kann man dem evalf()-Befehl noch einen Index in eckigenKlammern übergeben.

[> D ig i t s :=15: e v a l f ( Pi ) ; e v a l f [ 3 ] ( Pi ) ;

3.141592653589793.14

7.3. Lineare AlgebraIn den Folgenden Abschnitten wird das Paket LinearAlgebra verwendet. Zusätzlich wer-den diese Variablen definiert:

[> with ( LinearAlgebra ) :[> eq1 :=x+2∗y−z−2:[> eq2 :=3∗x+y+2∗z−3:[> eq3 :=2∗x−2∗y+z−1:[> A:=Matrix ( [ [ 1 , 2 , 1 ] , [ 3 , 1 , 2 ] , [ 2 , − 2 , 1 ] ] ) :[> B:=Matrix ( [ [ 1 , 0 , 3 ] , [ 3 , −2 , −1 ] , [ 1 , −1 , 1 ] ] ) :[> b:=Vector ( [ 2 , 3 , 1 ] ) :

7.3.1. Lösen linearer Gleichungssysteme

Lineare Gleichungssysteme in Form der Matrixgleichung Ax = b können mit der Proze-dur LinearSolve() gelöst werden. Hat man die einzelnen Gleichungen gegeben, so findetsolve() die Lösung. Alternativ erhält man durch die Inverse mit x = A−1b das gesuchteErgebnis.

19

Page 23: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

[> LinearSo lve (A, b ) ; # 1 . Mög l i chke i t[> so l v e ( eq1=0, eq2=0, eq3=0 ,[x , y , z ] ) ; # 2 . Mög l i chke i t[> IA:=Matr ixInverse (A) : IA . b ; # 3 . Mög l i chke i t

−103

[[x = −1, y = 0, z = 3]]−1

03

7.3.2. Berechnen der Diagonalform/Jordanschen Normalenform einer Matrix

Die Jordansche Normalenform oder Diagonalform einer Matrix kann mit der ProzedurJordanForm() berechnet werden. Alternativ kann man mit Eigenvectors() die MatrixS aus Eigenvektoren nehmen und die Diagonalform D = S−1BS berechnen.

[> JordanForm (B) ; # 1 . Mög l i chke i t[> H i l f :=Eigenvector s (B) : S:= H i l f [ 2 ] : # 2 . Mög l i chke i t[> Matr ixInverse (S ) .B. S ;

−3 0 00 1 00 0 2

1 0 0

0 −3 00 0 2

7.3.3. Gram-Schmidt Orthogonalisierung

Die Prozedur GramSchmidt() bildet aus einer Liste von Vektoren eine Orthogonalbasis.

[> v1:=Vector ( [ 1 , 1 , 0 , 1 ] ) : v2:=Vector ( [ 0 , 1 , 0 , 1 ] ) :[> v3:=Vector ( [ 0 , 0 , 0 , 1 ] ) :[> GramSchmidt ( [ v1 , v2 , v3 ] ) ;

1101

,−2

313013

,

0−1

2012

20

Page 24: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

7.4. AnalysisFür die Berechnungen in diesem Kapitel muss kein zusätzliches Paket geladen werden.

7.4.1. Grenzwerte

Der Befehl limit() kann genutzt werden, um Grenzwerte von gegebenen Ausdrücken zuberechnen.Um den Grenzwert lim

n→∞(1 + 1

3n)n zu bestimmen, wird zunächst die Folge als Audruckgespeichert und dann mit limit() ausgewertet. Für den Grenzwert von Funktionenfolgengilt das Gleiche.

[> a [ n ] :=(1+1/(3∗n))^n :[> l im i t ( a [ n ] , n=i n f i n i t y ) ;

e13

Der Grenzwert einiger Reihen kann auch berechnet werden. Dazu verwendet man den Sum-

menbefehl sum() und wählt als obere Grenze infinity. Für die Reihe∞∑n=1

1n2 erhält man:

[> sum(1/n^2 ,n=1. . i n f i n i t y ) ;

16π

2

7.4.2. Partialbruchzerlegung

Um rationale Funktionen zu integrieren benötigt man oftmals die Partialbruchzerlegung.Diese kann mit dem Befehl convert(Abbildung, parfrac, Variable) gefunden werden. Alserstes Argument wird die Abbildung als Ausdruck übergeben und im dritten Argumentgibt man die Variable an, nach der man zerlegen möchte.

[> f :=2∗x/(x^3−5∗x+4):[> convert ( f , par f rac , x ) ;

− 1x− 1 + x+ 4

x2 + x− 4

7.4.3. Ableitungen und Integrale

Wie in Tabelle 2 zu sehen, gibt es für Ausdrücke und Funktionen verschiedene Befehle umAbleitungen zu berechnen. Ausdrücke werden mit dem Befehl diff(), Funktionen mit D()

21

Page 25: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

abgeleitet. Möchte man eine Funktion mehrerer Variablen partiell ableiten, oder höhereAbleitungen berechnen, so muss man diese unterschiedlich angeben.Als Beispielfunktion nehmen wir f : R→ R, (x, y) 7→ √xy.

In diff() gibt man die Variablen nach der Funktion an. Im Beispiel wird ∂fx2y3 berechnet.

Durch x$2 wird in Maple die Folge x, x erstellt. Damit kann man sich Schreibarbeit sparen.

[> f := sq r t ( x∗y ) :[> d i f f ( f , [ x , x , y , y , y ] ) ; # 1 . Mög l i chke i t[> d i f f ( f , x$2 , y$3 ) ; # 2 . Mög l i chke i t

10532

y2x3

(xy)92− 45

8yx2

(xy)72

+ 94

x

(xy)52

Bei Funktionen sind die Variablen nach ihrer Reihenfolge durchnummeriert. In unseremBeispiel ist x die 1. und y die 2. Varible. Dementsprechend gibt man vor der Klammer beiD() in eckigen Klammern die partielle Ableitung an.

[> f :=(x , y)−>sqr t ( x∗y ) :[> D[ 1 , 1 , 2 , 2 , 2 ] ( f ) ; # 1 . Mög l i chke i t[> D[1 $2 , 2 $3 ] ( f ) ; # 2 . Mög l i chke i t

(x, y)→ 10532

y2x3

(xy)92− 45

8yx2

(xy)72

+ 94

x

(xy)52

Unbestimmte und bestimmte Integrale können mit der Prozedur int() berechnet wer-den. Die Abbildung muss dabei als Ausdruck übergeben werden. Bei Mehrfachintegralenwerden die Variablen wieder in eckigen Klammern angegeben.

[> f := sq r t ( x∗y ) :[> in t ( f , [ x , x , y ] ) ;

845yx

2√xy

Für bestimmte Mehrfachintegrale muss man für jedes Integral die oberen- und unterenGrenzen angeben.

[> f := sq r t ( x∗y ) :[> in t ( f , [ x=1. .2 , x=2. .3 , y = 1 . . 2 ] ) ;

4− 169√

2

22

Page 26: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

7.5. Gewöhnliche DifferentialgleichungenEine stetige Abbildung ist vollständig durch das Änderungsverhalten auf ihrem Definiti-onsbereich und einem bekannten Funktionswert definiert. Diese Tatsache für gewöhnlicheDifferentialgeichungen erster Ordnung wird dann auf Differentialgleichungen höherer Ord-nung erweitert.Um diese Gleichungen in Maple zu lösen, muss man zunächst die Differentialgleichung alsAusdruck speichern und kann dann die Lösung mithilfe der Prozedur dsolve() finden.

[> DGL:= d i f f ( x ( t ) , t )+3∗x ( t ) :[> dso lve ( [DGL=0,x ( 0 )=1 ] ) ;

x(t) = e−3t

7.6. IntegraltransformationIntegraltransformationen können dazu genutzt werden, schwierige Probleme zu vereinfa-chen. Zum Beispiel wird ein lineares Differentialgleichungssystem im Originalraum durchTransformation zu einem linearen Gleichungssystem im Bildraum. Die Lösung des Linea-ren Systems kann dann mit bekannten Methoden gefunden werden. Anschließend wird dieLösung in den Originalraum zurücktransformiert. Die rücktransformierte Lösung, ist dannLösung des ursprünglichen Differentialgleichungssystems.Meist ist die Rücktransformation nur numerisch möglich. Im 3. Semester werdet ihr dieFourier- und Laplacetransformation kennen lernen. Das Paket inttrans beinhaltet dieProzeduren dafür.Die Transformationen und Rücktransformationen werden mit fourier(), invfourier(),laplace() und invlaplace() durchgeführt werden.

Fouriertransformation:

[> with ( i n t t r an s ) :[> f :=exp (2∗x)+3∗x :[> F:= f o u r i e r ( f , x , s ) ;[> i n v f o u r i e r (F , s , x ) ;

6IπDirac(1, s) + fourier(e2x, x, s)e2x + 3x

23

Page 27: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Laplacetransformation:

[> with ( i n t t r an s ) :[> f :=exp (2∗x)+3∗x :[> F:= l ap l a c e ( f , x , s ) ;[> i nv l ap l a c e (F , s , x ) ;

1s− 2 + 3

s2

e2x + 3x

8. Graphische Darstellung und AnimationenErstellt man in Maple mit den Befehlen plot() und plots[animate]() eine Zeichnungoder Animation, so wechselt die Werkzeugleiste, nachdem man das jeweilige Objekt mit derMaus markiert hat, auf den Reiter Plot oder Animation. Die Werkzeugleiste bietet dannverschiedene neue Optionen an, womit man die Ansicht der Zeichnung oder Animationändern kann.

8.1. ZeichnungenFür zwei- oder dreidimensionale Zeichungen in Maple sind die Prozeduren plot() bzw.plot3d() zuständig. Übergibt man den Befehlen alleine die Funktion als Ausdruck, sowird die Zeichnung mit voreingestellten Optionen dargestellt.

8.1.1. 2D- Plot

Die Angabe der Eingabewerte geschieht wie folgt:

[> plot([1.Funktion, 2.Funktion, . . . ], 1.Option, 2.Option, . . . );

Die Funktion wird als Ausdruck übergeben, dabei ist es möglich diese in Gleichungs- oderParameterform anzugeben.

# Funktion durch Gleichungsform angeben[> p lo t ( x ^2 ) ;# Funktion durch Parameterform angeben[> p lo t ( [ t , t ^2 , t = −10 . .10 ] ) ;

24

Page 28: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Abbildung 2: Zeichnung mithilfe Parameter- bzw. Gleichungsform

Möchte man die Koodrinatenachsen auf Intervalle [a, b] beschränken, so kann man diesmit der Option Variable=a..b erreichen. Zeichnet man mehrere Funktionen, so kann mandiese einfärben. Die color-Option sieht wie folgt aus: color=[red,green,blue]. WeitereOptionen findet man in der Maple-Hilfe unter plot/options.

[> r1 :=16∗ s i n ( t )^3 ;[> r2 :=13∗ cos ( t )−5∗ cos (2∗ t )−2∗ cos (3∗ t)−cos (4∗ t ) ;[> p lo t ( [ [ r1 , r2 , t =−5. .5] , t ] , t =−20..20 , c o l o r =[ red , green ] ) ;

Abbildung 3: Zeichnung mit mehreren Optionen

8.1.2. 3D- Plot

Bei plot3d() ist es auch wieder möglich die Funktionen in Parameter- oder Gleichungsformanzugeben. Dabei muss man beachten, dass die gemischte Angabe nicht mehr möglichist. Das heißt, man muss sich auf eine Form beschränken. Auch müssen der Prozedurmindestens drei Eingabeparameter übergeben. Der Wertebereich für die Urbildvariablenwird hier nicht automatisch gewählt. Diese werden in jeder Zeichnung durch Variable=a..b

25

Page 29: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

angeben. In früheren Maple-Versionen wird das Koordinatensystem nicht automatischangezeigt. Um dieses zu aktivieren, muss man die Option axes=Boxed hinzufügen.

# Funktion durch Gleichungsform angeben[> plot3d (x^2+y^2 ,x=−4..4 ,y=−4..4 , axes=Boxed ) ;# Funktion durch Parameterform angeben[> plot3d ( [ x , y , x^2+y^2 ] , x=−4..4 ,y=−4..4 , axes=Boxed ) ;

Abbildung 4: Zeichnung mithilfe Parameter- bzw. Gleichungsform

Als zusätzliche Option kommt hier nur style=Option hinzu. Damit kann man Kontur-zeichnungen erstellen oder Oberflächen in unterschiedlichen Stilen ausgeben.

# Funktion durch Gleichungsform angeben[>plot3d (x∗exp(−x^2−y^2) , x=−2..2 ,y=−2..2 , s t y l e=contour ,contours=30, axes=Boxed ) ;

Abbildung 5: Konturzeichnung mithilfe der style-Option

26

Page 30: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

8.2. AnimationenEine Animation wird aus vielen einzelnen Zeichnungen erstellt. Dies wird möglich, wennman zum Beispiel einen Parameter an seine Funktion multipliziert und diese dann fürverschiedene Parameterwerte zeichnet. plots[animate]() benötigt folgende Eingabewerte:

[> p l o t s [ animate ] ( p l o t oder 3 dplot , [ Angaben zum Plot ] ,Parameterwerte , Optionen ) ;

Nachdem man den Bereich für den Parameter angegeben hat, kann man die Anzahl dererstellten Bilder mit der Option frames=Anzahl festlegen.Im Folgenden werden noch zwei Beispiele angegeben:

# 1 . B e i s p i e l : S inus zur Amplitude A[> p l o t s [ animate ] ( p lot , [A∗ s i n ( x ) , x=−4. .4] ,A=−3..3 , frames =50);

Abbildung 6: Die Sinus-Funktion mit unterschiedlichen Amplituden

# 2 . B e i s p i e l : Parabolo id mu l t i p l i z i e r t mit dem Parameter A[> p l o t s [ animate ] ( plot3d , [A∗( x^2+y^2) , x=−5..5 ,y=−5. .5] ,A=−3..3 , axes=Boxed ) ;

27

Page 31: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

− 150− 150

− 4− 4− 4− 4

− 100− 100

− 2− 2− 2− 2

− 50− 50

y xxy 0000

00

2222

4 44 4

5050

100100

150150

Abbildung 7: Zeichnung eines Paraboloiden zu unterschiedlichem Parameter A

9. Programmieren in MapleWie in anderen Programmiersprachen, sind die gewohnten Schleifen und Verzweigungenauch in Maple vorhanden. Deren Syntax betrachten wir in den letzten beiden Unterab-schnitten. Im Gegensatz zu vielen Programmiersprachen, müssen keine Variablentypenangegeben werden. Auch muss kein Speicherplatz für Variablen, wie zum Beispiel in ei-ner Schleife größer werdende Vektoren, vorbelegt werden. Um die Geschwindigkeit vonProgrammen zu beschleunigen ist dies aber empfehenswert.

9.1. Einlesen von DatenOftmals erhält man von Firmen Messergebnisse aus Versuchsreihen, in Form von Textda-teien. Diese enthalten dann Tabellen mit den verschiedenen Testeinstellungen, Parameternund numerischen Ergebnissen. Um die Zahlenwerte aus Textdateien in Maple einzulesenverwendet man die Prozedur readdata(Dateipfad, Format, Anzahl der Spalten).

• Dateipfad - Liegt die einzulesende Datei im gleichen Ordner wie die Maple-Datei, somuss man nur den Namen der Datei angeben.Auf einigen Rechnern funktioniertdas einlesen vom aus Desktop nicht!

• Format - Hier wird angegeben, als welcher Datentyp die Daten gespeichert werdensollen. Hierbei gibt es die Typen integer für Ganzzahlen, float für Gleitkommazah-len oder string für Zeichenketten. Dabei kann in eckigen Klammern für jede Spalteein eigener Datentyp angegeben werden.

• Anzahl der Spalten - Die Textdatei wird von links nach rechts und von oben nach un-ten nach Zahlenwerten durchsucht. Je nachdem wieviele Spalten man angibt, werdendie Daten dann in eine Liste eingetragen.

28

Page 32: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Als Beispiel wurde eine Textdatei namens Daten.txt mit folgendem Inhalt erstellt:

Eingabewerte Parameter Ergebn i s se1 1 501 2 552 1 552 2 70

Die Daten können dann mit readdata() ausgelesen und in eine Variable A gespeichertwerden.

[> A:= readdata ( " Daten . txt " , 3 ) ;

[[1., 1., 50.], [1., 2., 55.], [2., 1., 55.], [2., 2., 70.]]

Möchte man eine eigene Liste als Text-Datei Speichern, so gibt es dafür den Befehl wri-tedata(Dateipfad, Liste, Format).

[> A: = [ [ 1 , 2 ] , [ 3 , 6 ] , [ 8 , 9 ] ] :[> wr i tedata ( " Ergebnis . txt " ,A) ;

9.2. Eigene Prozeduren erstellenDer Aufbau von Prozeduren ist ähnlich zu den Funktionen in C. Die Anweisungen könnenin einer oder mehreren Zeilen geschehen. Dabei muss man Umschalt + Eingabe nutzenum in die nächste Zeile zu gelangen. Einrückungen von Programmblöcken um die Prozedurübersichtlicher zu gestalten, funktioniert in Maple nur mit dem Leerzeichen.

[> Prozedurname:=proc(Eingabevariable1, Eingabevariable2, . . . )...

Anweisungen die ausgeführt werden sollen....

return Ausgabevariable1, Ausgabevariable2, . . . ;end proc;

Ein kleines Beispiel ist folgende Prozedur, die den Namen AddiereEins hat. Gibt es keineFehler im Programm, so wird die Prozedur von Maple einfach wieder ausgegeben.

[> AddiereEins :=proc (x )re turn x+1;end proc ;

proc(x) returnx+ 1 endproc

29

Page 33: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Schreibt man in einem Maple-Dokument eine Prozedur, so kann man diese im gleichen Do-kument verwenden. Dazu setzt man den gewünschten Wert am Ende des Prozedurnamensin runde Klammern.

[> AddiereEins ( 2 ) ;

3

Innerhalb der Prozeduren sind alle Variablen des Maple-Dokuments unbekannt. Um mitneuen Variablen in einer Prozedur zu arbeiten, muss man lokale Variablen mit dem Befehllocal Variable1, Variable2, . . . am Anfang der Prozedur definieren.Im nächsten Beispiel wird die Primfaktorzerlegung einer ganzen Zahl x durchgeführt. DasErgebnis wird dann mit dem Befehl print() ausgegeben. print() gibt nur die jeweili-gen Ausdrücke mit Komma getrennt aus. Für eine besser formatierte Ausgabe kann manprintf() nutzen.

[> Primfaktor :=proc (x )l o c a l PFaktor , Anzahl ;PFaktor := i f a c t o r ( x ) ;Anzahl :=nops ( Pfaktor ) ;p r i n t ( " Anzahl der Primfaktoren : " , Anzahl ) ;p r i n t ( " Primfaktoren : " , Pfaktor ) ;end proc ;

[> Pr in f ak to r ( 4 7 4 ) ;

”Anzahl der Primfaktoren:”, 3”Primfaktoren:”, (2)(3)(79)

Um Prozeduren abzuspeichern damit sie in anderen Dokumenten nutzbar sind, werden dieBefehle save(Prozedur1, Prozedur2, . . . , Dateipfad) und read(Dateipfad) verwendet. Zurschnelleren Verarbeitung innerhalb von Maple sollte man diese Dateien unter der Endung„.m“ speichern. Möchte man die obige Prozedur Primfaktor als Datei speichern und ineinem anderen Dokument wieder benutzen, so sehen die Befehle so aus:

[> save ( Primfaktor , " Prim .m" )

[> read ( " Prim .m" ) ;

9.3. SchleifenSchleifen werden genutzt um Anweisungen mehrfach auszuführen. Dabei können sich dieAnweisungen, abhängig von einer Zählvariablen, in jedem Schritt verändern. Die typi-schen for- und while-Schleifen sind in Maple nicht getrennt. Die while-Bedingung oderAbbruchbedingung wird in die for-Schleife hineingefügt.Der allgemeine Aufbau einer Schleife sieht in Maple wie folgt aus:

30

Page 34: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

[> for Zählvariable from Anfangswert by Schrittweite to Endwert while Bedingungdo

...Anweisungen die ausgeführt werden sollen.

...end do;

Nicht alle Anweisungen der ersten Zeile müssen auch genutzt werden. Im nächsten Beispielwollen wird die Zählvariable in jedem Schritt ausgegeben.

[> f o r n from 1 to 3don ;end do ;

123

Die mit by angegebene Schrittweite kann auch negativ sein!

[> f o r n from 3 by −1 to 1don ;end do ;

321

Und zuletzt kann man sich die Zählvarible bis zu einer bestimmten Zahl ausgeben lassen.Dazu nutzen wir die Bedingung while(n<5) („solange n kleiner 5“).

[> f o r n from 2 whi le n<5don ;end do ;

234

31

Page 35: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

9.4. VerzweigungenWird im Programm eine Fallunterscheidung benötigt, so kann man die if -Verzweigungverwenden. In Maple hat sie folgende Form:

[> if 1.Bedingung then 1.Anweisungelif 2.Bedingung then 2.Anweisungelse 3.Bedingungend if

Als Beispiel wird in einer Variablen x der Wert −1 gespeichert und überprüft ob der Wertnegativ oder positiv ist. Dann wird je nach Fall das Wort „negativ“, „positiv“ oder „nichtdefiniert“ ausgegeben.

[> x :=1;[> i f x<0 then pr i n t ( " negat iv " )

e l i f x>0 then pr in t ( " p o s i t i v " )e l s e p r i n t ( " n i cht d e f i n i e r t " )end i f ;

”negativ”

9.4.1. Bedingungen

Mehrere Bedingungen innerhalb einer while()- oder if()-Anweisung können mit logischenOperatoren Verknüpft werden. Dabei steht and für das logische UND ∧, or für das logischeODER ∨ und not für das logische NICHT ¬.

32

Page 36: Arbeiten mit Maple - hsrm-mathematik.dehsrm-mathematik.de/WS201516/semester1/Maple_Einfuehrungskurs… · 2. PolynomeinComputeralgebrasystemen Eine mathematische Struktur die in Algebrasystemen

Literatur[1] Maplesoft, a division of Waterloo Maple Inc. Maple User Manual, 2015.

33