206 77 33MB
German Pages 540 [565] Year 2010
Maple 7
Rechnen und
Programmieren
von
Alexander Walz
2., vollständig überarbeitete Auflage
Oldenbourg Verlag München Wien
Die Deutsche Bibliothek CIP-Einheitsaufnahme -
Walz, Alexander:
Maple 7
:
Rechnen und
Programmieren / von Alexander Walz.
2., vollst. Überarb. Aufl.. München ; Wien
Oldenbourg,
2002 ISBN 3-486-25542-8
-
:
-
© 2002 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D-81671 München Telefon: (089) 45051-0
www.oldenbourg-verlag.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Martin Reck, Irmela Wedler Herstellung: Rainer Haiti
Umschlagkonzeption: Kraxenberger Kommunikationshaus, München
Gedruckt auf säure- und chlorfreiem Papier Druck: Grafik + Druck, München Bindung: R. Oldenbourg Graphische Betriebe Binderei GmbH
Inhaltsverzeichnis Vorwort
.15 Maple .15
Zweck und Aufbau dieses Buches .15 Die 2. Auflage .16
Danksagungen .17 Teil 1
Mathematik mit
1 1.1 1.2 1.3
Das Arbeitsblatt .21 Die Benutzeroberfläche .23 Gestaltung von Arbeitsblättern .37
2
2.1 2.2 2.3 2.4 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.7 2.8 2.9 2.9.1 2.9.2 2.9.3
2.9.4 2.9.5
Maple
Bedienung von Maple 7 .21
Rechnen und Arbeiten mit Maple .47 Grundrechenarten .47
Fließkommaberechnungen .49 Symbolische Ausdrücke .51 Ergebnisspeicher.52
Weitere Eingabekonventionen .53 Groß-und Kleinschreibung .53 Leerzeichen in Ausdrücken .54 Mehrere Anweisungen in einer Eingaberegion .54 Verteilen über mehrere Zeilen .55 Variablen .55 Zuweisungen .55 Löschen von Werten .57 Rücksetzen von Maple .58 .
Auswertungsregeln .59
Funktionsdefinition .62 Hilfefunktionen .68 Typische Anwenderfehler .68
Syntaxfehler.68 Semantikfehler.69 Missachtung mathematischer Prioritäten .70 Tippfehler .71 Ditto .71
6_Inhaltsverzeichnis 2.9.6 2.9.7 2.9.8
Zuweisungen .72 Der Doppelpunkt .73 Verwechselung zwischen Funktionen in Pfeilnotation und
Termen .74
3 3.1 3.2 3.3 3.4 3.5 3.5.1 3.5.2 3.6 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.7 3.8 3.9 4 4.1 4.2 4.3 4.4 4.4.1
4.4.2 4.4.3
Grundlagen .77
Mathematische Funktionen .77 Vordefinierte Konstanten .78 Exponentialschreibweise .79 Prioritäten mathematischer Operationen .79 Kurznamen für Funktionen und Befehle .81 Makros .81 Aliase .82 Ausdrücke und Datenstrukturen .84 Ausdruck .84 Bereiche .84
Folgen .85
Listen .86
Mengen .87
Datentypen.88 Auswahl von Teilausdrücken .90 Die map-Funktion .94
Umformungen, Vereinfachungen und Lösungen .97 Rechnen mit Polynomen .97 Quotienten .104
Vergleich von Ausdrücken .108 Annahmen und Vereinfachungen .110
Annahmen .111 Zusammenfassungen mittels combine .116 Vereinfachungen mittels simplify .117 Setzen
von
.118
4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.5
Potenzen
4.5.1
Darstellung und Umformungen .128 Lösung von Gleichungen .129
4.5.2 4.6 4.7 4.8 4.8.1
Wurzeln .120
Logarithmen .122 Trigonometrische Ausdrücke .123 Einschränkung auf die reelle Zahlenebene .126 Gleichungen .128 .138 Ungleichungen Gleichungssysteme .139 .
Substitution von Ausdrücken .140 subs .140
7
Inhaltsverzeichnis 4.8.2 4.8.3 4.8.4 4.9 4.10 4.11 4.12 5 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8
5.1.9 5.1.10 5.1.11 5.1.12 5.1.13 5.1.12 5.1.13 5.1.14 5.1.15 5.1.16
5.1.17 5.1.18 5.1.19 5.1.20 5.1.21 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.3
algsubs .142 eval .144 subsindets .145 Manuelle Lösung von Gleichungen .146 Punkt-Richtungsform und Schnittpunkte von Geraden.148 Komplexe Zahlen .150 Rechnen mit Einheiten in Maple 7 .152 Graphik .155 Graphiken .155 Smartplots .155 Die plot-Anweisung .158 Graphik-Menübefehle .159 Plotoptionen.161
Zweidimensionale
.163 Linienarten.164 Farben .165 Koordinatenachsen
Punkte: Stile und
Symbole .166 .168 Beschriftungen Mehrere Mehrere
Graphen mit plot zeichnen .170 Graphen mit plots/display zeichnen .171 Plotoptionen für alle Graphiken vordefinieren .173 Platzierung von Texten .174
Gitternetz .176 Punkte
.178
Tangenten .179 Implizite Funktionen .179 Parametrische Kurven .183 Kurven in Polarkoordinaten .184 Logarithmische Plots .186
Vektorfelder.187
Ungleichungen .188
Animation .190 Dreidimensionale Graphiken .192 Der plot3d-Befehl .192 Flächen aus Punktkoordinaten.198 Flächen in Kugelkoordinaten .199 Implizite Funktionen .200 Kurven im Raum .201 Animationen in 3D .203 Vordefinition von 3D-Plotoptionen.203 Einsatz von display .204 Abspeicherung von Graphiken .204
8_Inhaltsverzeichnis 6 6.1 6.1.1 6.1.2 6.2 6.3 6.4 6.5 6.6 6.6.1
6.6.2 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.9 6.9.1 6.9.2 6.9.3
6.9.4 6.9.5 6.9.6 6.9.7 6.10 6.10.1 6.10.2 6.10.3 6.10.4 6.10.5 6.10.6 6.10.7 6.11 6.11.1 6.11.2 6.12 6.13 6.13.1 6.13.2 6.13.3
6.13.4 6.13.5
Analysis .207 Verknüpfung von Funktionen .207 Verknüpfung durch Grundrechenarten .207 Verknüpfung durch Verkettung.208
Fakultäten und Binomialkoeffizienten .209 Symmetrie von Funktionen .210 Grenzwerte .211
Stetigkeit .215 Folgen reeller Zahlen .217 Explizit gebildete Folgen .217 Implizit gebildete Folgen .222
Summen, Reihen und Produkte .224 Partialsummen .224 Unendliche Reihen .226 Grenzwerte unendlicher Reihen .226
Produkte.227 Träge Kommandos .227
Differentiation .228 Ableitungen mit diff .228 Extrem-und Wendestellen .231 Monotonieverhalten .232
Differentialoperator D .233 Partielle Ableitungen .234 Differentiation impliziter Funktionen .237 Differentiation von Vektoren
.238
Integration .239
Unbestimmte und bestimmte Integrale .239 Numerische Integration .240
Uneigentliche Integrale .242 Integrationsmethoden .244 Mehrfachintegrale .247 Flächenprobleme .247 Anwendung: Berechnung der Bogenlänge einer Kurve .250 Reihenentwicklung .252
Potenzreihen .252 Fourier-Reihen .256 Stückweise definierte Funktionen .257 Gewöhnliche Differentialgleichungen .259 Symbolische Lösungen. .259 Numerische Lösungen .264
Reihenentwicklung .265 Systeme von Differentialgleichungen .266 Graphische Darstellung .267
9
Inhaltsverzeichnis 7 7.1 7.2 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5
7.3 7.4 7.5
Lineare Algebra, Analytische Geometrie und Kombinatorik ...271 Vektoren .271
Matrizen.280 Matrixdefmition.280 Matrixmanipulationen .283 Fundamentale Matrixarithmetik .287 Lineare Gleichungssysteme in Matrizenfotm .290 Eigenwerte und -vektoren .293 Geometrie der Ebene .297 Geometrie des Raumes .303
Kombinatorik.308
8 8.1 8.2 8.3
Beschreibende Statistik .311 Darstellung statistischer Werte .311
Teil 2
Die
9 9.1 9.2 9.3
Die Programmiersprache Maple .319 Allgemeines .319 Eigenschaften der Programmiersprache Maple .320
10 10.1 10.2 10.3
Bezeichner
11 11.1 11.2
12 12.1 12.1.1 12.1.2 12.1.3 12.1.4 12.1.5 12.2
Häufigkeitsverteilung .312
Kennwerte .314
Programmiersprache Maple
Begriffsbestimmungen
.321
.323 Variablen .323
Datentypen.326 Schutz von Bezeichnen!
.329
Ausgabebefehle .331 Unformatierte Ausgabe mit print und lprint .331 Formatierte Ausgabe mit printf .332
Bedingungen .337 if-Anweisung .337
Die
if-then-Konstruktion.338
if-then-else-Konstruktion
.339
if-then-elif-[else]-Konstruktion .340 Auswertung von if-Anweisungen .342 Die'if-Funktion .344 Boolesche Operatoren .345
10
Inhaltsverzeichnis
13 13.1 13.2 13.3 13.4 13.5 13.6 13.7
Schleifen .347 Allgemeines .347 for/from-Schleifen .349 Gekürzte for/from-Schleifen .353 for/in-Schleifen .354 while-Schleifen .354 Kombinierte for/while-Schleifen .356 Sprungbefehle für Schleifen .357
14 14.1 14.1.1 14.1.2 14.1.3 14.1.4 14.1.5 14.2 14.2.1 14.2.2 14.2.3
Strukturierte
14.2.4 14.2.5 14.2.5.1
14.2.5.2 14.2.5.3 14.2.5.4 14.2.5.5 14.2.5.6 14.2.6 14.2.7 14.3 14.3.1 14.3.2 14.3.3 14.3.4 14.3.5 14.3.6 14.3.7 14.3.8 14.3.9 14.4 14.4.1 14.4.2
Datentypen .361 Folgen .361 Grundsätzliches .361
Zugriff auf Elemente .362 Erzeugung mittels seq und $ .363 Erweiterung .365 Leerfolgen .366 Listen und Mengen .366
Grundsätzliches .366 Zugriff auf Elemente .367 Anzahl der Elemente .369 Prüfung auf Elemente .369
Listen .370 Austausch von Elementen .370 Löschen von Elementen .371
Schachtelung .372 Sortierung .373
Leere Listen .374
Anwendung von Rechenoperationen .375 Mengen .375 Umwandlungen zwischen Listen und Mengen .377 Tabellen .377 Grundsätzliches .377
Explizite Erzeugung .378 Zugriff .379 Löschung .380 Implizite Erzeugung .380 Indizes und Einträge .381 Mehrdimensionale Tabellen .381 Interne Verwaltungsinformationen .383 Speichermanagement: Referenzen .383 Felder .385
Grundsätzliches .385 Erzeugung & Zuweisung von Werten .385
Inhaltsverzeichnis 14.4.3 14.4.4 14.4.5 14.4.6 14.5
14.5.1 14.5.2 14.5.3 14.5.4 14.5.5 14.5.6 15 15.1 15.2 15.3 15.4 15.4.1 15.4.2 15.4.3 15.4.4 15.5 15.6 15.7 15.8 15.9 15.10 15.11 15.12 15.12.1 15.12.2 15.12.3 15.13 15.14 15.15 15.16 15.17 15.18 15.19 15.20 15.21 15.22 15.23
1 1
Mehrdimensionale Felder .387 Indizes und Einträge .388
Indizierungsfunktionen .388 Interne Verwaltungsinformationen .390 Zeichenketten .391 Grundsätzliches .391 Länge .392 Unterstrings .392 Verkettung .394
Suchfunktionen .394 Umwandlung von Werten in Strings .395 Prozeduren .399 Definition von Prozeduren .400 Parameter .402 Rückgabewerte einer Prozedur .404 Geltungsbereiche von Variablen .407 Lokale Variablen .407 Globale Variablen .409
Umgebungsvariablen .411 Lexical Scoping .412 Auswertungsregeln für Bezeichner .412 Veränderung der Parameter .414 Wegfall und zusätzliche Angabe von Argumenten .416 Funktionen als Argumente .420 Prozeduren als Argumente .422 Erweiterte Typüberprüfung im Prozedurkopf.422 Optionen als Argumente .423 Fehlerbehandlung .428 Ausnahmebehandlung .428 Fehlermeldungen mit error .431 Fehlerbehandlung wie in Maple 6-Vorgängerversionen .432 Funktionen als Rückgabe .434 Unterprozeduren & Lexical Scoping .434 Selbstaufruf einer Prozedur .437
Unausgewertete Rückgabe .438 Optionen .438 Interne Prozedurverwaltung .441 Erinnerungstabellen .442
Effiziente Rekursionen .446 Benutzerdefinierte Typen .449 Informationen an den Anwender .452 Abspeicherung und Laden von Dateien .454
12
Inhaltsverzeichnis
15.23.1 15.23.2
Textdateien .454 m-Dateien .455
16 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9
Module .457 Einsatz von Modulen .457 Aufbau von Modulen .458 Zugriff auf Modulwerte .459 Der use-Befehl .460 Der with-Befehl .460 Beispiel des Einsatzes von Modulen .462 Spezielle Befehle zur Abfrage von Modulen .465 Interne Modulverwaltung .466
17 17.1 17.1.1 17.1.1.1 17.1.1.2 17.1.1.3 17.1.1.4 17.1.1.5 17.1.2 17.1.2.1 17.1.2.2 17.1.2.3 17.1.2.4 17.1.2.5 17.2 17.3 17.4 17.4.1 17.4.2
Argumentübergabe .466 Weiterführende
Programmierung .469 Erstellung eigener Pakete und Bibliotheken .469 Paketerstellung über Module .469 I nterne Prozeduren
.470
Initialisierungs- und Beendigungsprozeduren .471 Exportierte Prozeduren .472 Abspeicherung in Bibliotheken .472 Zugriff auf Bibliotheken .475 Paketerstellung über Tabellen .478 Interne Prozeduren
.479
Initialisierungsprozeduren .480 Tabellenzuweisung .480 Abspeicherung der Routinen in die Bibliothek .481 Einsatz des
neuen
Paketes .484
Hilfeseiten .486 Erstellung Hardware-Fließkommaarithmetik .489 Dateiein-und-ausgabeoperationen .491 von
Eingabeoperationen .491 Ausgabeoperationen .497
Anhänge A AI
A2 A2.1 A2.2 A2.3 A3
Übersichten .503 Schnellübersicht
.503
Syntaxübersicht der besprochenen Maple-Befehle .507
Standardbefehle .507 Das Paket student .525 Das Paket LinearAlgebra.527 Datentypen in Maple .532
13
Inhaltsverzeichnis A4 A5
Plotoptionen.535
B Bl Bl.l B1.2 B1.3 B2 B2.1 B2.2 B2.3 B3 B4 B4.1 B4.2
System Maple .537 Systemkomponenten .537 Kernel .537 Maple-Hauptbibliothek (main Maple Library) .537 Benutzerschnittstelle (user interface) .540 Systemvariablen & Systemkommandos .540
Überblick .540
C
Maple im Internet .553
D Dl D1.1
Inhalt der CD-ROM
Griechische Buchstaben
.535
Das
interface-Einstelloptionen .543 kernelopts-Optionen .546 Maple-Initialisationsdatei .547 Installation von Bibliotheken und der Share Library .550 Installation zusätzlicher Bibliotheken/Pakete .550 Share Library .551
.555
Arbeitsblattdateien.555
D4
Arbeitsblätter zum Buch .555 Weitere Arbeitsblätter über spezielle Themen .555 Pakete .556 Sonstige Dateien .557 Urheberrechte .557
E
Quellenverzeichnis.559
F
Index
Dl.2 D2 D3
.
Spreadsheets (Tabellenkalkulation)
.s.
563 CD
Wichtiger Hinweis Maple und Maple V sind eingetragene Warenzeichen von Waterloo Maple Inc. Sonstige Bezeichnungen von im Buch genannten Erzeugnissen, die zugleich eingetragene Marken sind, wurden nicht besonders kenntlich gemacht. Es kann also aus dem Fehlen der Markierung ® nicht geschlossen werden, dass die Bezeichnung ein freier Warenname ist. Ebenso wenig ist zu entnehmen, ob Patente, Gebrauchsmusterschutz oder eventuelle sonstige Schutzrechte Dritter vorliegen. gelten auch für die auf der CD-ROM enthaltenen Ausführungen.
Diese Hinweise
Verlag und Autor haben mit größter Sorgfalt die Texte, Abbildungen und Programme erarbeitet bzw. zusammengestellt und unter Einschaltung wirksamer Kontrollmaßnahmen reproduziert. Dennoch können Fehler nicht ausgeschlossen werden. Die R. Oldenbourg Verlag GmbH und der Autor übernehmen deshalb weder eine juristische Verantwortung noch irgendwelche Garantie für die Informationen, Abbildungen und Programme, weder ausdrücklich noch unausgesprochen, in bezug auf ihre Qualität, Durchführbarkeit oder Verwendbarkeit für einen bestimmten Zweck. In keinem Fall sind die R. Oldenbourg Verlag GmbH, der Autor sowie die Beiträger von in elektronischer Form vorliegenden Materialien für direkte, indirekte, verursachte oder gefolgte Schäden haftbar, die aus der Anwendung der Programme oder der Dokumentationen resultieren. Für die Mitteilung eventueller Fehler sind Autor und Verlag jederzeit dankbar. Die Programme und Dokumentationen sind ausschließlich für Amateur- und Lehrzwecke bestimmt und dürfen gewerblich vollständig, teilweise und/oder in geänderter Form nur mit Zustimmung des Verlages und nach Einholen einer Genehmigung der Lizenzinhaber verwertet werden. Eine Liste sämtlicher Lizenzinhaber für Dokumentationen, die Pakete, Programme und Prozeduren liegt dem -
-
Verlag vor.
Weder die R. Oldenbourg Verlag GmbH noch der Autor übernehmen eine Verantwortung für die Integrität und Verwendbarkeit des auf der CD-ROM zu diesem Buch befindlichen Datenmateriales.
Vorwort Maple Maple
ist ein sehr mächtiges wissenschaftlich-mathematisches Funktionen umfassen u.a.: seine stem; • •
• •
Computeralgebrasy-
symbolische und numerische Berechnungen; mathematische Funktionen für Algebra, Analysis, diskrete Mathematik, Finanzmathematik, lineare Algebra, Physik und Statistik; zwei- und dreidimensionale Graphiken; eine ungemein starke, flexible und leicht zu erlernende Programmiersprache.
Maple bildet zusammen mit Mathematica, Macsyma
und MuPAD die Spitzenklasse nahezu Für jedes Problem existieren in Anwendungsprogramme. Das hält sich in der Regel an die gewohnMaple Lösungsmöglichkeiten. Programm ten mathematischen Schreibweisen, so dass es nicht sonderlich schwierig ist, sich einzuarbeiten. Darüber hinaus kann das Arbeiten mit Maple sehr viel Spaß bereiten und das 'Feingefühl' für die Mathematik ganz erheblich fördern. Nicht umsonst hält Maple verstärkt Einzug in Schulen und Universitäten, wobei die Lehre nur einen der vielen Anwendungsschwerpunkte dieses Systemes darstellt. mathematischer
Zweck und Aufbau dieses Buches Dieser Grundeinstieg soll Sie durch eine Vorstellung der verschiedenen elementaren Befehle und Funktionen in kurzer Zeit mit dem Umgang mit Maple vertraut machen. Der Text zeigt die außerordentlichen Fähigkeiten und Einsatzmöglichkeiten des Programmes auf, geht hierbei aber nicht allzu sehr in die Tiefe, da dieses für den Einstieg in Maple nur hinderlich wäre. Zumeist werden die einzelnen Befehle kurz in ihrer Funktion und Syntax vorgestellt und ihr Einsatz anhand einfacher, verständlicher, größtenteils im Kopf nachvollziehbarer und vor allem übersichtlicher Beispiele demonstriert. Am Ende eines jeden Kapitels werden die zuvor vorgestellten Befehle und ihre Syntax tabellarisch aufgeführt.
Maple arbeitet kommandozeilenorientiert, d.h. Anweisungen werden generell über eine Eingabezeile erfasst. Es ist daher notwendig, dass der Einsteiger die Syntax elementarer Befehle und den generellen Umgang mit Maple erlernt, auch wenn dieses anfangs ein wenig Zeit und Geduld erfordern wird. Der Aufwand lohnt sich allemal.
16
Vorwort
eigenen Erfahrungen des Autors mit anfänglichen Problemen bei der Anwendung Maples als auch die einiger Dozenten, die an Schulen und Universitäten in der Bundesrepublik Deutschland und den Vereinigten Staaten von Amerika Maple-Kurse durchführen, eingeflossen. In das Buch sind sowohl die
Das Buch beschreibt die Anwendung von Maple 7 unter dem Betriebssystem MS Windows, es lässt sich aber aufgrund der 100%igen Kompatibilität der Befehle und Programmiersprache sowie der durch Maple erzeugten Dateien auch für alle anderen Betriebssystemversionen von Maple 7 verwenden. Da sich Maple 6 kaum von Maple 7 unterscheidet, kann das Buch auch für Maple 6 fast uneingeschränkt eingesetzt werden.
Auf Unterschiede zu den Vorgängerversionen Maple V Release 3 bis Maple 6 wird in den Kapiteln eingegangen, so dass der Anwender leicht auf Maple 7 umsteigen kann. Das Buch ist
dreigeteilt:
macht Sie mit dem Computeralgebrasystem Mathematik mit Maple bekannt, erklärt, wie Problemstellungen der Algebra, Analysis inkl. Differentialgleichungen, linearen Algebra, analytischen Geometrie, Statistik und Kombinatorik zu lösen sind, erläutert die Erstellung von Graphiken und beschäftigt sich mit typischen Fehlern, die dem Anfänger zum Beginn der Arbeit mit Maple unterlaufen können.
Teil 1
-
-
Teil 2 Die Programmiersprache Maple beschreibt Sprachkonstrukte wie Bedingungen und Schleifen, Datenstrukturen, die Erstellung eigener Prozeduren und Maple-Bibliotheken sowie von Online-Hilfeseiten. -
-
Anhänge enthalten diverse Übersichten, das System Maple betreffende Informationen, Installationsanleitungen für Maple Library Updates und Pakete sowie Maple Die
im Internet.
beiliegende CD-ROM enthält Arbeitsblätter zu allen im Buch enthaltenen Beispielen, sowie diverse andere Dateien und Pakete. Beachten Sie, dass das Urheberrecht an dem auf der CD-ROM befindlichen Material bei den jeweiligen Schöpfern verbleibt, die Dateien nur für den persönlichen Gebrauch genutzt und nicht an Dritte weitergegeben bzw. zugänglich gemacht werden dürfen. Die dem Buch
Die 2.
Auflage
An dieser Stelle möchte ich den vielen Lesern der ersten Auflage danken, dass sie diesem Buch zu einem Erfolg verholfen und in einigen Fällen auch Feedback und
Anregungen hierfür gegeben haben.
Die 2.
17
Auflage
Die nun vorliegende 2. Auflage entstand zwischen April 2000 und September 2001 in einer beruflich sehr interessanten wenn auch anstrengenden Zeit und wurde um je ein Kapitel über Beschreibende Statistik und die in Maple 6 eingeführten Module ergänzt. Darüber hinaus wurden die meisten Kapitel überarbeitet und teilweise deutlich erweitert, wobei hier im Vordergrund stand, das Wissen zu den einzelnen Themengebieten in einer kompakten Form zu vermitteln. -
-
3 enthält nun umfassende Informationen zum Umgang mit strukturen, die Ihnen die tägliche Arbeit erleichtern werden.
Kapitel
Maple-Daten-
Die Befehle simplify, combine und collect werden in Kapitel 4 in all Ihren FassetVariationen beschrieben. Ebenso werden die in Maple 7 eingeführten Pakete RealDomain (für rein reelle Berechnungen) sowie Units (naturwissenschaftliche
ten und
Maßeinheiten) vorgestellt.
Kapitel 5 über Graphiken wurde um viele Tabellen, die die verschiedenen Plotoptionen
übersichtlich darstellen, ergänzt.
In Kapitel 6 werden nun auch Fourier-Reihen und die Ableitung von Vektoren behandelt. Ferner wird die Lösung von Differentialgleichungen eingehender erläutert, abgerundet um numerische Lösungsverfahren und Reihenentwicklungen. Der Integration numerischer NAG-Routinen in Maple trägt Kapitel 7 Rechnung. Das für die Lineare Algebra neu eingeführte Paket Linear Algebra mit effizienteren Algorithmen wird anstatt linaig erklärt; der Ermittlung von Eigenwerten und -Vektoren und der Analytischen Geometrie mehr Platz eingeräumt.
In die Kapitel über die Programmiersprache Maple sind die Erfahrungen, die der Autor in den letzten vier Jahren bei der Erstellung von Prozeduren und Paketen sammeln konnte, eingeflossen. Hierzu gehören vor allem ausführlichere Beschreibungen der vorhandenen Datenstrukturen sowie die Dokumentation der nach Maple V Release 4 eingeführten Module, der Ausnahmebehandlung und des Lexical Scoping. Das Kapitel über die Erstellung von Paketen wurde komplett neu geschrieben und die Möglichkeiten zum Einlesen und Erstellen von Dateien umfassender erläutert.
Danksagungen Folgenden Personen bin ich zu besonderem Buchprojekt verpflichtet:
für das •
Dank für Ihre
langjährige Unterstützung
Prof. Dr.-Ing. habil. Erhard Proß, Leipzig, hat wie für die erste Auflage die Kapitel aus mathematischer Sicht sen und einige Maple-Arbeitsblätter zur CD-ROM beigetragen.
korrekturgele-
18 •
Vorwort
Joseph S. Riel, San Diego, California, beantwortete wie für die erste Auflage Fragen zur Programmiersprache Maple und hat zahlreiche Pakete und interessante Dokumentationen beigesteuert.
Die
nun
genannten Personen haben ihre Erfahrungen mit der Durchführung
Maple-Kursen • • • • • •
an
Schulen und Universitäten
von
beigetragen:
Dr. Jochen Fingberg, BUGH Wuppertal; Werner Fingberg, Bielefeld; Prof. Robert J. Lopez, Rose-Hulman Inst, of Technology, Terre Haute, Indiana; Heinz Rathfelder, Gymnasium am Deutenberg, Villingen-Schwenningen; Ulrich Rauscher, Gymnasium in der Taus, Backnang.
Elizabeth C.
Scheyder, Philadelphia, Pennsylvania.
Ferner danke ich: • •
• •
Sabine Bormann, Scientific Computers GmbH, Aachen; David Hart, Indiana University Bloomington, Bloomington, Indiana; Prof. Michael Monagan, Simon Fräser University, British Columbia; Hannes Stoppel, Gladbeck, für das Review einiger Kapitel; er ist Autor des im gleichen Verlag erschienenen Buches Mathematik anschaulich Brückenkurs mit Maple, eines leicht verständlichen und umfangreichen Vorbereitungskurses für das Studium naturwissenschaftlicher Disziplinen an Universitäten unter Einsatz von Maple 7, das sich auch sehr gut als allgemeines Nachschlagewerk nutzen lässt. -
Folgende Personen unterhalten meine WebSite "Maple bilingual": • • •
Dr. Dmitry Gokhman, Math/Stats Dept., University of Texas at San Antonio; Prof. Dr. M. Jarke und Thomas List, LS V für Informatik, RWTH Aachen; Dr. Roland W. Kunz, Organisch-chemisches Institut, Universität Zürich.
Meinen Lektoren Irmela Wedler und Martin Reck möchte ich für ihre Geduld aufgrund der Verzögerungen und ihre Unterstützung danken. Dörte Vollstedt
Kiel im
gehört mein Dank für ihren ständigen Antrieb und eine schöne Zeit.
September 2001
Alexander Walz
Teill Mathematik mit
Maple
1
Bedienung von Maple 7
Übersicht • • •
1.1 Das Arbeitsblatt 1.2 Die Benutzeroberfläche
1.3
Gestaltung von Arbeitsblättern
1.1 Das Arbeitsblatt Maple 7 wird mit zwei unterschiedlichen Benutzerschnittstellen ausgeliefert, zum einen der Kommandozeilenversion, die in der DOS-Shell oder UNIX-Konsole gestartet wird, sehr schnell und ressourcenschonend ist, dafür aber relativ wenig Komfort besitzt; und zum anderen der graphischen Schnittstelle, z.B. für Linux/X Window, MS Windows oder OS/2, welche die Arbeit mit Maple sehr erleichtert. Hier werden Menüs zur Verfügung gestellt, mit denen beispielsweise Arbeitssitzungen abgespeichert, Dateien geladen, bestimmte Einstellungen getroffen oder das Aussehen der Berechnungen individuell gestaltet werden können. Dieses Kapitel widmet sich ausschließlich der Version von Maple 7 für Microsoft Windows.
Nach dem Start
von Maple erscheint ein leeres Arbeitsblatt (worksheet) und das Eingabesymbol (Prompt) in Form eines Größer-Zeichens an dessen oberen linken Rand. Der Prompt zeigt an, dass Maple die Eingabe der Rechenkommandos erwartet (sog. Eingabemodus, englisch: Input Mode).
Das Arbeitsblatt besteht i.d.R. aus drei Bereichen (auch Regionen genannt): Eingabebereich, Textbereich und Ausgabebereich. Im Eingabebereich werden die Rechenkommandos in Kommandozeilen erfasst; in die Textregion können Sie Kommentare eintragen; in der Ausgaberegion erscheinen die Ergebnisse. Darüber hinaus werden im
Graphikbereich die von Maple erzeugten Graphiken platziert.
22
1
Maple 7
^
-
[beieiche.mws [Server 1]] -
File Edit View Insert Format
Options Window Help
m
I T [>
_
|g| x|
El
in
X
>
Bedienung von Maple 7
diff(ln(x), x);
^
Ausgabebereich
X
— —
Die
j
Eingabebereich 1
Ableitung von hi(x) ist
1_
Textbereich Time: 0.4s
Bytes: 3.00M
Abb. 1.01: Arbeitsblattbereiche in
Available: 245M
Maple 7
Diese Bereiche sind keine fixen Bildschirmregionen. In Maple 7 folgt direkt unterhalb des Eingabebereiches die korrespondierende Ausgabe im Ausgabebereich es sei denn, man hat dies unterbunden -, darauf dann wieder ein Eingabebereich, usw. Dazwischen lassen sich nach Belieben Kommentare (Textbereiche) und Graphiken (Graphikbereiche) einfügen. Alle Bereiche bis auf den Eingabebereich werden bei der Abarbeitung der Eingaben von Maple übergangen. -
Die Schriftzeichen (Fonts) der Eingaberegion, Textregion und Ausgaberegion lassen sich den Präferenzen des Anwenders gemäß ändern (s.u.). Auch stehen Tastaturkommandos zur Verfügung, die die Gestaltung des Arbeitsblattes steuern sie werden im nächsten Abschnitt vorgestellt. -
Die Anweisungen zur Durchführung mathematischer Berechnungen werden in einer oder in mehreren Kommandozeilen eingegeben. Ist das Ende einer Zeile durch die Benutzereingabe erreicht, so fährt Maple automatisch in der nächsten Zeile fort. entweder mit einem Semikolon (semicolon) oder einem Doppelpunkt (colon) jeweils gefolgt von RETURN oder ENTER abgeschlossen werden'. Dabei bewirkt das Semikolon die Berechnung und die Anzeige des Ergebnisses, der Doppelpunkt nur die Berechnung, aber nicht die Anzeige des Resultates. Letzteres ist bei Zwischenergebnissen oder ohnehin trivialen Zuweisungen nützlich. Jede Kommandozeile
muss
Eine Ausnahme ist der Aufruf der Online-Hilfe mittels funktionen) und die Befehle quit, done, stop.
?
(siehe Unterkapitel
2.8 Hilfe-
1.1 Das Arbeitsblatt
23
Ein erstes Beispiel zum Ausprobieren: Starten Sie Maple. Ein leeres Arbeitsblatt öffnet sich, der Cursor steht in der Eingaberegion hinter dem Prompt. Geben Sie nun die Anweisung 1 2; ein und bestätigen Sie die Eingabe mit RETURN. -
>
2;
1 -
-1
Weisen Sie als nächstes der Variablen x den Wert 1 zu. Verwenden Sie einen Doppelpunkt zum Abschluss der Eingabe. Drücken Sie auch hier als letztes die RETURN-Taste. >
x
:=
1:
Maple zeigt das Ergebnis der Zuweisung nicht an. Durch die Eingabe des Variablennamens mit abschließendem Semikolon zeigen Sie den in ihr zugewiesenen Wert an. >
x;
1
1.2 Die Benutzeroberfläche Die Oberflächen haben sich seit Maple V Release 4 kaum geändert, so dass Sie sich in Maple sofort heimisch fühlen, wenn Sie eine Vorgängerversion benutzt haben. Über die Menüleiste können Sie z.B. Maple-Arbeitsblätter öffnen, speichern und ausdrucken, deren Aussehen festlegen oder ändern, Einstellungen treffen und die Online-Hilfe aufrufen. Die Iconleiste erlaubt per Maus den schnellen Zugriff auf wichtige in den Menüs enthaltene Funktionen. In der Kontextleiste werden je nach gerade aktivem Bereich verschiedene Icons mit speziellen Befehlen angeboten. Viele der in den Menüs enthaltenen Funktionen können auch bequem über die Tastatur aufgerufen werden. In Maple stehen Ihnen folgende Tastenfunktionen zur Verfügung; eine Übersicht für MS Windows befindet sich auf der nächsten Seite. Online-Hilfeseiten mit einer vollständigen Auflistung aller Tastaturkürzel können für MS Windows, mit Sie ?worksheet, reference, hotwin ?worksheet,reference, hotunix für UNIX und ?worksheet, reference, hotmac für Apple Macintosh über die Kommandozeile abrufen.
1
24
O Maple 7
[aufbau -
Bedienung von Maple 7
[Server 1]]
mws -
Edit View insert Format Spreadsheet
Options Window Help
Iconleiste Arbeitsblatt Time: 0.4s
Abb. 1.02: Aufbau der Oberfläche
Bytes: 3.00M | Available: 208M von
Maple 7
Kürzel Funktion RETURN Eingabebereich: Berechnung der Eingabe Textbereich: Zeilenvorschub + Wagenrücklauf SHIFT+ Eingabebereich: Zeilenvorschub + Wagenrücklauf, keine Berechnung RETURN Textbereich: Zeilenvorschub + Wagenrücklauf F3 Trennen zweier zusammenhängender Regionen F4 Zusammenfügen zweier zusammenhängender Bereiche Ein- und Ausblenden der Trennlinien zwischen den Regionen F9 STRG+J Einfügen eines Eingabebereiches STRG+M Umwandlung in Eingabebereich STRG+T Umwandlung in Textbereich_ STRG+N Erstellung eines neuen Arbeitsblattes STRG+O Öffnen eines gespeichertes Arbeitsblattes STRG+S Speichern eines Arbeitsblattes in Datei STRG+F4 Schließen des Arbeitsblattes STRG+P Drucken des Arbeitsblattes STRG+C Kopieren der Markierung in die Zwischenablage STRG+V Einfügen des Inhaltes der Zwischenablage STRG+X Markierung in Zwischenablage kopieren & aus Arbeitsblatt löschen STRG+A Alles markieren STRG+F Suchen & ersetzen STRG+ Seitenumbruch einfügen RETURN STRG+Z letzten Schritt widerrufen STRG+Y STRG+Z widerrufen STRG+R Formel in Textbereich eingeben STRG+G Formel in Eingabebereich eingeben Tab. 1.01: Tastaturkürzel in
Maple 6 & 7 für Windows
1.2 Die Benutzeroberfläche
25
Das Menü FILE
stellt verschiedene Dateioperationen (Neu, Öffnen, Speichern, Exportieren und Schließen) bereit. Hier können Sie auch getroffene Einstellungen abspeichern, ein Arbeitsblatt ausdrucken, die letzten vier geladenen Arbeitsblätter abrufen und Maple wieder verlassen. File New
Strg+N
Save Save As... Export As Close Save Settings AutoSave Settings
Strg+S
Print... Print Preview... Print Setup...
Strg+P
Strg+F4
1 FEIGENBA.MWS 2 ITE-QUAD.MWS 3 CHAOS.MWS 4 FRACTAL. MWS Exit
AU+F4
Abb. 1.03: Das Menü File/Datei
Mit dem Eintrag New kreieren Sie ein neues Arbeitsblatt. In Maple ist es möglich, mehrere Arbeitsblätter gleichzeitig geöffnet zu halten. Da Maple auf zweierlei Weise (Modi) gestartet werden kann, beachten Sie bitte folgende Unterschiede:
1) Shared Kernel Mode
Gemeinsame Arbeitsumgebung: In diesem Modus können Sie zwar in mehreren Arbeitsblättern arbeiten, in einem Arbeitsblatt vorgenommene Zuweisungen gelten jedoch auch in allen anderen geöffneten Arbeitsblättern. Somit können nicht vollkommen unabhängig voneinander Berechnungen durchgeführt werden. Wichtig ist, dass Variablen und deren Werte auch dann weiterhin 'fortleben', wenn
wurde.
das Arbeitsblatt, in welchem sie definiert wurden, bereits
geschlossen
26
1
Bedienung von Maple 7
2) Parallel Kernel Mode Getrennte
Arbeitsumgebung: Im Parallelmodus sind geöffnete Arbeitsblätter unabhängig voneinander, Zuweisungen von Ausdrücken an Variablen gelten nur in dem
Arbeitsblatt, in dem sie vorgenommen wurden, aber nicht in den anderen. Sie können Maple in diesem Modus durch Klicken auf den Explorer-Menüeintrag 'Parallel Server Maple 7' oder durch Eingabe der Anweisung bin.wnt\maplew.exe -km p in der DOS-Shell starten. Untitled
11)
Abb. 1.04: Shared Kernel Mode Untitled
DJ [Server 11 x
[>
-2
TffrT (2) [Server 2] Untitled
13 B
-
>
2*x 2x
[> Abb. 1.05: Parallel Kernel Mode
Open öffnet bzw. lädt ein Arbeitsblatt, welches entweder im MWS-Dateiformat von Maple V Release 4 und 5.X sowie Maple 6 und 7, im MS-Format von Maple V
Release 3 oder im Textformat vorliegen kann.
MWS- und MS-Dateien beinhalten sowohl Ein- als auch
Maple-Ausgaben, Texte,
deren Formatierungen sowie evtl. eingebettete Graphiken. Laden Sie Release 3-MSbzw. Release 4- und 5-MWS-Dateien, so fragte Maple, ob dort enthaltende Anweisungen, deren Syntax bzw. Semantik sich mittlerweile geändert hat, angepasst
27
1.2 Die Benutzeroberfläche werden sollen. Im folgenden eine Tabelle mit Anweisungen manuell abzuändern2: R4
R3
R5
Syntaxänderungen,
Maple 6/7
die Ihnen hilft,
Bedeutung Letztes
Ergebnis
Parametertyp in Prozeduren
x->f
Tab. 1.02 -
x->f
Funktionsdefinition
x->f
(2 Pipes) [ Verkettungsoperator Syntaxänderungen von Maple V Release 3 bis Maple 7
Möchten Sie eine Textdatei
importieren, so gehen Sie wie folgt vor:
1) Wählen Sie den Menüpunkt File/Open
an.
Ein Fenster öffnet sich:
Offnen Suchen in:
ijj sl
~3 &] _öj |MsJ
£3 archive
The Matrix.txt wrni.txt
Dateiname:
The Matrix.txt
• et _
Dateityp:
Maple Text [Maple Worksheet
"3
Abbrechen
Abb. 1.06: Fenster Datei öffnen
2) Aktivieren Sie
im Listenfeld 'Dateiformate' den
Eintrag 'Maple
Text' und
drücken Sie OK. Fenster öffnet sich (s. Abb. 1.07). Markieren Sie den Eintrag 'Maple Text', wenn in der zu importierenden Textdatei den Maple-Anweisungen Prompts (>) bzw. Kommentaren Nummernzeichen (#) vorangestellt sind. Der Inhalt der
3) Ein kleines
2
Release 3- und Release 4-Dateien werden in Maple 6/7 nicht angepasst. Es wird in 6 bei R4-MWS-Dateien zwar danach gefragt, eine Konversion erfolgt jedoch nicht.
Maple
1
28
Bedienung von Maple 7
einzelnen Zeilen wird dann automatisch in die korrekten Bereiche umgewandelt. Alle anderen Einträge werden ignoriert. Eine über mehrere Zeilen verteilte Anweisung wird gewöhnlich in einer Eingaberegion erfasst, Sie brauchen also nicht Bereiche manuell zusammenzufügen. Fehlen in der Textdatei die Prompts bzw. Nummernzeichen, so wählen Sie den Eintrag 'Text', die gesamte Datei wird dann in eine Textregion eingelesen.3
Abb. 1.07: Fenster Text Format Choice
4) Bestätigen Sie Ihre Wahl mit OK. Open URL öffnet eine auf einem Webserver befindliche Maple MS- oder MWS-Datei. Dazu sollte vorher eine Verbindung in das Internet aufgebaut sein. Geben Sie den vollständigen Pfad zu der Datei in das Fenster ein und bestätigen Sie mit OK. Maple lädt die Datei und stellt Sie zur weiteren Bearbeitung dar. Open URL GK
RL:|http://www.math.utsa.edu/rnirrors/maple/rriaplev/'fraktale.ms
UF
Abb. 1.08: Laden
von
Dateien
aus
Abbrechen
dem Internet
speichert den aktuellen Inhalt des Arbeitsblattes in die jeweilige bereits Datei; mit Save As speichern Sie ein neues Arbeitsblatt unter einem Namen und in einem der vorhandenen Dateiformate (MWS, Maple Text, beliebigen Text, LaTeX, HTML, RTF) ab. Das Zielverzeichnis können Sie dabei ebenfalls wählen. Anders als bei Save erscheint eine Warnmeldung, wenn eine bereits Save
bestehende
vorhandene Datei überschrieben werden soll. MWS-Dateien lassen sich unkodiert per E-mail versenden.
3
Besser ist
allerdings die Verwendung des Befehles read, s. Kapitel
15.23.
1.2 Die Benutzeroberfläche
29
Vorsicht ist bei geladenen Release 3-Dateien (Endung ms) geboten. Alle Folgeversionen überschreiben diese ohne Vorwarnung mit dem MWS-Format, aber unter Beibehaltung der Endung .ms. Eine solche Datei kann nicht mehr von Release 3 gelesen werden. Hier hilft dann nur die Abspeicherung als Textdatei (Art: Maple Text) und die Importierung in Release 3. Die einzelnen Eingaberegionen müssen Sie dann allerdings von Hand wiederherstellen. .
Mit Save Settings werden die für die Anzeige von Arbeitsblättern geltenden Einstellungen (z.B. die Anzeige von Trennlinien, des Prompts oder der Statusleiste) sowie die Fenstergröße von Maple gespeichert. Sie gelten dann für die nachfolgenden Arbeitssitzungen. Auto Save Settings speichert die aktuellen Einstellungen jedes mal vor Verlassen Maples ab und überschreibt die alten. Print druckt das Arbeitsblatt auf Papier, mit Print Preview können Sie das Aussehen des gesamten Arbeitsblattes vor dem Ausdruck kontrollieren, Printer Setup gestattet den Aufruf des Fensters 'Druckereinstellung', um so druckerspezifische Einstellungen zu treffen. Sie können über das Menü Format/Page Numbers steuern, ob und wie Seitenzahlen ausgedruckt werden sollen. Speichern Sie ein Arbeitsblatt ab, werden diese Einstellungen festgehalten. Jedoch muss für jedes neue Arbeitsblatt, welches Sie schaffen, über den genannten Menüpunkt definiert werden, ob Seitenzahlen ausgedruckt werden sollen oder nicht. Exit schließlich beendet
Maple.
Menü EDIT
Textpassagen können in die Zwischenablage kopiert (Copy), aus Zwischenablage in das Arbeitsblatt (oder auch in ganz andere Programme) eingefügt (Paste) oder gelöscht (Delete) werden. Mit Cut wird Text ausgeschnitten und in die Zwischenablage kopiert. Diese Funktionen sind auch sehr hilfreich bei
Zuvor markierte
der
sich wiederholenden, ähnlichen Eingaben. Im Menü sind auch die Kurztastenbelegungen einiger der Funktionen angegeben, so dass diese bequem über die Tastatur aufgerufen werden können, ohne das Menü selbst zu öffnen. Sie können auch über mehrere Bereiche verteilte
Passagen
in die
Zwischenablage
eintragen. Maple-Ausgaben werden in Typeset Notation (siehe Tab. 1.03: Ausgabemodi) innerhalb Maple wieder eingefügt. Ist der gesamte Ausgabebereich vom linken bis zum rechten Seitenrand markiert, so wird er in andere Anwendungen wie Text-Editoren in Character Notation eingefügt. Ist nur die eigentliche Ausgabe markiert, erfolgt der Export in Lineprint Notation.
1
30
Undo Delete Redo Cut
Copy Copy as Maple Text Paste Paste Maple Text Delete Paragraph Select All
Bedienung von Maple 7
Strg+Z Strg+Y Sttg+X Strg+C Strg+V Strg+Entf Strg+A
Hyperlinks..
Object Entry Mode
F5
Split or Join Execute Remove
Output
Abb. 1.09: Menü Edit
(gekürzt)
Find sucht nach einem bestimmten Text im Arbeitsblatt und ersetzt ihn mit der Feld Replace eingetragenen Zeichenkette, wenn Sie auf Change drücken. Ist das Feld
Replace leer, so wird mittels Change der gesuchte Begriff gelöscht. Find beachtet Groß- und Kleinschreibung; suchen Sie in einem Arbeitsblatt nach dem Ausdruck sin und erfassen im Feld Find den Begriff Sin, so ignoriert Maple ihn. Split trennt Eingaberegionen oder Absätze, Join verbindet sie.
gekennzeichnete Option Entry Mode legt den Anweisungen fest. Deaktivieren Sie den Eintrag, Erfassung Eingabemodus können Sie hinter dem Cursor Erläuterungen erfassen, die Maple ignoriert. Die aktivierte und mit einem Häkchen zur
von
nacheinander vom Anfang bis zum Ende eines Arbeitsblattes4 (Worksheet) oder nur markierte Passagen (Selection). Remove Output entfernt Ausgaberegionen aus dem Arbeitsblatt, entweder alle (From Worksheet) oder markierte Bereiche (From Selection). Execute berechnet automatisch alle
4
Eingaben
Auf diese Weise lässt sich der Zustand der abgespeicherten Maple-Sitzung wieder herstellen (dieses ist eine Art Ersatz fur die Save Kernel State-Option in Release 3).
1.2 Die Benutzeroberfläche
31
Menü VIEW Das Aussehen der Arbeitsoberfläche kann der Anwender mit diesem Menü nach eigenem Geschmack gestalten, u.a. können Leisten ein- oder ausgeschaltet werden.
v*
Toolbar Context Bar Status Bar Palettes
Symbol Palette Expression Palette
Zoom Factor Bookmarks
Vector Palette
Back Forward
Show All Palettes Hide All Palettes
Hide Content
v»
Show invisible Characters Show Section Ranges Umschalt+F9 Show Group Ranges F9 Show Object type
Expand All Sections Cojlapse All Sections Abb. 1.10: Menü View
Die einzelnen Leisten (Iconleiste/Toolbar, Kontext- und Statusleiste) können Sie entweder ein- oder ausblenden. Der Eintrag Palettes bietet vier Paletten an, aus denen Sie Symbole, mathematische Ausdrücke, Matrizen und Vektoren in das Arbeitsblatt einfügen und mit anschließend mit Werten füllen. Zoom Factor bestimmt den Vergrößerungsfaktor für das Arbeitsblatt. Hide Content erlaubt es, Bereiche ein- und auszublenden.
Die aktivierte
Option Show Invisible Characters zeigt Formatierungszeichen wie Zeilenumschaltung fl[ für RETURN, J für SHIFT+RETURN) und Leerzeichen (•) an, welches zur Bereinigung von Problemen mit der Formatierung von Arbeitsblättern hilfreich ist. Show Section Ranges schaltet die vertikale Umklammerung von Absätzen und Show Group Ranges die vertikale Umklammerung von Eingaberegionen
ein oder
aus.
1
32
Bedienung von Maple 7
Expand All Sections klappt Abschnitte auf, während Collapse All Sections sie wieder
zuklappt.
Die Menüeinträge klicken Sie einmal mit der Maus an, um die genannten Einstellungen zu aktivieren oder zu deaktivieren. Aktivierte Einstellungen erhalten ein Häkchen. Auf die Menüs Insert und Format wird im nächsten mit der Gestaltung von Arbeitsblättern eingegangen.
Unterkapitel
in
Zusammenhang
Menü OPTIONS
Hier können Sie diverse Einstellungen treffen. Replace Output ersetzt bei einer Ausführung einer Eingabe die bereits vorhandene Ausgabe durch die neue, bei abgeschalteter Option wird die neue Ausgabe unterhalb der bereits erfolgten hinzugefügt. Insert Mode fügt einen neuen Eingabebereich direkt nach dem aktuellen hinzu. erneuten
Mit Output Display können Sie die Darstellungsart der Ausgaben Maples festlegen. können einzeilig (Lineprint Notation) oder zweidimensional (Character im Notation) Textmodus dargestellt werden; die Voreinstellung ist Typeset Notation, welche Ausgaben im Graphikmodus anzeigt.
Ausgaben
Mit dem Kommando interface/prettyprint lässt sich die Darstellungsart auch von der Kommandozeile her steuern, nähere Informationen hierzu finden Sie im Anhang B2.2.1. Auf den
Eintrag Assumed Variables wird in Kapitel 4.4 eingegangen, Plot Display bestimmt, ob Graphiken direkt in das Arbeitsblatt eingefügt (Inline) oder in einem separaten Fenster (Window) angezeigt werden. Ist der Eintrag Display 2-D Legends aktiv, so werden Maple-Graphiken mit einer Legende unterlegt5. Print Quality steuert die Druckqualität von Ausdrucken, die sich zumindest auf einem HP LaserJet nur bei Graphiken bemerkbar macht. In Palette Size ist die Größe der Symbolpaletten eingestellt. Über die Option AutoSave wird die automatische Sicherung aller geöffneten Arbeitsblätter gesteuert. Dieses gilt jedoch nicht für unbenannte, d.h. noch nicht gespeicherte Arbeitsblätter sowie für durch Maple von einem Webserver geladene Dateien. Den Namen der Sicherungsdateien ist die Zeichenkette MAS hinten angestellt, sie werden im selben Verzeichnis wie die Originale abgelegt. Die Unabhängig
von
plot-Kommando
dieser Einstellung werden Legenden immer angezeigt, die legend-Option beigegeben haben (s. Kapitel 5.1.9).
wenn
Sie dem
1.2 Die Benutzeroberfläche
33
Sicherungen werden gelöscht, wenn Sie Maple verlassen und abgespeichert haben, ansonsten bleiben sie bestehen. Maple
interface/
Notation
prettyprint
Lineprint
0
Ausgabe Int(x~2-l/x,x) / 1/x dx
x
Character
-
x2-ldx
Typeset
Tab. 1.03:
die Dateien vorher
X
Ausgabemodi Maples am Beispiel
int
(xA2-l/x, x)
;
Menü WINDOW hält verschiedene Funktionen
zur
Anordnung der geöffneten Arbeitsblätter bereit.
Menü HELP
Online-Hilfesystem Maples auf. Introduction enthält Verweise auf die Neuerungen in Maple 7, grundlegende Funktionalitäten, Informationen über die Menüführung, etc. Klicken Sie hierzu einmal mit der linken Maustaste auf die unterstrichenen Begriffe (hyperlinks), eine neue Hilfeseite mit den gewünschten Angaben ruft das
öffnet sich dann.
Abschnitte, denen Kästchen mit einem Pluszeichen vorangestellt sind, können Sie durch Anklicken der Kästchen mit der Maus öffnen, durch nochmaliges Anklicken wieder schließen.
Help On sucht nach der Hilfe ten
zu
einem
von
Ihnen im Arbeitsblatt markier-
Begriff, wie z.B. Befehlen.
Topic Search sucht nach Themen, Full Text Search (siehe Abb. 1.11) nach dem Vorkommen eines Begriffes in allen Hilfeseiten und listet die zutreffenden Seiten in einem Fenster zur weiteren Anwahl auf.
1
34
Bedienung von Maple 7
Full Text Search
Word(s): differentiate
Search
Matching Topics: examples,specfcn (0.07) diff (0.06) diffalg,differentiate (0.04) DEtools,checkrank (0.03) DEtools,rifsimp,ranking (0.03) examples,context_examples (0.03) codegen,GRADIENT (0.03) examples,diffalg (0.03) examples,context (0.03) PDEtools,declare (0.02) D E tools,rifsimp,nonlinear (0.02) nr^rtlr rik-.it^-.i-.
Apply OK Abbrechen
'
.- JcruioiAi_ffl HTM_
r~ Same Window
P Goodness of Match
Abb. 1.11: Fenster Full Text Search
History zeigt eine Liste der in einer Arbeitssitzung bereits aufgerufenen Hilfethemen an.
Bewegen im Arbeitsblatt Im Arbeitsblatt selber bewegen Sie sich unter Windows mit den Cursortasten ggf. kombiniert mit der Steuerungstaste sowie den erweiterten Cursortasten Pos 1, Ende, Bild auf und Bild ab. Auch können Sie mit der Maus direkt den Cursor an eine beliebige Stelle setzen. -
-
Markieren können Sie Passagen mit der Maus oder der Tastatur, im letzteren Falle durch gleichzeitige Betätigung der jeweiligen Cursortaste zusammen mit STRG und/oder SHIFT. Die
folgenden Abbildungen erläutern die verschiedenen Funktionen der Leisten.
1.2 Die Benutzeroberfläche
35
Die Iconleiste Widerrufen rückgängig MAktion widerrufen — — — —
Eingaberegion einfügen
T|[>[
ß
Drucken Datei speichern URL öffnen Datei öffnen Neues Arbeitsblatt
Bewegen eines Absatzes eine Ebene höher -4Bewegen eines Absatzes eine Ebene tiefer Einen Hyperlink zurück Einen Hyperlink weiter Anhalten der Berechnung
Neustart
(restart)
Anpassen des Arbeitsblattes
die Arbeitsoberfläche Anzeigen der Formatierungszeichen Vergrößerungsfaktor 200% Vergrößerungsfaktor 150% Vergrößerungsfaktor 100% an
Abb. 1.12: Iconleiste
Die Kontextleiste im
Eingabemodus
Die Autokorrektur korrigiert unvollständige Eingaben, fügt z.B. fehlende Klammern hinzu. Tippfehler bei Kommandonamen werden nicht korrigiert. Auch muss die Korrektur nicht unbedingt sinnvoll sein.
36
1
Bedienung von Maple 7
Eingabe im
normalen oder Formelmodus anzeigen Eingabe in Maple-Befehl oder -Text umwandeln Autokorrektur
-
r
>
Befehl ausführen
jgjwl (Iff
sum((-1)A(n>1)*1/n, n=1 infinity); gesamtes |n( 2) Arbeitsblatt 0 und a 1,
Die
•
x
X
mit:
beliebig,
lautet: >
Diff(aAi, x) ^ dx
diff ausdruck
oder bezeichner:=
(argumentenfolge)
-> ausdruck
Für Funktionsnamen gelten die in Kapitel 2.6.1 genannten Bezeichnerregeln. Bei multivariablen Funktionen werden die Argumente in ein Klammerpaar gefasst und durch Kommata voneinander getrennt.
Die >
Funktionszuweisung erfolgt mittels der sog. Pfeilnotation (arrow notation)11.
f
:=
x
->
l/4*xA4-4*x; f
>
:= x
->
jx4- 4x
f (7.) ;
572.2500000
Der funktionale Operator -> besteht aus dem Minus- und dem Größerzeichen. Genau genommen wird die Variable f mit der durch die Pfeilzuweisung geschaffe> l/4*xA4-4*x belegt. nen sog. anonymen Funktion x -
Um die >
Funktionszuweisung ermitteln zu können, genügt es nicht,
f; f
einzugeben, da für Funktionen besondere Auswertungsregeln bestehen26, sich aber durch Anwendung des Befehles eval ermitteln:
Beachten Sie, dass eine Funktionsdefinition in der Form f (x) ist. Dieses gilt auch für Prozeduren, Module, Tabellen und Felder.
:=
xA2
nicht
sie lässt
möglich
2.7 Funktionsdefinition >
63
eval(f); x
->
^x4
4x -
Der Funktionsferw kann durch Angabe des Funktionsnamens oder den Argumenten in Klammern bestimmt werden: >
f(x)
zusammen
mit dem
;
jx4
4x -
Einzelne Funktionswerte ermitteln Sie durch Angabe des gewünschten Wertes dem Definitionsbereich der Funktion als Argument, beispielsweise für x=2: >
aus
f (2) ;
-4
Mit Hilfe einer Schleife kann eine Wertetabelle erstellt werden. Die Zeilen trennen Sie durch die Tasten SHIFT+RETURN voneinander, die letzte Zeile (> end do;) aber wird an deren Ende nur durch die RETURN-Taste abgeschlossen27. >
for
> >
a
a,
from -1 to 1
by 1/2
do
f(a)
end do;
-1 2
129 64
0, 0 1 2
'
-127 64
Die for-Schleife erlaubt die mehrmalige Abarbeitung bestimmter Anweisungen, welche sich im Rumpf zwischen do und end do befinden. Dabei steht die Anzahl der Wiederholungen im voraus fest. In diesem Beispiel werden alle Werte von (from) -1 bis (to) +1 mit einer Schrittweite (by) von y durchlaufen und der Laufvariablen a zugeordnet. Beträgt die Schrittweite den Wert 1, so kann sie weggelassen werden, der Passus by 1 kann also entfallen. Das
Kapitel
13 befasst sich ausführlich mit Schleifen.
64_2 Rechnen und Arbeiten mit Maple Rumpf der Schleife zwischen do und end do enthält die Anweisung zur Ausgabe der Laufvariablen a und des Funktionswertes f(a). Sollen mehrere Befehle im Rumpf abgearbeitet werden, so müssen sie durch Semikolon voneinander getrennt werden. Hinter do allerdings darf sich kein Semikolon befinden. Der
Da Funktionsdefinitionen in Variablen
analog >
gespeichert werden, erfolgt deren Löschung
durch Angabe des Funktionsnamens.
f (x) ;
1 4: >
f
:
'
=
f
'
;
f :=f >
f(x)
;
f(x)
Maple werden Funktionen, die aus sehr einfachen Termen bestehen, anders dargestellt als Funktionen mit komplexeren Zuweisungen. Dieses kann zunächst In
irritieren. >
g
:=
x
->
2;
g:=2 >
g(0)
>
h
:
;
x
=
->
In (x) ;
h >
h(l)
:=
In
;
0
Die Kehrwertfunktion einer Funktion f können Sie wie >
kehrwert
:=
x
->
1/x; kehrwert :=x^x
folgt festlegen:
2.7 Funktionsdefinition >
65
kehrwert(sin (x))
;
1
sin(x) >
kehrwert(1/x); x
Bei einem Funktionsaufruf können also auch werden.
symbolische Ergebnisse
ermittelt
Maple-Befehle in Funktionstermen zugelassen, z.B. kann eine neue Logarithmusfunktion bestimmt werden, die direkt das Ergebnis in Fließkommadarstellung durch Verwendung von evalf ausgibt. Die Reihenfolge der Argumente bei der Funktionsdefinition ist beliebig, sie muss dann aber bei jedem Aufruf der neuen Funktion eingehalten werden. Im Gegensatz zu log erwartet flog zunächst das Argument und danach erst die Basis. Bei Funktionen mit mehr als einer Variablen müssen die Unbekannten in Klammern hinter den Zuweisungsoperator (: =) gesetzt Auch sind
werden: >
restart:
>
flog
:=
(arg, basis)
flog >
:=
->
evalf(log[basis](arg));
(arg, basis)
-
evalf(logbasis(arg))
flog (100, 10); 2.000000000
Die Programmierung des Buches erklärt. (x, y, z)
>
g
>
g(2, 3, c);
:=
mehrzeiliger Funktionen und Prozeduren wird im zweiten Teil ->
xA2+yA2+zA2:
13 + c2
Mit dem Befehl >
unapply bilden Sie eine anonyme Funktion aus einem Ausdruck:
unapply(x-1, x); X
den Sie jetzt einer Variablen zuweisen,
->
um
x-1
eine Funktion
zu
erzeugen:
2 Rechnen und Arbeiten mit
66 >
Maple
h
h
x-1
unapply wird als erstes Argument der zuzuweisende Ausdruck angegeben und danach die Unbekannte(n), zu denen der Funktionsterm in Abhängigkeit stehen soll. Die
Syntax von unapply lautet: unapply(ausdruck, x) oder
unapply(ausdruck, Bitte achten Sie bei der
x,
y,
...)
Verwendung von Funktionen auf folgende Dinge:
Die Namen von Variablen und von Funktionen sollten sich nicht gleichen, da es dann zu gegenseitigen Überschreibungen kommt. Im folgenden wird eine Variable h und eine Funktion h(x) definiert, nach der Funktionszuweisung besitzt h nicht mehr den Wert 1 sondern enthält die Funktionszuweisung: >
h
1;
:=
h >
h
x
->
xA2, h
>
1
:=
:=x
eval(h);
Sie können bestimmte
vorgeben:
abweichende -
f (x0)
z.B.:
Funktionswerte auf -
:
=
ausdruck
folgende
Weise
2.7 Funktionsdefinition >
h (0)
:
=
67
1;
h(0) >
:=
1
h (0) ;
1
Diese Vorgabemöglichkeit besteht dann nicht, wenn der Funktionsterm aus nur einer Zahl besteht, z.B. 1, j, 0.5 oder zu einer Zahl vereinfacht wird. Hierbei ist ausschlaggebend, was Maple nach der Funktionsdefinition anzeigt. Es lässt sich folgende Regel aufstellen:
1) Wird der Pfeiloperator in der Maple-Ausgabe angezeigt, d.h. f
:=
f
:=
arg -»term oder
funktionsname, können Sie Werte vorgeben;
eine Zuweisung der Form f := zahl auf dem Bildschirm ist eine abweichende Funktionswertdefinition nicht möglich. ausgegeben, Definieren Sie die Funktion dann mittels einer Prozedur (Kap. 15)28.
2) wird aber
Beispiel:
nur
Der Kernel
Maples
vereinfacht automatisch Ausdrücke wie x+x,
x-x, x*x
oder Y>
f
:=
->
x
x/x; f
>
f(0)
:=
:=
1
undefined;
Error, invalid left hand side in assignment >
f
:=
->
x
x;
f(0)
:=
undefined; f
f(0)
>
op (4,
:=
x
undefined
vom
eval(f));
table([0 28
-
Anwender so vorgegeben wurden, werden in einer sog. Erinneabgespeichert, die sich mit
Die Werte, die
rungstabelle
:= x
=
undefined])
Setzen Sie f := proc(arg) zahl end proc statt f := arg -> zahl, z.B. 1 end proc. Intern vereinfacht Maple Funktionen der Art f := arg -» := proc(x) zahl dem Bezeichner f zahl zu f := zahl, d.h. es wird nicht eine anonyme Funktion arg zugewiesen, sondern der Wert zahl. f
->
2 Rechnen und Arbeiten mit
68
Maple
abfragen lässt. dass die in Kapitel 6 Analysis vorgestellten Stetigkeits-Befehle iscont und discont, eine solch ergänzte Funktion als stetig betrachten.
Wichtig ist,
Funktionsdefinitionen wie sinus := sin(x); h := sin(x); h := x -> %; funktionieren im übrigen nicht.
x
->
sinus; oder
2.8 Hilfefunktionen ??
? ???
enthält eine umfangreiche und gut dokumentierte englischsprachige Hilfefunktion zu den einzelnen Kommandos, welche Sie mit ?befehl (ohne abschließendes Semikolon oder Doppelpunkt) aufrufen können. ??kommando liefert die Syntax des entsprechenden Kommandos und ???kommando Syntax sowie Beispiele zu diesem:
Maple
>
?solve
Setzen Sie in Maple im Arbeitsblatt den Cursor mitten in einen Sie interessierenden Begriff und betätigen dann die Funktionstaste Fl, so wird die entsprechende Hilfeseite angezeigt, wenn diese existiert. Sie brauchen also nicht unbedingt die Anweisung ?befehl einzugeben.
2.9
Typische Anwenderfehler
Wenn man das erste Mal mit Maple arbeitet, verweigert das Programm sicherlich des öfteren die Benutzereingabe oder gibt eventuell unerwartete Ergebnisse zurück. Daher sind an dieser Stelle die typischsten Anwenderfehler aufgelistet.
2.9.1
Syntaxfehler
liegen vor, wenn eine Maple-Anweisung falsch gebildet wurde, sich dort beispielsweise ungültige Zeichen befinden, Klammern vergessen oder Argumente in einer falschen Reihenfolge an einen Befehl übertragen wurden. In der folgenden Eingabe wird ein Operator zu viel angegeben. Der Cursor wird automatisch in der Eingaberegion an die fehlerhafte Stelle gesetzt29.
Es werden hier ausnahmsweise die Fehlermeldungen in abgedruckt, um sie typographisch besser hervorzuheben.
der Art
von
Maple
V Release 3
2.9 >
Typische Anwenderfehler
69
4+*4 ;
Error, 4+*4 ;
unexpected
Bei verschachtelten Ausdrücken können Klammern fehlen oder falsch gesetzt werden, da hierbei die Übersicht schnell verloren geht. >
sum(1+2/n)An, n=infinity);
')' unexpected sum(1+2/n)"n, n=infinity);
Error,
In der Mathematik ist ein Ausdruck wie mx, welches 'm multipliziert mit der Unbestimmten x' bedeutet, üblich. Dies führt bei Maple allerdings zu einer Fehler-
meldung: >
2x;
Error, missing operator 2x;
>
'
or
;
2*x;
2x
Maple betrachtet 2x als ungültigen Bezeichner. Es muss also grundsätzlich das Multiplikationszeichen angegeben werden. Gleichwohl erfolgt die Anzeige ohne das Multiplikationszeichen. *
Tausendertrennzeichen (Punkte, Komma oder Hochstriche) für große Zahlen existieren in Maple nicht und dürfen daher nicht erfasst werden. 2.9.2 Semantikfehler können vorkommen, wenn ein Befehl eine Operation durchführen soll, die unmöglich bzw. sinnlos ist, z.B. wenn der Grenzwert eines Vektors bestimmt werden soll. >
limit(vector ([1, 1, x]), x=0) ; (in limit) invalid expression
Error,
Oft werden auch >
Argumente vergessen:
diff(xA2);
Error, wrong number
(or type) of parameters in function diff
2 Rechnen und Arbeiten mit
70 >
Maple
diff(xA2, x); 2
x
Missachtung mathematischer Prioritäten Zu den häufigsten Fehlerquellen gehören falsch gesetzte Klammern. Diese bewirken zwar nicht unbedingt Syntaxfehler, können aber zu 'falschen' Ergebnissen führen. 2.9.3
>
limit(1+1/nAn, n=infinity); 1
Hier sollte eigentlich der Grenzwert von (1 +4")" berechnet werden. Da auch bei Maple Potenz- vor Punktrechnung und Punkt- vor Strichrechnung30 gilt, bezieht sich die Potenz n nur auf den Nenner des Bruches, also erkennt Maple: 1 + Gemeint war aber: >
limit((1+1/n)An, n=infinity); e
Folgende Vorgehensweise ist bei der Erfassung geklammerter Ausdrücke äußerst praktisch: Wenn der o.g. Grenzwert Hm (1 + ir)n berechnet werden soll, können Sie die Eingabe in drei Stufen vornehmen: limit();
Bewegen Sie nun den Cursor in die Klammer zurück. Geben Sie dort ein: ()An, n=infinity
Positionieren Sie jetzt die Sie:
Eingabemarke in der inneren Klammer (vor An) und erfas-
sen
1+1/n
und drücken dann RETURN. Je
länger Sie mit Maple arbeiten, desto mehr werden Sie setzen (müssen), die o.g. Eingabetechnik erspart Ihnen die oft mühsame Suche nach der fehlerhaften Stelle. Klammern, Kommata
etc.
Kapitel 3.4 enthält eine Tabelle der in Maple geltenden Prioritäten. Hier hat die Potenz n" eine noch höhere Priorität. Siehe auch den
Kapitel 3.4.
2.9
Typische Anwenderfehler
71
2.9.4
Tippfehler Tippfehler bei Kommandos oder Variablen bzw. Konstanten ergeben meldung, es wird die Eingabe unberechnet wieder ausgegeben. >
keine Fehler-
sum((1+2/n)An, n=infinty); infinty
Hier fehlt bei
infinity das letzte 'i'.
2.9.5 Ditto
Fehlerträchtig ist auch wie bereits erwähnt die Verwendung des Dittos (%, %%, %%%). Obschon recht praktisch und bequem, ist dessen Verwendung dann problematisch, wenn der Anwender zwischen den Eingabezeilen hin- und herspringt, sie erneut ausführt, und man eventuell gar nicht mehr weiß, auf welches Ergebnis sich das jeweilige Ditto denn nun eigentlich bezieht, die Folge können Syntaxfehler oder 'falsche' Ergebnisse sein. Ein (ziemlich triviales) Beispiel31: -
-
Zeile 1> restart:
Zeile 2> xA2-l;
Zeile 3> solve(%=0);
1,-1 Setzen Sie den Cursor
nun
wieder in Zeile 3 und führen Sie die
Anweisung
erneut
aus:
Zeile 3> solve(%=0); Error, (in solve) invalid arguments
Das Ditto bezieht sich nicht (mehr) auf das Polynom x2 1, sondern auf die Folge 0) ; lösen sollen. Das -1, 1, d.h. Maple hätte die Anweisung solve (-1, 1 solve. 1 verstößt die von 0 aber Syntax gegen Argument -1, -
=
=
Der Befehl solve ermittelt die
beschrieben.
Lösung einer Gleichung und wird in Kapitel
4 ausführlich
2 Rechnen und Arbeiten mit
72
2.9.6 Ein
Zuweisungen
Zuweisungsversuch an einen Maple-Befehl schlägt generell fehl:
> limit := 9; Error, attempting
Die
Maple
to
assign
to
'limit" which is protected
Fehlermeldung weist daraufhin, dass der Name 'limit' geschützt ist12.
Maple reagiert mit einem Syntaxfehler auf unerlaubte Bezeichner: > 3n := 90; Error, missing operator 3n:=90;
Der Versuch der funktionieren: > b
=
Zuweisung
or
';
mit dem Gleichheitszeichen
scheint
zwar
zuerst zu
1; b
aber eine >
'='
=
1
Wertbelegung erfolgt nicht,
b; b
da der Ausdruck b=l eine
Gleichung darstellt.
Wenn eine Variable rekursiv definiert wird, ihr kein lehnt Maple seit Version 6 die Eingabe ab. >
restart:
>
a
:=
a
+
Anfangswert zugeordnet wurde,
1;
Error, recursive assignment
Viele der in den nächsten Kapiteln zu besprechenden Anweisungen erfordern die Angabe unbestimmter Variablen bzw. unbestimmter Ausdrücke. Wenn z.B. der Term x2 abgeleitet werden soll, so schlägt dieses fehl, wenn vorher der Unbestimmten x ein numerischer Zahlenwert zugewiesen wurde. >
restart:
i2
Siehe
Kapitel
10.3.
2.9 >
Typische Anwenderfehler
x
:=
73
1:
> diff(x~2, x); Error, wrong number (or type) of parameters in function diff
Hier wird der in den Klammern befindliche Ausdruck x2, bevor diff versucht, eine Berechnung durchzuführen.
x
zu
1,
1
ausgewertet,
Es ist sinnvoll sich anzugewöhnen, gewissen Variablennamen wie x, y, z, oder t niemals numerische Werte zuzuweisen33. Verlangt ein Befehl unbestimmte Argumente, so kann eine Auswertung wie im obigen Fall durch Einschluss der Argumentenfolge in Apostrophe verhindert werden, >
diff('xA2, x'); 2
x
oder aber die Variablenwerte werden vorher gelöscht. In vielen Fällen sind Zuweisungen unnötig. Der Befehl subs34 ersetzt in einem Ausdruck beliebige Operanden und nimmt danach ggf. je nach Ausdruck eine Vereinfachung vor, ohne dass dabei aber eine Zuweisung getroffen wird. >
restart:
>
p
:=
xA2+x+l; p
>
:=
x2 +
x +
1
subs(x=0, p); 1
>
p,
x;
X2 + 2,9.7 Der
X +
1,
x
Doppelpunkt
hat Vor- und Nachteile: Er unterdrückt einerseits die
Ausgabe
von
trivialen
Ergebnissen, 33
34
an vom System oder Anwender definierte Variablennamen mittels des Befehles protect zu unterbinden, welches aber wohl nur in besonderen Fällen sinnvoll ist. Siehe dazu Teil 2, Kapitel 10.3. Siehe Kapitel 4.8.
Maple erlaubt, generell Zuweisungen
2 Rechnen und Arbeiten mit
74 >
t
:=
0; t
:=
0
verhindert u.a. auch die Anzeige der in einem dessen Initialisierung mit with, >
Maple
Maple-Paket enthaltenen Befehle bei
with(linaig);
Warning, Warning,
new new
definition for norm definition for trace
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, (viele Zeilen weitere Prozedurnamen je nach Fenster- und Fontgröße)...
vandermonde, vecpotent, vectdim, vector, wronskian] ...
seine Benutzung kann andererseits aber fatal sein, wenn auf die Schnelle Anweisungen erfasst werden, die zwar syntaktisch korrekt sind, bei denen aber Klammern falsch gesetzt sind oder etwas fehlt. Folgefehler sind dann unvermeidlich, da die Ausgaben auf dem Bildschirm zuvor nicht kontrolliert werden konnten. >
eulersche_zahl
>
In(eulersche^zahl)
:=
limit(l+l/nAn, n=infinity): =
ln(exp(l)); 0
=
1
Verwechselung zwischen Funktionen in Pfeilnotation und Termen Große Probleme bestehen anfangs, wenn Variablen, die als Funktionen eingesetzt 2.9.8
werden sollen, abwechselnd Funktionen als Funktionsterme oder als anonyme Funktionen in Pfeilnotation zugewiesen werden, und man nicht weiß, ob bei der späteren Verwendung der Bezeichner nun die Argumente genannt werden müssen oder nicht. Dieser Abschnitt beschäftigt sich auch ein wenig mit Maple-Interna, Sie können die jeweiligen Passagen aber ruhig überlesen. >
restart:
>
F
:=
x
->
a*x;
F:=x-»ax >
f
:=
a*x;
f
Die
Ableitung von
f
:= a x
mittels des Kommandos diff entspricht den
Erwartungen,
2.9 >
Typische Anwenderfehler
diff (f,
x)
75
;
a
diejenige von f aber nicht: >
diff(f, x)
;
0
Eine in Pfeilnotation definierte Funktion wird intern als Prozedur repräsentiert. Gibt den Prozedurnamen (hier also f) an, so erfolgt keinerlei Auswertung und in diesem Falle wird f von den Maple-Befehlen als Konstante angesehen, die eigentlich in f enthaltene anonyme Funktion bleibt verborgen. (Sie können versuchsweise den Befehl diff d.h. den Bezeichner einmal 'ableiten', hier erhalten Sie dann auch den Wert 0.)
man nur
-
-
Angabe des oder der Argumente gewünschte Resultat: Durch >
hinter den Bezeichner
f
erzielt
man
das
diff(f(x), x); a
Bei in Pfeilnotation definierten Funktionen müssen bis auf ganz wenige Ausnahmen (s. Kapitel 6.1 Verknüpfung von Funktionen) die Argumente genannt werden; setzen Sie sie hinter den Namen einer Variablen, die lediglich einen Term enthält, so werden sie an jeden Operanden des Termes 'angehängt', das Ergebnis ist vollkommen unbrauchbar. >
f(x)
;
a(x) x(x) Folgende Regel
kann aufgestellt werden: Bei ausschließlich symbolischen Berechdie Zuweisung eines Termes an einen Bezeichner. Oft aber werden nungen genügt sowohl symbolische als auch numerische Berechnungen mit einem Ausdruck durchgeführt, so dass die Definition mit dem funktionalen Operator -> deutlich vorteilhafter ist und man nicht überlegen muss, ob die Argumente angegeben oder nicht
angegeben werden sollen. Im legten Funktionen gearbeitet.
Buch wird daher fast ausschließlich mit solch
festge-
Wie schon bemerkt, lässt sich eine Funktion nicht auf die aus der Mathematik gewohnte Weise f (x) := term definieren, da hiermit in Maple ein Vorgabewert
2 Rechnen und Arbeiten mit
76
in die Erinnerungstabelle von f geschrieben wird, diesem Thema finden Sie in Kapitel 15.18.): >
restart:
>
f(x)
:=
+,
-,
Beschreibung Addition, Subtraktion,
*
/
Multiplikation,
Digits evalf
(ausführliche Erläuterungen
:=
sin(2 x)
Syntax z.B.: ausdri
+
ausdr2
Division Anzahl der Fließkommastellen Umwandlung in einen Auswertung mit Fließkommaausdruck evalf (ausdr) Auswertung mit
Ergebnis (Ditto) Variablenzuweisung
+
Digits Stellen: n
Stellen:
(ausdr, n)
evalf
%
zu
sin(2*x);
f(x) Funktion
Maple
Letztes
unapply
Funktionsdefinition Anonyme Funktion erzeugen
unassign eval
Variablenlöschung Auswertung eines Namens
restart
Rücksetzen von Maple Online-Hilfe zu einem Befehl
Definition
von Werten: ausdruck Löschen von Werten:
name
:
=
name
:
=
name :
name'
unbest
->
ausdr
unapply (ausdr, unbest) 'name2', ..) unassign (' namei
Vollauswertung: eval (ausdr) Stufenweise Auswertung: eval
Tab 2.1:
=
'
(ausdr,
n) mit neN
?befehl
Zusammenfassung der vorgestellten
Befehle
Grundlagen
3
Übersicht Mathematische Funktionen Vordefinierte Konstanten
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9
Exponentialschreibweise Prioritäten mathematischer Operationen Kurznamen für Funktionen und Befehle Ausdrücke und Datenstrukturen
Datentypen Auswahl von Teilausdrücken Die map-Funktion
3.1 Mathematische Funktionen Maple enthält eine Vielzahl mathematischer Funktionen, die wichtigsten können der folgenden Aufstellung entnehmen: math. Funktion
Sie
Maple-Syntax
Bedeutung Potenzfunktion
Exponentialfunktion Quadratwurzel
7^
n-te
logax In x sin x,
x, tan
sqrt(X)
Wurzel Basis
Logarithmus natürlicher Logarithmus trigonometrische zur
cos
exp (x)
x
a
surd(x, n) log[a] (x) In (x)
sin(X),cos(X),tan(x)
Funktionen35
arcsin
see
x,
x,
cosec
sinh x, Arsinh x, x
Q(x) Die
x
Sekans, Kosekans,
...
Areafunktionen
Betragsfunktion
x
35
x, cot
Kotangens_ Hyperbelfunktionen
..
sgn
Arkusfunktionen
...
Vorzeichenfunktion Heaviside-Funktion
arcsin (x),
(x), sec(x), csc(x), cot(x) arccos
sinh (x) aresinh (x),
...
,
..
abs(x) Signum (X) Heaviside(x)
Argumente sowie Rückgaben aller trigonometrischen, zyklometrischen, und
hyperbolischen erfolgen im Bogenmaß.
n-Fakultät Binomialkoeffizent n über k Summe über xr für k=m bis n Produkt über Xk für k=m bis n Restklasse i-te Primzahl Abrundung zur nächsten ganzen Zahl_ Aufrundung zur nächsten ganzen Zahl_ Nachkommateil einer Zahl mit Vorzeichen Abschneiden des Nachkommarestes Rundung zur nächsten ganzen Zahl_
n!
v
k
I
k=m
,
xk
nXk
k=m
a
Grundlagen
3
78
mod b
floor ceil
frac trunc
round
n!, factorial(n) binomial(n, k) (x, k=m
.
.
product(x, k=m a
mod
n) ..
n)
b
ithprime(n) floor(x) ceil (x)
frac(x) trunc(x)
round(x)
Tab. 3.1: Mathematische Standardfunktionen
3.2 Vordefinierte Konstanten
Maple sind folgende Konstanten standardmäßig sollte) nicht geändert werden. In
Bedeutung
Maple-Konstante
Catalan-Konstante Euler-Konstante y Imaginäre Einheit Unendlich co
Catalan
Kreisteilungszahl n
Pi
Boolescher Wahrheitswert 'falsch' Boolescher Wahrheitswert 'wahr'
false
gamma
Wert 0.9159655942... 0.5772156649...
infinity
Leerfolge Ergebnisermittlung fehlgeschlagen Tab. 3.2:
Alle in
definiert. Ihr Wert kann
true NULL FAIL
Maple-Konstanten
Maple definierten Konstanten sind in der Variablen
3.1415926535.
(bzw.
3.2 Vordefinierte Konstanten >
79
constants;
false,
y, oo,
true, Catalan, FAIL,
n
erfasst. Die imaginäre Einheit I fehlt hier, da sie in Maple anders initialisiert wird, constants können Sie weitere Werte durch Anhängen an diese Variable hinzufügen
(s. Kap. 3.5.2). 3.3
'
Exponentialschreibweise
Zahlen können Sie auch in ihrer erfassen. Die Syntax ist:
Exponentenschreibweise
ReZ
=
R
*
e
für eine ganze Zahl,
e
lCrZ
Hierbei steht die Mantisse R für eine reelle, der ist somit die Basis 10. >
mit dem Buchstaben
Exponent Z
le-8, le8, 1.75e-2; .1
10-7,
109,
.1
0.175
Der Buchstabe e muss von Zahlen umschlossen sein; anhand der Ausgabe ist erkennbar, dass mit dem Kennbuchstaben e gebildete Werte Fließkommazahlen sind.
3.4 Prioritäten mathematischer
Operationen
Vorrang {precedence) mathematischer Operationen vor anderen (z.B. Punktvor Strichrechnung) gilt natürlich auch für Maple. Mit runden Klammern können Sie dieses jedoch umgehen. Der
Beispiele: >
3*4+5; 17
>
3* (4 + 5) ;
27
80 >
3 2A3A4;
Error, 2A3"4;
%A'
unexpected
Mehrere aufeinander folgende Klammern gesetzt werden. >
Grundlagen
2A
Exponenten
müssen bei der Caret-Schreibweise in
(3A4); 2417851639229258349412352
Die Tabelle 3.3
zeigt
die
Operatoren. Prio
Reihenfolge
der Prioritäten der in
Maple
Zeichen
Funktion
&-Operatoren
Verkettungsoperator Elementoperator (Maple-Module) Label für Formatangaben in Zeichenketten z.B. für Matrixoperationen
vorhandenen
Fakultät ', @@
Potenz, Potenz, mehrfacher Verkettungsoperator
Multiplikation, &-Operator, Matrixmultiplikation, Division, einfacher Verkettungsoperator,
/, @,
intersect
Schnittmenge_
+, -, union, minus
Addition, Subtraktion, Vereinigungsmenge,
mod
Modulo-Operator Untermenge
10
subset
1 1 12
restart:
Wir definieren das Makro >
lg
macro(lg=loglO);
ig und können >
es von nun an
für
Eingaben nutzen:
lg (100);
ln(100) ln(10) >
evalf(%); 2.000000000
36
Wie Kurzformen dauerhaft zur Verfügung gestellt werden können, ohne sie bei Sitzung neu definieren zu müssen, ist in Anhang B3 erklärt.
jeder
3
82
Selbstverständlich lässt sich auch der voll verwenden.
ausgeschriebene
Grundlagen
Befehlsname weiterhin
Mit macro (und alias) können nur die Namen der abzukürzenden Funktionen und Befehle definiert werden, deren Syntax lässt sich aber nicht ändern. Nutzen Sie hierfür selbstdefinierte Funktionen (s. Kapitel 2.7). Definierte Makros lassen sich durch die Anweisung wieder auch hier können mehrere (kurzform=kurzf orm) löschen, Gleichungen mit zu löschenden Kurznamen übergeben werden, wobei keine Apostrophe verwendet werden dürfen.
macro
macro();
>
ig >
macro(lg=lg)
>
lg(100);
;
ig(ioo) restart löscht alle in einer
Arbeitssitzung festgelegten Makros und Aliase.
3.5.2 Aliase alias
Gegensatz zu macro werden mit Ausgabe von Ergebnissen verwendet. Im
>
restart:
>
alias(bi=binomial);
alias definierte Kurzformen auch bei der
bi >
bi(n, k);
bi(n, k) Seit Maple V Release 4 ist die Konstante E für die Eulersche Zahl 2.7182818... nicht mehr vorhanden. Zwar wird bei der Ausgabe der kleine Buchstabe e wenn passend zurückgegeben, doch lässt er sich nicht bei Eingaben verwenden, so dass immer die Eingabe exp (1) erforderlich wäre. Daher also: -
-
3.5 Kurznamen für Funktionen und Befehle >
83
alias(E=exp (1)); bi, E
>
In (E);
Den Wert E können Sie der Variablen constants (s. >
constants
:=
constants, E;
false, y, alias ohne >
a1
Kap. 3.2) hinzufügen:
oo,
true, Catalan, FAIL,
n, E
Argument gibt bereits definierte Alias-Kurzformen zurück:
i a s ()
;
bi, E Aliase werden wie Makros gelöscht, auch hier können Sie eine oder mehrere Gleichungen verwenden, wobei die Aliase ohne Apostrophe angegeben werden. >
alias(E=E); bi
>
In(E)
;
ln(E) Auf einen Nachteil der beiden Befehle macro und alias sei an dieser Stelle hingewiesen: Die Kurzformen mögen zwar für Sie lesbar sein, können aber bei anderen Maple-Anwendern, die Ihre Arbeitsblätter nutzen, Verständnisschwierigkeiten hervorrufen. Sollten die Kurzdefinitionen nur in Ihrer Maple-Initialisationsdatei (siehe Anhang B3) aufgeführt sein, bei anderen Anwendern aber nicht, so sind Ihre Arbeitsblätter wertlos, da die Kurzformen dann nicht übersetzt werden können.
Fügen Sie daher die Kurzdefinitionen hinter jede Zeile mit restart ein (meistens eher sinnlos) oder verzichten Sie ganz auf Makros oder Aliase, wenn Sie Ihre Maple-Dateien an Dritte weitergeben. Die dritte Alternative ist, auf die von Ihnen getroffenen Abkürzungen explizit in einer Textregion am Anfang Ihres Arbeitsblattes hinzuweisen und den Anwender zu bitten, sie in die eigene Maple-Initialisationsdatei einzutragen.
3
84
Funktion
Beschreibung
macro
Definition
von
Grundlagen
Syntax
Festlegung:
Abkürzungen
macro(
(Kurzformen); bei der Ausgabe wird der ursprüngliche Name zurückgegeben.
kurzformi=namei, kurzform2=name2, ...)
Abfrage bisheriger Festlegungen:
macro()
Definition
alias
von
Festlegung:
Abkürzungen
_
alias(
(Kurzformen); auch bei der Ausgabe werden die
kurzformi=namei, kurzform2=name2, ...)
Kurzformen verwendet
Abfrage bisheriger Festlegungen: alias()
Tab. 3.4: Definition
von
Kurzformen
3.6 Ausdrücke und Datenstrukturen In den folgenden Kapiteln werden Ihnen oft die Begriffe Ausdruck, Bereich, Folge, Liste und Menge begegnen und es ist vorteilhaft, ihre Bedeutung zu kennen. Die Termini werden hier auch anhand von Beispielen erläutert, stören Sie sich aber nicht an den noch zu besprechenden Befehlen.
Eine ausführliche
Beschreibung der Datenstrukturen in Maple gibt Kapitel
14.
3.6.1 Ausdruck
Ein Ausdruck • •
•
•
(expression) kann eine
Zahl,
z.B. 1, ein Bezeichner (von Variablen, Konstanten, Funktionen, Befehlen, etc.), z.B. n, Pi, In, sin, limit, eine durch einen oder mehrere Operatoren gebildete Kombination der vorher genannten Objekte, z.B. n + 1, sin(n + cos(Pi)), a < b, x-» y, ein Ausdruck, dem ein Index folgt, z.B. a [ 1 ],
sein. Ein Maple-Ausdruck ist ein beliebiger in Maple gültiger Ausdruck, die Begriffe Ausdruck und Maple-Ausdruck werden synonym gebraucht. Aus Ausdrücken sind auch die im folgenden vorgestellten Datenstrukturen zusammengesetzt.
3.6.2 Bereiche Ein Bereich
(range) hat die Form p
wobei p und q
.
.
q
beliebige in Maple gültige Ausdrücke repräsentieren.
3.6 Ausdrücke und Datenstrukturen
85
Bereiche bezeichnen Intervalle, p und q sind die Intervallgrenzen, der Binäroperator (zwei Punkte ohne Leerzeichen zwischen ihnen) verbindet die beiden Grenzen. Die Bedeutung ergibt sich allerdings erst aus dem Zusammenhang. Bereiche werden u.a. zur Angabe der Integrationsgrenzen bei der bestimmten Integration genutzt. .
.
>
restart:
>
Int(xA2, x=0
..
1)
=
int(xA2,
U
x=0
dx
=
o
3.6.3
..
1);
1
Folgen
Folge (expression sequence oder kurz sequence) ist eine geordnete Ansammlung beliebiger Maple-Ausdrücke, die durch Kommata voneinander getrennt sind:
Eine
ai, a2,ak,a„
Lösung einer oder mehrerer Gleichungen gibt u.a. die gefundenen Ergebnisse als Folge zurück: Der Befehl solve
>
zur
solve(xA3-xA2-2*x=0, x);
0, 2, -1 Hier hat die Ergebnisfolge drei Elemente und man kann auf ein oder mehrere Elemente mit Hilfe eines Index oder Indexbereiches zugreifen, die beide in eckigen Klammern (square brackets) angegeben werden. Die k-te Lösung lässt sich durch den a[k], z.B. >
% [1] ;
0
herausgreifen, wobei Ikl e Seite der Folge ermittelt. >
pl
:=
N. Ist k
negativ, wird das Ikl-te Element von der rechten
%%;
p1 >
:=
0, 2, -1
pl[2]; 2
3
86
Zur Ermittlung einer zusammenhängenden Teilfolge ap, a
pl[2
.
3]
.
Grundlagen e
N und
.
;
2, -1 Findet solve keine Lösung, so gibt Maple eine Leerfolge {empty sequence) zurück, die durch den Wert NULL definiert ist, aber auf dem Bildschirm nicht erscheint. >
solve(1=0);
Eine Folge kann auch aus keinem oder nur einem Element bestehen. Ist eine Leeroder ein-elementige Folge einer Variablen zugewiesen, so geben Sie bei Zugriffen nur ihren Namen, aber nicht den Index an. Aus Folgen werden in und Mengen gebildet.
Maple die in den nächsten zwei Absätzen vorgestellten Listen
3.6.4 Listen
{lists) entstehen durch Einschluss einer Folge in eckige Klammern: [ai, a2,ak,an] der einzelnen Elemente ak der Folge wird übernommen das ist wenn ein Befehl in einer Liste enthaltene Ausdrücke an einer festgelegten Position erwartet. Als Beispiel möge die graphische Darstellung vektorwertiger Funktionen (s. Kapitel 5.1.7) dienen. Die Anweisung
Die
Reihenfolge
-
später besonders wichtig,
>
zur
t=0 >
t=0
plot([sin(t), cos(t),
..
2*Pi]);
Zeichnung ..
2tt
an
des Einheitskreises ist korrekt, wird aber das Parameterintervall die zweite Position verschoben, so gibt Maple eine Fehlermeldung aus.
plot([sin(t),
Plotting
error,
t=0
..
2*Pi, cos(t)]);
empty plot
Natürlich ist auch die von Ihnen vorgegebene Reihenfolge der Elemente eines Vektors oder einer Matrix von Maple einzuhalten, daher werden bei deren Definition Listen verwendet.
Auf einzelne Listenelemente ak oder eine Teilfolge von Listenelementen ap, gestattet wie bei Folgen ein Index bzw. ein Indexbereich den Zugriff:
a4
3.6 Ausdrücke und Datenstrukturen >
p2
[Pl]
:=
;
p2 >
87
:=
[0, 2, -1]
p2[1]; 0
Maple gibt bei der Angabe eines Indexbereiches eine Liste zurück. Sonderfälle sind wie bei Element. >
[ solve(1=0)
Folgen die
leere Liste und eine Liste mit
nur
einem
];
[] >
p3
[solve(x=0, x)];
:=
p3
:=
Möchten Sie aus p3 das einzelne Element den Variablennamen. >
p3 [1]
[0]
ermitteln, so setzen Sie den Index 1 hinter
;
0
Listen können Sie mit dem Befehl op in deren Reihenfolge bleiben dabei erhalten. >
Folgen umwandeln,
alle Elemente und
op(p2); 0, 2, -1
Alternativ setzen Sie hinter den Namen der Liste eine leeres >
p2 [ ]
eckiges Klammerpaar:
;
0, 2, -1 3.6.5
Mengen
Menge wird ebenfalls aus einer Folge gebildet, indem letztere in geschweifte Klammern (braces) gesetzt wird. Im Unterschied zur Liste werden mehr als einmal vorkommende gleiche Ausdrücke eliminiert, und ihre interne Reihenfolge ist von Session zu Session verschieden: Eine
88_3 Grundlagen >
p4
:=
{a, b,
c,
d,
a,
b};
p4
:=
{a, b,
c,
d}
Indexzugriffe sind zwar auch hier möglich, doch aufgrund der nie vorhersehbaren Reihenfolge unsinnig. Eine Menge können Sie wie bei Listen mit op in eine Folge konvertieren: >
op(p4); a,
b,
c, d
Mengen können auch aus nur einem Element oder einer Leerfolge bestehen, z.B. >
{NULL};
{} welches
gleichbedeutend mit
{ } ist.
Maple-Mengen gleichen den aus der Mathematik bekannten Mengen und lassen sich speziellen Mengenoperatoren behandeln, die in Kapitel 13.2.3 beschrieben
mit
werden.
Zusammenfassung: Syntax Bereich
p
Folge
ai, 32,
Liste
[ai, a2, {a,, a2,
..
q
Zugriff einzeln Zugriff Bereich 1 3; lhs(r), rhs(r); an folge[r]; folge := 1,2,3, 1; folge[k]; liste[k]; liste[r]; a„] liste := [folge]; an} menge := {folge}; menge[k]; menge [r]; Beispiel ..
Menge
Tab. 3.5: Datenstrukturen in
3.7
Maple
Datentypen
whattype Kapiteln vorgestellten Maple-Befehle bzw. -Funktionen erwarten ein oder mehrere Argumente, die bestimmten Datentypen entsprechen müssen, Sie erhalten ansonsten Fehlermeldungen. type
Die in den nächsten
Ganze Zahlen sind beispielsweise vom Typ integer, Brüche vom Typ fraction, Bezeichner vom Typ name, Matrizen vom Typ matrix, und Reihen vom Typ series.
3.7
Datentypen_89
Typen sind in eine Hierarchie eingeordnet, so ist beispielsweise den Typen integer und fraction der Typ rational übergeordnet, diesem wiederum zusammen mit den Fließkommazahlen der Typ numeric, numeric inklusive komplexer Zahlen der Typ complex, und letztendlich gehört complex wie auch Summen (+), Produkte (*) und Potenzen zum Obertyp algebraic. Diese
Typen lassen sich in Maple mit den Befehlen type und whattype überprüfen, type erwartet den zu überprüfenden Maple-Ausdruck als erstes, und den Namen des Typs als zweites Argument. Die Funktion teilt dann mit, ob der Ausdruck dem angegebenen Typen entspricht. >
type(2, integer); true
>
type(1.5, rational); false
>
type(xA2-2*x, polynom); true
whattype gibt den Basistypen eines Ausdruckes zurück. >
whattype(1/2); fraction
>
whattype(xA2-2*x); +
Im letzten Beispiel ist der Ausdruck x2 2x sowohl ein Polynom als auch eine Summe aus der Potenz x2 und dem Produkt -2x. whattype gibt daher immer den obersten in der Hierarchie befindlichen Typen zu einem Ausdruck zurück. -
Die
algebraischen Datentypen in Maple sind nach folgendem System strukturiert:
90
3
Grundlagen
algebraic function
name
series
extended numeric realcons ±00
nonreal
'undefined'
*) *) undefined gehört nicht zum Typ complex
numeric
rational
integer Abb. 3.1
float
fraction
Hierarchiesystem der algebraischen Datentypen
10.2 enthält weiterführende Informationen zu diesem Thema. In finden Sie eine Übersicht über die in Maple vorhandenen Datentypen.
Kapitel
Funktion
tvpjL whattype
Beschreibung Datentypüberprüfung Datentypermittlung
Syntax type(ausdr, datentyp) whattype (ausdr)
Tab 3.6: Funktionen für
3.8 Auswahl
von
Anhang A3
Datentypen
Teilausdrücken
has op indets remove select member Ein mathematischer Ausdruck wie 2 ln(a3) lässt sich aufgrund der unterschiedlichen Vorränge (s. Kap. 3.4) der Teilausdrücke wie folgt zerlegen:
In A
3.8 Auswahl
von
Teilausdrücken
91
Sie können mit verschiedenen Befehlen Teile eines Ausdruckes ermitteln. >
p
2*ln (a"3)
:=
;
p
Die Teilausdrücke und den alle Teilausdrücke zurück. >
op(p)
:=2ln(a3)
Datentyp eines Termes bestimmt
op. op ohne Index
gibt
;
2,ln(a3) Die Konstante 2 lässt sich nicht weiter
p)jedoch schon. Der Index 0 >
op
zerlegen, der Logarithmus ln(a3) (2. Teil von
spezifiziert meistens den Typ des Ausdruckes:
(0, p)
; *
p ist also ein Produkt
Bei >
aus
der Konstanten 2 und dem
Logarithmus ln(a3).
Angabe eines Index n, n * 0, wird der n-te Teilausdruck ermittelt.
op(2
,
p)
;
ln(a3) Der nächste Befehl gibt das Argument der Logarithmusfunktion zurück. Dieses für alle Ausdrücke der Form f unktion (argumente)
gilt
.
>
op (%) ;
a3 Bei Funktionsausdrücken zurück. >
gibt
der Index 0 keinen
op(0, %%); In
Typ,
sondern deren Namen
Grundlagen
92
3
lassen sich schachteln. Aus dem zweiten Teilausdruck wird der erste und in diesem Fall einzige Teilausdruck a3 bestimmt.
von
op-Ausdrücke >
op(1,
op
(2, p) )
p,
ln(a3),
;
a3 Die Funktion has bestimmt, ob ein Ausdruck einen bestimmten Wert enthält. Das Ergebnis ist entweder true oder false. Im folgenden Beispiel wird geprüft, ob der obige Ausdruck 2 ln(a3) die Variable a enthält. >
has
(p, a); true
Die Konstante 4 ist in p nicht enthalten. >
has(p, 4); false
Mit select können Sie bestimmte Teile auswählen, die einer genannten Bedingung genügen. Das erste Argument ist eine Boolesche Funktion, die entweder true oder false zurückgibt, das zweite Argument der zu untersuchende Gesamtausdruck, das dritte Argument enthält die Angabe eines Objektes, das in dem Teilausdruck enthalten sein muss dieses kann auch ein Typname sein (3. und 4. Beispiel). -
>
select(has, p, 2); 2
>
select(has, p, a);
ln(a3) >
select(type,
p,
constant); 2
>
select(type, p, function);
ln(a3) Der Befehl remove ist die den Kriterien genügen.
Umkehrung von select ermittelt genau die Teile, die nicht
3.8 Auswahl >
93
Teilausdrücken
von
remove(type, p, constant);
ln(a3) Verwandt mit has ist die Funktion member, welche prüft, ob ein Ausdruck (erstes Argument) Teil einer Liste oder Menge (zweites Argument) ist. >
member(1,
[0, 1, 2, 3]); true
>
member(xA2,
{x, xA2, xA3}); true
Der Faktor 2 ist >
member(2,
zwar
in p
{p})
;
=
2 ln(a3)
vorhanden, jedoch ist 2 kein Mengenelement.
false
Nutzen Sie in diesem Falle has, anderen Ausdruckes ist. >
um zu
bestimmen, ob ein Ausdruck Teil eines
has(p, 2); true
indets ermittelt alle Unbestimmten in einem rationalen Ausdruck, gibt aber auch Konstanten, Maple-Funktionen und Potenzen zurück. Daher sollten Sie das Ergebnis mit select näher eingrenzen. >
indets(p)
{a, ln(a3)} >
select(type, %, name);
{a}
94
3
Funktion op
Beschreibung
Rückgabe von Teilausdrücken oder Ermittlung des Datentyps eines Ausdruckes
Grundlagen
Syntax alle Teilausdrücke: op
(ausdr)
Datentyp: op(0, ausdr) n-ter
Teilausdruck, neN:
op (n,
nops has member
select
Anzahl der Teilausdrücke bzw. Elemente Prüfung auf Teilausdruck Prüfung, ob Element Teil einer Liste oder Menge_ Auswahl von Teilen nach Auswahl
von
Teilen, die einer
gegebenen Bedingung
nicht
entsprechen_ indets
Bestimmung aller Unbekannten Tab. 3.7: Funktionen
3.9 Die
ausdr)_
(ausdr)
Bemerkung: ausdr keine Folge
!
(ausdr, teilausdr) member (dement, ausdr) has
select(
boolausdr, ausdr, teilausdr)
gegebener Bedingung remove
nops
zur
remove(
boolausdr, ausdr, teilausdr) select(type, indets
(ausdr)
,
name)
Bestimmung von Teilausdrücken
map-Funktion
map Ein sehr hilfreicher Befehl
zur Behandlung von Ausdrücken ist map, mit welchem eine Funktionsvorschrift auf eine Liste oder Menge von Elementen oder aber auf jedes Glied eines algebraischen Ausdruckes angewendet werden kann. >
L
:=
[1, 2, 3 ]
;
L
Die >
:=
[1, 2, 3]
folgenden Anweisung stellt jedes Element aus L unter die Quadratwurzel:
map(sqrt, L)
;
[1, 72,73] Möchten Sie eine Funktion, die grundsätzlich mehrere Argumente erwartet, anwenden, so nennen Sie den Funktionsnamen als erstes, den Ausdruck mit den zu behandelnden Elementen als zweites, und weitere Argumente der Funktionsvorschrift als drittes, viertes, etc. Argument. Die dritte Wurzel mit surd (x, n), n=3:
3.9 Die map-Funktion >
95
map(surd, L, 3);
[1,2,3] Eine sehr mächtige und praktische Variante ist die Verwendung einer anonymen Funktion: im nächsten Beispiel wird jedes Element in L quadriert37. In das Argument x wird jedes Listenelement eingesetzt und dann die Vorschrift x2 darauf ausgeführt. >
map(x
->
x
A
2
,
L)
;
[1,4, 9] Die men >
Anwendung der Quadratwurzel wurde oben bereits vorgestellt. Mit einer anonyFunktionsvorschrift lässt sich dasselbe Ergebnis erzielen:
map(x
->
sqrt(x), L)
;
[1, 72,73] Sehr hilfreich ist der kombinierte Einsatz einer anonymen Funktion mit den Funktionen 'if und is: wenn das Listenelement kleiner 3 ist (is (x < 3)), dann gebe den Werte true zurück, ansonsten false. >
map(x
->
~if~(is(x
L
:=
[-1, -2, 0, 1, 2]
;
L >
map(x
->
~if~(is(x
>=
jeden anderen Maple-Ausdruck
:=
[-1,-2, 0, 1, 2]
0), sqrt(x), undefined), L);
[undefined, undefined, 0, 1,72] Besonders praktisch ist der Einsatz der Konstanten NULL, nicht zurückzugeben:
37
Für die Quadrierung gibt geschrieben.
es
keine
Maple-Funktion,
es
sei
um
bestimmte Elemente
denn, sie haben eine eigene
3
96 >
map(x
->
'if (is(x
>
0)
x,
,
NULL), L)
Grundlagen
;
[1.2] Wie eingangs erwähnt, funktioniert beispielsweise bei einem Polynom. >
p
:=
In diesem Fall wird auf jedes op
(p)
algebraischen Ausdrücken,
xA2+2*x+l; p
>
map auch bei
:=
x2 + 2x +1
Polynomglied
;
x2,2x, 1 die >
Betragsfunktion angewendet.
map(abs, p);
|X|2+2|X|
+1
Anonyme Funktionen können Sie ebenfalls nutzen. >
map(x
->
x*a, p);
x2a +2 x a + a Funktion map
Beschreibung
Anwendung einer Funktions-
vorschrift f auf einen Ausdruck ausdr (Liste, Menge oder
algebraisch)_
Syntax (f, ausdr) map(f, ausdr,
map
arg,, arg2,
Umformungen, Vereinfachungen und Lösungen
4
Übersicht 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12
Rechnen mit
Polynomen
Quotienten
Vergleich von Ausdrücken Annahmen und Vereinfachungen Gleichungen Ungleichungen Gleichungssysteme Substitution von Ausdrücken Manuelle Lösung von Gleichungen Punkt-Richtungsform und Schnittpunkte Komplexe Zahlen Rechnen mit Einheiten in Maple 7
4.1 Rechnen mit
von
Geraden
Polynomen
coeff coeffs collect
interp
student/completesquare degree expand
simplify
lcoeff
Idegree sort
tcoeff
factor
Beginnen wir zunächst mit der Behandlung Polynome aus (expansion ofpolynomials): >
von
Polynomen, expand multipliziert
expand((a-b)*(a+b));
a2 Möchten Sie, dass bestimmte Teilterme nicht diese als weitere Argumente an:
ausmultipliziert werden,
so
geben
Sie
98_4 Umformungen, Vereinfachungen & Lösungen >
expand((a-b)*(a+b), a+b);
(a + b) a (a + b) b -
>
expand(%);
a2-b2 factor >
zerlegt einen polynomialen Ausdruck in Linearfaktoren:
factor
(%);
(a b) (a + b) -
Der Zahlenbereich (Körper) der in dem zu zerlegenden Polynom enthaltenen Koeffizienten bestimmt den Zahlenbereich der in den Linearfaktoren (x ak) enthaltenen
Nullstellen
ak.
Beispiele:
-
Die Koeffizienten des folgenden Polynomes sind Nullstellen der resultierenden Linearfaktoren: >
ganzzahlig
und somit auch die
factor(xA2-3*x+2);
(x-1)(x-2) Daher lässt sich das >
folgende Polynom so nicht in Linearfaktoren zerlegen:
factor(xA2-2);
x2-2 Kennen Sie die Nullstellen bereits, >
factor
so
geben Sie sie als zweites Argument an.
(xA2-2, sqrt(2));
(x-72 )(x + V2) Sind die Nullstellen nicht bekannt (ermitteln Sie diese mit dem später vorgestellten Befehl solve), so geben Sie die Option real an, die Linearfaktoren enthalten dann die Nullstellen als (ungenauere) Fließkommazahlen: >
factor (xA2-2,
real);
(x+ 1.414213562) (x 1.414213562) -
4,1 Rechnen mit
Polynomen
99
Polynom bereits eine oder mehrere Fließkommazahlen, ist die Ausgabe äquivalent der Berechnung mit der real-Option: Enthält das
zu
>
factor(x""2-2.);
(x + 1.414213562) (x 1.414213562) -
Mit der zahlen -
>
Option complex zurückgegeben:
werden
komplexe Nullstellen ebenfalls
als Fließkomma-
-
factor(xA2+2);
x2 + 2 >
factor(xA2+2, complex);
(x +
1.414213562
I) (x 1.414213562 I) -
Die Vereinfachung (simplification) von Ausdrücken erfolgt in den allermeisten Fällen mittels simplify. Die Vereinfachungen, die Maple hierbei durchführt, hängen von der Art des jeweiligen Ausdruckes ab. >
aAx*aAy; ax a*
>
simplify(%); a
p
:=
aA2 + 2*a*b+b'N2;
p >
:=
a2+ 2ab + b2
simplify(p); a2+ 2ab
+
b2
100_4 Umformungen, Vereinfachungen & Lösungen factor(p);
>
(a
+
b)2
In
einigen Fällen liefern simplify und expand gleiche Resultate:
>
p
:=
(x-1)*(x+l)+l; p
>
:=
(x-1) (x + 1) +
1
simplify(p); x2
>
expand(p);
x2 Bei einfachem Einsatz >
p
:=
von
(xA2)A (1/2)
simplify geht Maple streng mathematisch vor.
;
P >
:=
Vx2"
simplify(p);
csgn(x) x csgn ist eine der drei Vorzeichenfunktionen und ermittelt die (komplexe) Halbebene. Bei Übergabe der Option symbolic lässt Maple die Definitionsbereiche der Unbekannten außer acht. >
simplify(p, symbolic);
Durch Angabe der assume-Option geben Sie simplify den Wertebereich der in dem Ausdruck enthaltenen Unbestimmten vor, so dass weitere erlaubte Vereinfachungen vorgenommen werden können38. Gültige Vorgaben finden Sie in Anhang A3 unter den Rubriken numeric und complex. -
>
simplify(p, assume=real);
Ixl Siehe auch
Kap. 4.4.1.
-
4.1 Rechnen mit >
Polynomen
101
simplify(p, assume=positive); x
>
simplify(p, assume=negative); -x
Sie können auch eine oder mehrere
Nebenbedingungen
vorgeben39: >
p
:=
Menge
a*b*c+a*b;
p:=abc + >
als Liste oder
ab
simplify(p, {a*b=l}); c+ 1
collect fasst einen Ausdruck in bezug auf eine bestimmte Variable oder unausgewertete Funktion (hier das zweite Argument) zusammen: >
p
:=
x+a*x-a;
p
:= x + a x
a -
>
collect
(P, x)
;
(1 >
collect
(P, a)
+
a) x
a -
;
(x -1) a + x >
collect (xA2*sin(x)-x*sin(x),
sin(x));
(x2 x) sin(x) -
Quadratische Ergänzungen sind ebenfalls problemlos: >
restart:
>
p
:=
xA2+2*x+2;
p
:=
x2+ 2x
+
Weitere Informationen finden Sie in der Hilfeseite
2
zu
?simplif y, siderel.
4
102
Umformungen, Vereinfachungen & Lösungen
with(student): completesquare(p, x);
>
(x + 1)2 + 1
completesquare40
ist nicht Bestandteil der Standardbibliothek Maples, in welcher die fundamentalen Befehle und Funktionen gespeichert sind, sondern ist in einem sog. Paket (hier student) enthalten. Sie können auf dreierlei Weise auf Paketbefehle
zugreifen: 1) indem Sie einen Befehl
in seiner voll
name[befehl] (argumente)
ausgeschriebenen
sog.
Langform paket-
aufrufen, z.B.
student[completesquare](p, x); oder indem Sie den Befehl with(paketname) ausführen, der Kurzformen für alle in einem Paket definierten Kommandos erzeugt. Eine Paketprozedur paketname[befehl] ist dann unter Form befehl verfügbar, so dass Sie auf die bisher gewohnte Weise einen Paketbefehl via befehl (argumente) wie in dem >
2)
Beispiel oben anwenden können; Beispiel: >
with(student): completesquare(p, x):
3) oder durch gezielte Angabe eines oder mehrerer Befehlsnamen mittels with(paketname, befehll,
in dem Paket enthaltener befehl2, ...), z.B. > with(student, completesquare); completesquare (p, x) : In diesem Falle können dann nur die angegebenen Befehle in ihrer Kurzform aufgerufen werden.
interp41
ermittelt ein Interpolationspolynom aus n+1 vorgegebenen Kurvenpunkten, wobei die Abszissenwerte als erstes, die Ordinatenwerte als zweites und die in dem Polynom zu verwendende Unbekannte als drittes Argument genannt werden. Das Ergebnis ist ein Polynom n-ten Grades. Der Befehl
Abszissen- und Ordinatenwerte werden als Listen grundsätzlich nicht mehrfach vorkommen. >
interp ( [1, 2, 3]
,
[3, 2, 3]
,
x)
übergeben; Kurvenpunkte
dürfen
;
x2-4x + 6 Sortieren nach
absteigendem
Grad der Glieder eines
Polynomes
können Sie mit
sort: 40
41
Statt completesquare können Sie auch cmpltsq eingeben. In Maple 7 ist die originäre Prozedur interp nicht mehr vorhanden. Stattdessen führt ein Aufruf von interp jetzt zur Ausführung des Befehles Polynomiallnterpolation aus dem Paket CurveFitting.
4.1 Rechnen mit >
restart:
>
poly
:=
Polynomen
103
x'N2-3*xA5+x;
poly
:=
xz 3xb
+ x
-
>
sort(poly);
3x5 + x2
+ x
der ursprünglich in dem Polynom enthaltenen Glieder geht dabei sort d.h. weist den sortierten Ausdruck der Variablen poly automatisch zu. verloren, Die >
Reihenfolge
poly;
-3x5
+
x2
+ x
Funktion
Beschreibung
Syntax
simplify
Vereinfachung
Standard:
simplify (ausdr) Definitionsbereich
ignorieren:
simplify (ausdr, symbolic)
Vorgabe
eines Wertebereiches
(z.B
real, positive, etc.): simplify(
ausdr, assume=wertebereich)
Nebenbedingung: expand factor
Ausmultiplizierung Faktorisierung
simplify (ausdr, expand (ausdr)
{gl})_
Standard: factor
(ausdr)
Angabe eines Zahlbereiches K: factor
(ausdr, K)
Nullstellen als Fließkommazahlen: factor (ausdr, real) collect
Zusammenfassung nach einer
collect
(ausdr, unbest)
Unbestimmten student/
complete
Quadratische Ergänzung eines student[completesquare]( ausdr, unbest) Polynomes 2. Grades
square
interp sort
lcoeff
Interpolationspolynom aus Koordinatenpunkten_ Sortieren eines Ausdruckes Koeffizient der höchsten Potenz
interp( [x-Werte] sort
,
[y-Werte] ,unbest)
(ausdr)
lcoeff
(poly
unbest*-)
4
104
|
tcoeff
Umformungen, Vereinfachungen & Lösungen
Koeffizient der niedrigsten
tcoeff
(poly
Ermittlung aller Koeffizienten
coeffs
(poly
Koeffizient einer Potenz in einem Polynom
Koeffizient einer Potenz mit Grad
unbest»)
Potenz coeffs coeff
|
Tab. 4.1: Funktionen
4.2
zur
unbest») n:
(poly, unbest, n) Koeffizient einer vorgegeb. Potenz p: coeff (poly, p)_ degree (poly
f
:=
x
->
(xA2-0.5)/(x-1)
;
f
Die >
x-1
-
Bestimmung des Zählers (numerator) erfolgt mit dem Befehl numer:
fz
:=
numer(f(x)); fz
:=
x2 .5 -
denom ermittelt den Nenners >
fn
:=
(denominator):
denom(f(x)); fn
1
:= x -
in Abhängigkeit von einer Unbestimmten ermittelt Sie zunächst das Polynom, optional danach die Unbestimmte. degree. Übertragen Enthält das Polynom nur eine Unbestimmte, so kann das zweite Argument entfallen. Wichtig ist, dass das Polynom ausmultipliziert ist, bevor es an degree übertragen Den Grad eines
Polynomes
Quotienten
4.2
105
wird, sonst kann Maple den Grad nicht korrekt bestimmen. Wenden Sie ggf. vorher expand auf das Polynom an. >
degree (fz, x), degree(fn, x);
2, 1 f ist also eine unecht quo ermittelt den
drittes
Argument
>
:=
qu
gebrochene rationale Funktion. Anteil bei einer Division zweier Polynome; als Sie die in den Polynomen enthaltene Unbestimmte (hier x):
ganzrationalen
nennen
quo(fz, fn, x); 1.
x +
Die >
Syntax zur Ermittlung des
re
:=
Restes
{remainder) mit rem gleicht der von quo:
rem(fz, fn, x); .5
Somit >
ergibt sich:
qu+re/fn; X+1.
+
.5
3PT
Diese manuell durchgeführte Zerlegung in einen ganzen rationalen und einen echt gebrochenen rationalen Term erleichtert der Befehl convert/parfrac für allgemeine Partialbruchzerlegungen {partial fractions). Das erste Argument von convert ist das gebrochen-rationale Polynom selbst, das zweite die Option parfrac, welche die Art der Division bestimmt, und das dritte Argument die im Polynom enthaltene Unbestimmte: >
convert(f(x)
,
parfrac, x); x +
"•
+
.5000000000 x-1.000000000
In dem Ergebnis sind Fließkommazahlen enthalten, da f(x) ebenfalls eine Fließkommazahl enthält: das Absolutglied 0.5 im Zähler. Wandeln Sie jetzt den Ausdruck mit convert/rational in einen rationalen Ausdruck um:
4
106 >
Umformungen, Vereinfachungen & Lösungen
convert(f (x), rational); 1
x +
+^zr
Rest teilbar sind. Wenn ja, so wird true dritten dem Ergebnis Argument übergeben; wenn nicht, dann ausgegeben Ausdruck an das dritte Argument zurück. Es meldet Maple false und liefert keinen ist wichtig, darauf zu achten, dass der Bezeichner, der als letztes Argument übergeben wird, unbestimmt ist. Ist er aber bereits mit einem Wert belegt, so übergeben Sie ihn in Apostrophen, also unausgewertet.
divide
bestimmt, ob zwei Polynome ohne und das
>
soll
>
divide(xA3-2*xA2-5*x+6, x-1, soll);
:=
1:
Error, wrong number (or type) of parameters in function divide >
divide (xA3-2*xA2-5*x+6,
'soil');
x-1,
true >
soil;
x2 >
6
x -
-
divide(0.5*xA3-l.5*x+l, xA2+3*x+2, sol2); false
>
sol2;
sol2
Nicht-gleichnamige Brüche fasst normal zusammen. >
br
(2*x-l)/(x-2)-(x+1)/ (x+2) br
>
:=
2x-1 x-2
;
-
x +1 x +2
normal(br); x
(x + 4)
(x-2)(x+2) Geben Sie die
Option expanded an, so werden Zähler und Nenner ausmultipliziert.
>
107
Quotienten
4.2
normal(br, expanded);
x2 +4x x2-4
Hauptnenner (common denominator) ist das kleinste gemeinsame Vielfache {least commom multiple) der beiden Nenner: Der
>
1cm(x-2, x+2);
(x-2) (x+2) Der >
größte gemeinsame Teiler des Bruches lautet:
gcd(x-2, x+2)
;
1
Eigenheit Maples hingewiesen: Brüche werden bei Ihrer möglich gekürzt, ohne dass man dieses verhindern könnte42.
An dieser Stelle sei auf eine
Interpretation >
f
:=
x
wenn -
->
-
(x-1)A2/(x-1); f :=
x -»x
-
1
Sogar ein Einschluss in Apostrophe hilft nicht, der Ausdruck wird dennoch gekürzt. Dieses Verhalten ist problematisch, da der ursprüngliche Ausdruck an der Stelle x=l eine Definitionslücke besitzt, der von Maple zurückgegebene und in der Variablen f abgespeicherte Ausdruck aber über dem gesamten Definitionsbereich stetig ist. Sie können aber definieren (vgl. Kap. 2.7): >
f(l)
:=
undefined;
f(1) >
:=
undefined
f (l) ;
undefined
Vereinfachung ist im Kernel (s. Anhang Bl.l) einprogrammiert und wird von den Maple-Entwicklern als hinnehmbar angesehen, da sie nur für eine kleine Zahl von Fällen
Diese
inkorrekt sind.
108
4
Umformungen, Vereinfachungen & Lösungen
Beschreibung
Funktion
Syntax
(ausdr) (ausdr) normal (ausdr)
Ermittlung des Nenners Ermittlung des Zählers | Zusammenfassung gleichnamiger Brüche
numer
denom normal
numer
denom
Zähler & Nenner ausmultipliziert: normal (ausdr, expanded)
| ganzrationaler Teil bei Polynomdivision_
quo rem
convert/ confrac convert/
quo(polyi, poly2, unbest)
Rest bei Polynomdivision Kettenbruch
convert(
rem(polyi, poly2, unbest)
Partialbruchzerlegung
convert(
ausdr, confrac, unbest)
ausdr, parfrac, unbest)
parfrac
gemeins. Vielfache lcm(polyi, poly2) größter gemeinsamer Teiler gcd(polyi, poly2) Nur Überprüfung: | Prüfung auf ohne Rest teilbare Polynome divide (polyi, poly2) Überprüfung & Zuweisung an kleinstes
1cm
divide
Variable: divide
convert/ rational
I Umwandlung in rationalen
|
(polyi, poly2,
:onvert
var)
(ausdr, rational)
Ausdruck
Tab. 4.2: Funktionen für Quotienten
4.3
Vergleich von Ausdrücken
evalb Ein Vergleich ten
is von
Ausdrücken
Operatoren (s. Tabelle 4.3).
{expressions) geschieht durch die allgemein bekann-
is wertet (evaluates) eine Gleichung in bezug auf ihren (Booleschen) Wahrheitswert aus, wobei auch irrationale Werte verglichen werden können. >
restart:
>
is(1
o
109
Bedeutung gleich (equals) kleiner als (less than) kleiner gleich (less or equals) größer (greater than) größer gleich (greater or equals) ungleich (unequal) Tab. 4.3: Relationen
>
pi
(x+1)*(x-1);
:=
p1 >
p2
:=
(x + 1) (x-1)
expand(pi);
:=
p2 >
is(pi
=
:=
x2-1
p2); true
is gibt den Wert FAIL zurück, wenn sind sowohl a als auch b unbestimmt. >
is(a
=
es
eine Relation nicht auswerten kann. Hier
b)
FAIL
In diesem Fall können Sie es mit evalb Relation vereinfachen müssen. >
evalb(a
=
versuchen, wobei Sie ggf. vorher die
b); false
evalb kann Ausdrücke: >
nur
einfache Relationen
prüfen, ggf. vereinfachen Sie vorher die
evalb(pl=p2); false
>
evalb(expand(pl)=p2); true
110
4
Ausdrücke mit den < und
>
a
a
>
Operatoren
>
und
Umformungen, Vereinfachungen & Lösungen >=
wandelt
b;
b
=
Mehr Informationen
zu
diesem enthalten
4.4 Annahmen und
Kapitel
10.1 und 12.
Vereinfachungen
about assume
convert/ln convert/radians convert/sincos
assuming
convert/trig
combine/In
radnormal rationalize RealDomain RealRange &
additionally
combine/power combine/radical
combine/trig convert/degrees convert/expsincos Aus gutem Grund vereinfacht >
sqrt(xA2);
zu
Y und
>
sin(2*Pi*n);
nicht
zu
Maple nicht automatisch Ausdrücke wie z.B.
'0'.
Im ersten Fall x
:=
-2
:
Open
trigsubs
sin(2 n n)
>
Maple grundsätzlich in solche mit
gilt beispielsweise:
4.4 Annahmen und >
Vereinfachungen
111
sqrt(xA2)=x; 2
>
is (%)
=
-2
;
false >
x
:
=
1
x
'
:
Im zweiten Fall kann
4.4.1 Setzen
von
sin(27rn) nur dann zu '0' vereinfacht werden, wenn n
e
N ist.
Annahmen
Maple bietet die Möglichkeit, gewisse Annahmen für Unbekannte zu treffen, die deren Definitionsbereiche einschränken und Vereinfachungen erlauben. Erst mit gegebenen Annahmen können diverse Maple-Befehle ihre Ergebnisse wie gewünscht liefern. Dabei gibt es zwei Wege: treffen Sie Annahmen, die für die gesamte nachfolgende Session gelten, bis die Annahmen geändert, gelöscht oder alle Werte mittels restart gelöscht werden.
1) Mit dem Befehl
assume
zusammen mit einer oder mehreren Annahmen hinter einen auszuwertenden Ausdruck gesetzt wird, gilt die getroffene Einschränkung nur einmalig für diesen Ausdruck, nicht für nachfolgende, die eingeschränkte(n) Variable(n) enthaltende Berechnungen. Diese Form wurde mit Maple 7 eingeführt.
2) Durch Angabe des Schlüsselwortes assuming, welches
4.4.1.1 Setzen assume >
von
Annahmen mit
assume
teilen Sie eine Relation mit:
assume(x
>=
0);
Wurden Definitionsbereichseinschränkungen für eine Unbekannte vereinbart, so wird bei der Ausgabe direkt hinter den Variablennamen eine Tilde gesetzt. Diese Tilde darf aber nicht bei der Verwendung des Namens in der Eingaberegion benutzt werden. >
x; x~
Bisher
getroffene Annahmen
gerufen werden.
können mit der
Anweisung
about in
Erinnerung
112_4 Umformungen, Vereinfachungen & Lösungen about (x);
>
x, renamed x~: is assumed to be: RealRange(0,infinity)
Originally
Übersetzt heißt dieses sinngemäß:
ursprünglicher Name: x, geändert zu: x~, mit der Annahme: Definitionsbereich eingeschränkt
• •
Zahlen mit 0 Jetzt führt
Menge der reellen
auf die
< x < oo.
Maple die Vereinfachung durch43:
sqrt(xA2);
>
x~
Maple können Sie über den Menüpunkt Options/Assumed Variables steuern, wie Maple Variablen, für die Annahmen getroffen wurden, darstellen soll: mit nachgestellter Tilde (Trailing Tildes), mit dem erklärenden Text "with assumptions on ..." (Phrase) oder ohne jegliche Kennzeichnung (No Annotation)44. In
Zu der Periodizität der Sinusfunktion: Neben der Angabe eines Datentyps akzeptiert assume auch die Angabe eines Datentyps in diesem Zusammenhang eines Körpers zu dem eine Unbekannte gehört45. -
-
>
assume(n, integer);
> about(n); Originally n,
renamed n~: is assumed to be: integer
>
sin(2*Pi*n); 0
Getroffene >
x
:=
Vereinbarungen werden durch Löschung der Variablen aufgehoben
'x':
n
:=
'n':
Hier können Sie auch simplify mit der Option symbolic verwenden, ohne vorher Annahmen getroffen zu haben. Sie können auch von der Kommandozeile aus durch die Zuweisung ~" : die Tilde zum Verschwinden bringen, erfassen Sie diese Anweisung vor der Verwendung von assume. Vgl. Michael Monagan: Tips for Maple Users', MapleTech Spring 1994. Eine Aufstellung der in Maple vorhandenen Typen finden Sie in Anhang A3. '
'
=
4.4 Annahmen und
Vereinfachungen_U3
oder durch erneuten Einsatz von assume überschrieben. Auch für verschiedene Unbekannte können Einschränkungen in einer assume-Anweisung getroffen werden. >
assume(x
i s (x
additionally(n,
>
about(n);
0
2);
..
Originally
n, renamed n~: is assumed to be: PropRange(0,2)
Hier wird die Unbekannte beschränkt.
n
auf die ganzen Zahlen 0 bis 2, d.h.
n
=
{0, 1,2}
is kann neben der Auswertung von Relationen auch auf die Eigenschaft eines Wertes prüfen. Geben Sie den Wert als erstes, die Eigenschaft als zweites Argument an: >
is(n, integer); true
Weitere >
Möglichkeiten bei assume sind beispielsweise:
assume(n, integer,
>
n
0);
> about(n); Originally n,
renamed n~: is assumed to be: AndProp(RealRange(1,infinity),integer)
Zwei Eigenschaften wurden Zahlen und weiter gilt: 1 < n 46
verknüpft, einmal
b
:=
RealRange(Open(0), 1):
assume(n, b); about(n); Originally n, renamed n~: is assumed to be: RealRange(Open(0),1) >
>
Wiederum lässt sich mit is >
is(0, b)
überprüfen, ob ein Element in einem Intervall liegt.
;
false >
is (1, b);
true
Hinweis für Programmierer: In der Systemtabelle property/object' werden alle Annahmen, die zu Werten getroffen wurden, verwaltet. Zu einem Wert getroffene Eigenschaften lassen sich über einen Indexzugriff auf die Tabelle ermitteln: >
'property/object1[n];
RealRange(Open(0), 1)
erfahren, ob assigned.
Um
zu
zu
einem Wert
Eigenschaften
definiert wurden, nutzen Sie
4.4 Annahmen und >
115
Vereinfachungen
assigned('property/object~ [n]); true
Vorgabe von Annahmen mit assuming In Maple 7 wurde das Schlüsselwort assuming eingeführt. Direkt an einen Ausdruck angehangen bewirkt es, dass die hinter assuming aufgeführten Annahmen nur auf den vorstehenden Ausdruck angewendet werden, und nicht auf alle nachfolgenden Berechnungen, in denen die Variable enthalten ist, zu denen assuming eine Annahme vorgibt. Auf diese Weise müssen Sie die mit assume getroffenen Einschränkungen nicht jedes mal durch Löschen der Variable entfernen, wenn Sie 4.4.1.2
dieses wünschen. >
restart:
>
sqrt(xA2);
In seiner ersten Form führen Sie eine Relation >
sqrt(xA2) assuming
x
>=
an.
0; x
Beachten Sie die fehlende Tilde hinter x in Ausgabe. Für alle Berechnungen mit x wurden keine Annahmen getroffen: >
nachfolgenden
about(x);
x:
nothing
known about this
In der zweiten Form >
object
geben Sie eine Eigenschaft in Form eines Datentyps an:
sqrt(xA2) assuming nonnegative; x
In der dritten Form schließlich grenzen Sie eine extra benannte Variable ein: >
sqrt(xA2) assuming x::nonnegative; x
4
116
Umformungen, Vereinfachungen & Lösungen
Funktion
Beschreibung
Syntax
assume
Setzen einer Annahme
assume assume
assuming additio-
Setzen einer Annahme für aktuellen Ausdruck Zusätzliche Annahme
ausdr assuming relation ausdr assuming unbest::typ additionally (relation) additionally (unbest, eigenschaft)
Abfrage von Annahmen Abfrage auf Wahrheitsgehalt
about
nally about is
Tab. 4.4: Funktionen
4.4.2
(relation) (unbest, eigenschaft)
is is zur
(unbest) (relation) (unbest, eigenschaft)
Arbeit mit Annahmen
Zusammenfassungen mittels combine
Der Befehl combine ist neben factor zumeist die Umkehrung der expand und fasst Summen, Produkte und Potenzen zusammen.
Anweisung
combine lässt sich mit und ohne Optionen einsetzen. Fehlen eine oder mehrere der nachfolgend erklärten Optionen, so wendet combine auf alle in dem zusammenzufassenden Ausdruck enthaltenen Teilausdrücke die passenden und vorhandenen Regeln an es sei denn, es sind in Ausdrücken wie beispielsweise bei Wurzeln oder Logarithmen Unbestimmte mit unbekanntem Definitionsbereichen enthalten. -
-
-
Geben Sie eine oder mehrere Optionen als weitere Argumente vor, so werden nur diese so spezifizierten Vereinfachungsregeln benutzt; Teile, auf die sich diese Regeln nicht anwenden lassen, werden unverändert zurückgegeben.
Option abs
Bedeutung Beträge
arctan
Arkusfunktionen
exp
Exponentialfunkti onen Logarithmen
In
power
product sum
radical
trig Tab. 4.5:
Beispiel: >
restart:
Potenzen Produkte mit LI Summen mit I Wurzelausdrücke
trigonometrischer Ausdrücke Optionen für combine
4.4 Annahmen und >
p
:=
Vereinfachungen
ln(2)+ln(3)
+
aAx*aAy; p
Der Ausdruck p enthält power existieren. >
117
:=
ln(2) + ln(3) + ax
Logarithmen und Potenzen, für die
die
Optionen
In und
combine(p); a(x + v» + ln(6)
>
combine(p, In)
;
axay + ln(6) >
combine(p, power)
ln(2) + ln(3) + a
+
>"
Optionen werden grundsätzlich als Liste oder Menge übertragen.
combine(p, [In, power]); a(x+y» + ln(6)
Vereinfachungen mittels simplify Genauso, wie sich combine durch Angabe
4.4.3
einer Option nur auf bestimmte Teile eines Ausdruckes anwenden lässt, die einer bestimmten Art entsprechen, erlaubt auch simplify eine solche Einschränkung. Optionen sind:
Option
Bedeutung Beträge
abs
Exponentialfunktionen Logarithmen
exp In
power radical
sqrt
Potenzen
beliebige Wurzelausdrücke nur Quadratwurzeln
trigonometrischer Ausdrücke
trig Tab. 4.6:
Optionen für simplify
simplify ohne Angabe einer Option die je nach Teilausdruck bzw. den Teilausdrücken passenden Vereinfachungen unter Beachtung der mathematischen Korrektheit vor. Bis auf die Option symbolic müssen simplify daher in der Regel keine weiteren Optionen angegeben werden, es sein denn, Sie möchten die Ansonsten nimmt
4
118
Umformungen, Vereinfachungen & Lösungen
Vereinfachungen auf bestimmte Teilausdrücke beschränken. >
restart:
>
s
:=
In(xAa)tsqrt(xA2); s
:=ln(xa) + 7x2
simplify ohne Option vereinfacht nur die Quadratwurzel. >
simplify(s);
ln(xa) Jetzt wird >
nur
+
csgn(x) x
der Logarithmus vereinfacht:
simplify(s, In, symbolic); a
ln(x) + -/x2
Vollständige Vereinfachung aller Teile, wie bei combine müssen Sie bei Verwendung der Option symbolic vorher keine Annahme mit assume (bzw. assuming) getroffen haben. >
simplify(s, symbolic); a
In
Maple
7 werden
ln(x) + x
konstante, d.h. auf eine Zahl, reduzierbare Ausdrücke deutlich
besser vereinfacht als in vorherigen Versionen. Diese Vereinfachungen werden automatisch angewendet; wenn Sie nur konstante Teilausdrücke in einem Ausdruck vereinfachen wollen, so verwenden Sie die Option constant. Ebenso lässt sich in Maple 7 die Größe eines umfangreichen Ausdruckes reduzieren. Diese Operation müssen Sie explizit mit der Option size durchführen, simplify wird sie ohne diese Option nicht anwenden.
4.4.4 Potenzen
simplify
vereinfacht Potenzen ax zu einer beliebigen Basis a, also auch der Basis e=2.7182818..., mit der Option power. Eine Eingrenzung nur auf Potenzen zur Basis e erlaubt die Option exp.
4.4 Annahmen und >
s
:
Vereinfachungen
(aAx)A2
=
+
119
exp(In(x)+2);
(ax)2 + e(ln(x)+2) >
simplify(s, power);
a(2x)+ xe2 >
simplify(s, exp);
(ax)2 + xe2 Potenzen können in einigen Fällen mit combine/power kombiniert werden. Der Befehl nimmt bei folgenden Ausdrücken Umformungen47 vor: xy
*
xz
(xy)z e"
-+
ey
*
(ex)y a"
Das erste
-
-*
bn
*
-+
->
xy+z xy+z ex+y
x, y,
o
a, b e
z
beliebig (numerisch / symbolisch) N, n e Q; a, b, n numerisch
ex*y
(a
*
b)n
Potenzgesetz ax *
>
restart:
>
aAx
>
combine(%, power);
*
o
ay
a"
=
ax+y bzw. ^7
=
ax"y lässt sich wie
folgt umsetzen48:
aAy;
a(x+y) >
aAx /
aAy
=
combine(aAx / aAy, power)
;
Bezüglich des zweiten Potenzgesetzes (ax)y axy muss in Maple die Unbestimmte y auf die Menge der ganzen Zahlen eingeschränkt werden. In Maple 7 verwenden Sie hierzu besser assuming (Kapitel 4.4.1.2), dieses erspart Ihnen Arbeit bei der =
Erfassung. 47
48
Siehe auch Online-Hilfe zu ?combine,power. Die hier angegebene Umformung sqrt(-a) -> sqrt(a)*I wird aber bereits automatisch von Maple bei der Eingabe des Ausdruckes sqrt(-a) vorgenommen. In diesem Beispiel liefert simplify dasselbe Ergebnis.
120_4 Umformungen, Vereinfachungen & Lösungen > >
assume(y, integer); (aAx)Ay
=
combine((aAx)Ay, power);
(ax)r= a >
y
'y':
:=
Ohne Setzen >
Annahmen hilft auch die
von
combine((aAx)Ay,
power,
Option symbolic weiter.
symbolic);
a(xy)
combine/power vereinfacht selbst mit Annahmen nicht symbolische Ausdrücke wie ax * b" (3. Potenzgesetz), >
assume(n, integer);
>
combine(aAn
bAn, power);
*
an~ bn~
sondern arbeitet
nur
simplify zusammen >
simplify(aAn
mit rein numerischen Werten. Verwenden Sie in diesem Falle mit der Annahme n e N. *
bAn);
(a b)n~ 4.4.5 Wurzeln Wurzeln mit demselben
xl >
*
yj"
(xm *
sqrt(3-sqrt(2))
Exponenten fasst der Befehl combine/radical zusammen49.
y")^" *
positiv (numerisch oder symbolisch) d e N und numerisch, m > 0, n < d
o x, y o m, n,
sqrt(3+sqrt(2));
V3-72 V3+72 >
combine(%, radical);
V(3-72)(3+72) 49
Der Radikand des Ergebnisses wird im Gegensatz zu früheren ausmultipliziert. Wenden Sie hierzu expand auf das Resultat an.
Maple-Versionen
nicht
4.4 Annahmen und Bei >
t
Vereinfachungen_12J_
symbolischen Ausdrücken :=
sqrt(x+4)
*
im
Radikanden, z.B.
sqrt(x); t
nimmt combine/radical keine >
:=
Vx + 4 Jx
Vereinfachungen vor,
combine(t, radical);
Vx+4 yx da der Definitionsbereich der Unbestimmten x nicht bekannt ist und es somit zu nicht zulässigen Umformungen kommen könnte, z.B. gilt Ja Jb ± Tab V a, b < 0. Treffen Sie daher eine Annahme für die Unbestimmte x, 0);
>
assume(x
>
combine(t, radical);
>=
V(x~ + 4)x~ >
x
:
=
'
x
'
:
oder fügen Sie combine/radical die Option symbolic hinzu, die davon ausgeht, dass alle Unbestimmten, deren Vorzeichen nicht bekannt sind, positiv und reell sind. >
combine(t, radical, symbolic);
V(x + 4)x Auf Radikanden können >
u.a.
die Befehle factor und expand
angewendet werden.
expand(%);
Vx2+4x >
factor
(%);
v'(x + 4)x Zur Entfernung rationalize. >
von
Wurzeln im Nenner eines Bruches existiert der Befehl
sqrt(3)/(sqrt(3)-sqrt(2));
122_4 Umformungen, Vereinfachungen & Lösungen 73 73 -J2
P~
_
>
rationalize (%);
73(73 +72) >
expand(%); 3 + 73
>
72
combine (%);
3+76 Bei verschachtelten Wurzeln hilft radnormal, rationalized50, weiter: >
:=
r
erweitert
um
die
Option
sqrt(sqrt(2)+1)/sqrt(sqrt(2)-1); r'~
>
ggf.
^72-1
radnormal(r, rationalized);
72+1 4.4.6
Logarithmen
combine/ln gestattet
ln(x) ln(x) + ln(y) a *
-* -*
folgende Transformationen:
ln(xa) ln(x * y)
o a e
Q, x, y beliebig (alle auch symbolisch)
Beispiele: >
In(3)+ln (2)
;
ln(3) + ln(2) >
combine(%, In);
ln(6)
In diesem
Beispiel ist das bei Maple 7 notwendig.
4.4 Annahmen und Vereinfachungen_123
Sind Unbestimmte vorhanden, so müssen Sie in vielen Fällen zwei weitere Das dritte Argument gibt den Typ51 des Faktors a an, bei dem die Umformung a * ln(x) -* ln(xa) erfolgen soll; geben Sie hier anything an, so wird jeder Typ berücksichtigt. Das vierte Argument symbolic erzwingt in vielen Fällen eine Umformung und geht davon aus, dass die erwünschten Umwandlungen zulässig sind.
Argumente angeben.
>
a*ln (3) ; a
>
ln(3)
combine(%, In, anything, symbolic);
ln(3a) 3*ln(x)
>
+
l/2*ln(y); 3
1
ln(x) + j ln(y)
Anweisung wird nur mit dem ersten Glied 3 In (x) die Umforln(xa) vorgenommen, da dessen Faktor vom Typ Ganzzahl (integer) ist, in der darauffolgenden Anweisung werden alle Glieder berücksichtigt. Durch die nächste mung a * ln(x)
=
>
combine(%, In, integer, symbolic);
ln(x3) + >
\ ln(y)
combine(%%, In, anything, symbolic);
ln(x3yy) Trigonometrische Ausdrücke Vereinfachung trigonometrischer Ausdrücke
4.4.7
Zur sungen
zur
stehen in
Maple
Verfügung:
simplify versucht, auf einen Ausdruck die Identitäten
sin(x)2 +cos(x)2
=
1 bzw.
cosh(x)2 -sinh(x)2
anzuwenden: > 1
restart:
Eine Liste der in
Maple enthaltenen Typen enthält Anhang A3.
=
1
mehrere Anwei-
124_4 Umformungen, Vereinfachungen & Lösungen sin(x)A2+2*cos(x)A2;
>
sin(x)2 + 2cos(x)2 simplify (%);
>
cos(x)2 + 1 combine/trig formt Produkte und Potenzen trigonometrischer Ausdrücke in trigonometrische Summen um, wenn die Ausdrücke die Funktionen sin, cos, sinh und cosh enthalten. Als Beispiel behandeln wir die Additionstheoreme erster Art: expand(sin(a+b));
>
sin(a) cos(b) + cos(a) sin(b) combine(%, trig);
>
sin(a + b) Der Befehl trigsubs52 Ausdruck zurück.
gibt
eine Reihe
trigonometrischer
Identitäten
zu
einem
trigsubs(tan (x));
>
[tan(x), -tan(-x), ...] Wenn nur die Entsprechungen interessieren, welche die Sinusenthalten, so lassen sich diese mit select und has herausfiltern.
select(has, %, {sin, cos});
>
r
sin(x)
sin(2x)
i
Lcos(x) 1+cos(2x) Für welche Funktionen Identitäten in >
und Kosinusfunktion
J
Maple vorhanden sind, lässt sich durch
trigsubs (0);
{cos, cot, esc, ermitteln". die
sec,
sin, tan}
Übergeben Sie trigsubs eine Identitätsgleichung, so ermittelt Maple, ob
Entsprechung abgespeichert ist.
Diese Funktion musste in Maple V Release 5.1 und davor mit readlib geladen werden, (' trigsubs/TAB') zeigt alle gespeicherten Identitäten zu den obigen sechs Funktionen an. eval
4.4 Annahmen und >
Vereinfachungen_125
trigsubs(tan(x)=sin(x)/cos (x)); 'found'
convert/sincos wandelt wenn möglich trigonometrische Ausdrücke in ihre Darstellung durch sin und cos, und hyperbolische trigonometrische Ausdrücke in diejenige durch sinh und cosh um. -
-
>
convert(sech(x), sincos); 1
cosh(x)
convert/expsincos wandelt trigonometrische Ausdrücke wie convert/sincos
hyperbolischen trigonometrischen lung zurückgegeben. >
Funktionen jedoch wird deren
bei
Exponentialdarstel-
convert(sinh(x), expsincos); 1
2e >
um,
„
"
1 1 2 e*
simplify(%); 1
1
convert/trig wandelt Exponentialfunktionen in trigonometrische bzw. hyperbolisch-
trigonometrische Ausdrücke um. >
convert(%, trig);
sinh(x) Areafunktionen lassen sich durch den natürlichen >
Logarithmus darstellen:
convert(arcsinh(x), In);
In(x+Vx2 + 1 ) Gradmaße werden mit convert/radians ins Bogenmaß umgerechnet, dazu Muss der Winkel vorher mit dem Namen degrees multipliziert werden. >
convert(45*degrees, radians);
± 71 4
Das ganze funktioniert auch
umgekehrt.
4
126 >
Umformungen, Vereinfachungen & Lösungen
convert(Pi 12, degrees); 90
degrees
Auf die Dauer einfacher ist hier sicherlich die Definition eigener Funktionen:
alpha
>
rad
>
rad(90);
:=
->
Pi*alpha/180:
1
2n
>
deq
>
deg(Pi);
:=
arc
->
180*arc/Pi:
180
4.4.8
Einschränkung auf die reelle Zahlenebene Maple 7 gestattet es das Paket RealDomain, Berechnungen grundsätzlich
Seit nur auf der Menge der reellen Zahlen durchzuführen, d.h. für Unbestimmte wird automatisch angenommen, dass sie reell sind. Das Paket enthält Prozeduren mit denselben Namen wie die der Maple-Standardbibliothek, Sie müssen sich also nicht neue Befehle erlernen. >
restart:
>
with(RealDomain):
Die Lösung der Gleichung x3 -8 enthält eine reelle und zwei komplexe Lösungen. Rufen Sie das Paket RealDomain auf, so gibt solve nur die reelle Lösung zurück54. =
>
solve (x/N3=-8
,
x)
;
-2
Möchten Sie die Befehle im normalen, "komplexen" Modus den Befehlsnamen die Zeichenkette : voran.
verwenden, stellen Sie
-
Das Paket RealDomain ist als Modul implementiert (s. Kapitel 16). Es exportiert Prozeduren mit denselben Namen wie die der gleichnamigen Maple-Standardbefehle. Diese Prozeduren rufen die zugehörigen Maple-Standardbefehle unter der Annahme auf, dass alle übertragenen Variablen reell sind. Sollte eine Standard-Prozedur komplexe Werte zurückgeben, so werden diese durch die Konstante undefined ersetzt und das Ergebnis an den Anwender zurückgegeben.
4.4 Annahmen und >
Vereinfachungen_127
:-solve(xA3=-8, x);
-2,1 Existieren
nur
zurückgegeben. >
sqrt (-1)
komplexe,
1
+
nicht-reelle
73 ,1-1 73 Ergebnisse,
wird die Konstante undefined
;
undefined >
In
(-1)
;
undefined >
sqrt(xA2);
Vx2 >
simplify (%);
|x|
Einige Maple-Kommandos funktionieren jedoch (noch) nicht wie gewohnt. >
>
>
s
:=
In(xAa)+sqrt(xA2); s :=
ln(xa) + Tx2"
s :=
ln(xa) + Vx2
simplify(s, symbolic);
:-simplify(s, symbolic); a
ln(x) + x
4
128
Funktion combine
Umformungen, Vereinfachungen & Lösungen Syntax
Beschreibung
| Zusammenfassung Arten sind u.a.: abs, arctan, exp, In, power,
product,sum, radical, trig.
Standard: combine
(ausdr)
Nur Teilausdrücke einer Art: combine
(ausdr,
art)
Zusammenfassung nur bei Datentyp des Faktors: combine
(ausdr, art, typ)
Ignorieren mathematischer Gesetze: radnormal rationalize
Vereinfachung
simplify
| Vereinfachung
ter
verschachtel-
Wurzel
Entfernung der Wurzeln aus
combine (ausdr, art, radnormal (ausdr)
symbolic)
radnormal(ausdr, rationalized) rationalize (ausdr)
Nenner
Arten sind
u.a.:
Standard:
simplify (ausdr) abs, exp,
In, power, radical, sqrt, trig.
Nur Teilausdrücke einer Art: simplify (ausdr, art) Ignorieren mathematischer Gesetze: simplify (ausdr, art, symbolic) convert (ausdr, sincos;
Umwandlung in Ausdruck mit sin(h) und cos(h)_ wie convert/sincos, ggf. convert(ausdr, expsincos) expsincos Exponentialdarstellung_ convert/ Umwandlung ins Bogenmaß convert( convert/ sincos convert/
radians
ins Gradmaß
ausdr*degrees, radians) convert(ausdr, degrees)
convert/
Umwandlung
degrees trigsubs
trigonometrische Identitäten | trigsubs (ausdr) Tab. 4.7:
4.5
Vereinfachungen und Zusammenfassungen
Gleichungen
allvalues
assign fsolve isolate
Ihs rhs solve
Darstellung und Umformungen Die Eingabe einer Gleichung (equation) ist leicht:
4.5.1
4.5 >
Gleichungen
4+x*3
=
129
y*sqrt(2); 4 + 3x
Diesen Ausdruck können Sie >
eql
:=
an
=
yV2
eine Variable zuweisen durch:
%;
eq1
:=4 + 3x
Ermittlung der linken {left-hand) und Gleichung stehen lhs und rhs zur Verfügung:
Zur
>
y72 rechten Seite
{right-hand side)
der
lhs(eql); 4
>
=
+
3x
rhs(eql);
isolate55 löst eine Gleichung nach einem beliebigen dort vorhandenen Ausdruck auf. >
isolate(eql, 3*x); 3x=
>
isolate
(eql, y)
yV2
-4
;
y=-4(-4-3x)V2 >
simplify(%);
y=Y(4 + 3x)V2 Lösung von Gleichungen Lösungsmenge einer Gleichung
4.5.2
Die Befehle solve bzw. fsolve.
55
isolate musste in früheren
bzw. eines
Gleichungsystemes ermitteln
Maple-Versionen mit readlib geladen werden.
die
130_4 Umformungen, Vereinfachungen & Lösungen 4.5.2.1
Symbolische Lösungen mit solve Wenn eine Gleichung in nur einer Unbekannten vorliegt, so übertragen Sie solve nur die Gleichung, Maple ermittelt dann die Lösungsmenge: solve(gl) solve(gl, unbest) solve(gl, {unbest}) >
eq2
:=
l/4*xA3-4*x=0; \
jx3 -4x
eq2 := >
=
0
solve(eq2); 0, 4, -4
Optional können angeben: >
Sie hier auch als zweites
Argument die Unbekannte der Gleichung
solve(eq2, x);
0, 4, -4 Sie können statt einer gleich 0 gesetzt: >
Gleichung
auch einen Term
übertragen,
dieser wird dann
solve(lhs(eq2)); 0, 4, -4
Enthält eine Gleichung mehrere Unbestimmte, so geben Sie die Unbekannte, für welche Sie die Lösung erhalten wollen, explizit als zweites Argument an. Natürlich können Sie auch Funktionen in solve einsetzen. (x, y)
>
k
>
solve(k(x, y)=l, y);
:=
->
xA2+yA2:
V-x2 + 1
V-x2 + 1
, -
4.5
Gleichungen_131
Enthält eine Gleichung eine oder mehrere Fließpunktzahlen, so wandelt solve diese in rationale Zahlen um oder nähert diese an -, errechnet die Lösung und gibt letztere in Fließpunktdarstellung wieder zurück. -
>
solve(0.25*x"3-4*x);
0., 4., -4. solve ermittelt auch vielfache Nullstellen einer sechsten Grades: >
poly
:=
1/5* (x-2) ""3* (x+1) A2* (x-1)
Gleichung. Gegeben sei ein Polynom :
Die Lösungen sind Xi=-1, x2=l, x3=2. Da der Linearfaktor (x-2) wegen (x-2)3 dreimal vorkommt, existiert an der Stelle x=2 eine dreifache, wegen (x+1)2 an der Stelle x=-l eine doppelte und wegen (x-1) an der Stelle x=l eine einfache Nullstelle. >
solve(poly);
2, 2, 2, -1, -1, 1 Um mehrfach vorkommende gleiche Werte auf einen einzigen Wert zurückzuführen, setzen Sie das obige Ergebnis in geschweifte Klammern und erzeugen somit eine
Menge. >
{%};
{-L L2} Diese wird mit op in eine >
Folge umgewandelt:
op ( %) ;
-1, 1, 2 solve ermittelt nur bei Polynomen alle unendlich viele Nullstellen. >
f
:=
x
->
z.B. hat
sin(x);
f
Es ist
Lösungen. Die Sinusfunktion56
:=
normal, daß das alleinige Argument
mathematischen
sin
'x' der
Sinus-Funktion, wie bei allen anderen
Maple-Funktionen, nicht angezeigt wird.
132 >
4
solve(f(x), x)
Umformungen, Vereinfachungen & Lösungen
;
0
Es ist aber möglich, Maple dazu zu zwingen, bei transzendenten Funktionen, d.h. Nicht-Polynomen, eine allgemeine Lösung zu ermitteln, indem die Umgebungsvariable _EnvAHSolutions gleich true gesetzt wird. >
_EnvAllSolutions
>
solve(sin(x), x);
:=
true:
7T_Z1~ Der Bezeichner _Z1~ steht hier für die
Menge der ganzen Zahlen57.
Wenn Sie die Unbestimmte, für die solve eine oder mehrere als Menge übergeben, so gibt Maple eine oder mehrere Lösungsgleichung zurück. >
sol
:=
solve (x+1,
{x});
sol
Mit dem Befehl
sungsoperator
Lösungen finden soll, Mengen mit je einer
:=
{x -1} =
assign können Sie Zuweisungen treffen im Gegensatz zum Zuweierwartet das Kommando aber eine oder mehrere Mengen (oder -
:=
Listen) von Gleichungen {x=a, y=b,
.
.
.
} oder {x=a}, {y=b},
....
Die rechten Seiten der Gleichungen werden den jeweils linken Seiten zugewiesen, x, y, etc. müssen unbelegte Variablen, die rechten Seiten a, b, etc. können beliebige Maple-Ausdrücke, jedoch keine Folgen sein. In unserem Beispiel besitzt die Variable nicht den Lösungswert -1. >
x
nach der
Bestimmung
der
Lösung
noch
x; x
>
assign(sol);
>
x;
-1 57
Dem Bezeichner nutzen Sie
Zn lassen sich keine Werte mit dem Zuweisungsoperators zuordnen, hierfür den in Kapitel 4.8 vorgestellten Befehl subs.
4.5
133
Gleichungen
Es bietet sich an, assign die von solve zurückgegebene Lösungsmenge zu übertragen, um die dort enthaltene(n) Unbestimmte(n) zuzuweisen; das macht aber nur dann Sinn, wenn nur eine Lösung pro Unbestimmte gefunden wird. Wenn pro Unbekannte mehrere Lösungsmengen zurückgegeben werden, so weist assign nur die letzte Lösung zu. solve liefert,
wenn
vorhanden, immer auch komplexe Lösungen.
>
restart:
>
solve(xA3=-8);
-2,1+ >
173,1- \J3
evalf(%);
-2., 1.+1.732050808 I, 1.-1.732050808 I
(Die imaginäre Einheit 7-Twird in Maple durch den Buchstaben I repräsentiert.) Je nach Grad eines >
Polynomen können die Lösungen sehr umfangreich werden.
solve(xA3-x=4, x);
2 3
Isg :=-(54 + 3V321 )
+-
(54 + 3V321 ) i 1
;(54 + 3V321 )
3J 1 11
-(54 + 3V321 )
3
(54 + 3V321 )
(54 + 3V321 )
2 -(54 + 3V321 )
1
2
(54 + 3V321 )
3
(54 + 3V321
(54 + 3V321 )
das Ausgabe wirkt auf dem Monitor relativ unübersichtlich. Daher stellen wir von Ausgabeverhalten Maples mittels der Systemvariable interface/prettyprint
Die
Standard Math auf Typeset Notation um oder wählen im Menü Display den Eintrag Typeset Notation. In den Ausgaben werden
Options/Output
nun
Labels der
134_4 Umformungen, Vereinfachungen & Lösungen Form %n verwendet, die mehrfach im drücke zusammenfassen. >
interface(prettyprint=2)
>
lsg;
J
%1
+
%2,
%1
%2 +
Ergebnis
vorkommende
gleiche
Teilaus-
;
^IV3 Q %2j, ^ ^ ^ IV3 ^ %1
%1
-
-
%1
:=(54 + 3V32T
%2
:=-
%2
-
-
%1
%2 -
1
(54 + 3V32T Auf die Label können Sie 5"
"6
1
r
'S 2
zugreifen:
}
(54 + 3V321 ) (54 + 3V321 ) Wenn Sie das Ausgabeverhalten mittels interface/prettyprint umgestellt haben, so wird es bei einem restart wieder auf den Vorgabewert zurückgesetzt. Bei Anwahl über das Menü wird die Einstellung automatisch abgespeichert und steht dann für alle weiteren Sessions (bzw. Programmneustart) zur Verfügung.
Bei Polynomen mit einem Grad größer oder gleich 5 findet solve in den meisten Fällen keine expliziten Lösungen. Es wird dann die sog. RootOf-Darstellung benutzt. >
solve(xA4-x=l);
RootOf(_Z4-_Z -1, index 1), RootOf(_Z4 -_Z -1, index =2), RootOf(_Z4 -_Z -1, index 3),RootOf(_Z4 -_Z -1, index 4) =
=
In diesem
=
Beispiel wurden insgesamt 4 Wurzeln ermittelt, die jeweils durch den spezifiziert sind. Die numerischen Lösungen lassen sich mit evalf
index-Zusatz berechnen.
4.5 >
Gleichungen
135
evalf(%);
1.220744085, -.2481260627 + 1.033982062 I, -.7244919598, 1.033982062 I
-.2481260627 -
allvalues ermittelt in vielen Fällen symbolische Lösungen, bei Polynomen Wurzelausdrücke. Mehrere RootOf-Ausdrücke übertragen Sie als Liste. >
allvalues([%%]);
[-f2"V6%2 + ...] %1
108
+
12
7849
vierten Grades kann die Umgebungsvariable _EnvExplicit auf den Wert true gesetzt werden, um alle expliziten Ergebnisse und keine Rückgabe von RootOfs zu erhalten. Maple gibt dann die Lösungen wie bei Verwendung von allvalues (ggf. mit Labels) zurück.
Bei
Polynomen
-
-
>
_EnvExplicit
>
solve(xA4-x=l);
:=
true:
Auf einen Abdruck des Ergebnisses wurde verzichtet. Setzen Sie EnvExplicit wieder auf false, wenn Sie das Standardausgabeverhalten von solve bevorzugen.
Lösungen mit fsolve Gleichungen können Sie auf rein numerischem Wege
4.5.2.2 Numerische
Lösungen
von
ermitteln.
fsolve(gl) fsolve(gl,
fsolve(gl, fsolve(gl,
x,
x=a,
x=a
Optionen) Optionen) b, Optionen)
mit fsolve
136
4
Umformungen, Vereinfachungen & Lösungen
Sie können wie bei solve Gleichungen oder Terme angeben, die Ausgabe entspricht ebenfalls der von solve, fsolve lassen sich eine oder mehrere Optionen angeben, mit denen Sie die Arbeitsweise des Befehles beeinflussen können. Bei >
Polynomen findet fsolve i.d.R. alle Lösungen:
fsolve (x-M-4*xA3-13*xA2 + 4*x+12) ;
-2.000000000, -1., 1.000000000, 6.000000000 Bei transzendenten Funktionen wird
wenn
-
zurückgegeben: >
möglich
nur
eine Nullstelle
-
fsolve (sin(x));
0.
Sie können aber fsolve entweder einen
mitteilen, >
Näherungswert
für die
gesuchte Lösung
fsolve(sin(x), x=3); 3.141592654
oder aber ein Intervall der Form x=a b angeben, in dem es nach Nullstellen suchen soll. Befindet sich dort keine Nullstelle, wird die Eingabe unausgewertet ..
zurückgegeben. >
fsolve(sin(x), x=6
..
7); 6.283185307
>
fsolve
(sin(x), x=0.5
..
0.6);
fsolve(sin(x), x,
.5
.6) ..
Es ist hilfreich, vor der Eingabe von Intervallen die Nullstellen Graphen des Ausdruckes zu bestimmen (s. Kapitel 5).
visuell mittels des
Die Anzahl der zu ermittelnden Lösungen bestimmt die Option maxsols=n, wobei n eine natürliche Zahl ist. Per Vorgabe errechnet fsolve bei Polynomen alle Wurzeln, bei transzendenten Ausdrücken aber nur ein Ergebnis. Wird die maxsols-Option genutzt, werden die n kleinsten Lösungen zurückgegeben.
4.5
Gleichungen
poly
>
:=
137
x*(x-1)*(x+2)*(x-3);
poly
:= x
(x -1) (x + 2) (x 3) -
fsolve(poly, x);
>
-2., 0., 1., 3. fsolve(poly,
>
x,
maxsols=2);
-2., 0. Bestimmte
Ergebnisse lassen sich mit der avoid-Option unterdrücken:
fsolve(poly,
>
x,
avoid={x=-2, x=0});
1., 3. fsolve errechnet im Gegensatz zu solve reelle Lösungen, durch die Angabe der Option complex können Sie aber neben den reellen auch komplexe Lösungen ermitteln lassen. fsolve(2*xA4-2=-l,
>
x,
complex);
-.8408964153, -.8408964153 I, .8408964153 I, .8408964153
zugeordnet, wird dieser intern von fsolve heruntergesetzt, Lösungsfindung zu beschleunigen. In einigen Fällen kann dieses zu Rundungsfehlern bzw. Ungenauigkeiten führen, und fsolve kann dann u.U. keine Lösung finden. Mit der Option fulldigits wird dieser Mechanismus ausgeschaltet. Ist
Digits
um
die
ein hoher Wert
Funktion solve
Beschreibung symbolische Lösung von
Gleichungen
Syntax Standard: solve (gl) Lösung nach einer Unbekannten: solve (gl, unbest) Lösung von Gleichungssystemen: solve (
{gli, gh,
...},
{unbest i, unbest2, ...})
4
138 fsolve
Umformungen, Vereinfachungen & Lösungen Standard:
| numerische Lösung von Gleichungen
fsolve
Optionen: max.
Anzahl der Lösungen:
maxsols=n
Auslassen der
(gl)
Lösung nach einer Unbekannten:
Lösungen:
avoid={unbesti=ri, ...} Auch komplexe Lösungen:
fsolve (gl, unbest) Lösung mit Näherungswert r: fsolve (gl, unbest=r) Lösung im Bereich: fsolve
(gl, unbest=ri
..
r2)
complex
Rundungsfehler vermeiden: fulldigits
allvalues
evalf
assign
| Symbolische Lösung von
allvalues (RO) allvalues ( [ROi,
|
evalf
RootOf-Ausdrücken Numerische Lösung
von
(ROi, R02,
R02,
...)
RootOf-Ausdrücken
| Zuweisung
Mengen an
von
(Lösungs-) assign(
{unbesti=ausdn},
Variablen
...)
assign (
{unbesti=ausdri, ...}) lhs rhs isolate
|
linke Seite einer Gleichung rechte Seite einer Gleichung Auflösung einer Gleichung nach einem Teilausdruck
lhs
(gl)
rhs (gl) isolate
Tab. 4.8: Befehle für
(gl, ausdr)
Gleichungen
4.6 Ungleichungen Maple beherrscht die Ermittlung der Lösungsmenge von einfachen Ungleichungen (inequalities), sie geschieht prinzipiell wie bei Gleichungen mit solve. Maple benutzt zur Darstellung der Lösungsmenge die RealRange-Darstellung: >
solve(x-1
Ungleichungen
solve(x-1
restart:
>
l/4*xA3-4*x=0;
^x3-4x
=
0
Beide Seiten der Gleichung können mit einem Faktor multipliziert werden. >
4*%;
x3- 16x 0 =
Zur >
Auffindung der Nullstellen setzen
Sie factor ein.
factor(%); x
(x 4) (x + 4) -
=
0
4.9 Manuelle Ein weiteres >
gll
:=
Lösung von Gleichungen_147
Beispiel: 4*x+3*y-3
=
0;
gl1 >
gl2
:=
:=
4
3y 3
x +
3
:=
5y
x +
16
9x
S
o, o. o o
o
+
0
.
33
x +
x
isolate (%,
x +
3
=
0
x
=
=
0
ergibt: x)
;
-3
Lösung wird in die erste Gleichung eingesetzt:
subs(%, gll); -15
>
=
%/ll;
Die >
15y-48
o ,
Auflösen nach >
0
=
Gleichungen subtrahiert.
11 >
15 y- 15
+
gl2*3;
Danach werden die
isolate (%,
0
Gleichung
gll*5; 20x
\
=
-
Zur Elimination der Variablen y wird die erste zweite Gleichung mit 3 multipliziert.
>
0
3*x+5*y-16=0;
gl2
>
=
-
+
3y
y
=
y); 5
=
0
mit dem Faktor 5, die
148_4 Umformungen, Vereinfachungen & Lösungen Mit solve >
gelangen Sie sofort zu einem Ergebnis:
solve({gll, gl2});
{x -3, =
y
=
5}
Punkt-Richtungsform und Schnittpunkte von Geraden
4.10
student/intercept student/slope Sind zwei Punkte Pl(xl, x2) und P2(x2, y2) gegeben, Geradengleichung y=mx+n ermitteln. >
restart:
>
gl
:=
y
=
lässt sich daraus die
m*x+n;
gl Die
so
:=
y
=
m x + n
Steigung
der Geraden wird mit dem Befehl slope aus dem Paket student wobei der Befehl die Koordinatenpaare zweier Punkte als Folge zweier berechnet, Listen erwartet: >
with(student):
> m
:=
slope([xl, yl],
[x2, y2]);
yi-y2
m -
x1 -x2
Aufgrund der Vollauswertung hat Maple m bereits in gl eingesetzt: >
gl; y=
Der >
x1-x2
y-Achsenabschnitt n wird nun in zwei Schritten ermittelt.
subs(x=xl, y=yl, gl);
y1= >
(yi-y2)x +n
(y1-y2)x1 X1-X2
+n
isolate(%, n); n
=
y1
(y1 -y2)x1 x1 -x2
4.10
Punkt-Richtungsform und Schnittpunkte von Geraden_149
Weisen wir n die rechte Seite der obigen >
Gleichung zu.
assign(%);
gl hat nun folgenden Inhalt: >
gl; y
=
(y1-y2)x + x1
(y1-y2)x1
y
x2
x1
-
Setzen wir nun zwei Punkte >
gl
:=
P(l, 5) und Q(2, 9) ein:
subs(xl=l, yl=5, x2=2, y2 9, gl); =
gl Deutlich schneller geht es mit >
x2 -
interp ( [1, 2]
,
:=
y
=
4*x+1
interp (s. Kapitel 4.1):
[5, 9]
,
x)
;
4
1
x +
Schnittpunkte einer Geraden mit den Koordinatenachsen oder zwischen zwei Geraden können Sie mit intercept berechnen, welches ebenfalls im Paket student enthalten ist. Schnittpunkt mit der Vertikalen x=2 (für die Ordinate x=0 setzen): >
intercept(gl, x=2);
{x 2, =
y
=
9}
Schnittpunkt mit der Abszisse: >
intercept(gl, y=0);
{y o, =
x
= -
j}
Schnittpunkt zweier Geraden: >
intercept(gl,y=x-2);
{x -1,y -3} =
=
Siehe auch Abschnitt 7.3 'Geometrie der Ebene'.
4
150
Funktion student/
Umformungen, Vereinfachungen & Lösungen Syntax
Beschreibung
Schnittpunkte
intercept
student[intercept] ( gl, unbest=r) student[slope](
mit Geraden
Steigung einer aus zwei
student/
[xl, yl], [x2, y2])
Punkten definierten Geraden
slope
Tab. 4.10:
Steigung & Schnittpunkt von
Geraden
Komplexe Zahlen
4.11
evalc Im
abs
argument
polar
conjugate convert/exp
Re
Signum csgn Die allgemeine Darstellung einer komplexen Zahl (complex number) z wobei a den Real- und b den Imaginärteil bezeichnen, erfolgt mit dem Buchstaben I als imaginärer Einheit. =
>
z
Ein >
a
Die
:=
x
+
ib,
großen
I*y; z := x +
I y
a:=2
3l
spezielles Beispiel: :=
2
+
3*1;
Operatoren +, -,
>
b
>
a+b, a-b;
:=
*
und / dienen
+
(auch) der komplexen Arithmetik:
1-1:
3 >
a +
+
2
I, 1
+
4 I
-—
+
2"'
a*b, a/b; 5
In Tabelle 4.11 sind
Funktionen
aufgeführt.
+
I,
speziell für die Arbeit mit komplexen
Zahlen vorhandene
4.11
Komplexe Zahlen
evalc wandelt einen die Form a + I*b um.
komplexen Ausdruck,
z.B. in
Polarkoordinatendarstellung,
in
polar(sqrt(13), arctan(312)):
>
p
>
evalc(p);
:=
151
2
+
31
Der Befehl convert/exp formt trigonometrische Funktionen in ihre Exponentialschreibweise um. Die Eulersche Schreibweise komplexer Zahlen steht in enger
Beziehung zur Polarkoordinatendarstellung: cos(phi)+I*sin(phi):
>
plr
>
convert(r*plr, exp)
:=
=
r*plr;
re(i0
=
r
(cos(())) + I sin(())))
Komplexe Ausdrücke können Sie mit evalc kombiniert mit Re bzw. Im in ihre 'reellen' Bestandteile (also Real- und Imaginärteil) zerlegen. Dieses ist beispielsweise dann sinnvoll, wenn Sie umfangreiche, ursprünglich komplexe Berechnungen durch reelle Fließkommaarithmetik beschleunigen möchten (siehe Kapitel 17.3). >
restart:
>
z
:=
x+I*y:
Aus diesen >
c
:=
a+I*b:
komplexen Zahlen besteht die Formel
formel
:=
zA2+c;
formel
Die reellen >
reell
:=
(x + I
y)2 +
:=
evalc((Re(formel)));
x2
:=
-
imag
Ib
Entsprechungen dieser Formel werden ermittelt: reell
>
a +
:=
y2 +
a
evalc((Im(formel)));
imag Sie können in
Maple
das
:=
2
x
y
+
b
Symbol für die imaginäre
interface/imaginaryunit-Einstellung
frei wählen.
Einheit mittels der
152 >
4
Umformungen, Vereinfachungen & Lösungen
z; z := x +
>
interface(imaginaryunit=j);
>
z;
x +
Rücksetzung: >
yI
yj
interface(imaginaryunit=I); Funktion Re Im abs
Beschreibung
Syntax
Realteil
(z) Ira(z) abs(z)
Ergebnis für z=2+3i
Re
Imaginärteil
argument
Radius (Modul) Phasenwinkel
conjugate
Konjugation
conj ugate(z)
csgn
Halbebene
csgn (z)
Signum
polar evalc
convert/ exp
'13
arctan("§") 2 3 I
argument(z)
Richtungsfaktor
-
1
t 13 + 13 1)713
Signum(z)
Polarschreibweise
Umwandlung in die Form z=a+I*b Umformung in Exponential-
polar(z) evalc
polar(/T3
(ausdr)
convert(
Tab. 4.11: Funktionen für die Arbeit mit
4.12 Rechnen mit Einheiten in convert/temperature
arctan(-p))
n/a n/a
ausdr, exp)
schreibweise
,
komplexen Zahlen
Maple 7 Units[Standard] Units|Natural|
convert/units
Das mit
Maple 7 eingeführte neue Paket Units erlaubt das Rechnen mit zahlreichen hauptsächlich physikalischen Maßeinheiten. Der Umfang des Units-Paketes und dessen Möglichkeiten sind so umfangreich, dass wir es hier nur auf einer kurzen Vorstellung belassen. -
-
4.12 Rechnen mit Einheiten in
Maple 7_153
Die in Maple 7 implementierten Maßeinheiten sowie deren Namen können Sie über den Maple-Hilfe-Browser unter dem Unterpunkt Mathematics/Units/Known Units abfragen. Eine Einstiegsseite finden Sie unter ?Units, Overview. Einheiten können mit convert/units bzw. convert/temperature für absolute Temperaturen umgerechnet werden. Ein Meter sind in Fuß ausgedrückt: >
restart:
>
convert(1., units, meter, feet); 3.280839895
90 Grad Celsius können in Fahrenheit >
umgewandelt werden:
convert(90., temperature, degF, degC); 32.2222222
Es gibt zwei Unterpakete für den Umgang mit Einheiten. Das Unterpaket Units/Standard stellt neben erweiterten Maple-Standardbefehlen für den Umgang mit Einheiten die Funktion Unit zur Verfügung, welcher die Maßeinheiten übergeben werden. Die Ergebnisse werden automatisch in das SI-System umgewan-
delt, wenn nötig. >
with(Units[Standard] )
3 Meter >
+
:
3 Fuß sind:
3*Unit(m)
+
3.*Unit(ft);
3.914400000[m] >
Unit(l*kg*m/sA2); [N]
Wie Sie sehen, wird die Maßeinheiten in
eckige Klammern gestellt.
Mit dem Paket Units/Natural können Sie Maßeinheiten ken ohne Verwendung der Unit-Funktion aufführen. >
with(Units[Natural])
explizit in Maple-Ausdrük-
154_4 Umformungen, Vereinfachungen & Lösungen >
3*m+3.*ft;
3.914400000[m] >
l*kg*m/sA2;
[N] Bei Winkelfunktionen erlaubt der Bezeichner degrees (im Gegensatz zum Maple-Standard, dem Bogenmaß). >
Berechnungen im
cos(45*degrees);
Der Widerstand eines Leiters ist
abhängig von dessen Temperatur.
Bei 50 C
er: >
R0
:=
100*ohm; # Widerstand bei 20
R0 >
al
:=
dtemp
100
:=
:=
:=
R
:=
[Omega]
1/250
[1/K]
30*degC; # Temperaturunterschied
dtemp >
C
4*10A(-3)/degC; # Temperaturkoeffizient al
>
Gradmaß
R0*(l+al*dtemp);
:=
30
[degC]
# Widerstand bei 50 Grad Celsius
R
:=
112
[Omega]
beträgt
5
Graphik
Übersicht • • •
5.1 Zweidimensionale Graphiken 5.2 Dreidimensionale Graphiken 5.3 Abspeicherung von Graphiken
Die sog. Plotfunktionen ermöglichen es, Graphen von Funktionen im zwei- und dreidimensionalen Raum darzustellen. Die Möglichkeiten der Graphikkommandos von Maple sind sehr vielfältig, allerdings ist es oft etwas mühsam, attraktiv gestaltete Zeichnungen auf den Bildschirm zu bringen. In diesem Kapitel wird daher das Thema Graphiken intensiv behandelt.
5.1 Zweidimensionale 5.1.1 •
Graphiken
Smartplots
smartplot
Neben der im nächsten Unterkapitel erklärten Erzeugung und Formatierung von Graphiken über die Kommandozeile existiert in Maple die Möglichkeit, nur mit der Maus schnell und einfach Graphen sog. Smartplots zu erstellen wenn auch hierbei der Gestaltungsspielraum sehr begrenzt ist. Geben Sie dazu in der Kommandozeile einen algebraischen Ausdruck (keine Funktionsdefinition) ein. -
>
restart:
>
x^2-x;
-
X2
-
X -
Klicken Sie mit der rechten Maustaste in die Maple-Ausgabe x2 x. Ein Kontextmenü öffnet sich, der unterste Eintrag lautet Plots, klicken Sie darauf (s. Abb. 5.01). -
Klicken Sie
auf den sich öffnenden Eintrag 2-D Plot. Es werden eine neue mit der Anweisung smartplot (xA2-x) und eine Graphikregion
nun
Eingaberegion Graphen zu x2
mit dem
x -
erzeugt.
5
156
Graphik
Copy Differentiate
Integrate Factor
Approximate Solve Numerical Solve Coefficients
Complex Maps Integer Functions Constructions
Simplifications Conversions Sorts 2-D Plot 3-D Plot
Abb. 5.01: Plot mit Kontextmenü erstellen
Klicken Sie wieder mit der rechten Maustaste in die Graphik. Zur Einstellung der xund y-Achsenabschnitte wählen Sie den Menüeintrag Axes/Ranges.
Copy Style Color
Legend Ranges..
Projection Animation Export As
Abb. 5.02:
Boxed Framed Normal None
Änderung der Achsenabschnitte
Geben Sie für die x-Achse (Horizontal Axis) den Bereich -4 bis 5, für die y-Achse (Vertical Axis) den Bereich -1 bis 5 ein (Abb. 5.03). Die Achsen werden nun
angepasst.
5.1 Zweidimensionale Axis
Graphiken
157
Ranges
Horizontal Axis
Vertical Axis
r Default
r Default
a' .4
(*
to 5
OK
Abb. 5.03:
to
Abbrechen
Erfassung
Abb. 5.04:
-1
neuer
5
|
Achsenabschnitte
Smartplot für x2
x -
Fügen Sie nun über das Kontextmenü eine Legende hinzu, indem Sie Legend/Show Legend aktivieren. Klicken Sie wieder mit der rechten Maustaste in den Graphen
und wählen Sie Legend/Edit Legend. Geben Sie in das Feld Label den Term x~2-x ein und drücken Sie auf Done. Im unteren Teil der Graphik wird nun eine Legende
eingefügt.
5
158
Graphik
Sie können mehrere Kurven in einer Graphik zeichnen, wenn Sie die obige smartplot-Eingabezeile kopieren, in eine neue Eingaberegion einfügen und weitere Terme einsetzen bzw. austauschen. >
smartplot(xA2, 2*x-l);
Die Graphik müssen Sie nun erneut mit dem Kontextmenü anpassen. Weder die über das Kontextmenü ausgewählten Einstellungen noch die unten vorgestellten Plotoptionen lassen sich in der smartplot-Eingabezeile platzieren.
plot-Anweisung
5.1.2 Die
plot Erzeugung von 2-dimensionalen Graphiken lautet Unterkapiteln beschäftigen wir uns mit der graphi-
Der fundamentale Befehl für die plot. In diesem und den nächsten
schen
Darstellung der Funktion
>
restart:
>
f
:=
->
x
(l/2*xA3-3/2*x+l) / (x/N2 + 3*x+2)
4"X3-fx x2
+
+
;
1
3x + 2
Graph ist sehr gut dazu geeignet, die Verhaltensweise und verschiedenen Einstellungsmöglichkeiten Maples im Graphikbereich zu erläutern, indem Schritt für Schritt das Erscheinungsbild der Zeichnung verbessert wird. Um den Graphen der Funktion im Intervall [-5, +5] zu zeichnen, geben Sie ein: Der
>
plot (f (x),
Die allgemeine chen lautet:
x=-5
.
.
5)
;
Syntax des Befehles plot für reelle Funktionen mit einer Veränderliplot(f(x),
plot(f (x) plot(f(x),
,
x—ri x=rx
x=ri
.
..
gibt
.
..
r2, r2,
Plotoptionen)
r2/ Si
y=Si
.
.
..
s2, s2,
Plotoptionen) Plotoptionen)
einen Ausdruck oder eine Liste bzw. Menge einer oder mehrerer Ausdrücke u.a. Funktionsterme in der Variablen x an. f (x)
-
-
5.1 Zweidimensionale
Graphiken_159
Der Plotbereich (plot range) x=ri r2 definiert den horizontalen Bereich, über den f gezeichnet wird, der optionale Plotbereich s x s2 bzw. y=si s2 den vertikalen Bereich. Der y-Bereich kann, muss aber nicht genannt werden. Geben Sie für die x-Achsenbereich nur den Namen x, aber keinen Bereich rl r2 an, so wird der Graph von x=-10 bis +10 gezeichnet. .
.
..
..
.
.
Die Variablen ru r2, Si und s2 müssen reelle Werte sein (Typ realcons, also inklusive iinfinity), die Variablen x und y hingegen dürfen keinerlei Werte tragen, notfalls benutzen Sie Apostrophe zur Vermeidung der Auswertung. Ferner muss gelten: ri < r2 und Si < s2. Der Abszissen-Laufbereichsname x sollte mit der im Ausdruck f enthaltenen Unbestimmten übereinstimmen (es sei denn der Ausdruck ist konstant), sonst gibt es die Fehlermeldung 'empty plot'. Maple druckt den Parameter x (oder einen anderen Namen, wenn von Ihnen so vorgegeben) als sog. Label im Graphen an. Ist der Ordinaten-PIotbereich in der Form y=Si s2 genannt, so wird an die y-Achse der Laufbereichsname y gesetzt, übergeben Sie den Bereich nur in der Form Si s2 d.h. fehlt der Parameter, erhält die Achse keine Bezeichnung. .
.
.
.
,
name=ausdruck und gestatten es Ihren Bedürfnissen anzupassen. Sie werden im übernäch-
Plotoptionen sind Gleichungen der Form
Ihnen, den Graph gezielt sten
Kapitel näher vorgestellt.
5.1.3
Graphik-Menübefehle
bietet Ihnen folgende Einstellungsmöglichkeiten für Menüleiste und das Kontextmenü an.
Maple
Graphiken
über die
Graphik wird innerhalb des Arbeitsblattes immer unterhalb des die plot-Anweisung enthaltenen Eingabebereiches eingefügt. Es ist aber auch möglich, sie in einem eigenen Fenster anzuzeigen. Stellen Sie dafür im Menü Options/Plot Display die Ausgabe auf Window um. Eine
Wenn Sie einmal mit der Maus in den Graphikbereich klicken, so wird er von einem Rahmen umrandet. Zielen Sie mit der Maus in eines der schwarzen Kästchen am Rande, so können Sie den Graphen vergrößern oder verkleinern, indem Sie die linke Maustaste gedrückt halten und die Maus bewegen.
Bei aktiviertem Plotfenster ändern sich die Menü- sowie Kontextleisten. In der Menüleiste erscheinen die Einträge Style, Legend, Axes, Projection, Animation und
Export.
5
160
E Maple 7
Graphik
[plot.mws] -
jftl File Edit View Format Window Help
Style Legend Axes Projection
Export
T [ -0.27, 0.36
>plot(f(x), x=-5..5);
Q] lalkKM [1 400 200
-200
-400 -600 -800
Time: 4.9s
Abb. 5.05: Aktivierter
j Bytes: 3.0BM Available: 31.0M
Graphikbereich
Mit dem Eintrag Style lässt sich der Stil des oder der Graphen ändern, Linien können gestrichelt, Punkte mit anderen Symbolen (z.B. als Rauten) dargestellt und dreidimensionale Graphiken mit oder ohne Gitterlinien angezeigt werden.
Legend erlaubt es, Legenden für die jeweils markierte oder auszuschalten bzw. diese Legenden zu editieren. Das Menü
Über das
Graphiken
an-
Menü Axes können Sie die Darstellung der Koordinatenachsen festlegen: als Kasten (Boxed) um den Graphen herum, als sog. Rahmen (Framed) links und unterhalb des Graphen oder als Koordinatenkreuz (Normal). Durch die Auswahl des Eintrages None werden keine Achsen angezeigt.
5.1 Zweidimensionale
Graphiken_161
Projection bestimmt die Skalierung des Graphen: Constrained, d.h. die Achsen haben dieselbe Skalierung (1:1) oder aber Unconstrained, d.h. in unterschiedlicher Skalierung, wie in Abb. 5.05. Die
Graphiken lassen sich mit Export in verschiedenen Bildformaten abspeichern58.
All diese Funktionen sind nicht nur über die gerade beschriebene obere Menüleiste zugänglich, sondern auch über das Kontextmenü, das Sie durch Klicken mit der rechten Maustaste in die Graphikregion öffnen. besondere Einstellung lässt sich über den Menüleistenpunkt Options/Display 2-D Legends treffen: Ist es aktiviert, werden in allen nachfolgenden Graphiken zu den einzelnen Kurven (nicht Flächen !) Legenden eingeblendet. Schalten Sie diese Option aus, wenn sie Sie stört59.
Eine
In der Kontextleiste werden ganz links die Koordinaten der aktuellen Mausposition angezeigt. Rechts daneben befinden sich eine Reihe von (Smart-) Icons, mit deren Hilfe das Aussehen der Graphik verändert werden kann.
5.1.4
Plotoptionen
möglich aber nicht zwingend -, dem Befehl plot eine oder mehrere Plotopim folgenden Plot tionen zu übergeben, so dass das Layout der Graphiken genannt auch von der Kommandozeile aus gesteuert werden kann. Es ergeben sich hier viele weitere Gestaltungsmöglichkeiten, die aus der Menü- oder Kontextleiste Es ist
-
-
-
nicht abrufbar sind.
Plotoptionen
haben immer die Form name=ausdruck, z.B. color=navy oder
align={above, right}. Da die Funktion f an der Stelle x=-l eine Polstelle aufweist, wählt Maple für die Ordinate relativ hohe bzw. niedrige Werte, so dass der Graph nicht optimal dargestellt ist. Wir werden daher im folgenden Plot den y-Achsenabschnitt selbst vorge5, und für den ben, wobei jetzt für den x-Achsenabschnitt der Bereich -7 d.h. x=-7 5, y-Achsenabschnitt der Bereich -10 10 gewählt werden, ..
..
y=-10
.
.
.
.
10.
Auch fällt auf, dass beim obigen Graphen an der Unstetigkeitsstelle x=-l eine vertikale Gerade gezogen wird. Dieses werden wir mit der Option discont=true beheben. Diese Option führt allerdings nicht in allen Fällen zu dem gewünschten
Ergebnis.
58 59
POVRAY- und DXF-Exporte sind nur bei dreidimensionalen Graphiken möglich. Mit der weiter unten beschriebenen Option legend oder dem Kontextmenü können Sie bei ausgeschalteter Legenden-Einstellung individuell für eine Graphik Legenden hinzufügen.
5
162
Graphik
(none) Achsen: Kreuz (normal) Achsen: Umrahmt (frame) Achsen: Kasten (box) Mausposition Achsen: keine
£1
11
1.43, 345.32 AchsenSkalierung 1:1
Stil: Linie (line) Stil: Punkt (point)
\
Stil: Patch mit Gitter (patch) Stil: Patch ohne Gitter
(patchnogrid) Abb. 5.06:
Die >
Graphik-Kontextleiste
Graphik wird durch die Anweisung
plot(f(x),
x=-7
..
5, y=-10
..
10, discont=true);
erzeugt. Um eine einheitliche Skalierung der Graphen Option scaling=constrained ein (s. Abb. 5.07): > >
5, y=-10 10, plot(f(x), x=-7 scaling=constrained, discont=true); ..
..
Abb. 5.07: Verbesserter Plot
zu
erhalten, fügen Sie die
5.1 Zweidimensionale
163
Graphiken
in Maple die x- als auch y-Achsenbereiche gleich sind (d.h. r2 r1 s2 Si), ist die Angabe der Option scaling=constrained nötig, da Maple den Graphen nicht automatisch im Verhältnis 1:1 skaliert. Auch
wenn
-
=
-
5.1.5 Koordinatenachsen Es stehen vier verschiedene Achsenkreuze Plotoption axes eingestellt werden: normal
oder boxed
frame
Verfügung, sie
können mit der
Bedeutung
Option box
zur
oder framed
normales Achsenkreuz (Voreinstellung) umschließender Rahmen Koordinatenachsen links und unterhalb des
Graphen_ keine
Darstellung der Achsen
Tab. 5.01:
axes-Optionen
Sie grundsätzlich alle auch in großen Buchstaben NORMAL, BOX, etc. Der Name axes auf der linken Seite der Optionsgleichung wird generell in kleinen Buchstaben geschrieben. Die
Achsen-Einstellungen können
nennen:
>
x=-7 10, 5, y=-10 scaling=constrained, discont=true, axes=box);
plot(f(x),
>
..
..
Optionen tickmarks, xtickmarks und ytickmarks legen Markierungsstriche auf den Achsen fest.
Die
die Anzahl der
Mit tickmarks= [m, n], mit m, n e N, werden x- und y-Achse mit mindestens bzw. n Strichen versehen. Mit den Optionen xtickmarks=m können Sie separat für die x-Achse, mit ytickmarks=n für die y-Achse die minimale Anzahl von Strichen vorgeben. Sie haben in dieser Form kaum Kontrolle über die tatsächliche Anzahl der Striche, die Maple auf die Koordinatenachsen setzt.
m
>
> > > > >
10, 5, y=-10 scaling=constrained, discont=true, tickmarks=[21, 21]);
plot(f(x), x=-7
..
plot(f(x),
..
x=-7
..
5, y=-10
..
10,
scaling=constrained, discont=true, xtickmarks=21, ytickmarks=21);
Eine weitaus bessere Möglichkeit besteht, indem Listen mit den Stellen werden, an denen Striche gesetzt werden sollen.
übertragen
164 > > > >
5
Graphik.
5, y=-10 10, plot(f(x), x=-7 scaling=constrained, discont=true, xtickmarks=[$(-10 10)], ytickmarks=[-10, -5, 0, 5, 10]); ..
..
..
Der Ausdruck $ (-10 10) erzeugt eine weite 1, also-10, -9, -8,..., 9, 106". .
.
Folge von -10 bis +10 mit der Schritt-
5.1.6 Linienarten Die Kurvenlinien lassen sich auf zweierlei Arten ändern:
1) die Strichelung mit der Option hierbei können Sie
vorgeben;
durchgezogene (n=l)
2) die Linienbreite mit der Option >
> >
>
line sty le=n, mit
n e
oder
thickness=n mit
N,
gestrichelte
n e
Linien
(n>l)
N, in Punkten (Pixel).
plot(f(x), x=-7 5, y=-10 10, scaling=constrained, discont=true, thickness=3); ..
..
plot(f(x), x=-7 5, y=-10 10, scaling=constrained, discont=true, linestyle=2); ..
..
linestyle
Abb. 5.08:
Optionen linestyle
thickness
und thickness
S ist eine Kurzform des Befehles seq, welcher in Kap. 14.1.3 ausfuhrlich vorgestellt wird.
5.1 Zweidimensionale
Graphiken
165
In beiden Fällen können Sie auch den Wert n=0 zuweisen. Dies hat dann dieselbe Bedeutung, als wenn n=l gesetzt wäre. Abb. 5.09 stellt die verfügbaren Strichelungsarten dar. Sie können anhand des Bildes bereits bei Geraden erkennen, dass die linestyle-Option nicht immer gleichmäßige Ergebnisse liefert.
Abb. 5.09:
Strichelungsarten
5.1.7 Farben
Kolorierung einer oder mehrerer Kurven können Sie eine aus 24 speziell vordefinierten Farben (colors) wählen, die der Option color zugewiesen werden können.
Zur
•
navy
dunkelblau
black
aquamann schwarz
•
orange
orange
blue
blau
•
brown
braun
pink plum
rosa
•
coral
dunkelorange
•
red
rot
cyan
hellblau
•
sienna
bräunlich
gold
golden
•
tan
green
grün
•
turquoise
gelbbraun türkis (hell)
gray bzw.
violet
violett
khaki
grau (hell) khaki
•
•
wheat
weizenfarben
magenta
magenta/fuchsin
•
white
weiß
maroon
kastanienbraun
•
yellow
gelb
aquamarine
Tab. 5.02: Farben >
plot(sin(x),
x,
color=black);
rosinenfarben
166
Graphik
5
Es lassen sich in Maple auch eigene Farben mittels COLOR/RGB definieren61. Eine Farbe wird über ihre drei RGB-Werte festgelegt: Rot, Grün und Blau in dieser Reihenfolge. Alle drei Werte liegen im Bereich 0 1. Viele Bildverarbeitungspro255, daher teilen wir im nächsten gramme benutzen einen Bereich zwischen 0 Beispiel die Werte durch 256: -
..
..
>
bienengelb
>
plot(sin(x),
:=
COLOR(RGB, 226/256, 188/256, 024/256): x,
color=bienengelb);
5.1.8 Punkte: Stile und
Symbole
plot ermittelt intern anhand der vorgegeben Plotbereiche eine Liste mit Punkten [x, y], die es per Voreinstellung mit geraden Linien miteinander verbindet. Je gebogener die Kurve ist, desto mehr Punkte werden ermittelt, damit die Übergänge möglichst sanft verlaufen (adaptive plotting). Sollen die o.g. Punkte nicht mit Linien verbunden werden, so verhindert die Option style=point dieses. Für die Darstellung der Punkte können verschiedene Symbole angegeben werden, z.B. eine Raute.
style
symbol (bei style=point)
line
point
Linie Punkt
box circle cross
diamond
point Tab. 5.03:
Viereck Kreis Kreuz Raute Pixel
style- und symbol-Optionen
Mit der seit Maple 6 verfugbaren Option symbolsize wird die Größe des les (box, circle, etc.) in Punkten festgelegt. Vorgabewert ist 10. >
plot(f(x),
x=-7
..
5, y=-10
..
Symbo-
10, discont=true,
style=point, symbol=diamond, symbolsize=5);
>
Angabe der Stile und Symbole kann auch gänzlich vorgenommen werden, also LINE, POINT, etc. Die
Wie
mit
großen Buchstaben
eingangs erwähnt, benutzt Maple das adaptive Plotverfahren. Um dieses stellen, geben Sie die Option adaptive=false an.
auszu-
Die Definition der genannten vordefinierten Farben können Sie in Maple 6/7 mit eval ("plot/color') : eval ( 'plot/colortable ') ; abrufen, in Maple V Release 4 und 5 mit readlib("plot/color") : eval('plot/colortable');.
5.1 Zweidimensionale
Graphiken
167
Abb. 5.10: Kurve mit Punkten >
plot(x*sin(1/x), x=-l/2..1/2, y=-.3.
>
plot(x*sin(1/x), x=-l/2..1/2, y=-.3..0.3, adaptive=false)
adapt ive=true 0.3n
Abb. 5.11 Plot mit und ohne
.0 3) ; .
adapt ive=f alse 0.3-
adaptivem Verfahren
5
168
Graphik
Beschriftungen Ein Graph lässt sich mit folgenden Beschriftungen versehen: 5.1.9
1) Labels für die Bezeichnung der Achsen, 2) Legenden für die Beschreibung der Kurven,
3)
Titel.
>
x=-7 10, discont=true, 5, y=-10 labels=["x-Achse", "y-Achse"], labeldirections=[horizontal, vertical], labelfont=[HELVETICA, BOLD, 9], axesfont=[HELVETICA, 10],
> >
title="Die Funktion f(x)",
>
titlefont=[HELVETICA, BOLD, 12]);
>
> > >
plot(f(x),
..
..
legend="f(x)",
Die Funktion title,
^
i
f(x)
r10 labels, labeldirections,
titlefont u
labelfont
.
4« 2 -2
x
2W Achse
4
-4 axesfont
L-10 Legend f(x) Abb. 5.12: labels= ["x..., ",
"y..."]
*
legend
Graphikbeschriftungen
Achsenbezeichnungen (Label): Diese Option kann
angegeben werden, wenn der Ordinatenbereich nicht spezifiziert wurde oder Sie aber ganz andere Labels sowohl für die x- als auch y-Achse wünschen. Die einzelnen Bezeichnungen werden in doppelte
.1 Zweidimensionale
Graphiken
169
Anführungszeichen gefasst62. angegeben, so ermittelt Maple
Ist
labels
nicht
die Bezeichnungen für die Koordinatenachsen anhand der Laufbereichsvariablen in den übertragenen Plotbereichen.
labeldirections=
[horizontal, vertical]
labelfont=
[HELVETICA, BOLD, 9^
Ausrichtung der Label63: Für die Achsenbezeichnungen können Sie eine horizontale Ausrichtung mit dem Namen horizontal, für eine um 90° nach links gedrehte, vertikale Ausrichtung mit dem Namen vertical wählen. Diese Option müssen Sie nicht mit einer labels-Option kombinieren.
Schriftsatz, Attribut und Größe für Label: Schriftsätze sind: TIMES, COURIER, HELVETICA und SYMBOL. Attribute können sein: für TIMES: ROMAN, BOLD, ITALIC oder BOLDITALIC, für HELVETICA & COURIER: BOLD, OBLIQUE, oder BOLDOBLIQUE, (Bei Verwendung von Helvetica und Courier kann das Attribut auch weggelassen werden.) SYMBOL akzeptiert keine Formatierungs-
Verfügbare
-
-
angaben.
axesfont=
[HELVETICA, 10]
legend="f(x)
Als Schriftgröße in Punkten geben Sie eine natürliche Zahl an. Achsennumerierungfont: Gibt Schriftsatz, Attribut sowie Größe der Achsennumerierung an, für
Angaben s. labelfont. (Die Option labelfont ist für die Achsenbezeichnungen zuständig.) Legende für die einzelnen Kurven64: Die Bezeichnung wird wie alle Texte in doppelte Anführungszeichen gefasst. Unterhalb des Graphen erscheint dann die Legende auch bei ausgeschalteter Darstellung via Menüpunkt Options/Display 2-D Legends. Werden mehrere Kurven gezeichnet, so fassen Sie die Texte
in eine Liste: legend= ["ti", "t2", ...]. title="Die Funktion .." Überschrift (Titel) in Anführungszeichen.
Maple-Versionen bekannten Backquotes ( ) sind ebenfalls bei allen Graphikbefehlen möglich. Das Backquote linden Sie auf der deutschen PC-Tastatur
Die
aus
älteren
rechts neben der ß-Taste. Diese Option ist mit Maple 6 eingeführt worden. Wie labeldirections ist legend in Maple 6 neu
eingeführt worden.
170
5
Graphik
titlefont=
Font für Überschrift: Gibt Schriftsatz, Attribut und [HELVETICA,BOLD,12] Größe der Überschrift an. S. labelfont.
f ont=
Font für darzustellenden Text: Diese Option gilt für [HELVETICA,BOLD,12] alle Texte, die in einem Graphen eingefügt werden inkl. Achsenbezeichnungen und Labels, nicht jedoch für Überschriften. Haben Sie axes font bzw. labelfont separat vorgegeben, werden diese, und nicht die Einstellungen aus font für Achsen bzw. Label benutzt. Die f ont-Einstellung wird auch von
plots/textplot akzeptiert. Gültige Einstellungen
s.
labelfont.
Für weitere
Optionen siehe die Online-Hilfe unter ?plot,options.
5.1.10 Mehrere
Graphen mit plot zeichnen
Maple kann nicht nur einen Graphen, sondern auch mehrere in einem Plot darstellen, indem Sie die jeweiligen Ausdrücke fk als Liste oder Menge an plot übertragen. Wird eine Liste
[f, d, fn] verwendet, so werden die Graphen in folgender Reihenfolge angezeigt: fj ganz oben, f2 unterhalb f, f„ ganz unten65. Bei Übergabe einer Menge haben Sie infolge der unbekannten internen Reihenfolge der einzelnen Elemente keine Kontrolle über die Darstellung. Im nächsten Beispiel soll sowohl die Funktion f als auch ihre werden. Zunächst bestimmen wir a:
net >
Asymptote a gezeich-
quo(numer(f(x)), denom(f(x)), x);
1 1 2x-2 Mit diesem Term wird die Funktion
definiert.
unapply(%, x):
>
a
>
plot([f(x), a(x)], x=-8
:=
a
..
7, y=-7
..
7, discont=true);
Maple benutzt für jeden Graphen eine andere Farbe. Die Reihenfolge für die Farbgebung ist: red, green, yellow, blue, magenta, cyan. Werden mehr als sechs Graphen dargestellt, so beginnt Maple wieder mit rot66. Sie können auch für eine bestimmte Die Reihenfolge ist in Maple V Release 4 umgekehrt. Die Farbreihenfolge wird seit Release 3 über die Systemvariable COLORRGB gesteuert. Die Festlegung einer anderen Farbreihenfolge ist auf der CD-ROM unter /anmerkg/COLORRGB. mws beschrieben.
5.1 Zweidimensionale
Graphiken
andere Farben mit der Farbwerten übertragen:
Graphik > >
171
color-Option vorgeben,
plot([f(x), a(x)], x=-7 color=[navy, gray]);
..
5, y=-10
..
in dem Sie eine Liste mit
10, discont=true,
Die k-te Farbe in der color mitgeteilten Liste wird dann dem n-ten Graphen zugewiesen, hier also f(x) die Farbe navy, a(x) die Farbe gray. Die Anzahl der Farben in der Liste muss mit der Anzahl der zu zeichnenden Graphen übereinstimmen. Ahnliche Möglichkeiten der jeweiligen Attributzuordnung an einen Graphen bieten auch die anderen Optionen wie z.B. style: >
> >
10, discont=true, plot([f(x), a (x)], x=-7 5, y=-10 color=[navy, black], style=[point, line], symbol=diamond, linestyle=4); ..
5.1.11 Mehrere
..
Graphen mit plots/display zeichnen
plots/display Neben der Möglichkeit, mehrere Graphen durch einen Aufruf von plot darzustellen, lassen sich Graphen auch in Variablen wie alle Maple-Objekte Zwischenspeichern und mit dem Befehl display aus dem Paket plots ausgeben. -
-
>
restart:
>
f
:=
x
->
xA3:
>
g
:=
x
->
3*x"^2:
>
pf
:=
plot(f(x),
>
pg
:=
plot(g(x), x=-2
>
with(plots, display):
>
display(pf, pg);
x=-2
..
2, y=-2 ..2):
..
2, y=-2
..
2):
Wie Sie sehen, verwendet Maple für beide Kurven die Farbe rot, fügen Sie daher den plot-Anweisungen entsprechende color-Optionen hinzu. Wie bei plot gibt display die Graphen in der in Kapitel 5.1.10 genannten Reihenfolge aus.
jeweils mit einem Doppelpunkt beendet werden, da ansonsten seitenlange Maple-interne Codes zur Darstellung der Graphikanweisungen im Arbeitsblatt ausgedruckt werden. Die
plot-Zuweisungen
sollten
172
5
Eine einzelne abgespeicherte Kurve können Sie im Arbeitsblatt durch Variable zeichnen: >
Graphik
Eingabe
der
pf;
Auch dem Befehl display können Sie fast alle Plotoptionen hinzufügen, idealerweise diejenigen, die generell für alle Graphen, die sie erstellen möchten, gelten
sollen67. >
display(pg, pf, axes=box);
Haben Sie sowohl in einem plot- als auch einem display-Befehl dieselbe Option angegeben, gilt die display übertragene. Probleme mit den Achsenbezeichnungen (Labels) gibt es bei display in Maple 6: sie werden nicht dargestellt. Behelfen Sie sich durch die zuvor vorgestellte Option labels, die Sie display übertragen.
display bietet die Möglichkeit, Graphen nicht übereinander, sondern nebeneinander darzustellen, indem die einzelnen Graphen mittels eines Feldes (array) übertragen werden. >
display(array([pf, pg] ) )
;
-2. Abb. 5.13: 67
display
mit Array
-1. von
0.
1.
2
Graphen
plots/display akzeptiert folgende Optionen nicht: adaptive, coords, discont, filled, sample. Einige erlaubte Optionen wie color werden ignoriert.
5.1 Zweidimensionale
5.1.12
Graphiken
173
Plotoptionen für alle Graphiken vordefinieren
plots/setoptions Plotoptionen, welche für alle darzustellenden Plotstrukturen (das sind die Graphikanweisungen, welche z.B. durch die Befehle plot, textplot, plot3d, etc. erzeugt werden) gelten sollen, können mit dem Befehl setoptions aus dem Paket plots auch voreingestellt werden, so dass diese für alle Plots einer Arbeitssitzung gelten und nicht immer wieder einzeln hinzugefügt werden müssen68. setoptions( option! einstellungi, einstellung2, option2 =
=
)
>
with(plots, setoptions):
>
setoptions ( scaling=constrained,
>
> > > > >
axes=box, titlefont=[HELVETICA, BOLD, 12], axesfont=[HELVETICA, 11], labelfont=[HELVETICA, 11], font=[HELVETICA, 11], labels=["x", "y"]);
explizite Angabe eines Großteiles der Optionen in den jeweiligen Plotanweisungen inkl. display verzichten6''. Nach einem Neustart mittels restart sind die mit setoptions definierten Einstellungen wieder gelöscht und es gelten die alten Defaultwerte. Die aktuellen, mit plots/setoptions getroffenen Einstellungen können Sie mittels eval (~plots/2dDef aults 1) abfragen.
Nun kann
man
auf die
Möchten Sie, dass für einen Plot bestimmte Voreinstellungen nicht gelten, so Sie dem Graphikbefehl die anders lautenden Einstellungen per Plotoption mit. Sie können im Laufe einer Arbeitssitzung weitere, zusätzliche setoptions treffen bzw. alte durch neue ersetzen.
geben
Einstellungen mit
display können die in der letzten Fußnote genannten Optionen nicht mit setoptions voreingestellt werden. Die Plotoptionen können in die Maple-lnitialisationsdatei eingetragen werden, wenn sie für alle Graphiken gelten sollen. Wie bei
174_5 Graphik 5.1.13
Platzierung von Texten
plots/textplot Bezeichnungen lassen sich Die Syntax ist:
mit dem Befehl
textplot
aus
dem Paket
plots einfügen.
textplot(
[x-Koordinate, y-Koordinate, "Text"], Plotoptionen)
Die Koordinaten und der Text müssen in Form einer Liste übergeben werden (also in eckigen Klammern)70. Als Plotoptionen werden zumeist color für die Farbe, font für den Schriftsatz und align für die Ausrichtung des Textes verwendet, jedoch sind auch andere Optionen möglich, wenn sinnvoll. Da sowohl Graphen als auch die Bezeichnungen in einem Fenster erscheinen sollen, werden die Ergebnisse der einzelnen Anweisungen zunächst in Variablen zwischengespeichert und danach mit plots/display angezeigt. >
restart:
>
f
>
textl
:=
x
-> :=
>
with(plots): ln(x): g
:=
x
->
exp(x):
textplot ( [1.9, f(1.9), "f(x)"], color=navy,
align={ABOVE, LEFT},
>
font=[HELVETICA, 10]):
> > > >
text2
:=
textplot«[1, g(l), "g(x)"], align={BELOW, RIGHT}, font=[HELVETICA, 10]):
> >
graph
:=
plot([f(x), g(x)], x=-2 color=[navy, black],
> > >
..
2, y=-3
..
3,
title="Exponential- und Logarithmusfunktion", titlefont=[HELVETICA, 12]):
display(graph, textl, text2);
Die folgende Aufstellung Befehl textplot:
Texte können auch in
gibt eine Erklärung
Backquotes gesetzt werden.
der verwendeten
Optionen
für den
5.1 Zweidimensionale
Graphiken
175
Exponential- und Logarithmusfunktion
Abb. 5.14:
Graphen
&
Bezeichnungen
in einem Plot
color-navy:
Farbe: Der Text wird in dunkelblauer Farbe Voreinstellung ist schwarz.
align={above, right}
Ausrichtung: Die Option align kontrolliert die Ausrichtung des Textes: ober- (above) oder unterhalb (below) des angegebenen Koordinatenpaares, rechts (right) oder links (left) von ihm. Es kann hierbei jedoch vorkommen, dass der Text trotzdem in die Kurve hineingeschrieben wird, die Koordinaten müssten dann manuell nachkorrigiert werden. Verwenden Sie sowohl horizontale als auch vertikale Ausrichtungen wie in diesem Beispiel, so müssen die Angaben als Menge in geschweifte Klammern gesetzt werden. Die
angezeigt.
Option align
ist dann sinnvoll, wenn als Koordix und ihr zugehöriger Funktionswert f(x) angegeben wird, da in vielen Fällen ohne align der Text mitten in die Kurve gesetzt wird.
natenpaar eine Stelle
f ont=
[helvetica, 10]
Textfont: Gibt wie bei plot den Schriftsatz sowie dessen Größe m Punkten des darzustellenden Textes an. Fonteinstellungen s. Kap. 5.1.9 unter der Option axesfont.
5
176
Graphik
5.1.12 Gitternetz
plots/coordplot Im Paket plots ist der Befehl coordplot enthalten, mit dem Gitterlinien für verschiedenste Koordinatensysteme gezeichnet werden können, um Graphiken attraktiv unterlegen zu können. Wir wählen für unsere Funktionen f und g aus dem letzten Unterkapitel das kartesische Koordinatensystem. Die Anwendung von coordplot ist etwas umständlich, da das Gitternetz an den Graphen individuell angepasst werden
muss71. Die
Syntax von coordplot lautet: coordplot(koordinatensystem, bereichsliste, Optionen)
coordplot benötigt für unser Vorhaben fünf Argumente: >
gitter
:=
coordplot(
cartesian, [-2 2, -3 3], view=[-2 2, -3 3], grid=[9, 13], color=[gray, gray]):
>
> >
..
..
..
> >
cartesian
[-2
..
kartesisches
2, -3
view=[-2
..
..
..
3]
2, -3
Koordinatensystem
horizontaler und vertikaler Bereich des darzustellenden Gitternetzes in Form einer Liste .
.
3]
Eingrenzung des darzustellenden Bereiches auf übertragenen Werte. Diese (eigentliche doppelte) Angabe ist hier notwendig, da ansondie view
das Gitternetz zwar nur für den Abszissenbereich -2 2 und den Ordinatenbereich -3 3 erstellt wird, der entstandene Plot aber insgesamt den Vorgabebereich -10.. 10,-10.. 10 umfasst. sten
..
..
71
Das auf der CD-ROM befindliche Paket math enthält die Prozeduren gridplot und cartgrid für Maple V Release 3, 4, 5 und Maple 6/7. gridplot zeichnet eine oder mehrere reelle Funktionen wie der Befehl plot, fugt aber auch ein Gitternetz hinzu, cartgrid erzeugt ein Gitter, welches mit display zusammen mit anderen Plotstrukturen angezeigt werden kann. Das Paket math befindet sich auf der CD-ROM im Verzeichnis /libs/math.
5.1 Zweidimensionale
Graphiken
177
grid=[9, 13]
Anzahl der horizontalen (hier 9) und vertikalen (hier 13) Linien des Gitternetzes, d.h. eine Linie alle 0,5 Einheiten.
color=[gray, gray]
Farbe der Gitterlinien, zum einen für die horizontalen Gitterlinien (erstes Listenelement), zum anderen für die vertikalen Gitterlinien (zweites
Listenelement). Da die Liste [-2 2, -3 3] zweimal vorkommt, kann sie auch einer Variablen zugewiesen werden. Diese Variable wird dann in die Anweisung eingesetzt. Dieses ist auch bei allen anderen Graphikbefehlen möglich. ..
..
>
b
>
gitter
:=
[-2
.
.
2, -3
.
.
3]
:
coordplot(
:=
cartesian, b,
> >
view=b,
> > >
grid=[9, 13], color=[gray, gray]):
Bevorzugte Plotoptionen lassen sich auch als Makro oder Variable definieren, dass die Eingabe generell kürzer wird. >
macro(ab
=
so
'axes=box', xt=xtickmarks, yt=ytickmarks):
übertragene Option axes=box muss in Apostrophe gefasst werden, um einen Syntaxfehler zu vermeiden, da es sich hierbei um eine Gleichung handelt. Variablen nehmen Optionen auch 'ausgewertet' an, da der Variable eigentlich eine Gleichung zugewiesen wird. Die
>
an macro
sc
:=
scaling=constrained:
Die Optionen xtickmarks und ytickmarks in den abgekürzten Formen übertragen wir display; würden sie in Maple nur der plot-Anweisung (siehe Variable gitter) hinzugefügt werden, so würden diese Einstellungen überschrieben, d.h. aufgehoben, werden, wenn dieselben Optionen mit setoptions vordefiniert wurden, da display dann letztere verwendet. Zuletzt werden die Graphen, die Texte und das Gitternetz in einem Plot angezeigt, das Gitter wird als letztes angezeigt, damit es die Graphen nicht an den Schnittstellen überdeckt. > >
display(graph, textl, text2, gitter, ab,
sc,
xt=[$(-2
..
2)],
yt=[$(-3
..
3)]);
5
178
Graphik
Exponential- und Logarithmusfunktion
Abb. 5.15:
Graphen
mit
Bezeichnungen
und Gitternetz
5.1.13 Punkte Auch Punkte in Form einer Liste von Listen mit Punktkoordinaten können mit plot gezeichnet werden. Die Voreinstellung des Befehles ist style=line, d.h. es werden Linien zwischen den einzelnen Punkten gezogen, und zwar vom linken Punktepaar der Liste bis hin zum rechten Punktepaar: >
restart:
>
stern
> > > > >
:= [ [-0.75, 0], [-1.75, 0.75], [0.5, 0.75], [1.75, 0.75], [0, -0.5], [-1.25, -1.25],
[-0.5, 0.75], [0, 2], [0.75, 0], [1.25, -1.25], [-0.75, 0] ];
plot(stern, x=-2 2, y=-2 2.5, axes=box, scaling=constrained); ..
..
Sollen die Punkte nicht mit Linien verbunden werden, so unterdrückt die Option style=point dieses. Für die Darstellung der Punkte können die bekannten Symbole angegeben werden. > >
>
plot(stern, x=-2 2, y=-2 2.5, style=point, symbol=diamond, axes=box, scaling=constrained); ..
..
5.1 Zweidimensionale
5.1.14
Graphiken
179
Tangenten
student/showtangent Ein spezieller Graphikbefehl befindet sich im Paket student: showtangent. Mit seiner Hilfe lässt sich eine Tangente, die an einer bestimmten Stelle an dem Graphen einer Funktion anliegt, zusammen mit dieser Funktion anzeigen. Als erstes Argument nennen Sie die Funktion an sich (es kann nur eine angegeben werden), als zweites die Stelle, an der die Tangente angelegt werden soll, und als drittes den Abszissen-Plotbereich der auszugebenden Graphik. Weitere Plotoptionen, wie z.B. der Ordinatenbereich, lassen sich hinzufügen. >
restart:
>
with(student, showtangent):
>
showtangent(sin(x), x=-Pi/2, x=-4 2, scaling=constrained); 4, y=-2
>
..
5.1.15
..
Implizite Funktionen
algcurves/plotrealcurve plots implicitplot Ausdrücke nur plot akzeptiert y f(x). explizite
Der Befehl
=
2, y=-2 plot(x"2+yA2-l, x=-2 Plotting error, empty plot
>
..
..
2);
Funktionen f(x, y) 0 hingegen werden von dem Befehl implicitplot aus dem Paket plots bearbeitet. I.d.R. werden ihm Gleichungen übertragen, so dass sich z.B. auch Umkehrrelationen graphisch darstellen lassen.
Implizite
=
>
restart:
>
with(plots):
Beispiel 1: Implizite Funktionen mit plots/implicitplot Die Gleichung des Einheitskreises in kartesischen Koordinaten lässt sich durch die Formel x2 + y2 1 darstellen. =
>
kreis
:=
xA2+yA2=l:
Wir wählen noch eine >
ellipse
>
hyperbel
:=
:=
Ellipse und eine Hyperbel:
xA2*2/5+yA2*2/3
xA2/3-yA2/2=l:
=
l:
5
180
Graphik
wie der Standardbefehl plot benutzt, also inklusive Plotoptionen. Der Ordinatenbereich (drittes Argument) muss grundsätzlich angegeben werden. Sollen mehrere Graphen gezeichnet werden, so fassen Sie die Ausdrücke in eine
implicitplot wird Menge. > >
implicitplot({kreis, ellipse, hyperbel}, x=-2.5
..
2.5, y=-2.5
2.5,
..
scaling=constrained);
>
Maple zeigt alle Kurven in derselben Farbe an. Sollen die Graphen in unterschiedlichen Farben dargestellt werden, so können drei implicitplot-Anweisungen mit unterschiedlichen color-Optionen erzeugt und mit display auf den Bildschirm gebracht werden. (Dieses Vorgehen wird noch einmal in Beispiel 2 demonstriert.) Anstatt Gleichungen können auch Terme angegeben werden, welche implicitplot dann >
>
gleich 0 setzt:
2, y=-2 implicitplot (x^2+y'N2-l, x=-2 axes=box, scaling=unconstrained); ..
2,
An diesem Beispiel wird deutlich, dass implicitplot nur den Bereich darstellt, in welchem die implizite Funktion f(x, y) 0 erfüllbar ist, hier also x=-l 1, y=-l 1. Durch die Angabe der Option view aber kann der Blickbereich durch Angabe einer Liste mit zwei Bereichen, der erste für den horizontalen, der zweite für den vertikalen Bereich, individuell eingestellt werden. Die Option view lässt sich auch in anderen Plotbefehlen verwenden. =
..
Abb. 5.16: Drei
implizite Funktionen
..
5.1 Zweidimensionale > >
Graphiken_1_8_1
implicitplot(xA2+yA2-l,
x=-2
2, y=-2
..
axes=box, scaling=constrained, view=[-2 2, -2 2]) ;
>
.
-1
-0.5
Abb. 5.17:
.
.
0
..
2,
.
0.5
-2-2
1
-1
0
1
implicitplot ohne (links) und mit view-Option (rechts)
Beispiel 2: Umkehrrelationen Mit implicitplot können z.B. auch eine Funktion, ihre Umkehrrelation sowie die Winkelhalbierende graphisch präsentiert werden. >
eql
:=
y=xA2;
eq1 Die Umkehrrelation erhalten vertauscht werden. >
eq2
:=
:=
y = x2
wir, indem mit subs die Unbestimmten miteinander
subs({y=x, x=y), eql);
eq2 := x y2 =
>
eq3
:=
y=x;
eq3
:=
y
=
x
Der Graphikbereich ist jedes mal derselbe, daher ersparen wir indem er der Variablen b zugewiesen wird. >
b
:=
x=-2
..
4, y=-3
..
3:
uns
ein
wenig Arbeit,
5
182
Graphik
Die Graphen werden mit unterschiedlichen Farben sowie Linienarten erzeugt und in drei Variablen zwischengespeichert. >
ipl
:=
implicitplot(eql, b, color=black):
>
ip2
:=
implicitplot(eq2, b, color=navy, linestyle=2):
>
ip3
:=
implicitplot(eq3, b, color=red, linestyle=3):
>
display({ipl, ip2, ip3}, scaling=constrained);
Beispiel 3: Implizite Funktionen mit algcurves/plot
real
curve
Maple 7 existiert ein zu plots/implicitplot alternativer Befehl im Paket algcurves: plot_real_curve. Er produziert graphisch deutlich bessere Ergebnisse. Seine Bedienung ist allerdings gewöhnungsbedürftig. In
plot_real_curve verfügt nicht über die color-Option. Für jede graphische Kompogibt es eine eigene Farbeinstellung, die Standardfarben wie yellow, black, werden nicht akzeptieren, sondern nur Farbangaben über die COLOR-Funktion. Damit wir es ein wenig einfacher haben, definieren wir eine Funktion färbe, der eine beliebige in Maple vordefinierte Farbe übergeben wird und
nente etc.
welche dann die
zugehörigen Farbwerte in Form eines COLOR-Aufrufes ermittelt.
>
restart:
>
färbe
>
farbe(yellow);
:=
x
COLOR(RGB, op('plot/colortable" [x]))
->
:
COLOR(RGB, 1.00000000, 1.00000000, 0.) wird ein Polynom (keine Gleichung !) und die dort enthaltenen laufenden Koordinaten übertragen. Anstatt Abszissen- und Ordinaten-Laufbereiche geben Sie zur Eingrenzung des darzustellenden Bereiches die view-Option an. Ansonsten wählt Maple automatisch den richtigen Bildausschnitt.
plot_real_curve
Wir möchten nun die bereits bekannte Hyperbel darstellen. Ihre Farbe definieren Sie mit der colorOf Curve-Option. Tangenten und Normalen werden mit der showArrow-Option angedruckt. Für den Tangenten- und Normalenvektor bestimmen colorOfTangentVector sowie colorOfNormalVector die Farben. >
hyperbel
> >
algcurves[plot_real_curve](hyperbel,
:=
view=[-4
xA2/3-y/s2/2-l: .
.
4, -3.
.
3],
x,
y,
5.1 Zweidimensionale
Graphiken
183
> >
colorOfCurve=farbe(black), showArrows=true,
>
colorOfTangentVector=farbe(gray),
colorOfNormalVector=farbe(maroon));
>
Abb. 5.18:
Implizite
Funktion mit
plot_real_curve
5.1.16 Parametrische Kurven Eine ebene Kurve, welche in ihrer ' S
r(t)
=
vall t
Parameterdarstellung als vektorwertige Funktion
x(t) bzw. als Gleichungssystem x x(t), y y(t), für das Parameterintery(t) g [a, b] gegeben ist, kann mit plot gezeichnet werden. Die Syntax für =
=
Parameterplots lautet:
plot([x(t), y(t), Ein > >
t=a
b]
,
Plotoptionen)
Beispiel:
plot ( [t*sin (3*t), t*cos(3*t), t=-2*Pi 2*Pi], x=-8 6, y=-8 8, scaling=constrained, axes=box);
Der
..
..
..
Graph ist in Abb. 5.20 links dargestellt.
5
184
Graphik
Abb. 5.19: Funktion, Umkehrrelation und Winkelhalbierende
Sollen mehrere Kurven gezeichnet werden, so übergeben Sie die Listen mit den jeweils drei Angaben x-Koordinate, y-Koordinate und Parameterintervall als Menge. Das Resultat ist in Abb. 5.20 rechts abgebildet. >
astroide
>
archim_spirale
>
plot({astroide, archim_spirale}, scaling=constrained);
:=
[3*cos(t)A3, 3*sin(t)A3, t=-Pi :=
..
[t/10*sin (t), t/10*cos (t),
Pi]: t=0
..
10*Pi]:
5.1.17 Kurven in Polarkoordinaten
plots/polarplot Eine Kurve r r(cp) mit (p e [a, ß] stellt der Befehl dem Paket plots. Seine Syntax lautet: =
polarplot (r ((p)
,
(p
Wird das Intervall für den Polarwinkel
=
a
.
.
ß,
weggelassen,
polarplot dar ebenfalls
aus
-
Plotoptionen)
so
wählt
Maple das
Intervall (p
5.1 Zweidimensionale
-8-8
-6
-4-2
Graphiken
x
0
2
185
4
6
Abb. 5.20:
Parameterplots
>
restart:
>
with
>
Pi, polarplot(cos(2*t), t=-Pi scaling=constrained, view=[-l
>
(plots, polarplot)
:
..
..
1, -1
..
1]);
polarplot akzeptiert neben dem Ausdruck r(cp) >
polarplot(phi, phi=0
..
6*Pi, scaling=constrained);
auch die Polarkoordinaten in Parameterform: >
polarplot ( [t, t,
Beide
Wie > >
t=0
..
6*Pi], scaling=constrained);
Anweisungen erzeugen die Archimedische Spirale (Abb. 5.21).
gewohnt können auch mehrere Kurven mit einer Anweisung erzeugt werden.
3*Pi, polarplot({1, -cos(2*phi)/cos(phi)}, phi=0 2], scaling=constrained); view=[-2 2, -2 ..
..
..
5
186
Abb. 5.21: Archimedische
5.1.18
Graphik
Spirale
Logarithmische Plots
plots/semilogplot plots/logplot plots/loglogplot Der plots-Befehl logplot zeichnet Funktionen über einer linear-skalierten Abszisse und einer logarithmisch skalierten Ordinate, also einfach-logarithmisch. Die Syntax gleicht der von plot, auch lassen sich Funktionen in Parameterdarstellung wie gewohnt skizzieren. Undokumentiert ist die Option base. Die Voreinstellung ist base=10, Sie können aber eine beliebige reelle Basis r wählen mit base=r als optionales Argument. Die Skalierungseinheiten der Ordinate können sich dann aber überdecken.
with(plots, logplot):
>
restart:
>
logplot(exp(xA3-xA2-x+l),
>
2, y=0.1 32, logplot(2A(xA3-xA2-x+l), x=-2 base=2, color=navy, linestyle=3, axes=normal,
> >
x=-3
..
..
3); ..
axesfont=[HELVETICA, 9]);
Das Gegenstück zu logplot ist semilogplot, dieses mal ist die Abszisse logarithmisch und die Ordinate linear, siehe ?plots, semilogplot. Beide Achsen werden mit loglogplot logarithmisch dargestellt, siehe ?plots, loglogplot.
5.1 Zweidimensionale
Graphiken
187 32.16.-
8.4-
I
.50-
/ /_z /
Abb. 5.22:
Halblogarithmische Zeichnung
5.1.19 Vektorfelder
plots/fieldplot Der Befehl plots/fieldplot zeichnet ein zweidimensionales Vektorfeld. Die Syntax gleicht der des Befehles plot. Die Vektorkomponenten in zwei Variablen werden in einer Liste übergeben, der horizontale und vertikale Laufbereich muss angegeben werden.
Mit der speziellen Option arrow können Sie die Darstellung der Vektorpfeile definieren: line, slim, thick und thin. Diese Werte müssen in Großbuchstaben angegeben werden. Die Voreinstellung ist thin. Ferner können Sie die Dichte des Vektorfeldes steuern, indem Sie die Werte der Option grid (Voreinstellung ist [20, 20]) ändern.
-y Ein
Beispiel:
Der
magnetische
Feldstärkevektor H
lux2
X
bestimmt das
0 Magnetfeld in der Umgebung eines stromdurchflossenen linearen Leiters. Die magnetischen Feldlinien in einer zur Leiterachse senkrechten Ebene sollen dargestellt werden.
5
188 >
restart:
Die beiden >
kl
wobei I >
>
=
with(plots, fieldplot):
Vektorkomponenten lauten: 1/(2*Pi)*(-y):
:=
r
Graphik
=
k2
:=
l/(2*Pi)*x:
1.
fieldplot([kl, k2], x=-10..10, y=-10..10, arrows=SLIM, scaling=constrained, color=navy,
grid=[12, 12]);
>
£S'
*T
v
/
*
*
/ /
/ / i
s
1 J
/
;
-1p
l i \ \ \ \ ^ ^
.
m v--
' -
*
restart:
>
4, y=-3 inequal({x+0.25*y > 0, x-y >
> > >
axes=frame,
>
scaling=unconstrained)
Abb. 5.24:
:
Ungleichungen
mit
Vorgabe
der Linie
Horizontale und Vertikale können ebenfalls
dargestellt werden:
:=
{x
>
1, y
>
3,
inequal
Angabe thickness gibt die Dicke möglich sind die Werte 0, 1, 2 und 3.
mondrian
..
;
Die
>
die Dicke -
1,
x
=
1.4,
ist der Wert 0,
y
inequal(mondrian,
..
5, y=0
..
5,
optionsexcluded=(color=white), optionsopen=(color=black, thickness=3),
> >
optionsclosed=(color=gray, thickness=3), optionsfeasible=(color=maroon), axes=box, scaling=constrained);
> > >
Hinweis: Mit tet
x=0.5
Graphik
inequal können nur lineare Gleichungen bzw. Ungleichungen bearbei-
werden, Polynome eines höheren Grades als 1 werden abgewiesen72.
5.1.21 Animation
plots/animate Mit animate können Sie Animationen zweidimensionaler Graphen erzeugen, animate ist Teil des Graphikpaketes plots. Im folgenden wird eine Funktionsschar der gedämpften Schwingung für die Parameterwerte n=l bis 20 dargestellt:
with(plots, animate):
>
restart:
>
f
>
animate(f(x, n), x=-3 3, n=l frames=20, numpoints=100, 15]); view=[-3 3, -15
> >
:=
(x, n)
->
sin(n*x)*exp(-x): ..
..
..
20,
..
Einzelne Bilder sind in Abb. 5.26
dargestellt.
Mit der Option frames bestimmen Sie die Anzahl der zu erstellenden Einzelbilder der Animation, die Vorgabe ist 16 Frames, numpoints definiert wie in allen anderen Graphikbefehlen die Anzahl der zu errechnenden Punkte, zwischen denen Linien gezogen werden, um den Graphen zu erstellen (Voreinstellung sind 50 Punkte). Je höher der Wert von numpoints, desto weniger 'kantig' ist der Graph. Die view-Option erlaubt, auch den y-Achsenabschnitt anzugeben.
Aktivieren Sie den Graphikbereich, so schaltet die Kontextleiste in den Animationsmodus um und zeigt verschiedene Schalter zur Steuerung der Animation an (s. Abb. 5.25). Ganz rechts in der Leiste ist ein Schalter eingeblendet, der die Anwahl der normalen Plot-Kontextleiste ermöglicht.
72
inequal arbeitet in der ursprünglich ausgelieferten Version von Maple 6 fehlerhaft.
5.1 Zweidimensionale
Graphiken
191 Endlosschleife
JZ
Einmaliges Abspielen Beschleunigen Verlangsamen aktuelle Mausposition
»1 HM-H Wj^J B£]
-1.901,13.11] Anhalten
_rt ttt
Starten Nächster Rahmen
Abspielreihenfolge rückwärts Abspielreihenfolge vorwärts Abb. 5.25:
Animationssteuerung
n=1 101
-3
\
-2
-i^Q.
1
^
2
3
3*j"-2^/'-1 A^oj"r1"1 A1
^
2
-101
2CM
f := 20t
(x, n)-» sin(nx) e n=io
-1C4
2
3
-3
-104
-20i
Abb. 5.26: Animation der
gedämpften Schwingung
3
192
5
5.2 Dreidimensionale
Graphik
Graphiken
5.2.1 Der plot3d-Befehl Das Gegenstück zu plot für Graphen von Funktionen im dreidimensionalen Raum ist plot3d. Dieser Befehl stellt Flächen dar, die Syntax ist der von plot sehr ähnlich. Wie plot ist plot3d bereits beim Start Maples verfügbar, er ist nicht Bestandteil des auch im folgenden oft benutzten Paketes plots. 5.2.1.1 Reellwertige Funktionen Die Syntax des Graphikkommandos Veränderlicher lautet:
plot3d(f(x, y),
x=ri
..
plot3d für reellwertige Funktionen mehrerer
r2,
y=Si
..
s2,
Plot3d-Optionen)
f bezeichnet eine Funktion oder eine Menge von Funktionen (genauer: Terme bzw. Ausdrücke) in einem kartesischen Koordinatensystem, beide Plotbereiche x und y müssen immer angegeben werden, auch hier gelten die unter Kapitel 5.1.2 genannten Bedingungen. Plot3d-Optionen können, müssen aber nicht genannt werden.
Wenn keine entsprechenden Optionen angegeben wurden, zeichnet Maple die Flächen im Stil patch73, d.h. mit Gitterlinien und farbigen Flächen zwischen den Gitterlinien; diejenigen Bereiche, welche vom Betrachter aus gesehen hinter dem vorderen Teil der Fläche liegen, werden zudem verdeckt. Koordinatenachsen werden nicht angezeigt, lassen sich aber mit der Option axes hinzufügen.
Die
folgende Graphikanweisung zeichnet ein elliptisches Paraboloid:
>
restart:
>
f
>
plot3d(f(x, y),
:=
(x, y)
->
xA2+yA2: x=-3
..
3, y=-3
..
3);
Wie bei zweidimensionalen Graphen lassen sich eine oder mehrere Optionen angeben, einige von ihnen gleichen den 2D-Optionen, welche in Kapitel 5.1 beschrieben wurden, z.B. scaling, axes, color oder die Textformatierungen. Wir nutzen die Stiloption contour beispielsweise, um uns die Niveaulinien des Paraboloiden anzusehen, und fügen auch Koordinatenachsen hinzu.
Diese
Voreinstellung in Release 4 war hidden.
5.2 Dreidimensionale
Graphiken
193
Abb. 5.27: > >
Elliptisches Paraboloid
3, y=-3 3, plot3d(f(x, y), x=-3 style=contour, contours=15, color=red, axes=normal, ..
axesfont=[HELVETICA,
>
..
12], orientation=[0, 0]);
Verfügbare Einstellungen für style
sind:
style-Einstellung Auswirkung contour
nur
Höhenlinien
hidden line
nur
Liniengitter, dahinter liegende Teile werden überdeckt
wie
wireframe
patch patchcontour patchnogrid point wireframe
wie hidden + farbige Ausfüllung der Fläche (Voreinstellung) farbige Fläche + Höhenlinen farbige Fläche, kein Liniengitter nur Punkte nur Liniengitter, dahinter liegende Teile werden nicht überdeckt Tab. 5.04:
style-Einstellungen
Diese Stile können Sie auch in der Kontextleiste bzw. im Plotfenster direkt anwählen. Hier werden auch Einstellungen für Achsen und Skalierung angeboten. Die 10.
Option
contours
definiert die Anzahl der Niveaulinien mit der
orientation bestimmt den Blickwinkel in
und vertikale
d.h.
orientation=[&, (p].
x,y-Ebene.
Der
Vorgabewert
Grad, in der Reihenfolge horizontale
Diese beiden Werte werden als Liste angegeben, In unserem Fall blicken wir direkt von oben auf die ist [45, 45].
Richtung (cp).
(9)
Voreinstellung
194_5 Graphik Alternativ können Sie direkt mit der Maus den Graphen beliebig drehen und ihn sich so von den verschiedensten Seiten ansehen. Haben Sie nun 'Ihre' bevorzugte Perspektive gefunden, so können Sie die Werte der Winkel in die Option orientation
übernehmen.
Das elliptische Paraboloid kann auch über einem Kreisgebiet gezeichnet werden, indem der y-Wertebereich von den durch plot3d durchlaufenden x-Werten abhängig gemacht wird: >
Y
:=
solve(xA2+yA2=9, y) y:=
;
J9^x*
TÖ-^2" -
Auf das erste Ergebnis greifen Sie mit dem Index 1 zu. plot3d kann natürlich auch mehrere Graphen auf einmal anzeigen, die zu zeichnenden Funktionen werden als Menge nicht als Liste übergeben. -
> >
-
3, y=-Y[l] Y[l], plot3d({f(x, y), 5}, x=-3 orientation=[40, 70], color=gray, axes=frame); ..
Abb. 5.28:
Elliptisches
..
Paraboloid und Ebene
5.2.1.2 Farbgebung Zur Einfärbung der Flächen bietet Maple Optionen zur Verfügung: color und shading. Beide kolorieren die Fläche des Graphen nach bestimmten Gesichtspunkten:
5.2 Dreidimensionale
Graphiken_195
color=farbe color= color (rgb, r, g, b)
color=ausdr
Einfärbung des Graphen mit einer der vordefinierten Maple-Farben. Bsp.: color=navy Einfärbung mit der aus Rot(r)-, Grün(g)-, und Blau(b)werten definierten Farbe, r, g, b sind nicht-nega-
tive reelle Zahlen < 1. Bsp.: color=color(rgb, 0, 0, 1) fürblau. Einfärbung gemäß eines algebraischen Ausdruckes, z.B, eines Funktionstermes. Der Ausdruck bestimmt den Farbverlauf von rot über gelb, grün, türkis, blau, violett wieder zurück zu rot. Intern wird der Farbverlauf auf einen Wert zwischen 0 (rot) und 1 (wieder rot) gesetzt. Maple weist dem niedrigsten Wert z der darzustellenden Funktion z f(x, y) den Wert 0, dem höchsten Wert z den Wert 1 zu. Dazwischenliegende Funktionswerte werden nach dem o.g. Farbverlauf koloriert. Bsp: color=x*y,color=f(x, y) color=0.5. Kolorierung nach der so definierten RGB-Farbe. r, g und b können neben reellen Zahlen auch reelle Ausdrücke sein. Bsp.: color= [x, 0, 0]: Farbverlauf von schwarz =
,
color
=
[r, g, b]
zu
shading=name
rot.
rjer Graph wird nach einer der folgenden Optionen eingefärbt: xy, xyz, z, zgreyscale, zhue und none. Bei der Einstellung xy ist die Einfärbung von der x- und y-Koordinate abhängig, bei xyz von allen drei Koordina-
ten, bei z, zhue und zgreyscale nur vom Funktionsergebnis. Alle Einstellungen können Sie auch in kleinen Buchstaben eingeben. Sind weder shading- noch color-Option angegeben, wird in Maple für Windows die Vorgabe shading=xyz getroffen. Werden beide Optionen in einer Anweisung verwendet, so wird die shading-Option ignoriert. >
r
:=
(x, y)
->
sin(x)
*
exp(y):
Die Farbe soll von den Werten der Funktion r abhängen. Der Graph soll etwas genauer, d.h. mit weicheren Verläufen, gezeichnet sein, daher wird die Option grid auf [30, 30] gesetzt, die Voreinstellung ist [25, 25]. Je höher die grid-Einstellung gewählt ist, desto länger dauert die Errechnung des Graphen. Eine Berechnung können Sie durch Klicken auf das Stop-Symbol in der Iconleiste abbrechen. Der bis dahin errechnete Graph wird dann nicht ausgegeben.
5
196 >
> >
Graphik
10, 4, y=4 plot3d(r(x, y), x=-3.5 orientation=[60, 90], style=patch, color=r(x, y), grid=[30, 30], axes=box); ..
..
20000; 10000;
0; -10000:
-20000: l— — — — —r—>—
4
6
—i—— — —
8
r i
4
>
!
3
Abb. 5.29: Harmonische
i... ...... |
...
2
1
..
0
Schwingung
..
|.,.
-1
-2
..
.,.
-3
in 3D
5.2.1.3 Durch Prozeduren bestimmte Graphiken Möchten Sie Werte einer Prozedur graphisch darstellen, z.B. die Mandelbrotmenge, so übergeben Sie nur den Namen der Prozedur ohne Klammern und Argumente als erstes Argument, gefolgt von dem horizontalen und vertikalen Bereich (reelle Werte für die jeweiligen Grenzen und ohne Laufbereichsnamen) und beliebigen Optionen:
plot3d(prozedurname, >
restart:
>
mandelbrot := local z, m;
> >
..
r2,
Si
..
s2,
Plot3d-Optionen)
proc(x, y)
z:=evalf(x+y*I);
>
for
> >
end do;
>
ri
m
from 0 to 25 while abs(z)
end proc:
>
plot3d(mandelbrot, -2 0.5, -1.2 1.2, grid=[150, 150], style=patchnogrid, shading=zhue);
>
plot3d kann man Graphik bewegen.
..
..
mit einem Trick auch zur zweidimensionalen Ausgabe einer Das erste Argument ist dann die Nullfunktion (der Wert 0) und
5.2 Dreidimensionale
Graphiken
für die Struktur ist dann die der Prozedur erhält. > > >
plot3d(0,
197
color-Option verantwortlich,
-2 0.7, -1.2 1.2, color=mandelbrot, orientation=[-90,0]
Abb. 5.30: Die von
von
..
..
,
style=patchnogrid, scaling=constrained)
5.2.1.4 Graphen
die ihre Farbwerte
Mandelbrotmenge
Funktionen in
mit
grid=[250, 250], ;
plot3d
Parameterdarstellung
Funktionen in Parameterdarstellung werden wie bei plot gezeichnet, es kommen lediglich das dritte Listenelement, d.h. die z-Koordinate, sowie der Laufbereich des zweiten Parameters hinzu. Die folgende Anweisung zeichnet eine Kugel.
Abb. 5.31:
Kugel
als
Parameterplot
198 > >
5
Graphik
sin(u)*sin(v), cos(v)], 3, v=-3 3, scaling=constrained, style=hidden, color=black);
plot3d([cos(u)*sin (v) u=-3
>
..
5.2.2 Flächen
,
..
aus
Punktkoordinaten
plots/surfdata Liegen dreidimensionale Punktkoordinaten vor, so lassen sich diese mit surfdata als
Fläche darstellen. Der Befehl erwartet eine Liste L
:=
[ [ [xn, yn, zn] [xl2, y!2, zi2] [ [x2i, y2i, z2i] [x22, y22, z22] [ [ [xmi, ymi, zmi] [xm2, ym2, zm2] ...
Die
Listen in der Form:
von
Zm] ], [x2n, y2n, z2n] ], Yin,
], [Xmn, ymn, Zmn] ] ]
Syntax: surfdata(L, Plot3d-Optionen)
surfdata ist im Paket plots enthalten. >
restart:
>
f
with(plots, surfdata):
(x, y)
:=
->
x*sin(y):
Zuerst werden die Zeilen >
innen
[seq([x,
:=
definiert, y,
f(x, y)], y=-5
..
5)]:
danach die gesamte Struktur74:
[seq(innen, x=-5
5)]:
>
aussen
>
surfdata(aussen, orientation=[-24, 53], axes=frame, labels=["x", "y", "z"], labelfont=[HELVETICA, 12]);
> >
:=
..
Dieses
Vorgehen erspart uns die Mühe bei der Suche nach falsch gesetzten oder fehlenden Klammern, man hätte auch direkt >
>
surfdata([seq([seq([x, ..
.)
;
eingeben können.
y,
f(x, y)], y=-5
..
5)], x=-5
..
5)],
5.2 Dreidimensionale
199
Graphiken
Abb. 5.32: Oberfläche
5.2.3 Flächen in
aus
Punkten
Kugelkoordinaten
plots/sphereplot bzw. räumlichen Polarkoordinaten stellt sphereplot (Paket plots) graphisch dar. Hier können Sie entweder eine Funktion in zwei Variablen oder eine Liste mit drei Polarkoordinaten als erstes Argument angeben, gefolgt von zwei Plotbereichen bzw. Parameterintervallen. Plot3d-Optionen können auch hier genannt werden.
sphereplot(f(x, y)
x=r,
,
..
r2,
y=Si
s2,
..
Plot3d-Optionen)
oder
sphereplot ([ r, Zwei
(p]
,
9=ri
..
r2,
(p=sx
..
Beispiele: with(plots, sphereplot):
>
restart:
>
2*Pi, y=0 Pi, sphereplot(x*y, x=0 scaling=constrained, style=hidden,
> >
..
..
orientation=[-101, -34], color=navy);
s2,
Plot3d-0ptionen)
5
200
Graphik
Abb. 5.33: Schneckenhaus > > >
Pi, sphereplot([x, t, x*exp(-xA2+l)], x=-Pi orientation=[41, 87], axes=frame, shading=z, grid=[50, 50]); ..
Siehe auch
5.2.4
t=-Pi
..
Pi,
?plots,cylinderplot und ?plots,tubeplot.
Implizite Funktionen
plots/implicitplot3d Implizite Funktionen präsentiert der Befehl implicitp!ot3d. Er erwartet eine oder mehrere Gleichungen oder Terme in drei Unbekannten sowie je einen Plotbereich pro Variable. Übertragen Sie Terme, werde diese gleich 0 gesetzt. implicitplot3d ist Bestandteil des Paketes plots. implicitplot3d (f, x=ri Plot3d-Optionen)
y=Si
with(plots, implicitplot3d):
>
restart:
>
implicitplot3d ( { x^2 + y'"2-z'N2=2 3, y= -3
>
x=-3
> >
color=gray, style=patch, grid=[20, 20, 20], orientation=[30, 70]);
> >
r2,
..
..
..
,
3, z=-2
z}, ..
2,
..
s2,
z=ti
..
t2,
5.2 Dreidimensionale
Graphiken
Abb. 5.34:
201
Einschaliger Hyperboloid
5.2.5 Kurven im Raum
plots/spacecurve Kurven werden im Raum mit spacecurve aus dem Paket plots gezeichnet. Der Befehl erwartet als erstes Argument eine Liste bestehend aus den parametrischen Repräsentanten der x-, y- und z-Koordinaten. Den Laufbereich des Parameters geben Sie als zweites Argument an. Optionen können danach genannt werden.
Die
Syntax:
spacecurve([x(t), y(t),
z
(t)], t=r,
restart:
>
spacecurve([cos(t), sin(t), t], t=0 shading=z, orientation=[40, 75], axes=normal, numpoints=100);
>
r2,
Plot3d-Optionen)
with(plots, spacecurve):
>
>
..
..
6*Pi,
Eine andere Gestaltungsmöglichkeit der Ausgabe gestattet seq. Im Beispiel unten werden die Kurvenscharen der parametrischen Funktion f(x, t) nebeneinander für 6 und den angegebenen Definitionsbereich von x im Raum gezeichnet, seq t=l erzeugt hier eine Folge von sechs Listen mit je drei Koordinaten sowie dem Laufbereich von x; diese Listenfolge wird als Menge dem Graphikbefehl übertragen. Beachten Sie die unterschiedlichen runden, geschweiften und eckigen Klammern. ..
5
202
Abb. 5.35: Rechtsdrehende Schraubenlinie
t*x*exp(-xA2+l):
>
f
>
spacecurve( 6 ) }, 5], t=l { seq( [x, t, f(x, t), x=-5 orientation=[-102, 82], shading=z, axes=frame);
> >
:=
(x, t)
->
..
Abb. 5.36: Kurvenschar
..
Graphik
5.2 Dreidimensionale
203
Graphiken
5.2.6 Animationen in 3D
plots/animate3d Auch im dreidimensionalen Raum ist es möglich, Animationen zu erzeugen. Der hierfür bereitgestellte Befehl lautet animate3d und ist im Paket plots enthalten.
Syntax: animate3d (f (x,
n)
y,
,
x=rx
..
r2,
y=Sj
..
s2,
n=a
..
b,
Plot3d-Optionen) Das vierte
Argument
n=a
.
.
b
gibt
die Anzahl der
zu
erzeugenden
Einzelbilder
vor. >
restart:
>
with(plots, animate3d):
>
r
>
animate3d(r(x, y, n), x=-3.5 frames=21, orientation=[65, 90],
> >
:=
(x, y, n)
n*sin (x) *exp
->
(y)
..
:
4, y=4
..
10, n=0
..
20,
style=wireframe, color=gray);
> >
animate3d arbeitet auch mit Funktionen in
5.2.7 Vordefinition
von
Parameterdarstellung.
3D-Plotoptionen
plots/setoptions3d Genauso wie mit plots/setoptions bestimmte Optionen für alle zweidimensionale vordefiniert werden können, gestattet dieses dreidimensionale Plots.
Graphiken >
restart:
>
with(plots, setoptions3d):
>
setoptions3d(axes=box, title="3D-Plot");
>
plot3d(x*y,
eval
x=-2
..
2, y=-2
..
plots/setoptions3d
für
2);
(~plots/3dDefaults") wiederum gibt die bereits getätigten Vorgaben
zurück.
204
5
5.2.8 Einsatz
Graphik
display dreidimensionale Graphen von
lassen sich mit plots/display in einem Plot Mehrere darstellen. Die Syntax ist dabei mit der für zweidimensionalen Graphiken identisch. Zwei- und dreidimensionale Graphen können Sie nicht miteinander kombinieren.
with(plots, display, sphereplot):
>
restart:
>
b
>
pi
>
display(pi, p2, scaling=constrained, axes=box,
:= :=
x=-3
..
3, y=-3
..
3:
sphereplot(1, b): p2
v
plot3d(0, b):
:=
title="Schnitt", view=[-v
>
1.25:
:=
v,
..
-v
v,
..
-v
v] )
..
;
Durch Angabe der view-Option zusammen mit einer Liste aus drei Bereichen für die jeweiligen x-, y- und z-Achsenabschnitte wird die darzustellende Region einge-
grenzt.
5.3
Abspeicherung von Graphiken
Die
Abspeicherung von Graphiken und Animationen in Dateien ist in der Worksheet
graphikenabspeichern.mws auf der CD-ROM im Verzeichnis /anmerkg
beschrieben.
2-dimensionale Graphen Funktion Beschreibung Graph für reelle plot Funktionen in einer Unbekannten
Syntax Eine Kurve: r2