Maple 7: Rechnen und Programmieren [2., vollständig überarb. Aufl.] 9783486598902

Die vollständig überarbeitete Neuauflage des beliebten Kompendiums "Maple V - Rechnen und Programmieren mit Release

232 110 33MB

German Pages 540 [565] Year 2010

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Maple 7: Rechnen und Programmieren [2., vollständig überarb. Aufl.]
 9783486598902

Citation preview

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



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