264 107 29MB
German Pages 439 [452] Year 1998
Hans Benker
Ingenieurmathematik mit Computeralgebra-Systemen
Die Bucher der Reihe IIAusbildung und Studium" bieten praxisorientierte Einfuhrungen fUr die Aus- und Weiterbildung sowie Bausteine fUr ein erfolgreiches berufsqualifizierendes Studium. Unter anderem sind erschienen:
StudienfUhrer Wirtschaftsinformatik von Peter Mertens et 01.
Studien- und ForschungsfUhrer Infonnatik an Fachhochschulen von Rainer Bischoff (Hrsg .)
Excel fUr Techniker und Ingenieure von Hans-Jurgen Holland und Fronk Bracke
Turbo Pascal Wegweiser fUr Ausbildung und Studium von Ekkehard Kaier
Delphi Essentials von Ekkehard Kaier
Programmieren mit Fortran 90 von Hans-Peter Baumer
Wirtschaftsinformatik mit dem Computer von Hans Benker
EinfUhrung in UNIX von Werner Brecht
Datenbank-Engineering von Alfred Moos und Gerhard Daues
Visual Basic Essentials von Ekkehard Kaier
Excel fUr Betriebswirte von Robert Horvat und Kambiz Koochaki
Grundkurs Wirfschaftsinformatik von Dietmar Abts und Wilhelm Mulder
Praktische Systemprogrammierung von Helmut Weber
Wissenschaftfiches Publizjeren ュゥエセtスSxR
・@
von Torsten Machert
Ingenieurmathematik mit Computeralgebra-Systemen von Hans Benker
Hans Benker
Ingenieurmathematik mit Computeralgebra-Systemen AXIOM, DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD in der Anwendung
II VI.Weg
Die deutsche Bibliothek - CIP-Einheitsaufnahme
Benker, Hans: Ingenieurmathematik mit Computeralgebra-Systemen: AXIOM, DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD in der Anwendung I Hans Benker. - Braunschweig; Wiesbaden : Vieweg, 1998 (Vieweg Ausbildung und Studium)
ISBN-l 3:978-3-528-05673-5 e-ISBN-13: 978-3-322-86587-8 DOl: 10.1007/978-3-322-86587-8
Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/wiesbaden, 1998
Der Verlag Vieweg ist ein Untemehmen der Bertelsmann Fachinformation GmbH.
Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzuHissig und strafbar. Das gilt insbesondere flir Vervielfiiltigungen , Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
http://www.vieweg.de Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daB solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung a1s frei zu betrachten waren und daher von jedermann benutzt werden diirften. Hochste inhaltliche und technische Qualitat unserer Produkte ist unser Zie!. Bei der Produktion und Auslieferung unserer Biicher wollen wir die Umwelt schonen: Dieses Buch ist auf saurefreiem und chlorfrei gebleichtem Papier gedruckt. Die EinschweiBfolie besteht aus Polyathylen und damit aus organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe freisetzen .
ISBN-13 :978-3-528-05673-5
v
Vorwort
Der Hauptzweck dieses Buches besteht darin, Ingenieuren und Naturwissenschaftlern aufzuzeigen, wie man mathematische Probleme aus Technik und Naturwissenschaften einfach mit dem Computer unter Verwendung eines der universellen Computeralgebra-Systeme Ckurz: S:ysteme) AXIOM, DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD Ibsen kann. Der Schwerpunkt des Buches liegt auf der Umsetzung der zu lbsenden mathematischen Problerne in die Sprache der ComputeralgebraSysteme und der Interpretation der gelieferten Ergebnisse. Bei der Anzahl der betrachteten Systeme kann naturlich nicht jede Einzelheit bzw. Besonderheit im Detail eriautert werden. Die im Buch behandelten Grundlagen reichen jedoch mit den in allen S:ystemen integrierten Hilfefunktionen aus, urn Aufgaben der Ingenieurmathematik mit einem der besprochenen S:ysteme lasen zu kbnnen .
•
1m vorliegenden Buch werden Gemeinsamkeiten aller betrachteten S:ysteme herausgearbeitet und ihre Anwendung zur Lasung von Aufgaben der Ingenieurmathematik untersucht. Der Leser wird damit in die Lage versetzt, ohne grofSe Muhe mit einem der beschriebenen Systeme unter Verwendung der integrierlen Hilfefunktionen arbeiten zu kbnnen .
•
Die mathematische Theorie wird im Buch nur kurz dargestellt. Es werden hauptsachlich Maglichkeiten zur exakten bzw. naherungsweisen Lasung der betrachteten Aufgaben diskutiert, da dies fUr die Anwendung der Systeme wichtig ist. Fur ein tieferes Eindringen in die Mathematik wird auf die zahlreichen Lehrbucher zur Ingenieurmathematik verwiesen Csiehe Literaturverzeichnis). 1m Rahmen die-
Vorwort
ses Buches zitieren wir die Bucher von Papula [41] zur Ingenieurmathematik.
•
Der Autor mbchte alle Leser dringend darauf hinweisen, nicht nur mittels der im vorliegenden Buch beschriebenen ComputeralgebraSysteme Mathematik zu betreiben, sondern auch Mathematiklehrbiicher zu konsultieren. Urn die Mathematik effektiv zur Lbsung praktischer Probleme einsetzen zu kbnnen, kann man sich nicht nur auf die Systeme verlassen, sondern muB auch den theoretischen Hintergrund, d.h., die mathematischen Grundlagen beherrschen. Die vorhandenen Systeme liefem allerdings ein wesentliches Hi!jsmittel, urn umJangreiche Rechnungen schnell und ohne groBe Muhe durchzuJiihren. So kann sich der Anwender starker auf die Verbesserung seiner mathematischen Modelle und das tiefere Eindringen in deren mathematische Grundlagen konzentrieren.
•
Obwohl eine Reihe von Lehrbuchem zur Ingenieurmathematik existieren, sind dem Autor keine deutsch- oder englischsprachigen Bucher bekannt, die mehrere Computeralgebra-Systeme zur Lbsung der Grundprobleme der Ingenieurmathematik heranziehen. Es gibt nur Bucher, die einzelne Systeme zur Lbsung dieser Aufgaben verwenden (siehe Literaturverzeichnis). Da einzelne Systeme nicht alle Aufgaben Ibsen oder falsche Lbsungen berechnen kbnnen, ist es fUr einen Anwender vorteilhaft, mehrere Systeme einzusetzen, urn die Ergebnisse vergleichen zu kbnnen.
•
Es werden acht bekannte Systeme bei der Lbsung mathematischer Probleme Technik und Naturwissenschaften getestet und ihre Vorund Nachteile diskutiert. Damit erhalt der Anwender Hinweise, welches der besprochenen Systeme fUr sein zu lbsendes Problem effektiv ist. Es ist hierbei aber nicht mbglich, ein bestes System zu empfehlen. Jedes System hat Vor- und Nachteile. Auch spielen Preis und Anwendungszweck eine wesentliche Rolle. Dieses Buch soll mit dazu beitragen, daB sich jeder Anwender sein optimales System auswahlen kann .
•
Vorwort
VII
Nach Ansicht des Autors werden zur L6sung mathematischer Probleme in Technik und Naturwissenschaften in Zukunft verstarkt Computeralgebra-Systeme herangezogen, urn die immer umfangreicheren Rechnungen mit einem vertretbaren Aufwand unter Verwendung von Computern bewaltigen zu k6nnen. Der Aufwand bei der Anwendung der betrachteten Systeme ist wesentlich geringer als die Erstellung von Computerprogrammen mittels einer Programmier-
sprache .
•
Das vorliegende Buch ist aus Vorlesungen entstanden, die der Autor an der Universitat Halle gehalten hat, und wendet sich sowohl an Studenten, Dozenten und Professoren der
* * * *
Mathematik Technomathematik Technikwissenschaften Naturwissenschaften von Fachhochschulen und Universitaten als auch in der Praxis tatige * Mathematiker * Ingenieure * Naturwissenschaftler Die behandelten Systeme existieren mit Ausnahme von DERIVE fUr verschiedene ComputerplattJormen, so u.a. fUr IBM-kompatible Personalcomputer, Workstations unter UNIX und APPLE-Computer. Wir verwenden im Buch die aktuellen Programmversionen fUr IBM-kompatible Personalcomputer (kurz als PCs bezeichnet), die unter WINDOWS 3.1 und/oder 95 laufen. Da sich der Aufbau der Benutzeroberjlache und die Kommandostruktur der Systeme fUr die einzelnen Computertypen nur unwesentlich unterscheiden, k6nnen die im Buch gegebenen Grundlagen fUr beliebige Computer angewendet werden .
•
Die Struktur der KommandosiMenufolgen der Systeme wird sich bei zukilnftigen weiterentwickelten Versionen nicht wesentlich andern: * Es verbessert sich hauptsachlich die Effektivitat der verwendeten
Methoden.
VIII
Vorworl
*
Die Benutzerobetjlache wird von Version zu Version etwas umgestaltet. * Der Umfang der losbaren Aufgaben wird enueitert. Deshalb kann das vorliegende Buch auch in den nachsten Jahren als eine Anleitung zum Losen von Problemen der Ingenieurmathematik mittels der besprochenen Systeme verwendet werden. Falls bei einer neuen Version eines Systems einige KommandosiMeniiJolgen verandert bzw. hinzugejt:igt wurden, so kann man sich InJormationen hieriiber aus der integrierten Hiife holen.
•
1m folgenden werden noch einige Hinweise zur Gestaltung des Buches gegeben: • Neben den OberschriJten werden Kommandos, Menzis und BeJehle der Systeme und Vektoren und Matrizen im Fettdruck dargestellt. • Programm-, Datei- und Verzeichnisnamen werden in GrojSbuchstaben geschrieben. • Beispiele und Abbildungen werden in jedem Kapitel mit 1 beginnend durchnumeriert, wobei die erste Zahl die Kapitelnummer angibt. So wird z.B. mit Beispiel 5.3 das Beispiel Nr.3 aus Kapitel 5 bezeichnet. • Wichtige Textstellen werden kursiv dargestellt. セャゥァ・@ Hinwei,e und Bemerimngen we,den dueeh da, Zeichen
markiert. AbschlieBend mochte ich mich bei allen bedanken, die mich bei der Erstellung des Buches untershitzt haben: • Vom Verlag Vieweg Herro Dr.Klockenbusch fUr die Aufnahme des Buchtitels in das Verlagsprogramm und Herro Mosena fur die Unterstutzung bei der Erstellung des Manuskripts. • Vom Fachbereich Mathematik der Universitat Paderborn Herro Dr.O.Kluge und Herro Dr.F.Postel fUr die kostenlose Bereitstellung der neuen Version 1.3 von MuPAD fUr WINDOWS 95 und die Beantwortung zahlreicher Fragen. • Der Firma Scientific Computers, insbesondere Herro Hortsch, fUr die kostenlose Bereitstellung der Version 5 von MATLAB einschlieBlich aller Toolboxen. • Der Firma MathsoJt fUr die kostenlose Bereitstellung der Version 6.0 PLUS von MATH CAD in deutscher und englischer Sprache.
IX
Vorworl
• • •
Der Firma Waterloo Maple Inc. in Waterloo (Kanada) fUr die kostenlose Bereitstellung der neuen Version von MAPLE. Meiner Tochter Uta fUr die kritische Durchsicht des Manuskripts. Meiner Gattin Doris fUr ihr Verstandnis fUr meine Arbeit an den Wochenenden und im Urlaub.
Merseburg, im Januar 1998
Hans Benker
x
Inhaltsverzeichnis
1 Einleitung.......................................................................... 1 1.1 Ingenieurmathematik................................................... 4 1.2 Mathematik mit dem Computer.. .................................. 4 1.2.1 Computeralgebra-Systeme .................................. 5 1.2.2 Weitere Systeme .................................................. 6 1.2.3 Programme fUr numerische Algorithmen ........... 7 2 Computeralgebra.............................................................. 8 2.1 Gegenstand der Computeralgebra ................................ 8 2.2 Funktionsweise von Computeralgebra-Systemen .......... 14 3 Handhabung und Aufbau der Systeme ............................ 17 3.1 Handhabung............... .................. ................................ 17 3.1.1 Allgemeine Prinzipien.............................. .......... 17 3.1.2 Besonderheiten der einzelnen Systeme .............. 20 3.2 Aufbau.......................................................................... 22
4 AXIOM ................................................................................ 25 4.1 Benutzeroberf1ache ....................................................... 25 4.2 Arbeitsfenster................................................................ 27
5 DERIVE ............................................................................... 29 5.1 Benutzeroberfhiche ....................................................... 29 5.2 Arbeitsfenster................................................................ 35 6 MACSYMA........................................................................... 37 6.1 Benutzeroberflache ....................................................... 37 6.2 Arbeitsfenster ................................................................ 39 7 MAPLE .................................................................................41
7.1 Benutzeroberflache ....................................................... 41 7.2 Arbeitsfenster. ............................................................... 43 8 MATHCAD ........................................................................... 47 8.1 Benutzeroberflache ....................................................... 48 8.2 Arbeitsfenster................................................................ 52 8.3 Symbolisches Gleichheitszeichen .................................. 56 9 MATHEMATICA.................................................................. 58 9.1 Benutzeroberflache ....................................................... 58 9.2 Arbeitsfenster. ............................................................... 60
Inhaltsverzeichnis
Xl
10 MATLAB .............................................................................. 63 10.1 Benutzeroberflache ....................................................... 63 10.2 Arbeitsfenster ................................................................ 64 11 MuPAD................•.•.••..••.•.........•.•.•.•.............•..................... 66 11.1 Benutzeroberflache........ ................................ ............... 66 11.2 Arbeitsfenster.. .............................................................. 68 12 Exakte und naherungsweise Rechnungen ...................... 70 12.1 Exakte Rechnungen mittels Computeralgebra ............... 71 12.2 Naherungsweise Rechnungen ....................................... 73 13 Zahlen, Variablen, integrierte Konstanten und Funktionen ............................................................................................ 79 13.1 Ganze, rationale, reelle und komplexe Zahlen ............. 79 13.2 Variablen............................................. ......................... 80 13.3 Integrierte Konstanten ................................................... 84 13.4 Integrierte Funktionen........................................ .......... 85 14 Datentypen, Dateneingabe und -ausgabe ........................ 88 14.1 Datentypen ................................................................... 88 14.2 Dateneingabe und -ausgabe .......................................... 92 15 Programmierung innerhalb der Systeme....................... l05 15.1 Zuweisungen ................................................................ 107 15.2 Verzweigungen ............................................................. 108 15.3 Schleifen ....................................................................... 113 15.4 Erstellung einfacher Programme ................................... 120 16 Mengen und Logik.........................................•.................. 125 16.1 Mengen ......................................................................... 125 16.2 Logik............................................................................. 128 17 Anwendung als wissenschaftlicher Taschenrechner.... 131 18 Umformung von Ausdriicken........................................... 133 18.1 Vereinfachung.............................................................. 135 18.2 Partialbruchzeriegung................................................... 136 18.3 Potenzieren............................ ................. ..................... 138 18.4 Multiplikation.......... ..................................................... 139 18.5 Faktorisierung.......... ....... ..................... ..... ........ ............ 140 18.6 Auf einen gemeinsamen Nenner bringen ..................... 141 18.7 Umformung trigonometrischer Ausdriicke .................... 142 19 Summen und Produkte ..................................................... 146 19.1 Summen....................................................................... 146 19.2 Produkte....................................................................... 149 20 Vektoren und Matrizen..................................................... 152 20.1 Ingenieurtechnische Anwendungen .............................. 152 20.2 Eingabe von Vektoren und Matrizen ............................. 152
XlI
Inhaltsverzeichnis
20.3 Rechenoperationen mit Vektoren und Matrizen ............ 160 20.3.1 Addition und Multiplikation ................................ 160 20.3.2 Transponieren.................................................... 162 20.3.3 Berechnung der Determinante.......................... 163 20.3.4 Berechnung der Inversen.................................. 164 20.3.5 Skalar-, Vektor- und Spatprodukt.. ..................... 166 20.4 Eigenwertprobleme...................................................... 168 21 Funktionen........................................................................ 172 21.1 Ingenieurtechnische Anwendungen ............................. 173 21.2 Elementare Funktionen................................................ 173 21.3 Definition von Funktionen ........................................... 175 21.4 Approximation von Funktionen .................................... 180 21.5 H6here Funktionen ....................................................... 183 22 Grafische Darstellungen................................................... 184 22.1 Kurven. .................. ...................... ................................. 184 22.2 Flachen......................................................................... 199 22.3 Punktgrafiken............................................................... 210 22.4 Bewegte Grafiken, Animationen ................................... 213 23 LOsung von Gleichungen und Ungleichungen............... 214 23.1 Ingenieurtechnische Anwendungen .............................. 214 23.2 Linearer Gleichungen .................................................... 214 23.3 Polynome ...................................................................... 224 23.4 Nichtlineare Gleichungen................ .............. ............... 227 23.5 Ungleichungen...... .................................................. ...... 233 24 Differentialrechnung........................................................ 236 24.1 Ingenieurtechnische Anwendungen .............................. 236 24.2 Berechnung von Ableitungen ....................................... 237 24.3 Taylorentwicklung........................................................ 247 24.4 Differential und Fehlerrechnung ................................... 252 24.5 Berechnung von Grenzwerten ...................................... 254 24.6 Kurvendiskussion .......................................................... 258 25 Integralrechnung.............................................................. 262 25.1 Ingenieurtechnische Anwendungen .............................. 264 25.2 Unbestimmte und bestimmte Integrale ......................... 264 25.3 Uneigentliche Integrale ................................................. 271 25.4 Numerische Berechnung ............................................... 274 25.5 Mehrfache Integrale ...................................................... 277 26 Reihen und Fourierreihen............................................... 280 26.1 Ingenieurtechnische Anwendungen .............................. 280 26.2 Zahlenreihen ................................................................. 280 26.3 Fourierreihen........... ........................ ............................. 283
Inhaltsverzeichnis
XIII
27 Vektoranalysis ................................................................... 288 27.1 Ingenieurtechnische Anwendungen .............................. 288 27.2 Felder, Gradient, Rotation und Divergenz ..................... 288 27.3 Grafische Darstellung von Vektorfeldern ...................... 292 27.4 Kurven- und Oberflachenintegrale ................................ 295 28 Differentialgleichungen.................................................... 297 28.1 Ingenieurtechnische Anwendungen .............................. 298 28.2 Gewbhnliche Differentialgleichungen ........................... 301 28.3 Partielle Differentialgleichungen ................................... 323 29 Integraltransformationen................................................ 325 29.1 Ingenieurtechnische Anwendungen .............................. 325 29.2 Laplacetransformation ................................................... 325 29.3 Fouriertransformation ................................................... 332 29.4 Lbsung von Differentialgleichungen ............................. 334 30 Optimierung ...................................................................... 342 30.1 Ingenieurtechnische Anwendungen ............................. 343 30.2 Extremwertaufgaben ..................................................... 344 30.3 Lineare Optimierung ..................................................... 360 30.4 Nichtlineare Optimierung ............................................. 368 31 Wahrscheinlichkeitsrechnung........................................ 375 31.1 Ingenieurtechnische Anwendungen .............................. 376 31.2 Kombinatorik. ............................................................... 377 31.2.1 Fakultat und Binomialkoeffizient. ....................... 377 31.2.2 Permutationen, Variationen und Kombinationen379 31.3 Wahrscheinlichkeiten und ZufallsgrbBen ...................... 380 31.4 Verteilungsfunktionen ................................................... 381 31.5 Momente von Verteilungen ........................................... 393 31.6 Zufallszahlen ................................................................. 395 32 Statistik.............................................................................. 402 32.1 Ingenieurtechnische Anwendungen .............................. 404 32.2 Stich proben. .. ................................................................ 404 32.3 Statistische MaBzahlen .................................................. 406 32.4 Schatzungen und Tests........ ........ ................................. 413 32.5 Korrelation und Regression.......................................... 416 33 Zusammenfassung............................................................ 424 Literaturverzeichnis ............................................................... 427 Sachwortverzeichnis .............................................................. 433
1
1
Einleitung
Der Hauptzweck dieses Buches besteht darin, Ingenieuren und Naturwissenschaftlern aufzuzeigen, wie man mathematische Probleme aus Technik und Naturwissenschaften mit dem Computer unter Verwendung eines der universellen Computeralgebra- und MathematikSysteme (kurz: Systeme) AXIOM, DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD 16sen kann.
Computeralgebra-Systeme werden in Zukunft bei der L6sung mathematischer Alifgaben aus Technik- und Naturwissenschaften an Bedeutung gewinnen, da die Komplexitdt dieser Aufgaben zunimmt, so daB diese nicht mehr per Hand unter Verwendung von Taschenrechnern gelast werden kannen. Mittels Computer lassen sich die anfallenden oft urnfangreichen Rechnungen in Sekundenschnelle erledigen, wenn man vorhandene Systeme heranzieht. Da Taschenrechner uberall durch Computer (Personalcomputer) ersetzt wurden und werden, auf denen Computeralgebra-Systeme installiert sind, ist es erforderlich, daB sich auch Ingenieure und Naturwissenschaftler mit der Handhabung und Anwendung dieser Systeme beschaftigen. Das vorliegende Buch solI hierbei helfen .
•
Obwohl zahlreiche Lehrbucher zur Ingenieurmathematik existieren, sind dem Autor keine deutsch- oder englischsprachigen Bucher bekannt, die mehrere Computeralgebra-Systeme zur Lasung von Grundproblemen der Ingenieurmathematik heranziehen. Es gibt nur Bucher, die einzelne Systeme zur Lasung dieser Aufgaben verwenden (siehe Literaturverzeichnis). Da ein einzelnes System nicht aIle Aufgaben lasen oder falsche Lasungen berechnen kann, ist es fUr einen Anwender vorteilhaft, mehrere Systeme einzusetzen, urn die Ergebnisse vergleichen zu kannen. 1m vorliegenden Buch werden die acht bekannten Systeme AXIOM, DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD bei der L6sung mathematischer Probleme in Technik H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
2
1 Einleitung
und Naturwissenschaften getestet und ihre Vor- und Nachteile diskutiert. Damit erhalt der Anwender Hinweise, welches der besprochenen Systeme fUr sein zu lbsendes Problem effektiv ist. Es ist aber nicht mbglich, ein bestes System zu empfehlen. Jedes S:Ystem hat Vor- und Nachteile. Auch spiel en Preis und Anwendungszweck eine wesentliche Rolle. Dieses Buch soll mit dazu beitragen, daB sich jeder Anwender seine optimalen Systeme auswahlen kann .
•
Das vorliegende Buch ist folgendermaflen aufgebaut : I. 1m ersten Teil wird eine Einfiihrung in die verwendeten Systeme gegeben, wobei im * Kap.3-11 fUr die acht verwendeten Computeralgebra-Systeme AXIOM, DERIVE, MACSYMA, MAPLE, MATH CAD , MATHEMAT1CA, MATLAB und MuPAD Aufbau und Handhabung ausfUhrlich behandelt werden, so daB der Anwender in der Lage ist, diese S:ysteme ohne groBe Schwierigkeiten zu bedienen. * Kap.12 der Unterschied zwischen exakter und numerischer Rechnung innerhalb der S:ysteme diskutiert wird. * Kap.13 die Darstellung von Zahlen und Variablen fUr die einzelnen Systeme behandelt wird. Des weiteren werden wichtige integrierte Konstanten und Funktionen besprochen. * Kap.14 die Ein- und Ausgabe von Daten in den einzelnen Systemen besprochen wird, die fUr die Anwendung eine groBe Rolle spiel en. * Kap.15 fUr den fortgeschrittenen Anwender ein kurzer Einblick in die Programmiermoglichkeiten im Rahmen der einzelnen S:ysteme gegeben wird. Mit den behandelten Befehlen ist ein Anwender in der Lage, selbst einfache Programme zu erstellen, falls fUr ein zu lbsendes Problem keine Standardkommandos in den Systemen existieren. AuBerdem kann er mit den gegebenen Programmierhinweisen bereits vorhandene Zusatzprogramme besser verstehen und seinen konkreten Problemen anpassen. II. 1m Hauptteil des Buches (Kap.16 bis 32) wird die L6sung der bei Problemen in Technik und Naturwissenschaften auftretenden mathematischen Aufgaben mittels der in den Kap.3 bis 15 besprochenen Systeme behandelt und an Beispielen diskutiert.
1.1 Ingenieurmathematik
3
Um den Umfang des Buches in Grenzen zu halten, wird fUr die Kapitel des Hauptteils der folgende Aujbau gewahlt: * Die mathematische Theorie wird nur kurz dargestellt. Es werden Moglichkeiten zur exakten bzw. naherungsweisen Losung der betrachteten Aufgaben diskutiert, da dies fUr die Anwendung der Systeme wichtig ist. Fur ein tieferes Eindringen in die Mathematik wird auf die zahlreichen Lehrbucher zur Ingenieunnathematik verwiesen, wobei wir im Rahmen dieses Buches die Bucher [41] zitieren. * Der Schwerpunkt liegt auf der Umsetzung der zu lasenden Probleme in die Sprache der Systeme und der Interpretation der gelieferten Ergebnisse. * Die Handhabung der Systeme sowohl bei der exakten (symbolischen) als auch numerischen (nahenmgsweisen) Losung der besprochenen mathematischen Probleme wird erlautert und an charakteristischen Beispielen aus Technik und Naturwissenschaften illustriert. Die Lasung dieser Beispiele zeigt dem Anwender die Moglichkeiten und Grenzen der Systeme auf.
•
Das vorliegende Buch kann als * begleitendes Nachschlage- und Obungsbuch fur Studenten zu den Vorlesungen * Handbuch fur Lehrkrafte und Praktiker dienen, urn sich mit der Anwendung des Computers zur Losung grundlegender Aufgaben der Ingenieunnathematik vertraut zu machen.
•
Falls fUr eine zu losende Aufgabe ein System nicht erwahnt wird, so bedeutet dies, daB die Lasung des gegebenen Problems mit diesem System nicht ermittelt werden konnte.
•
In der Literaturnbersicht werden wichtige Bucher uber Computeralgebra-Systeme und Ingenieunnathematik zusammengestellt.
•
4
1.1
1 Einleitung
Ingenieurmathematik Mathematische Modelle fur Probleme aus Technik und Natunuissenschaften bestehen aus einer Reihe von Relationen und Gleichungen, die technische und natunuissenschaftliche Gesetze und Sachverhalte beschreiben. Die Ingenieurmathematik * beschiiftigt sich mit der L6sung von Relationen und Gleichungen, die fur das mathematische Modell eines Problems aus Technik und Natunuissenschaften gegeben sind. * umfafSt aile mathematischen Gebiete, die zur Lbsung von Aufgaben aus Technik und Natunuissenschaften benbtigt werden. Da diese Aufgaben sehr komplex sind, wird eine graBe Palette von mathematischen Disziplinen benbtigt. Dies zeigt sich an den im Buch behandelten mathematischen Gebieten. * muB natiirlich bereits bei der Aufstellung der mathematischen Modelle herangezogen werden .
•
1.2
Mathematik mit dem Computer Auch die Ingenieurmathematik kommt in Zukunft nicht urnhin, zur L6sung anfallender Probleme verstarkt Computer heranzuziehen, damit die immer umfangreicheren Rechnungen mit einem vertretbaren Aufwand bewaltigt werden kbnnen. Um die Anwendung des Computers zur L6sung mathematischer Aufgaben fur breite Anwenderkreise zu ermbglichen, benbtigt man leicht bedienbare und effektive Systeme. Deshalb wurden in den letzten zehn Jahren Systeme fur die Mathematik entwickelt, die einfach anwendbar sind. Der Aufwand bei der Anwendung der betrachteten Computeralgebra-Systeme ist wesentlich geringer als die Erstellung von Computerprogram men mittels einer Programmiersprache. Die Systeme verwenden Methoden der Computeralgebra, um mathematische Probleme exakt (symbolisch) zu 16sen. Da sich jedoch viele praktische Prableme nicht exakt Ibsen lassen, wurden in die Systeme numerische (niiherungsweise) Methoden (Algorithmen) integriert, so daB sie fur den Anwender ein wirkungsvolles Hilfsmittel darstellen, um ohne graBen Aufwand und tiefere Computer- und Programmierkenntnisse anfallende mathematische Aufgaben 16sen zu kbnnen.
1.2 Mathematik mit dem Computer
5
Der Autor mbchte alle Leser dringend darauf hinweisen, nicht nur mittels der im vorHegenden Buch beschriebenen ComputeralgebraSysteme die Mathematik zu betreiben, sondem auch die angegebenen Mathematiklehrbucher zu konsultieren. Urn die Mathematik effektiv zur Lbsung praktischer Probleme einsetzen zu kbnnen, kann man sich nicht nur auf die Computeralgebra-Systeme verlassen, sondem muB auch den theoretischen Hintergrund, d.h., die mathematischen Grundlagen beherrschen. Die vorhandenen Systeme Hefem allerdings ein wesentliches Hilfsmittel, urn umjangreiche Rechnungen schnell durchzufuhren. So kann sich der Anwender starker auf die Verbesserung seiner mathematischen Modelle und das tiefere Eindringen in deren mathematische Grundlagen konzentrieren .
•
1.2.1
Computeralgebra·Systeme 2ur Lbsung von Aufgaben der Ingenieurmathematik verwenden wir im Rahmen des Buches die verbreiteten universellen Computeralgebra- und Mathematik-Systeme AXIOM, DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATIAB und MuPAD mit deren Hilfe man eine breite Palette anfallender Probleme Ibsen kann. Da in alle Elemente der Computeralgebra integriert sind, kann man allgemein von Computeralgebra-Systemen sprechen. 1m weiteren werden wir sie kurz als Systeme bezeichnen. Fur die praktischen Beduifnisse eines Anwenders ist es vbllig ausreichend, wenn er weiB, welche Probleme mittels der besprochenen Systeme los bar sind und wie sich die Handhabung dieser Systeme gestaltet, d.h., er braucht sich nicht mit dem theoretischen Hintergrund der Systeme zu beschaftigen, der nicht zum Gegenstand dieses Buches gehbrt .
•
Die verwendeten Systeme existieren fur verschiedene Computetplattjormen, so u.a. fUr IBM-kompatible Personalcomputer, Workstations unter UNIX und APPLE-Computer. Wir verwenden die aktuellenVersionen fur IBM-kompatible Personalcomputer (kurz als PCs bezeichnet), die unter WINDOWS 3.1 und/oder 95 laufen. Da sich der Aujbau der Benutzeroberjlache und die Kommando- und Menustruktur der Systeme fur die einzelnen Computertypen nur unwe-
6
1
Einleitung
sentlich unterscheiden, kbnnen die in diesem Buch gegebenen Grundlagen fur beliebige Computer angewendet werden.
•
Die Struktur der KommandosiMeniifolgen der Systeme wird sich bei zukiinftigen weiterentwickelten Versionen nicht wesentlich andern: * Es verbessert sich hauptsachlich die Effektivitat der verwendeten Methoden. * Die Benutzeroberjlache wird von Version zu Version etwas umgestaltet. * Der Umfang der losbaren Aufgaben wird erweitert. Deshalb kann das vorliegende Buch auch in den nacbsten Jahren als eine Anleitung zum Losen von Problemen der Ingenieurmatbematik mittels der besprochenen Systeme verwendet werden. Falls bei einer neuen Version einige KommandosiMeniifolgen verandert bzw. binzugefiigt wurden, so kann man sich Informationen hieruber aus der integrierten Hilfe holen.
•
1.2.2
Weitere Systeme Neben den im Buch besprochenen universellen Systemen existiert noch das System REDUCE, von dem nach Wissen des Autors jedoch keine WINDOWS-Version existiert. Weitere Systeme zur Losung spezieller Probleme sind z.B. UNISTAT, SAS, SYSTAT, STATGRAPHICS, SPSS zur Lbsung von Aufgaben der Statistik, die naturlich fUr die Statistik effektiver arbeiten und eine breitere Lbsungspalette als die universellen Computeralgebra-Systeme haben. Da in Technik und Naturwissenschaften vielfaltige mathematische Aufgaben zu Ibsen sind, empfehlen sich die im Buch beschriebenen universellen Computeralgebra-Systeme. Eine Reihe von Aufgaben der Ingenieurmathematik lassen sich auch mit dem Tabellenkalkulationsprogramm EXCEL Ibsen, das auf vielen Burocomputern installiert ist. Hinweise hierzu findet man in den Buchern [3], [65], [69], [70], [921.
•
1.2 Mathematik mit dem Computer
1.2.3
7
Programme fUr numerische Algorithmen Eine weitere Moglichkeit, urn mathematische Probleme mittels Computer zu losen, besteht in der Programmierung von numerischen Methoden CNiihenmgsmethoden) mittels bekannter Programmiersprachen wie BASIC, C, FORTRAN, PASCAL. Diese Vorgehensweise wird eiforderlich, wenn * man keine Computeralgebra-Systeme zur VerfUgung hat, * vorhandene Computeralgebra-Systeme fUr ein zu losendes Problem keine L6sung liefern. Wenn man selbst ein Programm fiir ein zu losendes Problem schreiben mochte, muB man * Kenntnisse in einer Programmiersprache besitzen, * den verwendeten numerischen Algorithmus mathematisch verstehen. Man saUte die eigene Programmienmg nur als ein letztes Hilfsmittel heranziehen, da das ErsteUen eines effektiven Programms groBe Routine erfordert. Deshalb empfiehlt es sich, bereits vorhandene Numerikprogramme anzuwenden. Derartige Programme werden von einer Reihe von Softwarefirmen angeboten und sind von professionellen Programmierern ersteUt und ausfUhrlich getestet. Eine bekannte Firma, die fUr eine Vielzahl mathematischer Probleme Numerikprogramme anbietet, ist die NAG GmbH.
8
2
Computeralgebra
Die im Rahmen dieses Buches vetwendeten Systeme kann man als Computeralgera-Systeme bezeichnen, da in allen Methoden der Computeralgebra enthalten sind. MATH CAD und MA11.AB waren ursprunglich Systeme fUr numerische Rechnungen. In ihren neueren Versionen enthalten sie jedoch eine abgen1stete Variante des Symbolprozessors von MAPLE, so daB man mit ihnen ebenfalls exakte Berechnungen im Rahmen der Computeralgebra durchfUhren kann. Fur die Anwendung von Computeralgebra-Systemen braucht man kein Experte der Computeralgebra zu sein. Es ist aber fur die Arbeit mit diesen Systemen nutzlich, wenn man uber grundlegende Prinzipien der Computeralgebra informiert ist, urn z.B. das Scheitern einer Berechnung zu verstehen. Deshalb geben wir in den folgenden beiden Abschnitten einen kurzen Einblick in die Methoden der Computeralgebra und die Funktionsweise von ComputeralgebraSystemen.
2.1
Gegenstand der Computeralgebra Die symbolische (formelmdflige, d.h. exakte) Verarbeitung mathematischer Ausdritcke auf einem Computer bezeichnet man als Computeralgebra oder Formelmanipulation. Beide Begriffe werden synonym vetwandt, wobei die Bezeichnung Formelmanipulation aus nachfolgend genannten Grunden den Sachverhalt besser trifft: * Der Begriff Computeralgebra kbnnte leicht zu dem MiBverstandnis fuhren, daB man sich nur mit der Lbsung algebraischer Probleme beschaftigt. Die Bezeichnung Algebra steht jedoch fUr die vetwendeten Methoden zur symbolischen Manipulation mathematischer Ausdritcke, d.h., die Algebra liefert im wesentlichen das Werkzeug zum Auflbsen von Ausdritcken und zur Entwicklung von Algorithmen. * Es lassen sich nur solche mathematischen Probleme Ibsen, fur die nach endlich vielen Schritten (Manipulationen) die exakte Lo-
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
2.1 Gegenstand der Computeralgebra
9
sung gefunden wird, d.h., es muB ein endlicher L6sungsalgorithmus existieren. Der Grund hierfUr liegt in dem Sachverhalt, daB alle Berechnungen exakt (symbolisch) ausgefuhrt werden. In der Computeralgebra werden rationale Zahlen und wenn maglich auch reelle Zahlen wie z.B. .J2 und 1t exakt dargestellt, d.h. durch BnJche bzw. Symbole, und nicht in gerundeter Form als endliche Dezimalzahlen wie in der Numerik. Der Hauptschwerpunkt der Computeralgebra liegt folglich in algebraischen Umformungen im Gegensatz zu den arithmetischen Operationen der Numerik.
•
Den Gegensatz zur Computeralgebra bilden numerische AlgorithmeniVeifahren (Ndhenmgsveifahren) zur Lasung mathematischer Probleme: * Sie rechnen mit gentndeten endlichen Dezimalzahlen und liefem deshalb nur Ndhenmgswerte fUr die Lasung. Die auftretenden Rundungsfehler resultieren aus der endlichen Rechengenauigkeit des Computers. * Sie mussen immer nach einer endlichen Anzahl von Schritten abgebrochen werden, auch wenn das exakte Ergebnis noch nicht erreicht wurde (als Beispiel sei das bekannte Newton-Verfahren zur Nullstellenbestimmung erwahnt). So treten neben den Rundungifehlern zusatzlich Abbruchfehler auf. * Sie kannen falsche Ergebnisse liefem, da sie nicht immer konvergieren, d.h. gegen die Lasung streben .
•
Wahrend numerische AlgorithmeniVeifahren schon bei Grundkenntnissen einer Programmiersprache (z.B. BASIC, C, PASCAL) fUr den Computer programmiert werden kannen, erfordert das Erstellen eines Computeralgebra-Systems tiefe algebraische Ken ntn isse. So wurden die sich auf dem Markt befindlichen Computeralgebra-Systeme von Wissenschaftlergruppen im Verlaufe mehrerer Jahre erstellt und werden laufend verbessert (neue Versionen). Fur den Anwender verhalt sich der Sachverhalt gerade umgekehrt. Die Anwendung eines Computeralgebra-Systems gestaltet sich wesentlich einfacher (siehe Kap.3-11) als das Erstellen eines fehleifreien Computerprogramms fUr einen numerischen Algorithmus .
•
2 Computeralgebra
10
Diskutieren wir den Unterschied zwischen Computeralgebra und Numerik am Beispiel der Integralrechnung (siehe Abschn.25.2): • Ein Computeralgebra-Programm ist nicht in der Lage, jedes unbestimmte Integral
Jf(x)dx
• •
zu berechnen. Es lassen sich nur diejenigen unbestimmten Integrale berechnen, bei denen eine Stammfunktion F(x) der Funktion f(x), d.h. F'(x) = f(x), nach endlich vielen Schritten in exakter (analytischer) Form angebbar ist (z.B. durch partielle Integration, Substitution, Partialbmchzerlegunf). In diesen Fallen liefert die Computeralgebra eine Stammfunktion als analytischen Ausdmck (Forme!) und zeigt einen graBen Vorteil gegenuber numerischen Vet/ahren, die nur Dezimalzahlen als Nahemngen fur die Funktionswerte der Stammfunktion in einzelnen Punkten liefem kbnnen. Der Vorteil der Numerik liegt darin, daB hiermit jedes gegebene Integral nahemngsweise berechnet werden kann. Betrachten wir die L6sungsproblematik der ComputeralgebraSysteme am Beispiel der Integralrechnung. Beispiel 2.1: Zur exakten Berechnung des unbestimmten Integrals
Ix. sin x cIx werden bei den Systemen folgende Kommandos eingegeben: * AXIOM: integrate (x * sin (x), x) * DERIVE: int (x * sin (x), x) * MACSYMA: integrate ( x * sin (x), x) * MAPLE: int ( x * sin (x), x); * MATHEMATICA: Integrate [ x * Sin [xl, x 1 * MATLAB: syms x ; int ( x * sin (x) ) int (x * sin (x) , x ) ; * MuPAD : Dieses Integral ist durch partielle Integration berechenbar, so daB die Systeme auf dem Bildschirm unmittelbar das Ergebnis sin (x) - x . cos (x) anzeigen. Dagegen liefert die Berechnung des unbestimmten Integrals
J
e x2 dx mittels der Systeme kein Ergebnis, da fur die Funktion 2 eX
2.1 Gegenstand der Computeralgebra
11
keine StammJunktion ermittelbar ist, die aus elementaren Funktionen besteht. In diesem Fall fuhren in die Systeme integrierte numerische Veifahren zum Erfolg, die aber nur eine Nahentngslosung fur die StammJunktion liefem (siehe Beispiel 25.4) .
•
Obwohl die Computeralgebra stark von der Algebra beeinfluBt ist und hierfur viele Probleme lost (z.B. Matrizenrechnung, Determinantenberechnung, Gleichungs16sung), zeigt bereits das vorangehende Beispiel der Integralrechnung, daB auch Probleme der mathematischen aョ。セケウゥ@ (u.a. Differential- und Integralrechnung, DifJerentialgleichungen) und darauf aufbauende Anwendungen mitte1s Computeralgebra gelost werden konnen. Ein typisches Beispiel hierftir liefert die Differentiation von Funktionen. Durch Kenntnis der Regeln fur die Ableitung der ElementarJunktionen (XO, sin x, eX usw.) und der bekannten Differentiationsregeln (Summen-, Produkt-, Quotienten- und Kettenregel) laBt sich die Differentiation jeder noch so komplizierten (differenzierbaren) Funktion exakt durchFihren, die sich aus Elementarfunktionen zusammensetzt. Dies kann als eine algebraische Behandlung der Differentiation verstanden werden. Zur Berechnung gewisser Klassen von Integralen und gewisser Typen von Differentialgleichungen lassen sich ebenfalls endliche Losungsalgorithmen angeben, so daB diese Aufgaben im Rahmen der Computeralgebra losbar sind.
ZusammenJassend kann zur Anwendung des Computers in der Mathematik und damit auch in der Ingenieurmathematik Jolgendes bemerkt werden: • Urn mathematische AuJgaben mit dem Computer zu losen, bestehen zwei Moglichkeiten: I. Anwendung der Computeralgebra II. Anwendung numerischer AlgorithmeniVeifahren • Die Gegeniiberstellung von Computeralgebra und numerischen Veifahren liefert folgende Vor- und Nachteile: • Die Vorteile der Computeralgebra liegen in der Jormelmafligen Eingabe des zu losenden Problems. Das Ergebnis wird ebenfalls wieder als Formel geliefert, falls das Problem exakt 16sbar ist. Daher rtihrt die Bezeichnung Formelmanipulation. Diese Vorgehensweise ist der manuellen Losung mit Papier und Bleistift nachgebildet und deshalb ohne groBe Programmierkenntnisse anwendbar. Da
2 Computeralgebra
12
mit allen Zahlen symbolisch gerechnet wird, treten keine Rundungsfehler auf. • Der einzige (aber nicht unwesentliche) Nachteil der Computeralgebra besteht darin, daB sich nur solche Probleme lasen lassen, fUr die ein endlicher L6sungsalgorithmus existiert. Anderenfalls ist man auf numerische AlgorithmeniVerjahren (Niiherungsverjahren), d.h. die numerische Mathematik (Numerik), als einzige Alternative angewiesen. • Der Vorteil der Numerik besteht darin, daB ihre Methoden (Algorithmen) universell einsetzbar sind, d.h., fUr die me isten zu lasenden mathematischen Probleme existieren numerische Algorithmen. • Urn einen numerischen Algorithmus auf dem Computer zu realisieren, muB man erst ein Programm (in einer Programmiersprache) schreiben oder auf vorhandene Programmbibliotheken zuruckgreifen. Dies erfordert bedeutend tiefere Computerkenntnisse und einen graBeren Aufwand als die Anwendung von Computeralgebra-Systemen. Weitere Nachteile der Numerik bestehen im folgenden: * Es treten Rundungsfehler auf, da mit endlichen Dezimalzahlen gerechnet wird. * Das Ergebnis wird in Form von Zahlenwerten geliefert, wodurch die Anschaulichkeit verlorengeht. * Es werden i.a. nur Niiherungswerte fUr das Ergebnis geliefert, da der Algorithmus auch im Falle der Konvergenz nach endlich vielen Schritten abgebrochen werden muE. * Die Konvergenz eines numerischen Algorithmus bBt sich nicht fUr jede zu lasende Aufgabe im voraus nachweisen, so daB das gelieferte Ergebnis falsch sein kann .
•
Betrachten wir ein Beispiel, urn die Unterschiede zwischen Computeralgebra und Numerik zu veranschaulichen. Beispiel 2.2: a) Die reellen Zahlen J2 oder 1C werden bei der Eingabe von einem Computeralgebra-System nicht durch eine endliche Dezimalzahl J2"" 1.414214 bzw. 1C "" 3.141593
2.1 Gegenstand der Computeralgebra
13
approximiert, wie dies bei numerischen Veifahren erforderlich ist, sondem symbolisch erjaftt, so daB bei einer weiteren Rechnung z.B. fUr
(hi als exakter Wert 2 folgt. b) An der Losung des einfachen linearen Gleichungssystems x + a·y= 1 b·x - y= 1 das zwei frei wahlbare Parameter a und b enth:ilt, l:iBt sich ebenfalls der typische Unterschied zwischen Computeralgebra und Numerik zeigen. Ein Vorteil der Computeralgebra liegt darin, daB derartige Aufgaben los bar sind, w:ihrend bei der Anwendung numerischer Verjahren fUr a und b Zahlenwerte gegeben sein mtissen. Alle Computeralgebra-Systeme liefem die formelmaftige L6sung a+1 b-1 x = , y = b·a+1 b·a+1 Der Anwender muB lediglich erkennen, daB die Formeln ftir a·b = -1 nicht gelten, da das Gleichungssystem in dies em Fall keine Losung besitzt.
•
Die Bestrebungen in der Weiterentwicklung der Computermathematik gehen dahin, die Vorteile von Computeralgebra und Numerik zu kombinieren. So besitzen die Computeralgebra-Systeme Kommandos zur numenschen Berechnung, die man anwenden kann, wenn die exakte Berechnung mittels Computeralgebra scheitert (siehe Beispiel 2.3) .
•
Beispiel 2.3: Alle Systeme besitzen zur Losung mathematischer Standardaufgaben (Gleichungslosung, Integration, ... ) neben Kommandos zur exakten auch Kommandos zu naherungsweisen Berechnung. So sind fUr bestimmte Integrale
J
f(x) dx z.B. in
a
•
MAPLE die Kommandos * int ( f(x) , x = a .. b ) ; zur exakten (symbolischen) Berechnung
2 Computeralgebra
14
*
evalf (int (f(x) , x = a .. b ) ) ;
zur naherungsweisen Cnumerischen) Berechnung MATHEMATICA die Kommandos * Integrate [ fix] , { x , a , b } ] zur exakten Csymbolischen) Berechnung * NIntegrate [ fix] , { x , a , b } ] zur naherungsweisen Cnumerischen) Berechnung enthalten. Die Kommandos zur numerischen Berechnung Hefem fi.ir das nicht •
exakt berechenbare bestimmte Integral
J
eX' dx den Naherungswert 14.98997601
1
• Methoden der Computeralgebra werden auch erfolgreich in der Numerik verwendet. So ersetzt man z.B. die ungenaue numerische Differentiation durch die exakte Csymbolische).
•
2.2
Funktionsweise von Computeralgebra-Systemen Computeralgebra-Systeme arbeiten interaktiv, d.h., der Nutzer steht mittels Bildschirm im laufenden Dialog mit dem Computer, wobei 'hder £1 'derhI olgend e Zkl SlC セキ@ us Wle 0 t: Eingabe
Berechnung
der zu losenden Aufgabe durch den Nutzer
der Aufgabe durch der Ergebnisse das Computeralge- dem Bildschirm bra-System
Ausgabe
auf
Die Arbeit mit den zur Zeit zur Verfi.igung stehenden Computeralgebra-Systemen wird dadurch erleichtert, daB sie eine leicht zu bedienende Benutzeroberjlache CBenutzerschnittstelle / Benutzerintetjace / Front End) besitzen, tiber die man mit dem System in den Dialog tritt Csiehe Kap.3-11). Aile besprochenen Systeme verfi.igen tiber eine WINDOWS-Version, deren Benutzeroberjlachen einen ahnlichen AlIjbau haben. Diese Oberjlachen gestatten in ihren Arbeitsfenstern, die durchgefuhrten Rechnungen so in Form von Arbeitsblattern/Rechenblattern zu gestalten, wie es bei Rechnungen per Hand tibHch ist Csiehe Kap.3-11). Ftir diese Arbeitsblatter/Rechenblatter werden
2.2 Funktionsweise von Computeralgebra-Systemen
15
haufig die englischsprachigen Bezeichnungen Worksheet, Notebook, Document oder Scratchpad verwendet.
•
Computeralgebra-Systeme haben folgende Struktur: Benutzeroberflache
Kern
Zusatzpakete
(englisch: front end)
(englisch: kernel)
(englisch: packages)
wobei * die Benutzerobeif/ache den Dialog zwischen Nutzer und System ermbglicht, * im Kern, der bei jeder Anwendung geladen wird, die mathematischen Grundoperationen realisiert sind, * die Zusatzpakete speziellere Anwendungen enthalten und nur bei Bedarf geladen werden mussen. Diese Struktur hat wcscntlichen Anteil bei der Einspanmg von Speicherplatz im RAM und laBt laufende Enveiterungen der Systeme durch den Nutzer zu. Fur Benutzerobeif/ache, Kern und Zusatzpaket wird in der deutschsprachigen Computerliteratur haufig die entsprechende englische Bezeichnung verwendet.
•
In allen Systemen sind urnfangreiche HilJen enthalten, die dem Nutzer bei Unklarheiten ausfUhrliche Unterstutzung geben.
•
Die Anwendung eines vorhandenen Computeralgebra-Systems gestaltet sich wesentlich einfacher und anschaulicher als die Erstellung eines fehlerfreien Computerprogramms fUr einen numerischen Algorithmus mittels einer Programmiersprache (BASIC, C, FORTRAN, PASCAL). Selbst die Anwendung eines vorhandenen Numerikprogramms aus einer Programmbibliothek erfordert mehr Computerkenntnisse als die Anwendung eines Computeralgebra-Systems. Dies liegt vor allem darin begrundet, daB Computeralgebra-Systeme interaktiv arbeiten im Gegensatz zu den herkbmrnlichen Programmiersprachen (BASIC, C, FORTRAN, PASCAL), die das prozedurale Programmieren unterstutzen.
•
2 Computeralgebra
16
Da sich viele mathematischen Aufgaben nicht mit einem endlichen Algorithmus exakt Ibsen lassen, wie es fur die Computeralgebra erforderlich ist, sind in die universellen Computeralgebra-Systeme numerische Algorithmen integriert. So kann man nach einem Scheitern der exakten Berechnung einer Aufgabe deren Losung numerisch (naherungsweise) mit dem System ermitteln. Das besitzt den Vorteil, daB man unter der Benutzerobeif/iiche des Systems das gegebene Problem einfach niihenmgsweise losen kann, ohne einen Lbsungsalgorithmus unter Verwendung einer Programmiersprache programmieren zu mLissen .
•
Wir mbchten abschlieBend nicht versaumen, auf die folgende Problematik bei der Arbeit mit Computeralgebra-Systemen hinzuweisen: * Da die Algorithmen der Computeralgebra aufwendig sind, kann die Berechnung fur hochdimensionale (umfangreiche) Probleme unvertretbar lange dauern oder wegen Speichermangel abgebrochen werden. Dies bedeutet, daB die Berechnungfehlschliigt, obwohl das Problem exakt (symbolisch) los bar ist, d.h. im Sinne der Computeralgebra. * Die in die Systeme integrierten numerischen Algorithmen milssen nicht immer eine brauchbare Niiherungslosung liefem. Die Weiterentwicklung der Computeralgebra-Systeme ist darauf gerichtet, die angezeigte Problematik zu verbessem .
•
17
3
Handhabung und Aufbau der Systeme
Befassen wir uns ausfUhrlicher mit der Handhabung und dem Aufbau der Systeme, von denen wir die WINDOWS- Versionen betrachten. Dabei gehen wir im Abschn.3.1 und 3.2 auf allgemeine Prinzipien bei der Handhabung bzw. im Aujbau der Systeme ein, wahrend wir in den Kap.4-11 Handhabung und Aujbau der einzelnen Systeme betrachten.
3.1
Handhabung 1m folgenden geben wir gnmdlegende Hinweise zur Arbeit mit den Systemen. Dies betrifft vor all em die Eingabe mathematischer AusdrUcke und die Ausl6sung ihrer Berechnung durch Kommandos oder Menus, tiber die in den Kap.4-11 weitere Hinweise bei der ErkJarung der Arbeitsfenster zu finden sind.
3.1.1
Allgemeine Prinzipien Die Eingabe eines zu berechnenden mathematischen Ausdrucks geschieht bei allen Systemen tiber die Tastatur, wobei einige Systeme (MATH CAD , MATHEMATICA) in ihrer Benutzeroberf1ache zusatzlich mathematische Symbole bereitstellen. Die Berechnung eines mathematischen Ausdrucks (Problems) geschieht in den Systemen durch 1. Kommandos, die in das Arbeitsfenster einzugeben sind, wobei der zu berechnende Ausdruck im Argument des Kommandos steht. II. Auswahl einer Menufolge aus der Menuleiste der Benutzeroberjliiche mittels Mausklick, nachdem der zu berechnende Ausdruck eingegeben wurde. Bei einer Reihe von Aufgaben lassen sich beide Mbglichkeiten anwenden, d.h., man kann sie sowohl mittels eines Kommandos als auch einer Menufolge Ibsen. Wir werden in den entsprechenden Kapiteln darauf hinweisen.
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
3 Handhabung und Aujbau der Systeme
18
Betrachten wir zuerst Kommandos, die bei AXIOM, MACSYMA, MAPLE, MATHEMATICA, MATLAB und MuPAD die dominierende Rolle spiel en: • Zur Lbsung des gleichen mathematischen Problems verwenden die Systeme unterschiedliche Schreibweisen (Bezeichnungen) fUr die einzugebenden Kommandos. Des weiteren besitzen die Kommandos in den einzelnen Systemen eine verschiedene Anordnung und Anzahl der benbtigten Argumente und liefem die Ergebnisse in unterschiedlicher Form. Deswegen geben wir im folgenden (Kap.16-32) die Kommandos zur Lbsung der einzelnen Aufgaben fUr jedes System an. • Kommandos und Ausdrncke mussen bei MAPLE und MuP AD nach der Eingabe mit einem Semikolon abgeschlossen werden. • Die auszuji'ihrenden Kommandos bzw. Eingaben von Ausdn'ikken mussen bei AXIOM durch Anklicken des Knopfes links neben dem eingegebenen Ausdruck, bei MATHEMATICA und MuPAD mit der GLJB-Tastenkombination und bei allen anderen Systemen mit der B-Taste ausgeldst bzw. abgeschlossen werden, auch wenn dies im weiteren nicht besonders vermerkt wird. • Die fUr die Kommandos und Funktionen benbtigten Argumente sind bei MATHEMATICA in eckige Klammern und bei allen anderen Systemen in nmde Klammern einzuschlieBen. • Mbchte man bei AXIOM, MACSYMA, MAPLE, MATHEMATICA, MATLAB oder MuPAD mehrere Kommandos Kommando_l , Kommando_2 , ... , Kommando_n nacheinander ausfUhren (Kommandofolge), so besteht die Mbglichkeit, diese alle einzugeben und erst nach der Eingabe des letzten (n-ten) Kommandos die Eingabe abzuschlieBen. Die einzelnen Kommandos mussen durch Trennzeichen separiert werden. Dazu verwenden * MAPLE und MuPAD Doppelpunkt oder Semikolon (hier werden zusatzlich die Ergebnisse der einzelnen Kommandos angezeigt), * AXIOM, MATHEMATICA und MATLAB das Semikolon, * MACSYMA das Dollarzeichen, d.h. * MAPLE und MuPAD Kommando_l : Kommando_2: ... : Kommando_n ;
oder
3.1 Handhabung
19
Kommando_l; Kommando_2; ... ; Kommando_n; MACSYMA Kommando_l $ Kommando_2 $ ... $ Kommando_n * AXIOM, MATHEMATICA und MATLAB Kommando_l; Kommando_2; ... ; Kommando_n Falls bei der Eingabe eines Kommandos (einer Kommandofolge) bzw. eines Ausdrucks ein Zeilenwechsel gewiinscht wird, so geschieht dies bei * MACSYMA und MAPLE mittels der GLlB-Tasten * MATHCAD mittels des Operators
*
•
i エ セケ@
I aus der Operatorpalette Nr.l (Arithmetikpalette) 11iI1 MATHEMATICA und MuPAD mittels B • Der im Argument von Kommandos manchmal vorkommende Pfeil セ@ wird durch Eingabe von - (Bindestrich) und > (GraBerzeichen) realisiert. Die genaue Vorgehensweise bei der L6sung einer gegebenen Aufgabe mittels Kommandofolgen wird in den folgenden Kapiteln ausfUhrlich erhiutert. *
•
Die Lasung von Aufgaben mittels Mentifolgen tritt vor allem bei DERIVE und MATHCAD auf: • Die Durchfuhnmg von Berechnungen unter Verwendung von Mentis geschieht tiber die entsprechende Menuleiste der Bemtt-
zerobeifldche. Dabei benatigt man meistens eine Foige von Mentis und Untermeniis, die wir in der folgenden Form schreiben Menu_l セ@ Menu_2 セ@ ... セ@ Menu_n wobei der Pfeil セ@ jeweils fUr einen Mausklick steht und die gesamte Menufolge ebenfalls durch Mausklick abgeschlossen wird. Die genaue Vorgehensweise bei der L6sung einer gegebenen Aufgabe mittels Meniifolgen wird in den entsprechenden Kapiteln ausfUhrlich erhiutert. •
•
Falls ein System bei der Berechnung eines Problems keine L6sung findet, so kann sich dies auf verschiedene Weise auBern: I. Es wird eine Meldung ausgegeben, daB keine Lasung gefunden wurde. II. Das Rechenkommando wird unverdndert zurUckgegeben.
3 Handhabung und Aujbau der Systeme
20
III. Die Rechnung wird nicht in angemessener Zeit beendet. Mochte man im letzten Fall III. die Rechnung abbrechen, so geschieht dies bei * DERIVE und MATHCAD : mit der セMt。ウエ・L@ * MACSYMA: durch Anklicken von Interrupt in der Nachrichtenleiste, * MAPLE: mit dem STOP-Symbol aus der Symbolleiste, MATHEMATICA mit der Menijfolge Kernel セ@ Interrupt Evaluation... oder Kernel セ@ Abort Evaluation, * MATLAB: mit der Tastenkombination セᄅL@ * MuP AD : mit dem Symbol
*
aus der Symbolleiste .
•
Bei der Anwendung der Systeme mochte man haufig die erhaltenen Ergebnisse in folgenden Rechnungen weiteroerwenden. Fur die daftir benotigten Zuweisungen (Losungszuweisungen) stellen die Systeme Hilfsmittel zur Verftigung. Dabei sind zwei grundlegende Faile zu unterscheiden. Das Ergebnis liegt entweder in Form von Zahlenwerten oder in Funktionsform VOL Wie man bei Funktionen vorgeht, wird ausftihrlich im Abschn.21.3 beschrieben. Zahlenwerte treten haufig bei der Losung von Gleichungen auf. Wie man diese weiterverwendet, findet man im Kap.23 .
•
3.1.2
AXIOM
MAPLE
MATIlCAD
Besonderheiten der einzelnen Systeme 1m folgenden betrachten wir einige wesentliche Besonderheiten in den einzelnen Systemen : AXIOM lost im Unterschied zu den anderen Systemen ein Kommando durch Anklicken des Knopfes links neben dem eingegebenen Kommando aus. MAPLE schliejSt jedes Kommando mit einem Semikolon abo MATH CAD gestaltet die Anzeige des Ergebnisses von Rechnungen durch die Menufolge Symbolic セ@ Derivation Format...
3.1 Handhabung
21
In der erseheinenden Dialogbox kann man bestimmen, ob das Ergebnis neben oder unterhalb der eingegebenen Aufgabe erseheint und ob ein kurzer Text uber die durchgefuhrte Operation (Show derivation comments) angezeigt werden solI. Fur die Durchfuhrung samtlicher Rechnungen gestattet MATHCAD zweiFormen • Automatikmodus (Automatic Mode): Der Automatikmodus ist die Standardeinstellung von MATHCAD. Man erkennt seine Aktivierung am Hiikchen im Menu Math neben Automatic Mode und am Wort auto in der Nachrichtenleiste. Er wird dureh eine der folgenden Operationen ein- bzw. ausgeschaltet: * Menufolge Math => Automatic Mode * Anklicken der Gluhbirne
•
in der Symbolleiste. 1m Automatikmodus werden numerischen Berechnungen sofort ausgefuhrt, z.B. naeh der Eingabe des numerisehen Gleichheitszeiehens, und er bewirkt die Neubereehnung des gesamten aktuellen Dokuments, wenn irgendwelche Variablen oder Funktionen verandert werden. Fur exakte Berechnungen gilt dies nur bei Anwendung des symbolischen Gleichheitszeichens. Moehte man ein eingelesenes Dokument nur durehblattern, kann sieh der Automatikmodus hemmend auswirken, da man auf die Bereehnung samtlieher im Dokument enthaltener Formeln, Gleiehungen usw. warten muB. In diesem Fall empfiehlt sich der Ubergang zum manuellen Modus. manueller Modus: Der manuelle Modus wir dureh Ausschalten des Automatikmodus erhalten. 1m manuellen Modus wird eine Berechnung erst dann durehgefUhrt, wenn man die (ill- Taste druekt. Dies gilt fUr das gesamte aktuelle Dokument. Werden Variablen und Funktionen verandert, so bleiben alle darauf aufbauenden Bereehnungen unverandert, wenn man sie nicht dureh Betatigung der (ill-Taste auslost. Dieser Modus ist beim Durehblattern eines Dokuments zu empfehlen. Weiterhin sollte er verwendet werden, wenn man die Auswirkung von Anderungen nur fUr einige Formeln des aktuellen Dokuments untersuehen moehte .
•
3 Handhabung und Aufbau der Systeme
22 MATHEMATICA
MATLAB
MuPAD
3.2
Bei MATHEMATICA miissen die Kommandos mit einem Groftbuchstaben beginnen und im weiteren bis auf zusammengesetzte Kommandos in Kleinbuchstaben geschrieben werden, wobei die Argumente in eckige Klammern einzuschliegen sind. So fUhrt z.B. das Integrationskommando * Integrate [ fix] , { x , a , b } ] die exakte Integration * NIntegrate [ fix] , { x , a , b } ] die numerische Integration der Funktion f(x) im Intervall [a,b] durch. Jedes Kommando wird mitte1s der Tastenkombination セb@ ausgelost. MATLAB mug fUr exakte Berechnungen die Csymbolischen) Variabien mitte1s des Kommandos syms deklarieren, wie in den Kap.1632 behande1t wird. MuP AD schliegt jedes Kommando mit einem Semikolon ab und lost es mitte1s der Tastenkombination セb@ aus.
Aufbau Die Systeme haben folgende Struktur, wie wir bereits in Abschn.2.2 sahen: • Benutzeroberjlache Cenglisch: Front end) • Kern Cenglisch: Kernel) • Zusatzpakete Cenglisch: Packages) wobei die drei Bestandteile folgende Aufgaben eifiUlen: • Die WINDOWS-Benutzeroberjlache CWINDOWS-Inteiface) dient dem interaktive Arbeiten, d.h., sie realisiert den Dialog zwischen Nutzer und System. Sie wird haufig in Anlehnung an die englischsprachigen Bezeichnungen Front End, Worksheet-Oberjlache , Worksheet-Inteiface, Notebook-Oberjlache oder Notebook-Inteiface genannt. Uber diese Benutzeroberjlache besteht ein laufender Dialog zwischen Nutzer und System mitte1s des Bildschirms, wobei sich fortlaufend der folgende Zyklus wiederholt:
23
3.2 AuJbau
Eingabe
Berechnung
Ausgabe
des zu losenden des Problems dUrch der Ergebnisse auf Problems ducch den das Computeralge- dem Bildschinn bra-System Nutzer
CEtf • •
#' IOj
1m Kern (englisch: Kernel), dec bei jeder Anwendung geladen wird, sind die mathematischen Gnmdoperationen realisiert. Die Zusatzpakete (englisch: Packages) enthalten spezielle Anwendungen und mussen nur bei Bedarf geladen werden. Diese Pakete haben wesentlichen Anteil bei der Einsparung von Speicherplatz im RAM und lassen laufende Erweiterungen der Systeme durch den Nutzer zu.
Dem allgemeinen Trend folgend, wird haufig fUr Benutzeroberjlache, Kern und Zusatzpakete in der deutschsprachigen Computerliteratur die entsprechende englische Bezeichnung verwendet .
•
Das Arbeitsfenster ist der wichtigste Teil der Benutzeroberjlache fUr die interaktive Arbeit mit den einzelnen Systemen. Das Arbeitsfenster ist offensichtlich einem Arbeitsblatt/Rechenblatt fur mathematische Rechnungen per Hand nachempfunden:
IEingabe der zu losenden Aufgabe セ@
Ausgabe der L6sung Wir illustrieren die Darstellungsm6glichkeiten in den Arbeitsfenstern, indem wir einfache Rechnungen aus Beispiel 3.1 in den einzelnen Systemen durchfuhren und die daraus resultierenden Arbeitsfenster der Systeme in den folgenden Abschnitten grafisch darstellen .
•
Beispiel 3.1: In diesem Beispiel betrachten wir einige Rechnungen, die in den folgenden Kap.4-11 mittels der einzelnen Systeme durchgefUhrt werden, urn die Gestaltung der Arbeitsfenster zu demonstrieren: a) Man berechne die Summe der folgenden beiden Briiche:
24
3 Handhabung und Aujbau der Systeme
- +
1
-=-
1
5
2
3
6
b) Man berechne die folgende Potenz: (a+bi= a 3 + 3·a 2 .b + 3·a·b 2 + 「セ@ c) Man vereinfache den folgenden Ausdruck: a 2 _b 2 - - - = a-b a+ b d) Man faktorisiere den folgenden Ausdruck: a 3 +3.a 2 .b+3.a.b 2 +b 3 =(a+b)3
•
Obwohl von DERIVE und MATH CAD deutschsprachige Versionen existieren, betrachten wir im vorliegenden Buch ausschlieBlich die englischsprachigen Versionen, da diese tiberwiegen und samtliche neue Versionen zuerst in englischer Sprache erscheinen. Die englischsprachigen Versionen sind mit geringen Sprachkenntnissen anwendbar, wenn man die im Buch gegebenen Hinweise heranzieht.
•
Auf detaillierte Installationshinweise fUr die einzelnen Systeme kbnnen wir verzichten, da sich die Installation der aktuellen Versionen menugesteuert vollzieht, nachdem man die entsprechende Installationsdatei INSTALL.EXE (MAPLE) bzw. SETUP.EXE (AXIOM, DERIVE, MACSYMA, MATHCAD, MATHEMATICA, MATLAB, MuPAD) startet. Diese Menusteuerung ist so aufgebaut, daB auch ein Einsteiger das System ohne Mtihe installieren kann, wenn er nur tiber einige Englischkenntnisse verfUgt, urn bei den englischsprachigen Versionen die Hinweise zu verstehen.
•
In den folgenden Kap.4-11 werden Handhabung und Aujbau der einzelnen Systeme beschrieben. Weitere Einzelheiten zu den Systemen findet man im Hauptteil des Buches (Kap.16-32).
•
25
4
AXIOM
Wir legen die Version 2.1.1 fUr WINDOWS 95 von 1996 zugrunde, die in englischer Sprache vorliegt und von der Firma NAG vertrieben wird. Wahrend die vorhergehenden Versionen nur fUr das Betriebssystem UNIX erstellt wurden, gibt es diese Version auch fUr pes.
4.1
Ben utzeroberflache Nach dem Starten von AXIOM ergibt sich die in Abb.4 .1 dargestellte Benutzerobeif/ache der WINDOWS-Version, wenn man zusatzlich mittels der Memifolge File::::} New AXIOM Worksheet ein neues Arbeitsfenster 61fnet.
Abb.4.I. Benutzeroberflache von AXIOM
axiom •
Click here for AJaOM intro sJ.IOpUf:y( (a A 2 - b " 2) /(a+b» ;
a- b Man fak10risjere den folg ヲ。」エッイHaS
セ RN「
セ S
I [@
[>
Beispiel 7.1: a) Der eingegebene Ausdm.ck (xI\2-1)/ (x+ 1) ;
wird in die matbematiscbe Standardnotation
x 2 -1 x +1 b) Das eingegebene Differentiationskommando diff ( xl\2 , x ) ; wird in die matbematiscbe Standardnotation
a ax
-x
2
c) Das eingegebene Integrationskommando int ( xl\2 , x ) ; wird in die matbematiscbe Standardnotation
Jx
2
dx
durch Mausklick auf das Symbol
セ@
ヲオセjN[Z@
セL@
... ' -" rtrr1i-;'
]
Man beretble die s_ de< folgmden bciden BnJcbe
von MAPLE
nach einer Arbeitssitzung (Beispiel 3.1)
45
46
7 MAPLE
umgefonnt, wie aus Abb.7.3 zu ersehen ist.
Abb.7.3.
•
Benutzeroberflache von MAPLE fUr Beispiel 7.1 (mit mathematischer Standardnotation)
0
> -q,.. %
2
2.
-.
1 3
3
Aus der MAPLE-Bibliothek werden Zusatzpakete durch das Kommando with (Paketname) ; geladen. So bewirkt z.B. with Oinalg) ; das Laden des Pakets Lineare Algebra.
•
Das Arbeitsblatt/Rechenblatt (Notebook/Worksheet) einer Arbeitssitzung mit MAPLE liiBt sich durch die aus vielen WINDOWS-Programmen bekannte Meniifolge File =:::) SaveAs ... =:::) Dateiname: als Datei mit der Endung .MWS auf Festplatte oder Diskette abspeichern und bei spateren Sitzungen durch die Meniifolge File =:::) Open... セ@ Dateiname: wieder einlesen.
•
47
8
MATHCAD
1m folgenden wird die vセゥッョ@ 6.0 PLUS ftir WINDOWS (3.1 oder 95) von 1995 zugrunde gelegt, die in englischer und deutscher Sprache vorliegt. Wir beschreiben den Aufbau der englischen Version. Wir stellen absichtlich die engliscbe vセゥッョ@ in den Vordergrund, da jede neu entwickelte Version zuerst in englisch erscheint. Die Ve1'3ion 6.0 PLUS besitzt den gleichen Aufbau und die gleiche Benutzeroberflache wie die Ve1'3ion 6.0, sie ist nur urn die folgenden Leistungsmerkmale erweitert: * erweiterte symbolische Funktionen * mehr numerische Rechenfunktionen * erweiterte Matrixfunktionen * zusatzliche Losungsfunktionen fUr Differentialgleichungen * integrierbare C/C++-Funktionen * statistische Funktionen * 1ntegraltransformationen * erweiterte Grafikfunktionen * erweiterte Programmiermoglichkeiten Die leistungsstarkere Version 6.0 PLUS mit erweitertem Funktionsumfang ist ftir diejenigen Anwender gedacht, die eine groBere Auswahl an mathematischer Funktionalitat benotigen. MAlHCAD wird von der Firma MATHSOFT (USA) ztigig weiterentwickelt. So wurden innerhalb von zwei Jahren die Versionen 4 (993), 5 (994), 6 (995) und 7 (997) erstellt. Ftir den kleinen Geldbeutel wird noch eine mit dem Namen MAlHCAD 99 bezeichnete Version mit verringertem Funktionsumfang (entspricht der Vollversion 3.1) in deutscher Sprache angeboten. MAlHCAD war urspriinglich wie MATLAB ein System fUr naberungsweise (numeriscbe) Recbnungen. Erst ab der Version 3 wurde eine abgeriistete Variante des Symbolprozesso1'3 von MAPLE tibernommen, urn exakte (symboliscbe) Recbnungen durchftihren zu konnen. Dieser Symbolprozessor wird automatisch beim Start von MAlHCAD geladen. Damit sind aIle UnterH. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
48
8 MAmCAD
menUs des MenUs Symbolic zur symboliscben Recbnung anwendbar .
•
8.1
Benutzeroberfliche Nach dem Starten von MATHCAD erhiilt man die in Abb.S.l dargestellte Benutzeroberjlacbe fUr die WINDOWS-Version.
Ahh.8.1. BenutzeroberfHiche von MATHCAD 6.0 PLUS
Die Benutzeroberjlacbe teilt sich von oben nach unten wie folgt auf I. Meniileiste Die Menuleiste (englisch: Menu bar) befindet sich am oberen Bildschirmrand und enthiilt folgende MenUs, die wiederum UntermenUs enthalten k6nnen: • File enthiilt u.a. die bei WINDOWS-Programmen tiblichen Datei-
operationen. •
Edit enthiilt u.a. die bei WINDOWS-Programmen tiblichen Editier-
operationen. •
Text verwendet man u.a. zur * Umscbaltung von Formel- in Texteingabe durch Anklicken des UntermenUs Create Text Region. Dies dient zur Gestaltung des MATHCAD-Arbeitsfenster.s als ArbeitsblattiRecbenblatt (Berecbnungen und erlautern-
der Text).
S .l
Benutzeroberfiiiche
49 Beim Start ist man automatisch im Berechnungsmodus (Fonnelmodus) und kann zu berechnende Ausdrucke eingeben. Man erkennt diesen Modus am EinJugekreuz +. M6chte man in den Textmodus umschalten, d .h ., erliiutemden Text eingeben, so geschieht dies wie eben beschrieben oder durch Eingabe von " oder Anklicken des Joigenden Symbols in der Symbolleiste:
セ@
•
•
•
..
Das Verlassen der Texteingabe (und damit wieder Ubergang zur Fonneleingabe) geschieht mittels Mausklick auBerhalb des Textes. * Einstellung der Schriftart mittels Change Default Font... * Anderung der SchriJtart mittels Change Font... Math Hier k6nnen u.a. * das Fonnat bei Zahlenrechnungen Numerical Format... * die Schriftart fUr die Fonneleingabe Apply Font Tag.. . Modify Font Tag.. . * die automatische Berechnung eines Dokuments Automatic Mode (in der Nachrichtenzeile erscheint die Meldung auto) eingestellt, * Matrizen mittels Matrices ... deJiniert, * MajSeinheiten mittels Units * Funktionsbezeichnungen mittels Choose Function... eingeJugt werden. Graphics Graphics dient u.a . zur grafischen Darsteliung von * Kuroen mittels Create X-Y Plot * Fliichen mittels Create Surface Plot einschlieBlich der Festlegung der zu verwendenden Koordinatensysteme. Symbolic In diesem Menu befinden sich Joigende Untenneniis zur exakten (symbolischen) Berechnung mittels des aus MAPLE ubernommenen Symbolprozessors: * Evaluate (Berechnen) * Simplify (Vereinfachen)
8 MA1HCAD
50
* Expand Expression CAusdruck entwickeln) * Collect on Subexpression On Teilausdriicken zusammenfassen)
* * * * * * *
•
•
pッセケョュゥ。ャ@
Coefficients CPolynomkoeffizienten) Differentiate on Variable Cnach Variablen differenzieren) Integrate on Variable Cnach Variablen integrieren) Solve for Variable Cnach Variablen auflbsen) Substitute for Variable CVariablen substituieren) Expand to Series ... (in eine Reihe entwickeln) Convert to Partial Fraction (in Partialbruche zerlegen) * Matrix Operations CMatrixoperationen) * Transforms CLaplace-, Fourier- und Z-Transformationen) Window Window dient zur Einteilung und farblichen Gestaltung des Arbeitsfensters : * Sind mehrere Dokumente CArbeitsfenster) gebffnet, so kbnnen diese mit Tile nebeneinander oder untereinander und mit Cascade /'iberlappend angeordnet werden. * Leisten konnen aus der Anzeige ausgeblendet werden, so Z.B. mittels Hide Tool Bar die obere Symbolleiste. Books
dient zum OJfnen der integrierten CBook Sampler und Desktop Reference ) oder zusatzlich gekauften und installierten Elektronischen Bl'icher. • Help beinhaltet die Hiifefunktionen von MATHCAD. Die Auswahl der gewilnschten MenUs/Untermem'is geschieht mittels Mausklick. Wird ein Untermenu mit drei Punkten ... beendet, so bedeutet dies, daB nach dem Anklicken eine Dialogbox erscheint, die auszufilllen ist. II. Leiste der Operatorpaietten Die Leiste der Operatorpaletten Cenglisch: Operator palettes oder Symbol palettes) mit sieben Symbolen befindet sich unterhalb der Meni.ileiste. Durch Mausklick auf ein Symbol erscheint im Arbeitsfenster eine Palette mit Operatoren, die durch Mausklick an der durch den Kursor CEinfilgekreuz) markierten Stelle im Arbeitsfenster eingefugt werden konnen. Die geoJfneten Operatorpaletten bleiben im Arbeitsfenster, wenn man sie nicht wieder schlieBt. So kann man alle Operatorpaletten offnen, wie in Abb.8.2 zu sehen ist. Da bei allen geoffneten Operatorpaletten im Arbeitsfenster nur wenig Platz verbleibt, gibt
8.1
b・ョャエコイッ「セェWゥ」ィ@
51 es die Mbglichkeit, haufig benbtigte Operatorpaletten mit gedruckter Maustaste in die Nachrichtenleiste zu ziehen, wie in Abb.S.3 zu sehen ist. Die vorhandenen Operatorpaletten enthalten die gangigen mathematischen Symbole/Operatoren (u.a. Differentiationssymbol, Integralzeichen, Summenzeichen, Matrixsymbol, Wurzelzeichen), so daB aile Rechnungen in der ublichen mathematischen Standardnotation durchgefUhrt werden kbnnen. Diese Operatoren dienen sowohl zur DurchfUhrung exakter als auch numerischer Rechnungen. m.Symbolleiste Die Symbolleiste (englisch: Tool bar) befindet sich unterhalb der Leiste der Operatorpaletten und enthalt schon aus anderen WINDOWS-Programmen bekannte Symbole (z.B. fUr Ausschneiden, Dntcken, Ein/iigen, Kopieren, Speichern) und weitere MATHCAD-Symbole, auf die wir im Laufe des Buches eingehen. Eine kurze Erkliintng der Symbole der Symbolleiste wird gegeben, wenn man den Mauszeiger auf das entsprechende Symbol stellt. Ein gewunschtes Symbol wird mittels Mausklick aktiviert. IV. Schriftartleiste Die Schriftartleiste (englisch: Font bar) liegt unter der Symbolleiste und dient zur Einstellung der Schriftarten. v. Arbeitsfenster Das Arbeitsfenster nimmt den Hauptteil der Benutzerobeif/iiche ein und liegt unterhalb der Leisten I - IV (siehe Abschn.S.2). Es wird in MATH CAD als Dokument(engl. document) bezeichnet. VI. Nachrichtenleiste Die NachrichtenleistelStatllsleiste (englisch: Status bar) liegt unter clem Arbeitsfenster uncl ist aus vielen WINDOWS-Programmen bekannt. Aus der Nachrichtenleiste erhalt man u.a. Informationen tiber die aktuelle Seitennummer, die geracle durchgefUhrte Operation, den Berechnungsmodus (z.E. auto).
52 Ahh.S.2. Aktivierte Operatorpaletten Nr.1-7 von MATHCAD
8 MA1HCAD
⦅セ@
-I
_ _b
イZャB
g
.....;
,
"'-'
,1-1
1·11
>i' I>I' Iv
i.
I
(
)
I" n! Ir ar 19 + 1& )(
,log 7
...
'lin
lin
" (
4
8 I>
1
2
10
。 G G GaQiUセェャヲ@
I!IIGaUn •• u
,T.",
3
-
..,.........
.. :< . セ@ •
セ
NL@
1$
M-", ". "' !wi
i:ll.
1
II] ャセ@
, ., .... 1tt
..., ....... r
:t
.! \
セ⦅@
_
>
I'" III "' セGj@ I/'}'
セ@
l!J[ 131 .... lID
,010..
I-
,"
. '. +
_.,.
'
セ@
+-
..
I e·
eEl
liD S
(3
I.! f-
'010.'" a
I'
'r
c)
I'
l
I(
I-
+' X
"" If A
"'-
-.... -..-.
(]J
r
セ@
........
セN@
0
,..
セ N@
I). イ セ@
,.
t I'
. 0
IB r ,4 £ Z
.,
,8 ,K .M N IE 0 'n- p }, ; IT IY セ@ ャ セ@ ,'I' Q +
_nFI""-. Ahh.S.3. Operatorpaletten in der Nachrichtenleiste von MATHCAD
8.2
Arbeitsfenster Durch die Trennung in Text- und Rechenbereiche laBt sich das MATHCAD-Arbeitsfenster ebenso wie bei den anderen Systemen als ArbeitsblattiRechenblatt CBerechnungen und erlauternder Text) gestalten, fUr das die Bezeichnung Dokument Cenglisch: document) verwendet wird: • Man kann erlauternden Text, Rechenkommandos und Ausdriicke unter Zuhilfenahme der Operat01paletten eingeben (siehe Abb, 8.4). Die Umschaltung zwischen Rechnung (Formelmodus) und
8.2 Arbeitsfenster
53
Text CTextmodus) wird ausfuhrlich bei der Behandlung des Menus Text besprochen. • Die Eingabe erscheint an der durch den Kursor markierten Stelle im ArbeitsJenster, wobei fur Rechenkommandos Kleinbuchstaben zu verwenden sind. • Je nach durchzufuhrender Rechnung muB eine Variable des Ausdrucks markiert oder der gesamte Ausdruck mittels einer Selektionsbox umrahmt werden, bevor man den Berechnungsvorgang durch Aktivierung des entsprechenden Rechenmeniis aus dem Menu Symbolic bzw. durch Eingabe des symbolischen Gleichheitszeichens -+ (fur exakte Berechnungen) oder numerischen Gleichheitszeichens = (fur numerische Berechnungen) auslost. Die genaue Vorgehensweise bei den einzelnen Rechnungen wird in den entsprechenden Kapiteln angegeben. • Die berechneten Ergebnisse kbnnen neben oder unterhalb der Eingabe erscheinen. Man kann dies durch die MenuJolge Symbolic => Derivation Format... erreichen. In der erscheinenden Dialogbox HiBt sich auch die Ausgabe eines kurzen Kommentars einstellen. • Frilhere Eingaben kbnnen verandert werden, indem der Kursor an der entsprechenden Stelle positioniert und anschlieBend korrigiert wird. • Frilher eingegebene Ausdrilcke kbnnen wieder verwendet werden, indem sie mit einer Selektionsbox umrahmt und danach mit den ublichen Kopieroperationen an die gewiinschte Stelle des Arbeitsfensters kopiert werden. Ein Vorteil von MATH CAD gegenuber anderen Systemen liegt in der Gestaltung des Arbeitsblattes : Text und mathematische Rechnungen lassen sich an jeder beliebigen Stelle des Arbeitsfensters positionieren. Dabei kann man die Formeln dank der Operatoren aus den Operatorpaletten in der mathematischen Standardnotation erstellen, so daB MATHCAD auch zusatzlich als Schreibprogramm fur wissenschaftliche Texte verwendet werden kann.
•
Bei MATHCAD existieren im Unterschied zu den anderen Systemen drei Formen fur den Kursor : • EinJugekreuz +
54
8 MAmCAD
•
Mit ihm kann man die Position im Arbeitsfenster festlegen, an der die Eingabe des zu berechnenden Ausdrucks im Formelmodus stattfinden soil. Einfiigebalken I Er ist schon aus Textverarbeitungsprogrammen bekannt und dient zum Einfugen oder L6schen von Zahlen und Buchstaben und zum Markieren von Variablen bei symbolischen Berechnungen. Beim Markieren kann er vor oder hinter einer Variablen eingefUgt werden, wie aus Beispiel 8.1 ersichtlich ist. BeispielS.l: Wenn der Ausdruck eX + cos(x) + 3 bzgl. x symbolisch dif!erenziert oder integriert werden soll, muB die Variable x vor dem Aufruf des entsprechenden Mentis einmal mit dem Einfugebalken markiert werden, d.h. e 1x + cos(x) + 3 oder
e xi + cos (x) + 3 oder eX + cos(lx) + 3
oder eX + cos(xl) + 3 AnschlieBend kann das entsprechende Untermenu (fUr die Differentiation bzw. Integration) aus dem Menu Symbolic aktiviert werden .
•
•
Selektionsbox セ@ Die Selektionsbox dient einerseits zum Markieren ganzer Ausdriicke fUr die symbolische oder numerische Berechnung, andererseits benbtigt man sie zum Eingeben mathematischer Ausdriicke. Erzeugt wird diese Selektionsbox durch Mausklick oder Betatigung der CD-oder c:=:J-Tasten. Da eine derartige Box bei den anderen Systemen nicht vorkommt, empfehlen sich einige Dbungen. Beispiel S.2:
x+y + Wir mbchten den Ausdruck - - + eX Y + 5 eingeben. x-y Wir beginnen wie gewohnt mit (x+y)/(x-y) und erhalten x +y . Urn eX+Y x-yl
zu addieren, muB durch dreimaliges Drticken der CD-Taste oder einmaliges Drticken der c:=:J-Taste der Ausdruck x+y x-y
55
8.2 Arbeitsfenster
durch eine Selektionsbox umrahmt werden. Jetzt kann man + e/\x+y eingeben und erhiilt x + y + ex+Y1 . Urn noch 5 addieren zu kbnnen, muB e X + Y x-y durch dreimaliges Drucken der [)-Taste oder zweimaliges Drukken der r==J-Taste mit einer Selektionsbox umrahmt werden. Jetzt kann man +5 eingeben. Die Anwendung der Selektionsbox dient hier dazu, urn wieder in das gewlinschte Niveau des Ausdrucks zuruckzukehren .
•
Ahh.S.4. BenutzeroberfHiche von MATHCAD nach einer Arbeitssitzung CBeispiel3.1)
{ セュゥ[b
Aセ M.on Jo"",cMo die $ummo der folaondc ..
jッLセ@
..
セqQ@
lINobo
!+!-+1 2 , 6 M.on be",cbnc die folacndc Po"""
(. +1»'
oxpc>d.1I>
limpli&c. to
.'
• -
+ 3·.'·1> + 3·. ·1,' + b'
b
Mut Nkb:ui ucrc den &Jaendcn Auu:l.tudc
Das ArbeitsblattlRechenblatt (Dokument) einer Arbeitssitzung mit MATHCAD laBt sich durch die aus vielen WINDOWS-Programmen bekannte Mentifolge File => SaveAs ... => Dateiname: als Datei mit der Endung .MCD auf Festplatte oder Diskette abspeichern und bei spateren Sitzungen durch die Mentifolge File => Open ... => Dateiname: wieder einlesen.
•
56
8.3
8 MATIfCAD
Symbolisches Gleichheitszeichen 1m Unterschied zu den anderen Systemen lassen sich in MATHCAD eine Reihe von eingegebenen Aufgaben losen, indem man abschlieBend das * symbolische Gleichheitszeichen セ@ (fUr exakte Berechnungen) * numerische Gleichheitszeichen = (fUr numerische Berechnungen) eingibt. Wir geben im folgenden immer die Moglichkeiten zur Anwendung dieser Gleichheitszeichen an. Wahrend man das numerische Gleichheitszeichen = am einfachsten iiber das Gleichheitszeichen der Tastatur eingibt, hat man fUr die Eingabe des symbolischen Gleichheitszeichens セ@ die folgenden zwei Moglichkeiten: I. Anwendung des Operators
セ@
J
aus der Operatorpalette Nr.2 (Berechnungspalette) II. Eingabe der Tastenkombination (lli9)O Wenn man nach Eingabe des symbolischen Gleichheitszeichens auBerhalb des Ausdrucks mit der Maus klickt oder die Taste lEl druckt, so wird die exakte (symbolische) Berechnung ausgelost, falls man sich im Automatikmodus (Math => Automatic Mode) befindet. Das symbolische Gleichheitszeichen セ@ erspart die Aktivierung des entsprechenden Kommandos aus dem Menu Symbolic. Es stellt fUr die Berechnung gewisser Ausdriicke die einzige Moglichkeit zur exakten Berechnung dar. Mit dem symbolischen Gleichheitszeichen kann man auch Funktionswerte exakt berechnen. Das symbolische Gleichheitszeichen kann in Verbindung mit sogenannten Schliisselwortern verwendet werden, wie im Buch [2] des Autors und im Beispiel 24.9b) illustriert wird. Auf die Anwendung des symbolischen Gleichheitszeichens zur Losung der verschiedenen Aufgaben wird in den Kap.16-32 ausfiihrlicher eingegangen .
•
Das symbolische Gleichheitszeichen セ@ kann auf folgende zwei Arten deaktiviert (ausgeschalteO bzw. wieder aktiviert (eingeschalteO werden: I. Durch Aktivierung der Menufolge Math => Live Symbolics II. Anklicken des Symbols
II]
8.3 Symbolisches Gleichheitszeichen
57
Beim Start von MATHCAD wird das symbolische Gleichheitszeichen automatisch aktivien.
•
58
9
MATHEMATICA
1m folgenden legen wir die Version 3.0 fur WINDOWS 95 von 1996 zugrunde, die ebenso wie die vorhergehenden Versionen nur in englischer Sprache vorliegt. Diese neue Version ist dadurch gekennzeichnet, daB * alle unter der friiheren Version 2 erstellten Problernlosungen ohne Einschrankungen laufen, * die Eingabe der Aufgaben in mathematischer Standardnotation analog wie bei MATHCAD unter Verwendung von Operatorpaletten (englisch: Palettes) moglich ist, * der Funktionsumfang gegenuber der vorhergehenden Version 2.2.3 wesentlich ernJeitert wurde.
9.1
Benutzeroberflache Nach dem Starten von MATHEMATICA ergibt sich die in Abb.9.1 dargestellte Benutzerobe1jlache der WINDOWS-Version, fUr die haufig die Bezeichnungen Notebook-Obe1jlache, Notebook-Frontend bzw. Notebook-Inteiface verwendet werden. In der in Abb.9.1 gezeigten Form wurde bereits die Operatorpalette BasicInput mittels der Menufolge File::::} Palettes::::} BasicInput
geoffnet. Die Benutzerobe1jlache teilt sich von oben nach unten wie folgt auf I. Meniileiste Die Menuleiste (englisch: Menu bar) befindet sich am oberen Bildschirmrand und enthalt u.a. folgende Menz'is, die wiederum UntermenzJs enthalten konnen: • File enthalt u.a. die bei WINDOWS-Programmen ublichen Datei-
operationen . •
Edit
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
9.1 Benutzerobet:flache
59
enthalt u.a. die bei WINDOWS-Programmen iiblichen Editieroperationen. • Cell dient zur Einteilung des aktuellen Arbeitsblatts (Notebooks) in Abschnitte, die als Zellen bezeichnet werden und durch eckige Klammern markiert sind, die sich am rechten Rand des Arbeitsfensters befinden. • Format dient u.a. zur Festlegung der Schriftarten und -stile und zur farblichen Gestaltung des Bildschirms. • Window dient zur Fensteraufteilung. Mehrere geoffnete Notebooks konnen gleichzeitig betrachtet werden. • Help enthalt Hiifen zu allen in MATHEMATICA enthaltenen Kommandos und Funktionen. Die Auswahl der gewiinschten Meniis/Untermeniis geschieht mittels Mausklick. Wird ein Untermenu mit drei Punkten ... beendet, so bedeutet dies, daB nach dem Anklicken eine Dialogbox erscheint, die auszufUllen ist. II. Symbolleiste Die Symbolleiste (englisch: Tool bar) befindet sich unterhalb der Menuleiste. Sie besitzt eine Reihe schon aus anderen WINDOWS -Programmen bekannter Symbole (z.B. fUr Ausschneiden, Drukken, Einfiigen, Kopieren, Speichern). Das gewiinschte Symbol wird mittels Mausklick aktiviert. Eine kurze Erkliirung der Symbole der SymboUeiste wird gegeben, wenn man den Mauszeiger auf das entsprechende Symbol stellt. III. Zeilenlineal IV. Arbeitsfenster Das Arbeitsfenster schlieBt sich an das Zeilenlineal an und nimmt den groBten Teil der Benutzeroberflache ein. Es wird in MATHEMATICA als Notebook bezeichnet (siehe Abschn.9.2). V. Nachrichtenleiste Die Nachrichtenleiste IStatusleiste (englisch: Status bar) befindet sich am unteren Bildschirmrand (unterhalb des Arbeitsfensters).
60
9 MAlliEMAl1CA
Abb.9.1. Benutzerobert1ache
iセ
von MATHE- IE MATICA
9.2
セ
セ@
Arbeitsfenster Das Arbeitsfenstervon MATHEMATICA ist ebenso wie das der anderen Systeme einem ArbeitsblattiRechenblatt (Berechnungen und erlauternder Text) nachgebildet und wird bei MATHEMATICA als Notebook (Notizblock) bezeichnet (siehe Abb. 9.2): • Man kann Rechenkommandos, Ausdriicke und erlauternden Text eingeben. Die Umschaltung erfolgt in der Symbolleiste durch * Input (fUr Eingabe von Kommandos und Ausdrilcken) * Text (fUr Texteingabe) nachdem die entsprechende Zelle durch Mausklick aktiviert wurde. • Die Einteilung des Notebooks in Zellen (Abschnitte) und Teilzellen CTeilabschnitte) geschieht mittels eckiger Klammern am rechten Rand des Arbeitsfensters und liiBt sich durch das Menii Cell steuern. Aktiviert wird eine Zelle durch Mausklick auf die sie markierende eckige Klammer. • Die Eingabe von Ausdrilcken und Kommandos geschieht in der aktuellen (leeren) Zelle und kann unter Verwendung der Operatorpaletten geschehen. Werden Rechenkommandos verwendet, so mtissen diese mit einem groflen Buchstaben beginnen und dann durch kleine Buchstaben fortgesetzt werden. Bei zusam-
9.2 Arbeitsfenster
• •
•
61
mengesetzten Kommandos muB das zweite Kommando ebenfalls mit einem groBen Buchstaben beginnen. Die Berecbnung eines Ausdrncks bzw. die Aktiviernng eines Kommandos wird durch Dmcken der (DB- Tasten ausgelost. Die berecbneten Ergebnisse erscheinen unterhalb der Eingabe. Ein- und Ausgaben werden fortlaufend numeriert und mit den Bezeichnungen In bzw. Out versehen. Fmbere Eingaben konnen verandert und wieder ausgeRihrtlberechnet werden, indem der Kursor in der entsprechenden Eingabezeile positioniert, anschlieBend korrigiert und die Operation mit den (DB-Tasten beendet wird. Auf fmber eingegebene Ausdmcke kann folgenderrnaBen zUrUckgegriffen werden: Fur den Ausdrnck der letzten Ausgabe : % vorletzten Ausgabe : %% Ausgabe Nr.n : %n
Jede Arbeitssitzung mit MATHEMATICA (d.h. das aktuelle Arbeitsfenster) HiBt sich analog wie bei den anderen Systemen durch die aus vielen WINDOWS-Programmen bekannte Menufolge File セ@ SaveAs ... セ@ Dateiname: in Form einer Datei mit der Endung .NB auf Festplatte oder Diskette abspeicbern und mittels der Menufolge File セ@ Open... セ@ Dateiname: bei spateren Sitzungen wieder einlesen.
•
62 Abb.9.2. Benutzeroberflache
von MATHEMATIeA
nach einer Arbeitssitzung (Beispiel 3.1)
9 MA THEMA l1CA
セII ゥュdャG@
5
0uI (11- -
6
Man be"",,,,,,, clio fo!so'" Pot ....
Mon",,,,wlCbo don fo!sonden Auod:uck
OuI P.. a-b
Mill folr.to';';"", clen fo!sonden Auod:uck
63
10
MATLAB
1m folgenden legen wir die Ver:sion 5 fUr WINDOWS 95 von 1996 zugrunde, die ebenso wie die vorhergehenden Versionen nur in englischer Sprache vorliegt. MATLAB steht fUr Matrix Laboratorium, d .h., die ersten Versionen von MATLAB wurden Ende der siebziger Jahre als Matrixsoftware erstellt. In die neueren Ver:sionen von MATLAB wurde eine abgerustete Variante des Symbolprozessor:s von MAPLE ubernommen, urn exakte (symbolische) Rechnungen durchfUhren zu kbnnen. Dieser Symbolprozessor wird automatisch beim Start von MATLAB geladen.
10.1
Benutzeroberflache Nach dem Starten von MATLAB ergibt sich die in Abb.10.1 dargestellte Benutzerobet:fliiche der WINDOWS-Version.
Abb.l0.l.
BenutzeroberfHlche von MATLAB
A セ[BGZエNョA@
ZエAセQNj@
F ... .,gre SnFo ..... tlon .
I
B セZcー。イエQNャG@
tllP· "help
"'''C- .
dinned .
Ta get ,tart-ed . type one of th ••• co-..nd.: ".1.pwin. ".lpd •• _. or III . . .
I Die Benutzerobe1jliiche teilt sich von oben nach unten wiefolgt auf I. Meniileiste H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
64
10 MATLAB
Die MeniUeiste (englisch: Menu bar) befindet sich am oberen Bildschirmrand und enth1ilt folgende Mentis, die wiederum Untermeniis enthalten kbnnen: • File enth1ilt u.a. die bei WlNDOWS-Programmen tiblichen Dateioperationen •
Edit
enth1ilt u.a. die bei WlNDOWS-Programmen tiblichen Editieroperationen. • Window dient zur Fensterau/teilung. Mehrere gebffnete Fenster (als Workspace bezeichnet) kbnnen gleichzeitig betrachtet werden. • Help Hier findet man Hiifen zu allen in MATIAB enthaltenen Kommandos und Funktionen. Die Auswahl der gewtinschten MenUs/Untermeniis geschieht mittels Mausklick. Wird ein Untermenu mit drei Punkten .•• beendet, so bedeutet dies, daB nach dem Anklicken eine Dialogbox erscheint, die auszufUllen ist. n. Symbolleiste Die Symbolleiste (englisch: Tool bar) befindet sich unterhalb der MeniUeiste. Sie besitzt eine Reihe schon aus anderen WlNDOWSProgrammen bekannter Symbole (z.B. fUr Ausschneiden, Drukken, Ein/ugen, Kopieren, Speichem). Eine kurze Erklarung der Symbole der Symbolleiste wird gegeben, wenn man den Mauszeiger auf das entsprechende Symbol stellt. Ein gewtinschtes Symbol wird mittels Mausklick aktiviert. m.Arbeitsfenster Das Arbeitsfenster schlieBt sich an die Symbolleiste an und nimmt den grbBten Teil der Benutzeroberflache ein (siehe Abschn.1O.2). Es wird in MATIAB als Workspace bezeichnet.
10.2
Arbeitsfenster Das Arbeits/enstervon MATIAB ist ebenso wie das der anderen Systerne einem Arbeitsblatt/Rechenblatt (Berechnungen und erlautemder Text) nachgebildet und wird als Workspace (Arbeitsplatz) bezeichnet: • Man kann Kommandos, Ausdrncke und erlautemden Text eingeben, wobei diese Eingabe in der aktuellen (leeren) Zeile nach dem Eingabeprompt » geschieht. Urn Text von Kommandos
10.2 Arbeitsfenster
•
•
65
und Ausdn"icken zu unterscheiden, muB ihm % vorangestellt werden. Die Berechnung eines Ausdrucks bzw. die Aktivienmg eines Kommandos wird durch Dnicken der B- Taste ausgelbst. Die berechneten Ergebnisse erscheinen unterhalb der Eingabe. Fn"ihere Eingaben kbnnen nur veriindert und wieder ausgefuhrt Iberechnet werden, wenn sie in die aktuelle Zeile kopiert werden. Dies geschieht durch Drncken der (IJ- Taste. Anschliej3end wird korrigiert und die Operation mit der B-Taste beendet.
]ede Arbeitssitzung mit MATLAB (d.h. das aktuelle Arbeitsfenster) HiBt sich analog wie bei den anderen Systemen durch die aus vielen WINDOWS-Programmen bekannte Menufolge File::::} Save Workspace As ... ::::} Dateiname: als Datei mit der Endung .MAT auf Festplatte oder Diskette abspeichern und mittels der Menufolgen File ::::} Open... ::::} Dateiname: oder File::::} Load Workspace ... ::::} Dateiname: bei spateren Sitzungen wieder einlesen.
•
Abb.l0.2. Benutzeroberflache von MATLAB nach einer Arbeitssitzung (Beispiel 3.1)
66
11
MuPAD
1m folgenden legen wir die Version 1.3 fUr WINDOWS 95 von 1997 zugrunde, die nur in englischer Sprache vorliegt. Das Computeralgebra-System MuP AD wird von einer Arbeitsgruppe der UniversWit Paderborn unter Leitung von B. Fuchssteiner seit 1989 entwickelt. Dabei steht MuPAD fUr Multi Processing Algebra Data tool. Die Endung PAD steht auch fUr die Geburtsstadt PADERBORN.
11.1
Benutzeroberflache Nach dem Starten von MuPAD ergibt sich die in Abb.11.1 dargestellte Benutzerobeif/ache der WINDOWS-Version.
Ahh.11.1.
Benutzerobert1ache von MuPAD
--
.lIl2I
Die Benutzerobeif/ache teilt sich von oben nach unten wiefolgt auf H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
11.1 Benutzeroberjliiche
67
I. Meniileiste Die Meniileiste (englisch: Menu bar) befindet sich am oberen Bildschirmrand und enthalt folgende Menus, die wiederum UntennentJs enthalten kbnnen: • File enthalt u.a. die bei WINDOWS-Programmen ublichen Datei-
operationen •
Edit enthalt u.a. die bei WINDOWS-Programmen ublichen Editier-
•
Search dient zum Bewegen (Suchen) im aktuellen Arbeitsblatt (Note-
operationen.
book). Notebook dient zur Gestaltung des aktuellen Arbeitsblatts (Notebooks). • View dient zur Gestaltung des Arbeitsfensters, so z.B. zum Ein- und Ausschalten der Symbolleiste (Standard Tool bar), Formatleiste (Fonnat bar), Statusleiste (Status bar). • Window dient zur Fensteraufteilung. Mehrere gebffnete Arbeitsblatter (Notebooks) kbnnen gleichzeitig betrachtet werden. • Help Hier findet man Hilfen zu allen in MuP AD enthaltenen Kommandos und Funktionen. Die Auswahl der gewunschten MeniisiUntenneniis geschieht mittels Mausklick. Wird ein Untennenii mit drei Punkten ... beendet, so bedeutet dies, daB nach dem Anklicken eine Dialogbox erscheint, die auszufullen ist. II. Symbolleiste Die Symbolleiste (englisch: Tool bar) befindet sich unterhalb der MemJieist. Sie besitzt eine Reihe schon aus anderen WINDOWSProgrammen bekannter Symbole (z.B. fUr Ausschneiden, Drukken, Einfi'igen, Kopieren, Speichem) und weitere spezielle MuPAD-Symbole wie z.B. das Symbol •
[GJ fUr den Abbntch einer laufenden Rechnung. Eine kurze Erkldrung der Symbole der Symbolleiste wird gegeben, wenn man den Mauszeiger auf das entsprechende Symbol stellt. Ein gewi.inschtes Symbol wird mittels Mausklick aktiviert. III. Formatleiste
68
11 MuPAD
dient u.a. zur Festlegung der Schriftarten und -stile. IV. Arbeitsfenster Das Arbeitsfenster schlieBt sich an die Formatleiste an und nimmt den grbBten Teil der Benutzeroberflache ein (siehe Abschn.l1.2). Es wird in MuPAD als Notebook bezeichnet. V. Nachrichtenleiste Die Nachrichtenleiste IStatusleiste (englisch: Status bar) befindet sich am unteren Bildschirmrand (unterhalb des Arbeitsfensters).
11.2
Arbeitsfenster Das Arbeitsfenster von MuP AD ist ebenso wie das der anderen .s:ysteme einem ArbeitsblattiRechenblatt (Berechnungen und erlauternder Text) nachempfunden und wird als Notebook (Notizblock) bezeichnet: • Man kann Kommandos, AusdrCtcke und erliiuternden Text eingeben, wobei diese Eingabe in der aktuellen (leeren) Zeile nach dem Eingabeprompt • geschieht. Kommandos und AusdrCtcke sind in Kleinbuchstaben einzugeben und werden mit einem Semikolon abgeschlossen. Zwischen Text- und Formeleingabe wird mittels der Meniifolgen Notebook セ@ Change To Text bzw. Notebook セ@ Change To Input umgeschaltet. • Die Berechnung eines Ausdrucks bzw. die Aktivierung eines Kommandos wird durch DrCtcken der Tastenkombination Hq}セ@ ausgelbst. Die berechneten Ergebnisse erscheinen unterhalb der Eingabe. Eingaben kbnnen veriindert und wieder ausgefUhrt/be• fイャセィ・@ rechnet werden, indem der Kursor auf die entsprechende Zeile gesetzt und danach korrigiert wird. AbschlieBend wird die Operation mit der Tastenkombination Hq}セ@ beendet. Auf frCther eingegebene AusdrCtcke kann folgendermaBen zuイャセ」ォァ・ゥヲョ@ werden: Fur den Ausdruck der letzten Ausgabe: % vorletzten Ausgabe: %(-2) n-Ietzten Ausgabe: %(-n) Jede Arbeitssitzung mit MuPAD (d.h. das aktuelle Arbeitsfenster) laBt sich analog wie bei anderen Systemen durch die aus vielen WINDOWS-Programmen bekannte Meniifolge
69
11.2 Arbeitsfenster
File => Save As ... => Dateiname: als Datei mit def Endung .MNB auf Festplatte odef Diskette abspeichern und mittels der Menufolge File => Open... => Dateiname: bei spateren Sitzungen wieder einlesen.
•
Ahh.11.2. Benutzeroberflache von MuPAD nach einer Arbeitssitzung (Beispiel 3.1)
•
1./2+1/3;
5/.
Man berechne die foleende Pote,,"
• ar lilnJ(
a +b)'-3); J .+b
+3 .. b
+3 0
Miln vereilYache den folsenden Au.dNek •
;I!Iimplify{( ... .... Z- b·' :!J/(.1+bl) ; •
-
b
Man fal:toriJiere den foleenden All.druclc •
-fee"tot" (.11 .... 3+] ·
"..... 2 · b+3 "f! ·b ....Z+ b .. J); (1 .
• + b.
JI
b
70
12
Exakte und naherungsweise Rechnungen
In den vorangehenden Kapiteln haben wir bereits die Eingabe eines zu berechnenden Ausdrucks und die Auslosung seiner Berechnung fUr die einzelnen Systeme kennengelernt. Wir haben aber noch nieht im einzelnen die unterschiedlichen Vorgehensweisen bei der Durchfiihrung von exakten (symbolischen) bzw. niiherungsweisen (numerischen) Berechnungen eines mathematischen Ausdrucks (Zahlenausdrucks) in den Systemen behandelt. Dies kann auf eine der folgenden Arten geschehen: I. Eingabe von Kommandos in das Arbeitsfenster, II. Auswahl einer Menz"ifolge aus der MenzUeiste durch Mausklick. Fur die exakte oder niiherungsweise Durchfl"ihrung der Grundrechenarten verwenden alle Systeme die folgenden Operationssymbole:
Addition Subtraktion * Multiplikation 1\ Potenzierung Fakultiit / Division Einige Systeme lassen zusiitzliche Schreibweisen zu, so z.B. DERIVE und MATHEMATICA das Leerzeichen fUr die Multiplikation. Fur die Durchfi:thrung der Gnmdrechenarten gelten die ublichen Prioritiiten, d.h., zuerst wird potenziert, dann multipliziert (dividiert) und zuletzt addiert (subtrahiert). 1st man sieh uber die Reihenfolge der durchgefUhrten Operationen nieht sieher, so empfiehlt sieh das Setzen zusatzlicher Klammern . +
•
Bei allen durchzufUhrenden Rechnungen ist zuerst die exakte (symbolische) Berechnungsart zu empfehlen. Erst wenn diese versagt, sollte die niihenmgsweise (numerische) Berechnung angewandt werden. Wenn man das Ergebnis einer Berechnung als Dezimalzahl erhalten mochte, empfiehlt sieh ebenfalls die exakte Berechnung mit anH. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
12.1 Exakte Rechnungen mittels Computeralgebra
71
schlieBender Annaherung des Ergebnisses durch eine Dezimalzahl Csiehe Abschn.12.2) .
•
Befinden sich Dezimalzahlen in ZahlenausdrUcken, so wird von den Systemen bei der exakten Berechnung das Ergebnis als Dezimalzahl geliefert.
•
12.1
AXIOM
DERIVE
Exakte Rechnungen mittels Computeralgebra Bereits bei den Gnmdrechenoperationen zeigt sich das Grundprinzip des exakten Rechnens der Computeralgebra: Man erhait z.E. bei der Addition der Bruche 1 1 7 - + - das exakte Ergebnis 3 4 12 und nicht die Dezimalnahentng 0.58333 .... Die Vorgehensweise bei der exakten Berechnung eines Zahlenausdrucks A in den einzelnen Systemen ist folgende: AXIOM lost durch Anklicken des Knopfes links neben dem eingegebenen Ausdruck die exakte Berechnung aus, nachdem der Zahlenausdruck A eingegeben wurde. DERIVE bietet zwei Moglichkeiten zur exakten Berechnung: * Der Zahlenausdruck A wird nach Anwendung der Menilfolge Author セ@ Expression... in die erscheinende Dialogbox Author Expression eingegeben. Abschlieflend wird durch Anklicken von Simplify die Berechnung ausgelost. * Wenn sich der zu berechnende Zahlenausdruck A bereits im Arbeitsfenster befindet, so wird er durch Mausklick markiert. Das abschlieBende Anklicken des Symbols
セ@
MACSYMA MAPLE
MATHCAD
.
in der Symbolleiste lost die Berechnung aus. MACSYMA lost durch Dnicken der セM Taste die exakte Berechnung aus, nachdem der Zahlenausdruck A eingegeben wurde. MAPLE lost durch Dnlcken der セM Taste die exakte Berechnung aus, nachdem der Zahlenausdruck A eingegeben und mit einem Semikolon abgeschlossen wurde, d.h. A ; In MATHCAD wird der Ausdruck A unter Venoendung der Operatorpaletten eingegeben und mit einer Selektionsbox umrahmt. Danach bestehen drei Moglichkeiten zur exakten Berechnung:
12 Exakte und niiherungsweise Rechnungen
72
セ@ Simplify II. Aktiviernng der Menufolge Symbolic セ@ Evaluate セ@ Evaluate Symbolically III. Eingabe des symbolischen Gleichheitszeichens -+ durch Anklicken des Operators
1. Aktiviernng der Menufolge Symbolic
-. aus der Operatorpalette Nr.2 (Berechnungspalette)
セ@ Aufgrund der einfachen Handhabung empfiehlt sich bei MATHCAD ftir exakte Rechnungen die Anwendung des symbolischen Gleichheitszeichens -+
•
MATHEMATICA MATIAB
MATHEMATICA lost durch DrUcken der Tastenkombination (QJB die exakte Berechnung aus, nachdem der Zahlenausdruck A unter Venvendung der Operatorpaletten eingegeben wurde. In MATLAB wird der Zahlenausdrnck A eingegeben, wobei das Kommando sym ftir symbolische Ausdnlcke zu verwenden ist, wie im Beispiel 12.1 illustriert wird. Abschliefiend wird durch DrUcken der B- Taste die Berechnung ausgelost. Beispie112.1: Die exakte Berechnung der Summe 115 -+-=236 der beiden BrUche ist bei MATLAB folgendermafien moglich: * sym (1/2) + sym (1/3) * sym ( 1/2 + 1/3 ) Die Eingabe von 1/2 + 1/3 ergibt die Niihernng 0.8333.
•
MuPAD
MuPAD lost durch DrUcken der Tastenkombination (QJB die exakte Berechnung aus, nachdem der Zahlenausdrnck A eingegeben und mit einem Semikolon abgeschlossen wurde, d.h. A ;
•
In allen Rechnungen IaEt sich die umfangreiche Palette der in den Systemen integrierten Konstanten und Funktionen venvenden (siehe Kap.13).
12.2 Niiherungsweise Rechnungen
73
Falls Unklarheiten wegen der Schreibweise dieser Konstanten und Funktionen bestehen, bieten die einzelnen Systeme Hilfen an, wie im Kap.13 beschrieben wird.
•
Mochte man als Ergebnis einer exakten Rechnung eine Dezimalzahl erhalten, so ist ein Numerikkommando auf das erhaltene Ergebnis anzuwenden (siehe Abschn.12.2 ).
•
Wenn man anstatt der Zahlenausdriicke allgemeine Funktionsaus、ョセ」ォ・@ betrachtet, so sind mittels der Systeme weitere Operationen moglich, wie umformen, difjerenzieren, integrieren. Diese Operationen bilden den Gegenstand des Hauptteils dieses Buches (ab Kap.16).
•
12.2
AXIOM
Naherungsweise Rechnungen Niiherungsweise (numerische) Rechnungen vollziehen sich im Rahmen von Dezimalzahlen, wobei Computer nur Zahlen mit einer endlichen Anzahl von Zifjern verarbeiten konnen. In Dezimalzahlen muS bei allen Systemen statt des Kommas der Punkt (Dezimalpunkt) verwendet werden. Falls bei einem System das Kommando (die Menufolge) zur exakten (symbolischen) Berechnung eines Ausdrucks A kein Ergebnis liefert oder als Ergebnis eine Dezimalzahl benotigt wird, kann das entsprechende Numerikkommando zur niiherungsweisen Berechnung herangezogen werden: AXIOM benotigt das Kommando numeric zur numerischen Berechnung des Zahlenausdrucks A : numeric (A) Abschlieflend wird durch Anklicken des Knopfes links neben dem eingegebenen Ausdruck A die numerische Berechnung ausgel6st. Beispiel 12.2: AXIOM berechnetdurch Eingabevon numeric ( ( sin(3) + sqrt(2) )I( sqrt(3) + cos(S) ) ) fUr den Zahlenausdruck
セ@
•
DERIVE
3 +.fi den Niihenmgswert 0.77160468 3 + cosS
DERIVE bietet zwei M6glichkeiten zur numerischen Berechnung:
74
12 Exakte und ndhernngsweise Rechnungen
* Der Zahlenausdruck A ist nach Aktivierung der Menufolge
*
Author セ@ Expression... in die erscheinende Dialogbox Author Expression einzugeben und mit OK abzuschliejSen. AnschlieBend lost die m・ョエセヲッャァ@ Simplify セ@ Approximate... セ@ Approximate die numerische Berechnung aus. Wenn sich der zu berechnende Zahlenausdruck A bereits im Arbeitsfenster befindet, so wird er durch Mausklick markiert. Das abschliejSende Anklicken des Symbols
rn
in der Symbolleiste lost die numerische Berechnung aus. Beispie112.3: DERIVE berechnet durch Eingabe von (sin(3) + sqrt(2))/(sqrt(3) + cos(S)) in die Dialogbox Author Expression fUr den Zahlenausdruck
Ji3 + J2 den Ndherungswert 0.77160468 3 + cosS
•
MACSYMA
MACSYMA verwendet die Kommandos float (einfache Genauigkeit) bzw. dfloat (doppelte Genauigkeit) zur numerischen Berechnung des Zahlenausdrucks A: float (A) bzw. dfloat (A) AbschliejSend wird durch DrUcken der セM Taste die numerische Berechnung ausgelost. Beispiel 12.4: MACSYMA berechnet durch Eingabe von float ( ( sin(3) + sqrt(2) )I( sqrt(3) + cos(S) ) ) oder dfloat ( ( sin(3) + sqrt(2) )/ ( sqrt(3) + cos(S) ) ) fUr den Zahlenausdruck sin3 + J2 13
3 + cosS
•
MAPLE
.
den Naherungswert 0.7716 bzw. 0.77160467S769S2
MAPLE verwendet das Kommando evalf zur numerischen Berechnung des Zahlenausdrucks A : evalf (A) ; AbschliejSend wird durch DrUcken der セM Taste die numerische Berechnung ausgelost. Beispie112.5: MAPLE berechnet mittels evalf ( ( sin(3) + sqrt(2) )I( sqrt(3) + cos(S) ) ) ;
12.2 Naherungsweise Rechnungen
75
fUr den Zahlenausdrnck sin3 + J2 J3
•
MATIlCAD
3 + cos 5
den Ndhernngswert 0.77160468
Bei MATH CAD ist der zu berechnende Zahlenausdrnck A unter Zuhilfenahme der Operatorpaletten in das Arbeitsjenster einzugeben. Er erscheint im Arbeitsfenster an der durch den Kursor + (Einjugekreuz) markierten Stelle. Danach ist er mit einer Selektionsbox zu umrahmen. AbschliejSend lost eine der jolgenden Aktivitdten den V01'8ang fur die numerische Berechnung aus: • Eingabe des numerischen Gleichheitszeichens = , die * mittels Tastatur * durch Anklicken des Symbols
EJ
.
in der Operatorpalette Nr.2 durchgefilhrt werden kann . Das numerische Gleichheitszeichen = darf man nicht mit dem symbolischen Gleichheitszeichen oder dem G/eichheitsoperator (Gleichheitssymbol)
EJ
•
verwechseln, die sich ebenfalls in der Operatorpalette Nr.2 befinden. Eingabe der Menujo/ge Symbolic セ@ Evaluate セ@ Floating Point Evaluation ... wobei in der erscheinenden Dialogbox eine Genauigkeit bis zu 4000 Stet/en eingestellt werden kann .
Aufgrund der einfachen Handhabung empfiehlt sich bei MATH CAD fUr numerische Rechnungen die Anwendung des numerischen Gleichheitszeichens =
•
Beispiel 12.6: MATHCAD berechnet mittels des numerischen G/eichheitszeichens sinO) +
J3
i-
セR@
cas( 5)
=
0.771604675769529
•
•
76
12 Exakte und naherungsweise Rechnungen
MATHEMATICA berechnet mit einem der beiden Kommandos MATIlEMATICA
* *
N [A ]
A//N
den Zahlenausdruck A numerisch, wenn abschlieBend die Tastenkombination Hq}セ@ gedruckt wird. Beispiel 12.7: Jedes der beiden Kommandos * (Sin[3] + Sqrt[2] )/( Sqrt[3] + Cos[S] ) / / N * N [ ( Sin[3] + Sqrt[2] )I( Sqrt[3] + Cos[S] ) ] berechnet fUr den Zahlenausdruck sin3 +.J2 r:;
セS@
•
MATIAB
den Ndherungswert 0.77160468
+cosS
MATLAB lost durch Dnlcken der セMt。ウエ・@ die numerische Berechnung aus, nachdem der Zahlenausdruck A eingegeben wurde. Beispiel 12.8: MATLAB berechnet durch Eingabe von ( sin(3) + sqrt(2) )I( sqrt(3) + cos(S) ) fUr den Zahlenausdruck sin3 +.J2 r:;
セS@
den Ndhenmgswert 0.7716
+ cosS
•
MuPAD
MuPAD verwendet das Kommando float zur numerischen Berechnung des Zahlenausdnlcks A : float (A) ; Abschlieflend wird durch Dnlcken der Tastenkombination Hq}セ@ die numerische Berechnung ausgelost. Beispiel 12.9: MuP AD berechnet durch Eingabe von float ( ( sin(3) + sqrt(2) )I( sqrt(3) + cos(S) ) ) ; fUr den Zahlenausdruck sin3 +.J2
---=---
13 + cosS
den Ndhenmgswert 0.77160467S7
•
Wir haben bisher nur die numerische Berechnung von Zahlenausdnlcken betrachtet. Die Systeme gestatten naturlich auch die numerische Berechnung komplizierterer mathematischer Probleme, z.B. die numerische Losung von Gleichungen und Differentialgleichungen unci die numerische Berechnung bestimmter Integrale. Hierauf gehen wir im
12.2 Niihernngsweise Rechnungen
77
Hauptteil dieses Buches ein, wobei wir einige der eben gegebenen Kommandos wieder antreffen werden .
•
AXIOM
DERIVE
MACSYMA
MAPLE
MATHCAD
Durch Anwendung der behandelten Numerikkommandos fur die Berechnung eines Zahlenausdrucks A erhalt man als Ndherung (Approximation) eine Dezimalzahl, deren Stellenzahl mittels der folgenden KommandosiMenufolgen eingestellt werden kann: Bei AXIOM ist die gewtinschte Stellenzahl n fur die Berechnung des Ausdrucks A als zweites Argument in das Numerikkommando numeric einzutragen, d.h. numeric ( A , n ) Bei DERIVE erscheint bei der numerischen Berechnung des Ausdntcks A nach der Menufolge Simplify セ@ Approximate ... eine Dialogbox, in der die gewtinschte Stellenzahl bei Digits of precision einzutragen ist. MACSYMA kann mittels der Kommandos float und dfloat die einfache (5 Stellen) bzw. doppelte Genauigkeit (13 Stellen) eingestellt werden. MAPLE bestimmt durch Eingabe des Kommandos Digits:= Anzahl der Stellen ; vor dem durchzufUhrenden Numerikkommando die Anzahl der ausgegebenen Dezimalstellen. MATH CAD kann die gewtinschte Stellenzahl fUr die Berechnung des Ausdrucks A * vor der Berechnung mittels des numerischen Gleichheitszeichens durch die Menufolge Math セ@ Numerical Format... in der erscheinenden Dialogbox in Displayed Precision auf maximal 15 Stellen einstellen. * bei Berechnung mittels der Menufolge Symbolic セ@ Evaluate セ@ Floating Point Evaluation... in der erscheinenden Dialogbox mit einer Genauigkeit bis zu 4000 Stellen einstellen. In MATHCAD kann fUr die Numerikkommandos (z.E. zur lasung von Gleichungen und Differentialgleichungen, zur Interpolation) die gewtinschte Genauigkeit (Standardwert 0.001) mittels der Menufolge Math セ@ Built-In Variables ... in der erscheinenden Dialogbox bei Tal eingestellt werden. Das gleiche Resultat wird durch Eingabe der Zuweisung Tal := ..... erreicht. Man darf allerdings nicht erwarten, daB das angegebene Resultat die eingestellte Genauigkeit besitzt. Man weiB nur, daB das
78
12 Exakte und niibenmgsweise Recbnungen
angewandte numerische Verfahren abbricht, wenn die Differenz zweier aufeinanderfolgender Naherungen kleiner als TOL ist.
•
Bei MATHEMATICA ist die gewiinschte Stellenzahl n fUr die BerechMATHEMAnung des Ausdrucks A als zweites Argument in das NumerikkomTICA mando N einzutragen, d.h. N [ A , n J. MATLAB gibt bei der numerischen Berechnung vier Dezimalstellen MATlAB aus. Schreibt man vor dem zu berechneneden Ausdruck das Kommando format long, ( mit Komma getrennt), so werden 14 Dezimalstellen ausgegeben. MuPAD bestirnmt durch Eingabe des Kommandos MuPAD DIGITS:= Anzahl der Stellen : vor dem durchzufUhrenden Numerikkommando die Anzahl der ausgegebenen Dezimalstellen.
79
13
Zahlen, Variablen, integrierte Konstanten und Funktionen
13.1
Ganze, rationale, reelle und komplexe Zahlen Die Systeme kennen folgende Zablendarstellungen: • Ganze Zablen werden in der ublichen Form als Folge von Ziffern eingegeben. Gibt man sie bei exakten Recbnungen mit Dezimalpunkt hinter der letzten Ziffer ein (d.h. in Dezimalschreibweise), so werden die Ergebnisse als Dezimalzablen ausgegeben. • Rationale Zablen konnen fUr exakte Recbnungen als Briicbe ganzer Zablen eingegeben werden. Des weiteren ist ihre Eingabe als Dezimalzablen zul;issig. Da aber nur endlicbe Dezimalzablen moglich sind, konnen Rundungsfebler auftreten. • Reelle Zablen lassen sich fUr exakte Recbnungen im Rahmen der Computeralgebra nur exakt eingegeben, wenn dies als Symbol m6glicb ist, wie z.B. J2 , n und e Ansonsten ist nur die niiberungsweise Eingabe als endlicbe Dezimalzabl moglich. • Komplexe Zablen z = a + b· i werden in der ublichen matbematiscben Scbreibweise mit Realtei! a und Imaginiirteil b eingegeben, wobei die imaginiire Einbeit i bei den einzelnen Systemen unterscbiedlicb gescbrieben wird:
* *
* * *
AXIOM: O/Oi DERIVE: i
wird mittels #i eingegeben oder als Symbol aus der Dialogbox Author Expression entnommen. MACSYMA: O/Oi MAPLE: I
MATHCAD: i oder j Falls der Imaginiirteill ist, muB Ii bzw. Ij obne Mu/tiplikationspunkt geschrieben werden.
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
13 Zahlen, Variablen, integrierte Konstanten und Funktionen
80
* * * 13.2
AXIOM
DERIVE
MATHEMATICA: I MATLAB: i oder j MuPAD: I
Variablen Variablen Cverdnderliche GrojSen) spielen in der Ingenieurmathematik eine fundamentale Rolle, da die Untersuchung von Zusammenhdngen zwischen verdnderlichen GrojSen einen Hauptschwerpunkt bildet. Sie treten in Formeln und Ausdrilcken auf, die mathematische Madelle fUr technische und naturwissenschaftliche Sachverhalte bilden. Bei der Anwendung der Systeme zur Lasung von Aufgaben in Technik und Naturwissenschaften kommt man deshalb ohne VariabIen nicht aus. Um Variablen in den einzelnen Systemen einsetzen zu kannen, benatigt man Kenntnisse tiber ihre * Darstellungsm6glichkeiten * Wirkungsweisen Die unterschiedlichen Vorgehensweisen fUr die Bezeichnung von Variablen und indizierten Variablen und deren Wirkungsweisen werden im folgenden ftir die einzelnen Systeme erldutert: AXIOM gestattet die Darstellung indizierter Variablen xk bzw. xik in der Form xCk) bzw. xCi,k) deren Verwendung ausfUhrlicher bei Matrizen CAbschn.20.2) erlautert wird. Des weiteren sind in AXIOM Variablennamen zugelassen, die aus mehreren Zeichen CBuchstaben und Ziffern) bestehen, so daB fUr indizierte Variablen auch die Darstellung xk bzw. xik maglich ist. AXIOM unterscheidet bei Variablennamen zwischen GrojS- und Kleinschreibung. Jeder Variablenname muB mit einem Buchstaben beginnen. DERIVE gestattet keine Darstellung indizierter Variablen x k bzw. xik Man kann diese nur in der Form xk bzw. xik darstellen, d.h., durch Variablen, die aus mehreren Zeichen CBuchstaben und Ziffern) bestehen. Um in DERIVE Variablen verwenden zu kannen, die aus mehreren Zeichen bestehen, muB vorher mittels der Menufolge Declare => AlgebraState => Input...
13.2 Variablen
MACSYMA
MAPLE
81
in der erscheinenden Dialogbox (Input Options) in Input Mode mittels Maus Word angeklickt werden. Damit wird auf Worteingabe umgeschaltet. DERIVE unterscheidet bei Variablennamen nicht zwischen GrojSund Kleinschreibung. Jeder Variablenname muB mit einem Buchstaben beginnen. MACSYMA gestattet die Darstellung indizierter Variablen xk bzw. xik in der Form x[k] bzw. x[i,k] deren Verwendung ausfUhrlicher bei Matrizen (Abschn.20.2) ediiutert wird. Des weiteren sind in MACSYMA Variablennamen zugelassen, die aus mehreren Zeichen (Buchstaben und Zifjern) bestehen, so daB fur indizierte Variablen auch die Darstellung xk bzw. xik moglich ist. MACSYMA unterscheidet bei Variablennamen zwischen GrojS- und Kleinschreibung. Jeder Variablenname muB mit einem Buchstaben beginnen. MAPLE gestattet die Darstellung indizierter Variablen xk bzw. xik in der Form x[k] bzw. x[i,k] deren Verwendung ausfUhdicher bei Matrizen (Abschn.20.2) ediiutert wird. Des weiteren sind in MAPLE Variablennamen zugelassen, die aus mehreren Zeichen (Buchstaben und Zifjern) bestehen, so daB fUr indizierte Variablen auch die Darstellung xk bzw. xik moglich ist. MAPLE unterscheidet bei Variablennamen zwischen GrojS- und Kleinschreibung. Jeder Variablenname muB mit einem Buchstaben beginnen. MATHCAD besitzt von allen Systemen die weitreichendsten Moglichkeiten bei der Darstellung von Variablen. Variablennamen lassen sich in der ublichen Form sowohl durch Kombination von Buchstaben (auch griechischen) und Zifjern, Z.B. x, y, xl, y2, ab3, als auch in indizierter Form, z.B. xl, Yn' Za' ai,k , darstellen, wobei MATHCAD zwischen GrojS- und Kleinschreibung unterscheidet. Jeder Variablenname muB mit einem Buchstaben beginnen. Bei der Darstellung indizierter Variablen bietet MATHCAD in Abhiingigkeit vom Verwendungszweck zwei M6glichkeiten: I. Mochte man eine Variable Xi als Komponente eines Vektors x interpretieren (siehe Abschn.20.2), so muB man diese durch Anklicken des Operators
82
13 Zahlen, Variablen, integrierte Konstanten und Funktionen
EJ
aus der Operatorpalette Nr.4 (Matrixpalette)
[...."'J, ,
erzeugen, indem man in die erscheinenden Platzhalter
••
x und den Index (Feldindex) i eintragt und damit Xi erhalt. II. 1st man nur an einer Variablen X mit tiefgestelltem Index i interessiert, so erhalt man diese, indem man nach der Eingabe von x einen Punkt eintippt. Die anschlieBende Eingabe von i erscheint jetzt tiefgestellt und man erhalt xi Man bezeichnet diese Art von Index als Literalindex im Gegensatz zum Feldindex aus I. Der Unterschied zwischen diesen beiden Arten von indizierten Variablen ist schon optisch zu erkennen, da beim Literalindex zwischen Variable und Index ein Leerzeichen steht und der Literalindex die gleiche GroBe wie die Variable besitzt. MATH CAD gestattet zusatzlich die Definition sogenannter Bereichsvariablen v mittels v := a, a + セカ@ .. bunter Verwendung des Operators
aus der Operatorpalette Nr.4 (Matrixpalette)
r'''J L::: Die so definierten Bereichsvariablen nehmen aile Werte zwischen a und b mit der schrittweite セカ@ an (siehe Beispiel 13.1). Man benotigt sie u.a. zur grafischen Darstellung von Funktionen (siehe Kap.22) und zur Bildung von Schleifen siehe Abschn.15.3). Fehlt die schrittweite セカL@ d.h., definiert man die Bereichsvariable v in der Form v := a .. b , so nimmt v die Werte zwischen a und b mit der schrittweite 1 an, d.h. v = a , a+ 1 , a+2 , ... , b
•
Beispiel 13.1: a) Wir definieren zwei Bereichsvariable x und y in den Bereichen [1.4,2.11 bzw. [-2,41 mit der Schrittweite 0.2 bzw. 1 und geben
13.2 Variablen
83 durch Eingabe des numerischen Gleichheitszeichens = die berechneten Werte als Wertetabelle (Ausgabetabelle) aus: y=-2 .. 4 x =1.4,1.6 .. 2.1 x y
セ@
-2 -1 0
1.6 i QセX@
1
2 3
セ@
b) Berechnen wir die Funktion cos x fUr die Werte x = 1, 1.3, ... , 2, indem wir x als Bereichsvariable mit der Schrittweite 0.3 im Intervall [1,2] definieren: x = 1,1.3 .. 2 x cos(x)
セ
i@ 0.54
I
1.310.267 i 1.6 - 0.029,
11.911- 0.323! Die Eingabe des numerischen Gleichheitszeichens nach x und cos(x) liefert die Werte der Bereichsvariablen x bzw. die Wertetabelle (Ausgabetabelle) fUr die Funktion cos x .
•
MATHEMATICA gestattet die Darstellung indizierter Variablen MATHEMAllCA xk bzw. xik in der folgenden Form x[k] bzw. x[i,k] wobei allerdings eine andere Form mit doppelten Klammern gefordert wird, wenn man Elemente von Vektoren und Matrizen darstellen mbchte (siehe Abschn.20.2). Des weiteren sind in MATHEMATICA Variablennamen zugelassen, die aus mehreren Zeichen bestehen, d.h. aus einer Kombination von Buchstaben (auch griechischen) und Ziffern. So ist fUr indizierte Variablen auch die Darstellung xk bzw. xik mbglich. MATHEMATICA unterscheidet bei Variablennamen zwischen GrofSund Kleinschreibung. Jeder Variablenname muB mit einem Buch-
staben beginnen. MATIAB
MATLAB gestattet die Darstellung indizierter Variablen Xk bzw. xik in der Form x(k) bzw. xCi,k)
84
13 Zahlen, Va ria bien, integrierte Konstanten und Funktionen
deren Verwendung ausfUhrlicher bei Matrizen (siehe Abschn.20.2) erlautert wird. Des weiteren sind in MATIAB Variablennamen zugelassen, die aus mehreren Zeichen (Buchstaben und Ziffern) bestehen, so daB fUr indizierte Variablen auch die Darstellung xk bzw. xik mbglich ist. MATLAB unterscheidet bei Variablennamen zwischen GrojS- und Kleinschreibung. Jeder Variablenname muB mit einem Buchstaben
beginnen. MuPAD
MuPAD gestattet die Darstellung indizierter Variablen xk bzw. xik in der Form x[kl bzw. x[i,kl deren Verwendung ausfUhrlicher bei Matrizen (siehe Abschn.20.2) erlautert wird. Des weiteren sind in MuP AD Variablennamen zugelassen, die aus mehreren Zeichen (Buchstaben und Ziffern) bestehen, so daB fUr indizierte Variablen auch die Darstellung xk bzw. xik mbglich ist. MuP AD unterscheidet bei Variablennamen zwischen GrojS- und Kleinschreibung. Jeder Variablenname muB mit einem Buchstaben
beginnen.
•
Bei der Festlegung von Variablennamen sollte man in allen Systemen zusatzlich beach ten, daB keine Namen integrierter Funktionen oder vordefinierter Konstanten verwendet werden, da diese dann nicht mehr verfUgbar sind.
•
Variablen kbnnen in den Systemen durch Zuweisungsoperatoren Zahlen oder Konstanten zugewiesen werden (siehe Abschn.15.1).
•
13.3
Integrierte Konstanten Den Systemen sind eine Reihe von KonstanteniGrojSen bekannt, von denen wir im folgenden nur die haufig benbtigten angeben: • 1t = 3.14159 ... * AXIOM: %pi * DERIVE: pi oder Symbol1t aus Dialogbox Author Expression * MACSYMA: %pi * MAPLE: Pi * MATHEMATICA: Pi oder Symbol1t aus Operat01palette
85
13.4 Integrierte Funktionen
Basiclnput
*
MATHCAD: 1t aus Operatorpalette Nr.l (Arithmetikpalette) MATLAB: pi * MuPAD: PI e = 2.718281...
*
•
* * *
* * * *
•
ゥ]セ@
*
AXIOM:%e
DERIVE: e oder Symbol aus Dialogbox Author Expression MACSYMA: %e MAPLE: exp (1) MATHCAD: e MATHEMATICA: E MATLAB: exp (1) MuPAD: E
* *
AXIOM: %i
*
MAPLE: I
*
DERIVE: i oder Symbol aus Dialogbox Author Expression MACSYMA: %i
* MATHCAD: 1i * MATHEMATICA:
* * •
00
* *
I
MATLAB: i oder j MuPAD: I AXIOM: %infinity
DERIVE: inf oder Symbol 00 aus Dialogbox Author Expression * MACSYMA: inf * MAPLE: infinity * MATHCAD: 00 aus Operatorpalette Nr.l (Arithmetikpalette) * MATHEMATICA: Infinity oder Symbol 00 aus der Operatorpalette Basiclnput * MATLAB: inf * MuPAD: infinity
13.4
Integrierte Funktionen Den Systemen sind eine Reihe von Funktionen bekannt, von denen wir am haufigsten die sogenannten elementaren Funktionen benbtigen. Elementare Funktionen werden durch folgende Bezeichnungen eingegeben: • Quadratwurzel: sqrt
86
13 Zahlen, Varia bien, integrierte Konstanten und Funktionen
• • • • •
e-Funktion: exp Logarithmusfunktion: In oder log Betrag: abs trigonometrische Funktionen: sin, cos, tan, cot, arcsin, ... (bei DERIVE, MATHCAD, MATLAB und MuPAD asin, ... ) hyperbolische Funktionen: sinh, cosh, tanh, coth, arcsinh, ... (bei DERIVE, MATHCAD, MATLAB und MuPAD asinh, ... )
Bei MATHEMATICA muB der erste Buchstabe des Funktionsnamens ein Groflbuchstabe sein und bei Umkehrfunktionen noch der Buchstabe der Funktion, z.B. ArcTan.
•
Das Argument der Funktionen ist in den Systemen bis auf MATHEMATICA in runde Klammern einzuschlieBen, wahrend MATHEMATICA hierfUr eckige Klammern verwendet.
•
AXIOM
DERIVE
MACSYMA
MAPLE
MATHCAD
Falls Unklarheiten wegen der Schreibweise der Funktionen bestehen, so kann man die Hi!fen in den einzelnen Systemen auf folgende Art und Weise konsultieren: Durch aエセヲイオ・ョ@ des AXIOM Browsers oder AXIOM User Guides aus dem Startfenster. DERIVE liefert nach Aktivienmg der Menufolge Help:::} Index eine Dialogbox, aus der man die Schreibweise der gesuchten Funktion entnehmen kann. MACSYMA liefert nach Aktivierung der Menufolge Help:::} Search... eine Dialogbox, aus der man die Schreibweise der gesuchten Funktion entnehmen kann. MAPLE liefert nach Aktivienmg der Menufolge Help:::} Topic Search ... eine Dialogbox, aus der man die Schreibweise der gesuchten Funktion entnehmen kann. MATHCAD liefert nach Aktivierung der Menufolge Math:::} Choose Function... oder durch Anklicken von
セ@
in der Symbolleiste eine Dialogbox, aus der man die Schreibweise der gesuchten Funktion entnehmen und durch Mausklick an der durch den Kursor markierten Stelle im Arbeitsfenster ein:!lJgen kann.
13.4 Integrierte Funktionen
MATHEMATICA
MATIAB
MuPAD
87
MATHEMATICA liefert nach Aktivierung der Menufolge Help => Help ... eine Dialogbox, in der man durch Anklicken von Mathematical Functions in der danebenliegenden Spalte die Liste der integrierten Funktionen erhalt. Durch Anklicken von Elementary Functions in dieser Spalte kann man in einer weiteren Spalte die Schreibweise der elementaren Funktionen entnehmen. Klickt man hier die gewiinschte Funktion an, so erhalt man tiber sie ausfuhrliche Eriauterungen. MATLAB liefert nach Aktivierung der Menilfolge Help => Help Window ... eine Dialogbox, aus der man die Schreibweise der gesuchten Funktion entnehmen kann. MuPAD liefert nach Aktivienmg der Men/J,jolge Help => Browse Manual... eine Dialogbox, aus der man die Schreibweise der gesuchten Funktion entnehmen kann .
•
Neben elementaren Funktionen sind in die Systeme weitere mathematische Funktionen Cu.a. hahere Funktionen, Rundungsfunktionen, Minimum/Maximum von n Zahlen) integriert, tiber die man ebenfalls aus den Hilfen der Systeme Informationen erhalten kann .
•
88
14
Datentypen, Dateneingabe und -ausgabe
Bei der Arbeit mit den Systemen ist es vorteilhaft, mehrere GrojSen als eine Gesamtheit zu betrachten und hiermit zu rechnen wie mit einem einzigen Objekt. Diese GraBen stellen meistens Zahlen, Variablen, Ausdn"icke oder Gleichungen dar und werden im folgenden zusammenfassend als Daten bezeichnet. In den folgenden Abschnitten befassen wir uns mit der Darstellung von Daten, d.h. mit Datentypen, und mit der Ein- und Ausgabe von Daten in den einzelnen Systemen.
14.1
Datentypen Bei Problemen der Ingenieunnathematik spie1en Daten eine groBe Rolle, da in mathematischen Modellen aus Technik und Naturwissenschaften Zahlen, Tabellen, Matrizen und Gleichungen auftreten. Bis auf MATLAB, das Felder benutzt, verwenden die Systeme hauptsachlich Listen zur Darstellung von Daten, wobei diese Felder und Listen unter Verwendung von eckigen oder geschweiften Klammern gebildet werden. MACSYMA, MAPLE und MuPAD verwenden neben Listen weitere Datentypen wie Felder, Folgen, Mengen und Tabellen. Da MATHCAD aIle Rechnungen in der mathematischen Standardnotation durchfuhrt, benatigt man hier keine Datentypen.
•
Die Systeme stellen Rechenoperationen fur vorhandene d。エ・ョセケー@ zur Verfugung, urn mit anfallenden Daten einfacher rechnen zu kannen, wie wir im Verlaufe dieses Buches sehen Cab Kap.16).
•
Die in den einzelnen Systemen zugelassenen Datentypen werden im folgenden kurz vorgestellt und an Beispielen erlautert: • Listen haben in den einzelnen Systemen folgende Fonn: * AXIOM: [ aj, ... ,a n 1 H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
89
14.1 Datentypen
*
DERIVE: [ al, ... ,a n 1 MACSYMA: [ al, ... ,a n 1 MAPLE: [ al, ... ,a n 1 MATHEMATICA: {al, ... ,a n I [ al,···,a n 1 * MuPAD: d.h., AXIOM, MACSYMA, DERIVE, MAPLE und MuPAD verwenden eckige und MATHEMATICA geschweifte Klammern zur Darstellung von Listen.
* * *
Der d。エ・ョセケー@ der Liste findet u.a. zur Darstellllng von Matrizen in den Systemen Anwendung: * DERIVE und MATHEMATICA definieren Matrizen direkt als geschachtelte Listen Csiehe Beispiel 14.1 und Abschn.20.2). * AXIOM, MACSYMA, MAPLE und MuP AD benbtigen Funktionen zur Definition von Matrizen, die jedoch als Argumente Listen verwenden Csiehe Abschn.20.2) .
•
MATH CAD benbtigt keine Listen, urn Matrizen darzustellen. Hier werden Matrizen in der lj,blichen mathematischen Schreibweise eingegeben und verwendet. Das gleiche gilt zusatzlich fUr MATHEMATICA, wenn man die Operatorpalette BasicCalculations verwendet Csiehe Kap.20) .
•
Bei allen Systemen kbnnen die Listenelemente al, ... ,a n wieder Listen sein, d.h., Listen lassen sich schachteln Csiehe Beispiel 14.1) .
•
Beispiel 14.1: DERIVE und MATHEMATICA schreiben Matrizen vom Typ Cm,n)
A =
{Zセ@
:::j
amI a m2 a mn direkt als geschachtelte Liste in der Form Csiehe Abschn.20.2) * [[ all , ... ,a In 1,... , [ amI , ... ,a mn 11 DERIVE * {{ all , ... ,a In 1, ... , { aml,···,a mn II MATHEMATICA
90
14 Datentypen, Dateneingabe und -ausgabe
d.h., die Listenelemente sind die Zeilenvektoren der Matrix A, die ihrerseits die Elemente einer Zeile zu einer Liste zusammenfassen.
•
AXIOM, DERIVE, MACSYMA und MATHEMATICA verwenden Listen zusatzlich filr die Eingabe von Gleichungen (siehe Kap.23), wahrend MAPLE und MuPAD hierfiir Mengen verwenden.
•
Der mogliche Zugriff auf einzelne Listenelemente in AXIOM, MACSYMA, MAPLE, MATHEMATICA und MuPAD ist aus dem folgenden Beispiel 14.2 ersichtlich. Bei DERIVE konnte keine Zugriffsmoglichkeit auf einzelne Listenelemente ermittelt werden.
•
Beispiel 14.2: a) AXIOM gestattet ZugriJfe auf Listenelemente in folgender Form: al)Filr die definierte Liste liste1:= [ 2 , 1 , 7 , 2 , 4 , 5 , 4 , 1 , 2 ] geschieht der ZugriJfauf das i-te Element mittels liste1(i) a2)Filr die definierte geschachtelte Liste liste2 := [ [ 2 , 1 , 3 ] , [ 4 , 3 , 7 ] , [ 6 , 1 , 5 ] ] geschieht der Zugriffmittels liste2(i,k), so liefert z.B. liste2(2,3) die Zahl 7 b) MACSYMA gestattet ZugriJfe auf Listenelemente in folgender Form: bl)Filr die definierte Liste liste1: [ 2 , 1 , 7 , 2 , 4 , 5 , 4 , 1 , 2 ] geschieht der Zugriffauf das i-te Element mittels liste1[i] b2)Filr die definierte geschachtelte Liste liste2: [ [ 2 , 1 , 3 ] , [ 4 , 3 , 7 ] , [ 6 , 1 , 5 ]] geschieht der ZugriJf mittels liste2 [ i ][ k ], so liefert Z.E. liste2 [ 2 ][ 3 ] die Zahl 7 c) MAPLE gestattet ZugriJfe auf Listenelemente in folgender Form: cl)Filr die definierte Liste liste1:= [ 2 , 1 , 7 , 2 , 4 , 5 , 4 , 1 , 2 ] ; geschieht der Zugriffauf das i-te Element mittels liste1[il;
14.1 Datentypen
91
c2)Fur die definierte geschachtelte Liste liste2 := [ [ 2 , 1 , 3 1, [ 4 , 3 , 7 1 , [ 6 , 1 , 5 11; geschieht der Zugriff mittels liste2 [ i , k 1 ; d) MATHEMATICA gestattet Zugriffe auf Listenelemente in folgender Form: d1)Fur die definierte Liste ャゥセ・サRLQWTUス@
geschieht der Zugriff auf das i-te Element mittels listel [ [ i 11 d2)Fur die als Liste A:= {{ 2,1,3}, {4, 3,7}, {6, 1,5}} definierte dreireihige Matrix A geschieht der Zugriff auf das Element a ik mittels A [ [ i , k 11 e) MuPAD gestattet Zugriffe auf Listenelemente in folgender Form: e1)Fur die definierte Liste listel:= [ 2 , 1 , 7 , 2 , 4 , 5 , 4 , 1 , 2 1; geschieht der Zugriffauf das i-te Element mittels listel [il; e2)Fur die definierte geschachtelte Liste liste2 := [ [ 2 , 1 , 3 1 , [ 4 , 3 , 7 1 , [ 6 , 1 , 5 11; geschieht der Zugriff mittels liste2 [ i l[ k 1 ;
•
•
Foigen werden nur von MAPLE venvendet, und zwar zur Darstellung endlicher mathematischer Foigen. Die Erzeugung von Foigen und den Zugriff auf Foigenelemente zeigen wir fUr MAPLE im folgenden Beispiel 14.3. Beispiel 14.3: a) Fur die definierte Foige folge1 := 1 , 3 , 2 , 5 , 4 , 8 ; geschieht in MAPLE der Zugriff auf das i-te Folgenelement mittels folgel [ i 1 ; b) Fur die mit dem Kommando seq definierte Folge folge2 := seq ( i , i=l .. 10 ) ; berechnet MAPLE die Foige 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 d.h., es wird die Schrittweite 1 angewandt. c) Fur die mit dem Kommando seq definierte Folge folge3 := seq ( seq ( i + k , i = 1 .. 3 ) , k = 1 .. 3 ) ; berechnet MAPLE die Folge 2 , 3 , 4 , 3 , 4 , 5 , 4 , 5 , 6
•
•
Tabellen werden von MAPLE und MuPAD venvendet.
92
14 Datentypen, Dateneingabe und -ausgabe
•
Felder benutzen MACSYMA, MAPLE, MATLAB und MuPAD. Sie werden z.B. von MATLAB zur Definition von Matrizen verwendet (siehe Beispiel 14.4 und Abschn.20.2). Beispiel 14.4: MATLAB schreibt Matrizen A vom Typ (m,n) als Feld in der Form A = [ an , ... ,a]n ; ... ; am] , ... ,a mn 1 d.h., die Zeilenvektoren der Matrix A werden nicht geschachtelt, sondern durch Semikolon getrennt. Auf das Element aik wird mittels A(i,k) zugegrifJen .
•
14.2
•
Mengen werden in MAPLE und MuPAD nicht als Listen dargesteHt, sondern haben eine gesonderte Bezeichnung mittels geschweifter Klammern. Des weiteren werden in MAPLE und MuPAD Mengen fur die Eingabe von Gleichungen verwendet (siehe Kap.23).
Dateneingabe und ·ausgabe Ein- und Ausgabe-Kommandosi-MenuJolgen fur Daten bezeichnet man in den Systemen als DateizugriffsJunktionen. Manchmal werden sie auch als Lese- und SchreibJunktionen bezeichnet. Die Ein- und Ausgabe von Daten ist fur die Ingenieurmathematik wichtig, da haufig Meflwerte (z.B. aus ProzeBsteuerungen) zu verarbeiten sind, wozu diese in das verwendete System eingegeben (eingelesen) und die erhaltenen Ergebnisse ausgegeben werden mussen.
•
Wir betrachten im folgenden ausschlieBlich Daten in ZahlenJorm (Zahlendateien) und unterscheiden zwischen unstrukturierten und strukturierten Dateien: • Bei unstrukturierten Dateien werden die Zahlen hintereinander angeordnet und durch Trennzeichenl Separatoren (Leerzeichen, Komma, Tabulator, Zeilenvorschub) getrennt. Bei Dezimalzahlen muB der Dezimalpunkt verwendet werden, da das Komma als Trennzeichen interpretiert wird. • Strukturierte Dateien unterscheiden sich nur durch die Anordnung der Zahlen von unstrukturierten Dateien. Die Zahlen mussen in strukturierter Form (MatrixJorm mit Zeilen und Spalten) angeordnet sein, d.h., in jeder Zeile muB die gleiche Anzahl von Zahlen stehen, die durch Trennzeichenl Separatoren (Leerzeichen, Komma, Tabulator) getrennt sind. Das Trennzeichen Zei-
14.2 Dateneingabe und -ausgabe
93
lenvorschub wird hier zur Kennzeichnung der Zeilen benotigt. Bei Dezimalzahlen muB der Dezimalpunkt verwendet werden, da das Komrna als Trennzeichen interpretiert wird .
•
Die Venuendung von Dateizugri.f!sJunktionen wird in den Beispielen 14.5 bis 14.11 demonstriert. Da die hier verwendeten Matrizen erst im Kap.20 eingefiihrt werden, ist bei Unklarheiten vorher dieses Kapitel durchzuarbeiten.
•
AXIOM
Die einzelnen Systeme stellen folgende Dateizugri.f!sfimktionen zur Verfiigung: AXIOM kann Dateien von/auf Diskette oder Festplatte lesen oder speichern, die im ASCII-Fonnatvorliegen und aus Zahlen bestehen, die durch Trennzeichen (Komrnas, Leerzeichen oder Zeilenumbri.iche) voneinander getrennt sind. Dafiir ist Joigende Vorgehensweise erforderlich: • Zuerst muB mit dem Kommando open folgendes Jestgelegt werden: * der PJad, * ob es sich urn eine Eingabe (input) oder Ausgabe (output) handelt, * urn we1che Zahlenarten (Integer oder Float) es sich bei der Datei handelt. • AbschlieBend erfolgt mittels der Kommandos read ! und write ! die Ein- bzw. Ausgabe der gewiinschten Datei. Die genaue Vorgehensweise ist aus Beispiel 14.5 ersichtlich. Beispiel 14.5: a) Mittels des Kommandos datei: File List Integer:= open ("A:\DATEN " , "input" ) wird die Eingabe der Datei DATEN mit ganzen Zahlen von Diskette vorbereitet. AbschlieBend liest das Kommando read! datei die sich in der Datei DATEN auf Diskette befindlichen Zahlen (1 2 3 4 5 6 7 8 9) in der Form [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 1 in das ArbeitsJenster ein. b) Mittels des Kommandos datei: File List Integer:= open ( "A:\DATEN " , "output" ) wird die Ausgabe von ganzen Zahlen in die Datei DATEN auf Diskette vorbereitet. AbschlieBend realisiert das Kommando write! ( datei , [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 1)
94
DERIVE
14 Datentypen, Dateneingabe und -ausgabe
die Speicherung der Zahlendatei [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] in die Datei DATEN auf Diskette in der Form ( 1 2 3 4 5 6 7 89) c) Mittels des Kommandos datei: File list Float := open ( "A:\DATEN " , "output" ) wird die Ausgabe von reellen Zahlen in die Datei DATEN auf Diskette vorbereitet. AbschlieEend realisiert das Kommando write! ( datei , [ 1.2 , 3.4 , 5.6 , 7.8 ] ) die Speichernng der Zahlendatei [ 1.2 , 3.4 , 5.6 , 7.8] in die Datei DATEN auf Diskette in der Form (1.2 3.4 5.6 7.8) DERIVE kann Dateien von/auf Diskette oder Festplatte lesen oder speichem, die im ASCII-Formatvorliegen und aus Zahlen bestehen, die durch Trennzeichen (Kommas, Leerzeichen oder Zeilenumbriiche) voneinander getrennt sind. Dafiir ist folgende Vorgehensweise eiforderlich: • Mittels der Menufolge File セ@ Load セ@ Data. .. IaEt sich eine auf Diskette oder Festplatte vorhandene strnkturierte oder unstrnkturierte Datei DATEN.DAT einlesen, wenn man in die erscheinende Dialogbox den Dateinamen und den entsprechenden Pfad eingibt. • Eine im Arbeitsfenster markierte Liste wird mittels der Menufolge File セ@ Save As ... in die Datei DATEN.DAT abgespeichert, wenn in der erscheinenden Dialogbox als Dateiname DATEN.DAT und der Pfad eingetragen wird. Weiterhin muE in dieser Dialogbox bei Save Expressions und bei Expressions Selected durch Mausklick angekreuzt werden. Beispiel 14.6: a) Die auf Diskette Om Laufwerk A) befindliche ASCII-Datei DATEN.DAT * von den durch Komma getrennten Zahlen 1,2,3,4,5,6,7,8,9 * von den durch Leerzeichen getrennten Zahlen 123456789 wird mit der Menufolge File セ@ Load セ@ Data... セ@ A:\DATEN.DAT in das Arbeitsfenster in der Form [ 1 2 3 4 5 6 7 8 9 ] geladen. b) Die irn Arbeitsfenster markierte Liste (Vektor) [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] wird mittels der MenUjolge File セ@ Save As ... セ@ A: \ DATEN auf Diskette im Laufwerk A in die Datei DATEN.MlH in der Form [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] abgespeichert, wenn vorher
14.2 Dateneingabe und -ausgabe
95
in der erscheinenden Dialogbox bei Save Expressions und bei Expressions Selected durch Mausklick angekreuzt werden. c) Die auf Diskette (in Laufwerk A) befindliche f01gende strukturierte ASCII-Datei DATEN.DAT von durch Komma oder Leerzeichen getrennten Zahlen der Form 1,5 15 2,6 3,7
26 bzw.
37
4,8 48 wird mitte1s der Menufolge File セ@ Load セ@ Data... セ@ A:\DATEN.DAT a1s Matrix der Form
[dl in das Arbeitsfenster eingelesen und in der Form [[1,5l,[2,6l,[3,7l,[4,8ll angezeigt. d) Die im Arbeitsfenster markierte Liste (Matrix) [[1,5l,[2,6l,[3,7J,[4,8ll wird mittels der Meniifolge File セ@ Save As ..• セ@ A: \ DATEN auf Diskette im Laufwerk A in die Datei DATEN.MTH in der Form [ [ 1 , 5 1 , [ 2 , 6 1 , [ 3 , 7 1 , [ 4 , 8 II abgespeichert, wenn vorher in der erscheinenden Dialogbox bei Save Expressions und bei Expressions Selected durch Mausklick angekreuzt werden .
•
MAPLE
MAPLE besitzt mehrere Kommandos zum Einlesen und Ausgeben von Dateien, die im ASCII-Format vorliegen. Wir behande1n im f01genden nur die beiden am haufigsten verwendeten Kommandos zur Ein- und Ausgabe von Zahlendateien: • das Lesekommando readdata ( Dateiname, Option, n ) ; liest die strukturierte Datei, deren Name a1s Dateiname eingetragen ist und die n Spalten besitzt. Die betreffende Datei muB im reinen ASCII-Formatvorliegen und die enthaltenen Zah1en mussen durch TrennzeicheniSeparatoren (Leerzeichen oder Zeilenumbruche) voneinander getrennt sein. Kommas und Semik010ns sind hier a1s Trennzeichen nicht erlaubt:
96
14 Datentypen, Dateneingabe und -ausgabe
*
•
Die genaue Vorgehensweise bei der Anwendung von readdata wird im Beispiel 14.7c) demonstriert. * 1m Argument Option kann man die Zahlenart float (Dezimalzahl) oder integer (ganze Zahl) angeben. Fehlt die Option, so werden die eingelesenen Zahlen als Deziamalzahlen (mit Dezimalpunkt) dargestellt. * Fehlt im Argument von readdata die Anzahl n der Spalten, so wird nur die erste Spalte eingelesen. * Die zu lesende Datei muB sich im Unteroerzeichnis BIN.WIN von MAPLE befinden. Das Schreibkommando writedata ( Dateiname , A ) ; speichert die im MAPLE-Arbeitsfenster definierte Matrix A in die stntkturierte ASCII-Datei unter dem bei Dateiname angegebenen Namen auf die Festplatte in das Unteroerzeichnis BIN.WIN von MAPLE: * Die genaue Vorgehensweise bei der Anwendung von writedata wird in den Beispielen 14.7a) und b) demonstriert. * Es ist zu beachten, daB Vektoren (Zeilen- oder Spaltenvektoren) immer als Spaltenvektoren abgespeichert werden.
In MAPLE wurden keine Moglichkeiten gefunden, urn direkt von / auf Diskette lesen/speichern zu konnen. Durch Probieren wurde ermittelt, daB MAPLE nur in das Unteroerzeichnis BIN.WIN abspeichert bzw. hieraus einliest.
•
Beispiel 14.7: a) Wir definieren eine dreireihige Matrix A mittels A := array ( [ [ 1 , 2 , 3 1 , [ 3 , 4 , 5 1 , [ 5 , 6 , 7 11 ) ; Die Ausgabe von MAPLE auf dem Bildschirm lautet nach dieser Zuweisung
A:=
ャセ@ セ@ セQ@
567 Diese Matrix speichem wir mittels des Kommandos writedata ( DATEN, A ) ; in die strl-lkturierte ASCII-Datei mit dem Namen DATEN auf die Festplatte in das Unteroerzeichnis BIN.WIN von MAPLE. Die Datei DATEN enthiilt die abgespeicherte Matrix in der Form
14.2 Dateneingabe und -ausgabe
97
123 345
567 wobei die Zahlen dureh Leerzeiehen getrennt sind. b) Der Spaltenvektor 1 2
a
3 4 5
und der Zeilenvektor b = ( 1 , 2 , 3 , 4 , 5 ) die man in MAPLE dureh die Zuweisungen a := [ [l] , [2] , [3] , [4] , [5]] ; bzw. b := [ 1 , 2 , 3 , 4 , 5 ] ; bildet, werden dureh das Schreibkommando writedata ( DATEN, a) ; bzw. writedata ( DATEN, b) ; in die ASCII-Datei DATEN in Form einer Spalte 1 2
3 4 5 im Unterverzeichnis BIN.WIN von MAPLE abgespeichert. e) Moehte man eine Datei in das MAPLE-Arbeitsfenster einlesen, so muB diese vorher in das Unterverzeichnis BIN.WIN von MAPLE gespeiehert werden. Nehmen wir an, daB sieh die strukturierte ASCII-Datei (mit drei Spalten) mit dem Namen DATEN aus Beispiel a) in diesem Unterverzeichnis befindet. Mittels des Lesekommandos A := readdata ( DATEN, integer, 3) ; wird die Datei DATEN eingelesen und A in der folgenden Form A := [ [ 1 , 2 , 3 ] , [ 3 , 4 , 5 ] , [ 5 , 6 , 7 ]] als Liste zugeordnet. Die Option integer im Argument von readdata bewirkt, daB die Zahlen als ganze Zahlen (ohne Dezimalpunkt) dargestellt werden. Moehte man, daB MAPLE die eingelesene Datei in Matrixschreibweise darstellt, so ist das Lesekommando in der Form A:= array ( readdata ( DATEN, integer, 3) ) ; einzugeben und MAPLE zeigt das Ergebnis der Zuweisung in def folgenden Matrix/orm an:
98
14 Datentypen, Dateneingabe und -ausgabe
1 2
3]
A:= [ 3 4 5 567
Verwendet man das Lesekommando in der Form A := readdata ( DATEN) ; so wird nur die erste Spalte der Matrix A in der Form A := [ 1. , 3. , 5. 1 eingelesen, wobei die Zahlen als Dezimalzahlen (mit Dezimalpunkt) dargestellt werden .
•
MATHCAD
MATHCAD besitzt von allen Systemen die umjangreichsten Moglichkeiten zur Ein- und Ausgabe von Daten (im ASCII-Format) von/auf Diskette oder Festplatte: • DateizugrijJsjunktionen gestatten in MATHCAD das Einlesen und Ausgeben von Daten (Zahlen) aus bzw. in unstrukturierte(n)/ strukturierte(n) Dateien. Unstrukturierte Dateien werden durch die Endung .DAT und strukturierte durch die Endung .PRN gekennzeichnet. • MATHCAD kann Zahlendateien lesen, die im reinen ASCII-Format vorliegen und deren Zahlen durch TrennzeicheniSeparatoren (Kommas, Leerzeichen oder Zeilenumbruche) voneinander getrennt sind. Die am haufigsten verwendeten Dateizugriffsjunktionen sind : • READ (daten) liest eine Zahl aus der unstrukturierten Datei DATEN.DAT. • WRITE (daten) schreibt eine Zahl in die unstrukturierte Datei DATEN.DAT. • APPEND (daten) jugt eine Zahl an die vorhandene unstrukturierte Datei DATEN.DAT an. • READPRN (daten) liest die strukturierte Datei DATEN.PRN in eine Matrix. Jeder Zeile bzw. Spalte der Matrix wird eine Zeile bzw. Spalte der Datei zugeordnet. • WRITEPRN (daten) schreibt eine Matrix in die strukturierte Datei DATEN.PRN. Jeder Zeile bzw. Spalte der Datei wird eine Zeile bzw. Spalte der Matrix zugeordnet. • APPENDPRN (daten)
14.2 Dateneingabe und -ausgabe
99
fugt eine Matrix an die vorhandene, strnkturierte Datei DATEN.PRN an. Jeder Zeile bzw. Spalte der Matrix wird eine neue Zeile bzw. Spalte der Datei zugeordnet. Mit den vordefinierten Variablen (Built-In Variables) PRNCOLWIDTII und PRNPRECISION aus dem Menu Math lassen sich fur die Funktion WRlTEPRN die verwendete Spaltenbreite (Standardwert 8) bzw. Stellengenauigkeit (Standardwert 4) festlegen.
•
Es ist zu beachten, daB die Dateizugriffsfunktionen in Groj3bucbstaben und die Dateinamen in Kleinbucbstaben zu schreiben sind.
•
Beim Lesen und Scbreiben von Dateien muB man naturlich wissen, wo/wohin MATHCAD die gewiinscbte Datei lesenlscbreiben kann. Ohne weitere Vorkehrungen sucht bzw. schreibt MATHCAD die Datei in das Standardverzeicbnis. Dies ist das Verzeichnis, aus dem das aktuelle MATHCAD-Dokument geladen oder in das es zuletzt gespeichert wurde. Wenn sich die Datei in einem anderen Verzeicbnis befindet, so muB man dies MATHCAD mittels der folgenden Menufolge File => Associate Filename... mitteilen, indem man in der erscheinenden Dialogbox das entsprechende Verzeicbnis einstellt und die betrachtete Datei mit Namen und Endung in das Feld Dateiname eintragt. Als Argument der Dateizugriffsfunktionen wird nur der Name der Datei (ohne Endung) verwendet, der in das Feld Mathcad variable einzutragen ist.
•
Beispiel 14.8: Fur die im folgenden verwendeten Matrizen haben wir als Startwert fur die Indiziernng den Wert 1 mittels der Menufolge Math => Built-In Variables ... => ORIGIN => 1 eingestellt und setzen voraus, daB jeweils der Standort der Datei mittels der Menufolge File => Associate Filename ... festgelegt wurde. a) Wenn die strnkturierte ASCII-Datei DATEN.PRN die Form 1 2
3 4
14 Datentypen, Dateneingabe und -ausgabe
100
5 hat, so liefert das Einlesen A:= READPRN (daten) als Ergebnis 1 2 A =
3
4
5 Fur die ASCII-Datei DATEN.PRN 1, 2 , 3 , 4 , 5 liefert das Einlesen A:= READPRN (daten) als Ergebnis A = ( 1 2 3 4 5 ) Verwendet man die Funktion READ zum Lesen von unstntkturie11en Dateien, so liefert a:= READ (daten) den Wert a=l, d.h., es wird immer nur das erste Element eingelesen. b) Wenn die strnkturierte ASCII-Datei DATEN.PRN die Form 1 23
345 567 hat, so liefert das Einlesen A:= READPRN (daten) 123 A
=
3 4 5
567 Befindet sich die Matrix A im MATHCAD-Arbeitsfenster, so liefert das Schreiben WRlTEPRN (daten) := A die strukturierte ASCIIDatei DATEN.PRN in der folgenden Form: 123
345 567
•
MATHEMATICA besitzt mehrere Kommandos zum Einlesen und MATHEMAAusgeben von ASCII-Dateien von/auf Diskette oder Festplatte. TICA Wir behandeln im folgenden nur die beiden am haufigsten verwendeten Kommandos zur Ein- und Ausgabe von Zahlendateien: • das Lesekommando ReadList [ "Dateiname" , Number, Optionen
1
liest die strnkturierte Datei, deren Name als Dateiname einzutragen ist: * Die betreffende Datei muB im reinen ASCII-Format vorliegen und die enthaltenen Zahlen mussen durch Trennzeichen / Separatoren (Leerzeichen oder Zeilenumbruche) voneinander
14.2 Dateneingabe und -ausgabe
•
101
getrennt sein. Kommas und Semikolons sind als Trennzeiehen nicht erlaubt. * Das Argument Number muB unbedingt angegeben werden, damit MATHEMATICA erkennt, daB es sich urn eine Zahlendatei handelt. * 1m Argument Optionen kann man mittels RecordLists->Tnte das zeilenweise Einlesen (d.h. als Matrix) der Datei veranlassen. Fehlt diese Option, so wird die Matrixstntktur der einzulesenden Datei nicht beibehalten. Die eingelesenen Zahlen werden alle nacheinander in einem Vektor (Liste) angeordnet (siehe Beispiel 14.9a). * Wenn sieh die zu lesende Datei nicht im Hauptverzeichnis von MATHEMATICA befindet, muB im Argument "Dateiname" das Verzeichnis mit angegeben werden. So liest Z.B. "A:\DATEN.ASC" die Zahlendatei DATEN.ASC von der Diskette im Laufwerk A ein. * Die genaue Vorgehensweise bei der Anwendung von ReadList wird im Beispiel 14.9a) demonstriert. Die Schreibkommandofolge stream = OpenWrite [ "Dateiname" 1; Write [ stream, A 1 speichert die im MATHEMATICA-Arbeitsfenster definierte Matrix A in die stntkturierte ASCII-Datei unter dem bei "Dateiname" im Kommando OpenWrite angegebenen Namen auf die Festplatte in das Hauptverzeichnis von MATHEMATICA: * Falls man eine zu speiehernde Datei nicht ins Hauptverzeichnis von MATHEMATICA speichern moehte, muB im Argument "Dateiname" des Kommandos OpenWrite das Verzeichnis mit angegeben werden: So speichert z.B. "A:\DATEN.ASC" die gegebene Zahlendatei unter dem Namen DATEN.ASC auf die Diskette im Laufwerk A.
*
Es ist zu beaehten, daB Vektoren (Zeilen- oder Spaltenvektoren) immer als Spaltenvektoren abgespeichert werden. * Die genaue Vorgehensweise bei der Anwendung von Write wird im Beispiel 14.9b) demonstriert. Beispiei14.9: a) In der stntkturierten ASCII-Datei MATRIX.ASC befinden sieh die dureh Leerzeiehen getrennten Zahlen einer Matrix in drei Zeilen (dureh Zeilenweehsel getrennt) in der Form
14 Datentypen, Dateneingabe und -ausgabe
102
123 456 789 Diese Datei wird mittels des Lesekommandos * A = ReadList ["MATRIX.ASC" , Number] eingelesen und A wird die folgende Liste zugewiesen { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,91 d.h., die Matrixstruktur der einzulesenden Datei wird nicht beibehalten. Die eingelesenen Zahlen werden aIle nacheinander in einem Vektor (Liste) angeordnet. * A = ReadList [ "MATRIX.ASC" , Number, r・」ッイ、lゥウエセ@ True] eingelesen und A wird die folgende Liste zugewiesen {{1,2,31,{4,5,61,{7,8,911 d.h., durch die Option RecordLists->Truewird die eingelesene Datei A als Matrix (geschachtelte Liste) zugewiesen. b) Fur die Abspeicherung einer im MATHEMATICA-Arbeitsfenster befindlichen Matrix auf Diskette oder Festplatte gibt es zwei M6glichkeiten: I. Abspeicherung als Liste Die im MATHEMATICA-Arbeits/enster A mittels A={{1,2,31,{4,5,61,{7,8,911 zugewiesene Matrix
H セ@ セ@ セ}@
789 wird mittels der Schreibkommand%lge stream = OpenWrite ["A:\MATRIX.ASC" ]; Write [stream, A] auf die Diskette im Laufwerk A in der folgenden Listen/orm gespeichert { { 1 , 2 , 31 , { 4 , 5 , 6 1 , { 7 , 8 , 9 1 1 II. Abspeicherung als strukturierte Datei (Matrix/orm) Die im MATHEMATICA-Arbeits/enster A mittels A = { { 1 , 2 , 3 1 , { 4 , 5 , 6 1 , { 7 , 8 , 9 1 1 IIMatrixForm zugewiesene Matrix
H セ@ セ@ セ}@
789
wird mittels der Schreibkommandofolge stream = OpenWrite ["A:\MATRIX.ASC"]; SetOptions [ stream, FormatType セ@ OutputForm ] ;
14.2 Dateneingabe und -ausgabe
103
Write [ stream, A 1 auf die Diskette im Laufwerk A in der folgenden Matrix/orm
gespeichert 123 456
789 d.h. als strukturierte ASCII-Datei.
•
MATIAB
MATLAB kann Dateien von/auf Diskette oder Festplatte lesen oder speichem, die im ASCII-Formatvorliegen und aus Zahlen bestehen, die durch Trennzeichen (Kommas, Leerzeichen oder ZeilenumbIiiche) voneinander getrennt sind. DafUr werden die /olgenden Kommandos zur VerfUgung gestellt: * load zum Einlesen * save zum Abspeichem Die genaue Vorgehensweise ist aus Beispiel 14.10 ersichtlich. Beispiel 14.10: a) Fur die auf Diskette befindliche ASCII-Datei DATEN.DAT 1 2345 liefert das Einlesen load A:\ DATEN.DAT -ascii fUr die Datei DATEN die Form 1 2 3 4 5, die nach Eingabe von DATEN im Arbeitsfenster angezeigt wird. b) Das Feld f = [ 1 , 2 ; 3 , 4 1 wird mittels save A:\DATEN.DAT f -ascii als ASCII-Datei auf die Diskette im Laufwerk A gespeichert und mittels load A:\DATEN.DAT -ascii wieder eingelesen, wobei die Datei DATEN in der Form
1 2
3 4 nach Eingabe von DATEN im Arbeitsfenster angezeigt wird .
•
MuPAD
MuPAD kann Dateien von/auf Diskette oder Festplatte lesen oder speichem, die im ASCII-Formatvorliegen und aus Zahlen bestehen, die durch Trennzeichen (Kommas, Leerzeichen oder ZeilenumbIiiche) voneinander getrennt sind. DafUr werden die /olgenden Kommandos zur VerfUgung gestellt: * finput zum Einlesen * fprint zum Abspeichem Die genaue Vorgehensweise ist aus Beispiel 14.11 ersichtlich. Beispiel 14.11: a) Fur die auf Diskette befindliche ASCII-Datei DATEN.DAT
14 Datentypen, Dateneingabe und -ausgabe
104
1 2 3 4 5 liefert das Einlesen mittels * finput (" A: DATEN.DAT") den Wert 1, d.h., hier wird nur der erste Wert der Datei eingelesen. * finput ( " A: DATEN.DAT ", c1 , c2 , c3 , c4 , c5 ) : c1 , c2 , c3 , c4 , c5 ; aIle Werte in der Form 1 , 2 , 3 , 4 , 5 b) Die geschachtelte Liste liste:= [ [ 1 , 21 , [ 3 , 411 ; wird mittels fprint ( "A:DATEN.DAT ", liste) ; auf Diskette abgespeichert und mittels nnput ( "A:DATEN.DAT" ) ; wieder eingelesen.
•
Es wird dem Leser empfohlen, mit dem gegebenen Kommandos zur Ein- und Ausgabe zu experimentieren, da nicht immer die gewiinschten Resultate erzielt werden. Dabei soIl ten auch die in den Systemen enthaltenen Hilfen und Beispiele herangezogen werden .
•
105
15
Programmierung innerhalb der Systeme
Manchmal ist es erforderlich, eigene Programme zu schreiben, damit man diejenigen Probleme losen kann, fur die keine passenden Kommandos in den vorhandenen Systemen gefunden wurden. In den Systemen werden Programme zu bestimmten Problemstellungen auch als Pakete (Packages), Zusatzdateien, Dokumente, Toolboxen ... bezeichnet. 1m folgenden geben wir eine Einfi"ihrung in die urnfangreichen Programmiermoglichkeiten im Rahmen der Systeme, die es dem Anwender ermbglicht, selbst Programme zu schreiben. Eine urnfassende Behandlung der Problematik ist jedoch im Rahmen dieses Buches nicht mbglich. Hierfur muB auf die Literatur (siehe [8),[16),[17),[20]) und die Handbucher verwiesen werden. Urn ahnliche Programme schreiben zu kbnnen, wie man es von den Programmiersprachen BASIC, C, FORTRAN und PASCAL gewbhnt ist Cprozedurale Programmierung), benbtigt man
* Zuweisungen (Zuordnungen)
* *
Schleifen Verzweigungen Diese Programmierwerkzeuge findet man in den verwendeten Systemen, wie wir im Verlaufe dieses Kapiteis sehen.
Die mit der prozeduralen Programmierung in den Systemen erstellten Programme sind nicht die schnellsten und effektivsten. Deshalb werden neben der prozeduralen Programmierung in den meisten Systemen weitergehende Programmiermoglichkeiten geboten, wie
Listenverarbeitung, !unktionale, objektorientierte und regelbasierte Programmierung, die das Erstellen effektiver und schneller Programme gestatten. Dies sind aber Aufgaben fUr den fortgeschrittenen Programmierer, der Anregungen in der Literatur und den Handbuchern findet.
•
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
106
15 Programmierung innerhalb der Systeme
Man bezeichnet AXIOM, MACSYMA, MAPLE und MATHEMATICA nicht zu Unrecht als Programmiersprachen, die ohne weiteres mit modernen Programmiersprachen wie BASIC, C, FORTRAN, PASCAL, ... konkurrieren kbnnen. Wenn mathematische Aufgaben zu Ibsen sind, besitzen die Systeme sogar Vorteile gegenuber den Programmiersprachen , da die gesamte Palette der integrierten Kommandos verwendet werden kann.
•
Wir beschranken uns im folgenden auf die prozedurale Programmierung im Rahmen der Systeme, da diese zum Schreiben einfacher Programme ausreicht. Wenn man hiermit genugend Erfahrung gewonnen hat, sollten dann die weiterfiihrenden Programmiermbglichkeiten genutzt werden.
•
Kenntnisse in der Programmierung innerhalb der Systeme sind auch nutzlich, wenn man sich die zahlreichen vorhandenen Programme ansehen will, um diese eventuell den eigenen Erfordernissen anzupassen.
•
Wer schon Kenntnisse in einer Programmiersprache wie BASIC, C, FORTRAN, PASCAL, .... hat, kann ohne groBe Muhe mittels der Sprachen der systeme eigene Programme erstellen. Dies liegt darin begrundet, daB in den systemen ebenfalls die in den Programmiersprachen verwendeten Zuweisungen, Schleifen, Verzweigungen und Unterprogramme bekannt sind, die zur Erstellung einfacher Programme ausreichen.
•
Die Programmiersprachen der einzelnen systeme unterscheiden sich voneinander. Erste Unterschiede sind schon aus den im folgenden gegebenen Befehlen zur prozeduralen Programmierung ersichtlich. Beim tieferen Eindringen in die Programmiersprachen ergeben sich weitere Unterschiede, so daB erstellte Programme nicht austauschbar sind. Einige systeme gestatten das Einbinden von C-Programmen.
•
1m folgenden mbchten wir erste Vorstellungen vermitteln, welche Mbglichkeiten sich durch Programmierung in den systemen ergeben:
15.1 Zuweisungen
* * * 15.1
107
Dazu beschaftigen wir uns zuerst im Abschn.15.1 mit Zuweisungen, die jeder Anwender beherrschen sollte, da diese die Arbeit mit den Systemen wesentlich erleichtern. In den daran anschlieBenden Abschn.15.2 und 15.3 besprechen wir die grundlegenden Befehle zu Verzweigungen und Schleifen, urn einfache Programme schreiben zu kbnnen. 1m letzten Abschn.15.4 geben wir Hinweise zur Erstellung von einfachen Programmen und geben ein einfaches Beispiel.
Zuweisungen Zuweisungen von Werten a (Zahl oder Konstante) an Variable v benbtigt man haufig bei durchzuftihrenden Rechnungen und werden durch folgende Zuweisungsoperatoren realisiert : * In AXIOM, DERIVE, MAPLE und MuPAD durch den Zuweisungsoperator :=, d.h. v:= a * MACSYMA verwendet als Zuweisungsoperator nur den Doppelpunkt : , d.h. v : a * Bei MATHCAD unterscheidet man zwischen lokalen und globalen Zuweisungen, die durch die Operatoren
E1
bzw.
0
gebildet werden. Durch diese beiden verschiedenen Zuweisungsarten lassen sich analog zu den Programmiersprachen lokale und globale VariabIen definieren. MATHCAD analysiert bei einer Abarbeitung eines Dokuments (von links oben nach rechts unten) zuerst alle globalen Variablen. Erst danach werden die vorhandenen Ausdrucke berechnet. Bei numerischen Rechnungen mussen alle Variablen und Parameter vorher durch eine dieser Zuweisungen definiert sein. Nichtdefinierte Variablen werden invertiert (durch schwarzes Kastchen) dargestellt. Falls bei der Erstellung eines Programms die Programmienmgspalette (Operatorpalette Nr.6) verwendet wird, so verlangt MATHCAD hier den Zuweisungsoperator(siehe Beispiel 15.13)
I
+-
I.
15 Programmierung innerhalb der Systeme
108
*
Bei MATHEMATICA existieren drei Zuweisungsoperatoren: I.
.-
II.
=
-+ Da das Gleichheitszeichen durch == (doppeltes Gleichheitszeichen) dargestellt wird, steht der Operator = neben := ebenfalls fUr Zuweisungen zur VerfUgung. Der Unterschied zwischen den beiden operatoren = und := besteht darin, daB der Operator = den zugewiesenen Ausdn.tck sofort berechnet und zuweist, wahrend beim Operator:= der Ausdruck nur formal zugewiesen und erst bei weiterer Verwendung berechnet wird (verzogerte Zuweisunfi). Hinzu kommt noch der Zuweisungsoperator -+, der mittels und > eingegeben wird. Dieser Operator wird beispielsweise bei der Zuweisung von Optionen oder in Kombinationen mit anderen Kommandos eingesetzt. Treten bei der Verwendung der Operatoren = oder := Probleme auf, so sollte man es mit dem jeweils anderen versuchen. MATLAB verwendet als Zuweisungsoperator das Gleichheitszeichen =, d.h. v = a , wahrend fUr die Gleichheit das doppelte Gleichheitszeichen == benutzt wird. III.
*
Die eben behandelten Zuweisungsoperatoren finden in den Systemen auch bei Funktionsdefinitionen Anwendung (siehe Abschn.21.3) .
•
15.2
AXIOM
Verzweigungen Verzweigungen werden meistens mit dem Befehl if gebildet und Hefern in Abhangigkeit von Bedingungen verschiedene Resultate (bedingte Anweisunfi). Die vorkommenden Bedingungen bestehen aus logischen Ausdnicken, wie zum Beispiel x セ@ y , x"# y , X < a and x >b , x セ@ c or x セ@ d wobei and fur das logische UND, or fur das logische ODER und not fUr das logische NICHT stehen (siehe Kap.16). Falls die Ungleichheitszeichen セ@ und セ@ in den Systemen nicht vorhanden sind, werden sie durch = dargestellt. Fur die Programmien.tng von Verzweigungen werden in den einzelnen Systemen folgende Befehle bereitgestellt: AXIOM reaHsiert Verzweigungen mit dem Befehl if, der die Form if Bedingung then Anweisung.j else aョキ・ゥウオセR@
15.2 Verzweigungen
109
besitzt, d.h., falls die Bedingung wahr ist, wird aョキ・ゥウオセャL@ falls sie falsch ist, aョキ・ゥウオセR@ ausgefiihrt. Die Anweisungen durfen wieder den BeJebl if enthalten, d.h., dieser kann verscbacbteltwerden. Mebrere Anweisungen sind als Liste einzugeben, d.h., durch Komma zu trennen und in [ 1einzuschlieBen. Beispiel 15.1: a) Die Bestimmung des Maximums M von drei Zablen a , b und c kann mit dem if-BeJebl folgendermaBen programmiertwerden: M:= (a, b , c ) + -> if a > b then if a > c then a else c else ifb > c then b else c Der AuJnlJder Funktion M(a,b,c) berecbnetdas Maximum. b) Es lassen sich rekursive Funktionen mit dem if -BeJebl definieren, wie die Funktion zur Berecbnung der Fakultat n! zeigt: fak ( n ) == if n = 0 then 1 else n * fak ( n - 1 )
•
DERIVE
DERIVE realisiert Verzweigungen mit dem BeJebl if, der die Form if ( Bedingung , aョキ・ゥウオセャ@ , aョキ・ゥウオセR@ , aョキ・ゥウオセSI@ besitzt, d.h., falls die Bedingung wabr ist, wird aョキ・ゥウオセャL@ falls sie Jalscb ist, aョキ・ゥウオセR@ ausgefuhrt. Kann die Giiltigkeit der Bedingung nicbt Jestgestellt werden, wird die aョキ・ゥウオセS@ ausgefiihrt. Die Anweisungen durfen wieder den BeJebl if enthalten, d.h., dieser kann verscbacbteltwerden. Mebrere Anweisungen sind als Liste einzugeben, d.h., durch Komma zu trennen und in [ 1einzuschlieBen. Beispiel 15.2: a) Die Bestimmung des Maximums M von drei Zablen a , b und c kann mit dem if-Befehl folgendermaBen programmiert werden: M ( a , b , c ) := if ( a>b , if ( a>c , a , c ) , if ( b>c , b , C ) ) Der AuJnlJder Funktion M(a,b,c) berecbnet das Maximum. b) Es lassen sich rekursive Funktionen mit dem if -BeJebl definieren, wie die Funktion zur Berecbnung der Fakultat n! zeigt: fak ( n ) := if ( n = 0 , 1 , n * fak ( n - 1 ) )
•
MACSYMA
MACSYMA realisiert Verzweigungen mit dem BeJebl if , der die
Form if Bedingung then aョキ・ゥウオセャ@ else aョキ・ゥウオセR@ besitzt, d.h., falls die Bedingung wahr ist, wird aョキ・ゥウオセャL@ falls sie falsch ist, aョキ・ゥウオセR@ ausgefiihrt. Die Anweisungen durfen wieder den BeJebl if enthalten, d.h., dieser kann verscbacbteltwerden.
15 Programmierung innerhalb der Systeme
110
Mehrere Anweisungen sind als Liste einzugeben, d.h., durch Komma zu trennen und in [ 1 einzuschlieBen. Beispie115.3: a) Die Bestimmung des Maximums M von drei Zahlen a , b und c kann mit dem if-BeJehl folgendermaBen programmiert werden: M ( a , b , c ):= if a > b then if a > c then a else c else if b > c then b else c Der AuJruJder Funktion M(a,b,c) berechnet das Maximum. b) Es lassen sich rekursive Funktionen mit dem if -BeJehl definieren, wie die Funktion zur Berechnung der Fakultat n! zeigt: fak ( n ) := if n = 0 then 1 else n * fak ( n - 1 )
•
MAPLE
MAPLE stellt fUr Verzweigungen folgende if -BeJehle bereit, die alle mit fi abgeschlossen werden mussen: * if Bedingung then Anweisungen fi ; * if Bedingung then Anweisungen_l else Anweisungen_2 fi ; * if Bedingungj then Anweisungen_l elif Bedingunf.--2 then Anweisungen_2 fi ; * if Bedingunf.--l then Anweisungen_l elif Bedingunf.--2 then Anweisungen_2 else Anweisungen_3 fi ; Die Struktur der gegebenen BeJehle ist leicht erkennbar: * Wenn die Bedingung nach if wahr ist, werden die Anweisungen nach then ausgefUhrt. * Falls else vorkommt, dann werden die danach folgenden Anweisungen ausgefUhrt, wenn die Bedingung nicht wahr ist. * Der BeJehl elif ist durch Zusammenziehen von else und if entstanden. Mehrere Anweisungen sind durch Semikolon oder Doppelpunkt zu
trennen. Beispiel 15.4: a) Die Bestimmung des Maximums M von drei Zahlen a , b und c kann mit dem if-BeJehl folgendermaBen programmiert werden: M:= (a, b , c ) -+ if a > b then if a > c then a else c fi elif b > c then b else c fi ; Der AuJruJder Funktion M(a,b,c) ; berechnet das Maximum. b) Es lassen sich rekursive Funktionen mit dem if -BeJehl definieren, wie die Funktion zur Berechnung der Fakultat n! zeigt: fak := n -+ if n = 0 then 1 else n * fak ( n - 1 ) fi ;
•
MATHCAD
MATHCAD realisiert Verzweigungen mit einem der beiden BeJehle if oder until. Wir betrachten nur if, das mittels des Operators
15.2 Verzweigungen
111
• gebildet wird. Durch Anklicken dieses Operators erscheint im Arbeitsfenster • if. Weiterhin kann man noch den Operator otherwise aus der gleichen Operatorpalette erfolgreich einsetzen. Beispiel 15.5: Bei den folgenden Beispielen benbtigt man zusatzlich den Operator Add line aus der Operatorpalette Nr.6 CProgrammierpalette), urn mehrere Programmzeilen zu erzeugen. M von drei Zahlen a , b und c a) Die Bestimmung des m。クゥュオセ@ kann mit dem if-BeJehl folgendermaBen programmiert werden:
MCa,b,c)
a
if
I: ::
b
if
i「セ。@
c
otherwise
「セ」@
Der AufnlJder Funktion MCa,b,c) berechnet das Maximum. b) Es lassen sich rekursive Funktionen mit dem if -BeJehl definieren, wie die Funktion zur Berechnung der Fakultiit n! zeigt: n . fakCn - 1) if n > 1 fakCn) := I 1 otherwise
•
MATHEMATICA
MATHEMATICA realisiert Verzweigungen mit Jolgenden BeJehlen:
*
If [ Bedingung , Anweisungen_1 , Anweisungen_2J
Die Anweisungen_l werden ausgefUhrt, wenn die Bedingung wahr ist, ansonsten die Anweisungen_2.
* Which [ b・、ゥョァオセャ@
, Anweisungen_l , b・、ゥョァオセR@ , Anweisungen_2 ,... J Die Bedingungen_i C i = 1 , 2 , ... ) werden der Reihe nach uberpruft, bis eine b・、ゥョァオセォ@ wahr ist. AnschlieBend werden die hierauf folgenden Anweisungen_k ausgefUhrt. Mehrere Anweisungen sind als Liste einzugeben, d.h., durch Kommas zu trennen und in { I einzuschlieBen.
15 Programmiernng innerhalb der Systeme
112
Beispiel 15.6: a) Die Bestimmung des Maximums M von drei Zahlen a , b und c kann mit dem if-Bf!fehl folgendermaBen programmiert werden: M [ a_ , b_ , c_ 1:= H [ a>b , H [ a>c , a , C 1 , H [ b>c , b , c 11 Der Aufrufder Funktion M[a,b,c) berechnet das Maximum. b) Es lassen sich rekursive Funktionen mit dem if -Befehl definieren, wie die Funktion zur Berechnung der Fakultat n! zeigt: fak [ n_ 1:= Which [ n == 0 , 1 , n > 0 , n * fak [ n - 1 11
•
MA11.AB
MuPAD
MATLAB stellt fUr Verzweigungen folgende if -Befehle bereit: * if Bedingung , Anweisungen , end * if Bedingung , Anweisungen_1 , else Anweisungen_2 , end * if Bedingung...1 , Anweisungen_1 , elseif Bedingung...2 , Anweisungen_2 , end * if Bedingung...1 , Anweisungen_1 , elseif Bedingung...2 , Anweisungen_2, else Anweisungen_3 , end Die Strukturder gegebenen Befehle ist leicht erkennbar: * Wenn die Bedingung nach if wahr ist, werden die Anweisungen ausgefUhrt. * Falls else vorkommt, dann werden die danach folgenden Anweisungen ausgeftihrt, wenn die Bedingung nicht wahr ist. * Der Bf!fehl elseif ist durch Zusammenziehen von else und if entstanden. Mehrere Anweisungen sind durch Kommas zu trennen. Da die Befehlsstruktur analog zu MAPLE ist, verzichten wir auf ein Beispiel. 1m Beispiel 21.8b) findet man eine Anwendung. MuPAD stellt fUr Verzweigungen folgende if -Befehle bereit: * if Bedingung then Anweisungen ; end_if ; * if Bedingung then Anweisungen_1 ; else Anweisungen_2 end_if; * if Bedingung...1 then Anweisungen_1 ; elif Bedingung...2 then Anweisungen_2; end_if ; * if Bedingung...1 then Anweisungen_1 ; elif Bedingung...2 then Anweisungen_2; else Anweisungen_3 ; end_if ; Die Strukturder gegebenen Befehle ist leicht erkennbar: * Wenn die Bedingung nach if wahr ist, werden die Anweisungen nach then ausgefUhrt. * Falls else vorkommt, dann werden die danach folgenden Anweisungen ausgeftihrt, wenn die Bedingung nicht wahr ist. * Der Befehl elif ist durch Zusammenziehen von else und if entstanden.
153 Schleifen
113
Mehrere Anweisungen sind durch Semikolon oder Doppelpunkt zu trennen. Beispiel 15.7: a) Die Bestimmung des Maximums M von drei Zahlen a , b und c kann mit dem if-Befehl folgendermaBen programmiert werden: M := func ( (if a > b then if a > c then a ; else c ; end_if ; elifb > c then b ; else c ; end_if) , a , b , c) ; Der Aufrufder Funktion M(a,b,c) ; berechnet das Maximum. b) Es lassen sich rekursive Funktionen mit dem if -Befehl definieren, wie die Funktion zur Berechnung der Fakultat n! zeigt: fak := func ( ( if n = 0 then 1 ; else n * fak ( n - 1 ) ; end_if) , n) ;
•
Weitere Beispiele fUr die Anwendung von Verzweigungen findet man im Abschn.21.3 bei der Definition von Funktionen, die sich aus mehreren Ausdrticken zusammensetzen .
•
15.3
Schleifen Schleifen (Laufanweisungen) dienen zur Wiederholung von Befehlsfolgen Schleifen werden meistens mit den Befehlen for oder while gebildet. Zwei typische Anwendungen fUr Schleifen findet man im folgenden Beispiel. Beispiel 15.8: a) Ein typisches Beispiel fUr die Anwendung einer Schleife mit vorgegebener Anzahl von Durchlaufen ist die Berechnung einer endlichen Summe, fUr die aile Systeme schon fertige Kommandos zur VerfUgung stellen (siehe Abschn.19.1). Zur Illustration der hier verwendeten Schleifenbildung berechnen wir im folgenden mit den Systemen die einfache Summe S
=
I -k1 10
k=!
7381
= -
2520
'"
2 . 928968
fUr deren Berechnung man 10 Schleifendurchhiufe benbtigt. b) Ein typisches Beispiel fUr die Anwendung von Schleifen mit unbekannter Anzahl von Durchlaufen bilden die Iterationsveifahren, von denen es in der numerischen Mathematik eine Reihe zur Lbsung verschiedener Probleme gibt.
15 Programmiernng innerhalb der Systeme
114
Als einfaches Beispiel betrachten wir im folgenden ein Iterationsverfahren zur Berechnung der Quadratwurzel Fa (a > 0) mittels xk+l =
NAGHxォKセI@ 2
xk
mit k=I,2, ...
Dieses Verfahren konvergiert, wenn man einen Startwert Xl wahlt, der gr6Ber als a/3 ist. Wir werden im folgenden den Startwert a wahlen. Bei diesem konvergenten Iterationsverfahren gestaltet sich der Abbruch mit der Genauigkeitsschranke eps einfach durch
ixセKQ@
- a I < eps
•
AXIOM
Zur Programmierung von Schleifen stellen die Systeme Jolgende BeJehle bereit: Zur Schleifenbildung stehen zwei BeJehle zur Verftigung: * for Index in Startwert .. Endwert by Schrittweite repeat Anweisungen Hier werden die Anweisungen solange ausgeftihrt, bis der Index den Endwert erreicht hat. * while Bedingung repeat Anweisungen Hier werden die Anweisungen solange ausgeftihrt, solange die Bedingung wahr ist. Wenn bei beiden Befehlen bei Anweisungen mehrere Anweisungen stehen, so sind diese als Liste (siehe Abschn.14.1) einzugeben.
•
Beispiel 15.9: a) Zur Berechnung der Summe aus Beispiel 15.8aJ kann folgende KommandoJolge verwendet werden: S := 0 ; for k in 1 .. 10 by 1 repeat S := S+ l/k ; numeric (S) b) Betrachten wir die Verwendung von Schleifen am IterationsverJahrens aus Beispiel 15.8bJ zur Berechnung der Quadratwurzel von a mit der Genauigkeit eps, wobei konkret a=2 und die Genauigkeit von 6 Stell en gewahlt wird: a := 2 ; eps := 101\(-6) ; X := a ; while abs ( xl\2 - a ) > eps repeat X := ( x + a/x )/2 ; numeric (x)
•
DERIVE
Zur Schleifenbildung kann der BeJehl iterates herangezogen werden: Die MenuJolge
15.3 Schleifen
115
Author => Expression... iterates ( f(x) , x , a ) => OK => Simplify => Approximate ... => Approximate wiederholt die Zuweisung x := f(x) solange, bis x gleich einem der vorherigen Werte wird, wobei mit x = a (Startwert) begonnen wird. Mit einem zusatzlichen vierten Argument n, d.h. mit der MenuJolge Author => Expression... iterates ( f(x) , x , a , n ) => OK => Simplify => Approximate ... => Approximate kann die Anzahl n der Wiederholungen (Iterationen) festgelegt werden. Der BeJehl iterates gibt aIle 2uweisungen auf dem Bildschirm aus, wahrend er in der Schreibweise iterate nur den letzten Wert ausgibt. Bei beiden BeJehlen existiert noch ein fiinJtes Argument. Diese Variable k bezeichnet die aktuelle Iterationsanzahl und startet mit 1. Damit lautet die MenziJolge Author => Expression... iterate ( f(x) , x , a , n , k ) => OK => Simplify => Approximate ... => Approximate fUr die allgemeine Iteration xk+l = f(xk) mit Xl =a und k=l, ... , n Die Anwendungsm6glichkeiten dieses BeJehls fUr Iterationen und wr Schleifenbildung sind aus dem folgenden Beispiel ersichtlich. Beispiel 15.10: a) 2ur Berechnung der Sllmme aus Beispiel 15.Sa) ware in DERIVE der BeJehl iterate in der Form Author => Expression... iterate ( s+ 11k , s , 0 , 10 , k ) => OK => Simplify => Approximate... => Approximate zu verwenden. Leider funktionierte der BeJehl iterate mit dem fUnften Argument nicht bei der vorliegenden Version von DERIVE, obwohl er im Handbuch dokumentiert ist. b) Das Iterationsverfahren aus Beispiel 15.Sb) zur Berechnung der QuadratwurzellaBt sich in DERIVE mittels der MenuJolge Author => Expression... iterate ( ( x + a/x )/2 , x , a ) => OK => Simplify => Approximate ... => Approximate
realisieren .
•
MACSYMA
2ur Schleifenbildung stehen zwei BeJehle zur Verfugung: * for Index: Startwert step Schrittweite thru Endwert do Anwei-
sungen Hier werden die Anweisungen solange ausgefUhrt, bis der Index den Endwert erreicht hat.
15 Programmiernng innerhalb der Systeme
116
*
for Variable: Anfangswert step Schrittweite while Bedingung do Anweisungen Hier werden die Anweisungen solange ausgeftihrt, solange die Bedingung wahr ist.
Wenn mehrere Anweisungen nacheinander stehen, so sind diese als Liste einzugeben. Falls die 5chrittweite 1 betragt, kann step weggelassen werden .
•
Beispiel 15.11: a) Zur Berechnung der Summe aus Beispiel 15.8a) kann folgende Kommandofolge verwendet werden: 5:0 for k : 1 step 1 thru 10 do 5: 5+1/k dfloat (5) b) Betrachten wir die Verwendung von Schleifen am Beispiel des Iterationsveifahrens aus Beispiel 15.8b) zur Berechnung der Quadratwurzel von a mit der Genauigkeit eps, wobei konkret a=2 und die Genauigkeit von 6 5tellen gewahlt wird : a:2 eps : 101\(-6) x:a for i : 1 while abs ( xl\2 - a ) > eps do x : ( x + a/x )/2 dfloat ex)
•
MAPLE
Zur Schleifenbildung stehen zwei Befehle zur Verftigung: * for Index from Startwert by Schrittweite to Endwert do Anweisungen od; Hier werden die Anweisungen solange ausgeftihrt, bis der Index den Endwert erreicht hat. Falls man by (d.h. die Schrittweite) oder from (d.h. den Startwert) weglaJM, wird hierfur jeweils der Wert 1 verwendet. * while Bedingung do Anweisungen od; Hier werden die Anweisungen solange ausgeftihrt, solange die Bedingung wahr ist. Wenn mehrere Anweisungen nacheinander stehen, so sind diese durch Semikolon oder Doppelpunkt zu trennen .
•
153 Schleifen
117
Beispiei15.12: a) Zur Berechnung der Summe aus Beispiel 15.8a) kann eine der folgenden Kommandofolgen verwendet werden: al) S := 0 : for k from 1 by 1 to 10 do S:= S+ 11k od evalf (S) ;
a2) S := 0: for k to 10 do S := S+l/k od: evalf(S); a3) S := 0 : k := 1 : while k eps do x:= (x + a/x)/2 od: evalf(x) ; MATHCAD
•
HcセZエ・
j@ lassen sich durch die Operatoren
und
willi
I
for
I
bilden. Durch Anklicken dieser Operatoren lassen sich while- und forSchleifen bilden. 1m Arbeitsfenster erscheinen * while I
*
fUr while-Schleifen for
I E I
fUr for-Schleifen Die Anwendung dieser beiden Schleifen wird im folgenden Beispiel demonstriert. Beispiel 15.13: a) Die Summe aus Beispiel 15.8a) kann folgendermaBen berechnet werden, wobei zusatzlich die Operatoren aus der Operatorpalette Nr.6
* ...-,AddLlne --',
zum
eゥョヲセァ・@
einer zusatzlichen Zeile
* セ@ zur Zuweisung von Werten verwendet werden: al) Unter Verwendung einer while-Schleife
I
I
15 Programmienmg innerhalb der Systeme
118 S
kf-
a
Sf-a while ks9 kf- k + 1 1
Sf-S+k
a2) Unter Verwendung einer for-Scbleife
S=
Sf-a for k
E
SE- S
1 .. 10
1
t--
k
b) Betrachten wir die Verwendung von s」「ャ・セヲョ@ am Beispiel des Iterationsveifabrens aus Beispiel 15.8bJ zur Berecbnung der Quadratwurzel von a mit der Genauigkeit E :
wunel(.a, z):=
x+-.a while
Ix
2 -
.al::>
8
wunel(2 ,10- 15 ) - 1.414213562373095 d.h., das Iterationsverfahren wird mit der Funktion wurzel (a,E) realisiert, wobei nach deren Aufruf die Eingabe des numeriscben Gleicbbeitszeicbens das Ergebnis liefert. Dieses wird konkret fur die Wurzel von 2 mit der Genauigkeit von 15 Stellen berechnet.
•
MATHEMA-
TICA
Zur Scbleifenbildung dienen die folgenden drei Befeble:
* * *
Do [ Anweisungen ,
1 Index, Startwert, Endwert, Scbrittweite} 1
Die Anweisungen werden hier solange ausgefUhrt, bis der Index den Endwert erreicht hat. While [ Bedingung , Anweisungen 1 Die Anweisungen werden hier ausgefuhrt, solange die Bedingung wahr ist. For [ Startanweisungen , Bedingung , Scbrittweitenanweisung ,
Anweisungen 1 Zuerst werden hier die Startanweisungen ausgefuhrt. AnschlieBend werden die Anweisungen solange ausgefuhrt, bis die Be-
15.3 Schleifen
119
dingung nicht mehr wahr ist, wobei bei jedem Durchlauf die Schrittweitenanweisung wirksam wird. Fur die Schrittweitenanweisung gibt es folgende Mbglichkeiten zur Schrittweitenerh6hung: * k ++ falls die Schrittweite 1 ist, falls die Schrittweite dk ist. * k + = dk Mehrere Anweisungen sind als Liste einzugeben, d.h., durch Kommas zu trennen und in { } einzuschlieBen. Beispiel 15.14: a) Zur Berechnung der Summe aus Beispiel 15.8a) bietet sich eine der folgenden Kommandofolgen an: al) For [ { S = 0 , k = 1 } , k eps , x = ( x + a/x )/2 ; end ; x
•
MuPAD
Zur Schleifenbildung stehen zwei Befehle zur Verfugung: * for Index from Startwert to Endwert step Schrittweite do Anweisungen end_for; Hier werden die Anweisungen solange ausgefuhrt, bis der Index den Endwert erreicht hat. * while Bedingung do Anweisungen end_while; Hier werden die Anweisungen solange ausgefuhrt, solange die Bedingung wahr ist. Wenn mehrere Anweisungen nacheinander stehen, so sind diese durch Semikolon oder Doppelpunkt zu trennen .
•
Beispiel 15.16: a) Zur Berechnung der Summe aus Beispiel 15.8aJ kann folgende Kommandofolge verwendet werden: S := 0 : for k from 1 to 10 step 1 do S:= S + 11k endjor : float (S) ; b) Betrachten wir die Verwendung von Schleifen am Beispiel des Iterationsvetfahrens aus Beispiel 15.8bJ zur Berechnung der Quadratwurzel von a mit der Genauigkeit eps, wobei konkret a=2 und die Genauigkeit von 6 Stellen gewahlt wird: a := 2 : eps := 10/\(-6) : x := a : while abs ( x/\2 - a ) > eps do x := ( x + a/x )/2 end_while: float (x) ;
•
15.4
Erstellung einfacher Programme Mit den in den Abschn.15.1-15.3 besprochenen Programmierelemen ten lassen sich Programme zur L6sung komplexerer Probleme der Ingenieurmathematik im Rahmen der Systeme schreiben. Diese Programme heiBen * Zusatzdateien (Hiljsdateien) bei DERIVE, * Zusatzpakete (englisch: Packages) bei AXIOM, MAPLE und MATIiEMATICA,
15.4 Erstellung einfacher Programme
* *
121
Dokumente/ Elektronische Bl'icher (englisch: Documents, Electronic Books) bei MATHCAD, Toolboxen bei MATLAB.
Zu verschiedenen Gebieten der Ingenieurmathematik, wie Differentialgleichungen, Statistik, Optimierung, wurden fUr einzelne Systeme, wie MATHCAD, MATHEMATICA und MATLAB, umfangreiche Programmpakete von professioneUen Programmierern ersteUt, die man zusatzlich kaufen kann .
•
Die Stntktur der Programme in den einzelnen Systemen unterscheidet sich naturlich. Man kann aber folgende Gemeinsamkeiten erkennen: * Programmkopf mit Programmnamen, Erldutenmgen zur Handhabung und Hilfen zu den enthalten Algorithmen, * Definition lokaler Variahler, * Programmientng der verwendeten Algorithmen mittels der enthaltenen Programmiersprache und vorhandener Kommandos, wobei zusatzlich C-Programme eingebunden werden kbnnen. * Programmende
•
Wir kbnnen im Rahmen dieses Buches keine Hinweise zur Erstellung professionneller Programme geben. Hierzu muB auf die Handbucher und weiterfUhrende Literatur [8],[16],[17],[20] verwiesen werden. Der Einsteiger soUte seine ersten Programme in der oben gegebenen Struktur in das Arbeitsfenster seines Systems schreiben (siehe Beispiel 15.17) und dieses Arbeitsfenster in der in den Kap.4-11 beschriebenen Art und Weise abspeichern. Damit steht das Programm jederzeit zur Verfugung .
•
Wir werden abschlieBend fUr das einfache Beispiel des Newtonverfahrens zur ndhentngsweisen Bestimmung einer Lasung von Gleichungen der Form f(x) = 0, d.h. zur ndhenmgsweisen Bestimmung einer Nullstelle der Funktion f(x), mit einer gegebenen Funktion f(x) ein kleines Programm in MATHCAD und MATHEMATICA schreiben.
15 Programmierung innerhalb der Systeme
122
Fur andere Systeme sollte der Leser ebenfalls Programme fUr das Newtonveifahren und weitere numerische Veifahren schreiben, urn Eifahrungen bei der Programmierung zu sammeln. Fur MAPLE und MATHEMATICA findet man derartige Programme in [8) bzw. [72l/3 .
•
Beispiel 15.17: Das Newtonveifahren zur ndherungsweisen Bestimmung einer Nullstelle einer gegebenen Funktion f(x) ,d.h. einer L6sung der Gleichung f(x)=O , ist ein Iterationsveifahren der Gestalt f (xk) (k=I,2, ... ) xk+l = xk - f'(xk)
und ben6tigt einen Startwert Xl' Das Verfahren ist anwendbar solange f'(xk):;tO gilt. Die Konvergenzdieses Verfahren ist aber nicht gesichert. Ein hinreichendes Kriterium fur die Konvergenz des Verfahrens ist gegeben, wenn in einer Umgebung der zu berechnenden einfachen Nullstelle und auch fUr den Startwertx I folgendes gilt: f(x)· f"(x)
«
----,::--1
Bei allen Systemen mittels def Tastatur
logische Operatoren •
•
•
UND * DERIVE: 1\ ist in def Palette def Dialogbox Author Expression enthalten * AXIOM, MAPLE, MuP AD : and * MATHEMATICA : && * MATLAB: & ODER * DERIVE: v ist in def Palette def Dialogbox Author Expression enthalten * AXIOM, MAPLE, MuPAD : or * MATHEMATICA: I I * MATLAB: I NICHT * DERIVE:-,
16 Mengen und Logik
130
*
ist in clef Palette clef Dialogbox Author Expression enthalten AXIOM, MAPLE, MuPAD: not
*
MATHEMATICA:! MA1LAB:-
*
131
17
Anwendung als wissenschaftlicher Taschenrechner
Die Anwendung als Taschenrechner zahlt nicht zu den Haupteinsatzgebieten der Systeme. Hierfur kann man weiterhin den Taschenrechner benutzen. Die Taschenrechneifunktionen werden benbtigt, wenn man exakte Ergebnisse (ohne Rundungsfehler) fur die Grundrechenoperationen braucht oder im Verlauf einer Arbeitssitzung Grundrechenoperationen durchzufuhren hat: • Fur die Grundrechenarten verwenden aile Systeme die folgenden Operationssymbole: * Addition + * Subtraktion * Multiplikation * / * Division * Potenzierung 1\ * Fakultiit ! Einige Systeme lassen zusiitzliche Schreibweisen zu, so z.B. das Leerzeichen in DERIVE und MATHEMATICA fur die Multiplikation. • Fur die DurchJuhrung der Operationen gelten die ublichen Prioritiiten: * zuerst wird potenziert, * dann wird multipliziert (dividiert), * zuletzt wird addiert (subtrahiert). 1st man sich uber die ReihenJolge der Operationen nicht sicher, empfiehlt sich das Setzen zusiitzlicher Klammem. • In Dezimalzahlen verwenden die Systeme statt des Kommas den Dezimalpunkt. • Bei allen exakten Berechnungen im Rahmen der Computeralgebra ist zu beach ten, daB * bei der Computeralgebra das Grundprinzip der exakten Arithmetik gilt: So liefert z.B. die Addition..!. + 2
..!. das Ergebnis 2 3
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
6
17 Anwendung als wissenschaftlicher Taschenrechner
132
(wieder als Bruch dargesteIlt) und bei der Eingabe reeller Zahlen als Symbol wie z.E. .J2 , e und 1t erfolgt keine weitere Umformung (siehe Abschn.12.1). * aIle Systeme die M6glichkeit besitzen, mittels zusatzHcher Numerikkommandos rationale und allgemein reelle Zahlen durch Dezimalzahlen mit vorgegebener Genauigkeit anzuniihern (siehe Abschn.12.2) • Fur aIle Rechnungen steht in den Systemen die gesamte Palette der elementaren Funktionen zur Verfugung (siehe Abschn.13.4) • Die Systeme kennen wichtige Konstanten wie 1t und e (siehe Abschn.13.3). • Die Technik fur die Durchfiihrung der Rechnungen mittels der einzelnen Systemewird im Kap.12 behandelt. Beispiel 17.1: Die Berechnung des Ausdrucks
Jli KウゥョセャT@
5
V8 Mエ。ョセK・R@
3 stellt eine typische Taschenrechneifunktion dar: * Bei der exakten Berechnung mittels Computeralgebra Hefem die Systeme (hier MATHCAD) das Ergebnis
セ@
+
ウゥョHセI@
+ In(4)
3J8 - エ。ョHセI@ *
-7
+ e2
Hセ@
+
セN{コPウ@
(2 -
+ In(4))
J3 + exp(2))
d.h., es werden nur diejenigen Terme im Ausdruck berechnet, die exakt berechenbar sind. Bei der numerischen Berechnung mittels der integrierten Numerikkommandos Hefem die Systeme (hier MATHCAD) das Ergebnis als Dezimalzahl (z.B. mit der eingestellten Genauigkeit von 15 Dezimalstellen)
JU + ウゥョHセI@ 3[8 -
•
+ In( 4)
5( ) tan @セ + e2
3
=
0.690962615598092
133
18
Umformung von AusdrUcken
Die Umfonnung (Manipulation) mathematischer Ausdrilcke bildet einen Schwerpunkt in Anwendungen der Systeme. In der Ingenieunnathematik benbtigt man derartige Umfonnungen bei der Rechnung mit technischen und naturwissenschaftlichen
Fonneln. Bei mathematiscben Ausdrilcken unterscheidet man zwischen algebraischen und transzendenten Ausdrilcken: • Dnter einem algebraischen Ausdruck versteht man eine Zusammenstellung von Zahlen und Buchstaben (Variablen und Konstanten) unter Verwendung der Recbenoperationen
* * *
Addition + Subtraktion Multiplikation * * Division / * Potenzierung 1\ Beispiel 18.1: Die folgenden Ausdriicke sind algebraiscbe Ausdrilcke. a+c a) (a + c)3 b) a 3 + 3a 2c + 3ac 2 + c 3 c) a 2 - 2b + d 1 1 e) - - + - -
l+x
•
I-x
X4
-1
0---(x -1)(x + 1)
•Transzendente Ausdrilcke werden wie algebraische Ausdriicke gebildet, wobei zusatzlich Exponentialjunktionen, trigonometrische und hyperbolische Funktionen und deren Umkehrfunktionen auftreten kbnnen. Sobald eine dieser Funktionen in einem Ausdruck erscheint, wird er als transzendenter Ausdruck bezeichnet. Beispiel 18.2: Die folgenden Ausdriicke sind transzendente Ausdrilcke.
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
18 Umformung von Ausdrncken
134 a) eos(x + y) + x 2 sin x . sin Y - Y
e a +b + sine b)---tanb-eosd
lnx+e x -2
e)-----
sinx + a 2x + b
+ Algebraische AusdrUcke lassen sich • vereinfachen (kurzen, zusammenfassen) Beispiel 18.3: a2 _ b2 b) _1_ _ _ 1_ = _2_ a) =a + b a-b x -1 x + 1 x 2 -1 x 2 + 2xy +y2 x+y e) 2 2 x-y X -y
+ •
in PartialbrUche zerlegen, falls sie gebrochenrational sind, d.h., sich als Quotient zweier Polynome darstellen. Beispiel 18.4: 2x 1 1 --=--+-2 x -1 x + 1 x-I
•
potenzieren (Anwendung des binomischen Satzes: Sonderfall fur Multiplizieren) Beispiel 18.5: (a + b)4 = a 4 + 4a 3b + 6a 2b 2 + 4ab 3 + b 4
•
multiplizieren Beispiel 18.6: 1 x-I 1 a) - - . - - = - - - - x 2 -1 x+2 (x+1)(x+2)
+
+
b) (x + 1) . (x -1) = x 2
-
1
+ • faktorisieren (als inverse Operation zum Multiplizieren) Beispiel 18.7: a) x 3 + x 2 - x -1 = (x + li(x-1) b) a 3 +3a 2 b+3ab 2 +b 3 =(a+b)3
+ •
auf einen gemeinsamen Nenner bringen Beispiel 18.8: 1 1 2x+3 --+--= + x + 1 x + 2 (x + 1)(x + 2)
18.1 Vereinfachung
135
Behandeln wir zuerst in den Abschnitten 18.1-18.6 die KommandosiMeniifolgen fUr die Umformungen algebraischer Ausdriicke in den einzelnen Systemen, wobei der konkrete Ausdruck mit A bezeichnet wird.
18.1
AXIOM
DERIVE
Vereinfachung 1m folgenden betrachten wir KommandoslMeniifolgen in den einzelnen Systemen, die im Arbeitsfenster befindliche Ausdriicke A vereinfachen (siehe Beispiel 18.3, 18.9), wofUr die meisten Systeme in den KommandosiMeniifolgen die englische Bezeichnung simplify fUr vereinfachen verwenden: AXIOM vereinfachtden Ausdruck A mit dem Kommando simplify (A) DERIVE bietet zwei Moglichkeiten zur Vereinfachung des Ausdrucks A:
*
*
Die Anwendung der Meni1.folge Author::::} Expression... A ::::} Simplify Wenn sich der zu berechnende Ausdruck A bereits im Arbeitsfenster befindet, so wird er durch Mausklick markiert. Das abschlieBende Anklicken des Symbols
-
MACSYMA
MAPLE
MATHCAD
lost die Vereinfachung aus. MACSYMA vereinfacht den Ausdruck A mit dem Kommando ratsimp (A) Falls der Ausdruck damit noch nicht vollsmndig vereinfacht wurde, kann man das Kommando fullratsimp (A) heranziehen. MAPLE vereinfacht den Ausdruck A mit dem Kommando simplify (A) ; MATHCAD bietet zwei Moglichkeiten zur Vereinfachung: I. Der Ausdruck A wird eingegeben und mit einer Selektionsbox umrahmt. Danach bewirkt die Meniifolge Symbolic::::} Simplify die Vereinfachung des Ausdrucks A. II. Unter Verwendung des Schliisselworts simplify und des symbolischen Gleichheitszeichens -+ wird folgendes eingegeben: simplify
A-+ MATHEMATICA vereinfachtden Ausdruck A mit dem Kommando MATHEMASimplify [A] TICA MATLAB vereinfachtden Ausdruck A mit der Kommandofolge MATIAB syms x y ... ; simplify [A]
18 Umformung von Ausdriicken
136
MuPAD
falls der Ausdruck A von den Variablen x , y , ... abhangt. Das Kommando syms dient zur Bezeichnung der symbolischen Variabien. MuPAD vereinfacht den Ausdruck A mit dem Kommando simplify (A) ;
•
Beispiel 18.9: Der Ausdruck aus Beispiel 18.ja) wird von den Systemen mittels folgender KommandosiMenufolgen vereinfacht: * AXIOM simplify ( ( al\2 - bl\2 )I( a - b ) )
*
DERIVE
*
Author => Expression... ( al\2 - bl\2 )/( a - b ) => Simplify MACSYMA ratsimp ( ( al\2 - bl\2 )/( a - b ) )
*
MAPLE
*
simplify ( ( al\2 - bl\2 )/( a - b ) ) ; MATHCAD Unter Verwendung des SchlUsselworts simplify folgt: simplify a2 _ b2 Mセ。K「@
a-b MATHEMATICA Simplify [ ( al\2 - bl\2 )/( a - b ) 1 * MATLAB syms a b; simplify ( ( al\2 - bl\2 )/( a - b ) ) * MuPAD simplify ( ( al\2 - bl\2 )/( a - b ) ) ;
*
18.2
AXIOM
Partialbruchzerlegung Der betrachtete gebrochenrationale Ausdruck A sei eine Funktion von x, d.h. Z(x) A=A(x)= - N(x) wobei Z(x) das Zahler- und N(x) das n・ョイーッセケュ@ darstellen. 1m folgenden betrachten wir KommandoslMenufolgen in den einzelnen Systemen, die im Arbeitsfenster befindliche Ausdn"icke A(x) in Partialbnlche zerlegen (siehe Beispiele 18.4, 18.10): AXIOM bietet folgende Vorgehensweise :
18.2 Partialbruchzerlegung
137
*
DERIVE
Zuerst mulS das Nenne1polynom N(x) des Ausdrncks A(x) faktorisiert werden. * AnschlielSend zerlegt das Kommando partialFraction ( Z(x) , N(x) ) den Ausdrnck A in Partialbrnche. DERIVE liefert nach Anwendung der Menufolge Author セ@ Expression ... A(x) セ@ OK セ@ Simplify セ@ Expand... eine Dialogbox, in der man die Variablen bei Expansion Variables eintragt und Rational mit der Maus anklickt. Das abschlielSende Anklicken von Expand bewirkt die Partialbnlchzerlegung des Aus-
drncksA. MACSYMA zerlegt den Ausdruck A(x) unter Verwendung des KomMACSYMA mandos partfrac ( A(x) , x ) in Partialbrnche. MAPLE zerlegt den Ausdrnck A(x) mit dem Kommando MAPLE convert ( A(x) , parfrac , x ); in Partialbrnche. MATHCAD bewirkt mit der Meniifolge MATHCAD Symbolic セ@ Convert to Partial Fraction die Partialbrnchzerlegung des Ausdrncks A(x), nachdem der Ausdrnck A(x) eingegeben und die Variable x markiertwurden. MATHEMATICA zerlegt den Ausdnlck A(x) mit dem Kommando MATHEMAApart [ A(x) 1 in Partialbrnche. llCA MATLAB zerlegt den Ausdrnck A(x) mit dem Kommando MATIAB [ a , b , c 1= residue ( Z , N ); in Partialbrnche, wobei der Vektor Z die Koeffizienten des Zahlerpolynoms und N die Koeffizienten des Nennerpolynoms in absteigender Reihenfolge enthalt. Als Ergebnis sind in a die Konstanten der einzelnen Partialbruche, in b die Nullstellen des Nennerpolynoms und in c der konstante Teil der Entwicklung enthalten. MuP AD zerlegt den Ausdrnck A(x) mit dem Kommando MuPAD partfrac ( A(x) , x ); in Partialbrnche.
•
Da die Partialbrnchzerlegung die Nullstellen des Nennerpolynoms benbtigt, kbnnen bei allen Systemen Schwierigkeiten auftreten, wenn das Nennerpolynom komplexe und/oder nichtganzzahlige Nullstellen besitzt (siehe Abschn.23.3 und Beispiel IS. lOb)
•
Beispiel 18.10: a) Die Systeme liefem die Partialbrnchzerlegung x+2 3 1 1 1 1 x+2 1 x+2 -----------x 6 + x4 - x 2 -1 S x-I S x + 1 2 (x 2 + 1)2 4 x 2 + 1
18 Umformung von Ausdmcken
138
b) AIle Systeme scbeitern an der Partialbrncbzerlegung des einfachen Ausdrncks x+1 2 3 x - x + 2.x +1 dessen Nennerpolynom eine reelle nichtganzahlige und zwei komplexe Nullstellen besitzt.
•
18.3
AXIOM DERIVE
MACSYMA MAPLE
MATHCAD
Potenzieren 1m folgenden betrachten wir KommandoslMenufolgen in den einzelnen Systemen, die im Arbeitsfenster befindliche Ausdrncke A potenzieren (siehe Beispiele 18.5, 18.11), wofur die meisten Systeme in den KommandosiMenufolgen die engliscbe Bezeicbnung expand fur entwickeln verwenden: AXIOM potenziert den Ausdrnck A mit dem Kommando expand (A) DERIVE liefert nach Anwendung der Menufolge Author セ@ Expression... A セ@ OK セ@ Simplify セ@ Expand... eine Dialogbox, in der man die Variablen bei Expansion Variables eintragt und Rational mit der Maus anklickt. Das abschlieBende Anklicken von Expand potenziert den Ausdrnck A. MACSYMA potenziert den Ausdrnck A mit dem Kommando expand (A) MAPLE potenziert den Ausdrnck A mit dem Kommando expand(A); MATHCAD bietet zwei M6glicbkeiten zur Potenziernng eines Ausdrncks A: I. Der Ausdrnck A wird eingegeben und mit einer Selektionsbox umrabmt. AbscbliejSend wird die folgende Menufolge aktiviert: Symbolic セ@ Expand Expression II. Unter Verwendung des Scblt1sselworts expand und des symbolischen Gleicbbeitszeicbens セ@ wird folgendes eingegeben: expand A-+
MATHEMATICA MATI.AB
MATHEMATICA potenziert den Ausdrnck A mit dem Kommando Expand [A] MATLAB potenziert den Ausdrnck A mit der Kommandofolge syms x y ... ; expand (A)
18.4 Multiplikation
MuPAD
139
falls der Ausdrnck A von den Variablen x , y , ... abhangt. Das Kommando syms dient zur Bezeichnung der symbolischen Variabien. MuPAD potenziert den Ausdrnck A mit dem Kommando expand(A);
•
Beispiel 18.11: Die Systeme berechnen die folgende Potenz ( a + b + c i = a 2 + b 2 + c 2 + 2· (a . b + a . c + b . c)
•
18.4
AXIOM DERIVE
MACSYMA
MAPLE
セM
Multiplikation 1m folgenden betrachten wir KommandoslMenufolgen in den einzelnen Systemen, die im Arbeitsfenster befindliche Ausdrncke A ausmultiplizieren (siehe Beispiele 18.6, 18.12), wofUr die meisten Systeme in den KommandosiMenufolgen die englische Bezeichnung expand fUr entwickeln verwenden: AXIOM bewirkt das Ausmultiplizieren des Ausdrncks A mit dem Kommando expand (A) DERIVE liefert nach Anwendung der Menufolge Author セ@ Expression••. A セ@ OK セ@ Simplify セ@ Expand.•• eine Dialogbox, in der man die Variablen bei Expansion variables eintragt und Rational mit der Maus anklickt. Das abschlieBende Anklicken von Expand bewirkt das Ausmultiplizieren des AusdrncksA. MACSYMA bewirkt das Ausmultiplizieren des Ausdrncks A mit dem Kommando expand (A) MAPLE bewirkt das Ausmultiplizieren des Ausdrncks A mit dem Kommando expand (A) ; MATHCAD bietet zwei Moglichkeiten zum Ausmultiplizieren eines Ausdrncks A: I. Der Ausdrnck A wird eingegeben und mit einer Selektionsbox umrahmt. AbschlieBend wird die folgende Menufolge aktiviert: Symbolic セ@ Expand Expression II. Unter Verwendung des SchlUsselworts expand und des symbolischen Gleichheitszeichens -+ wird folgendes eingegeben: expand A-+ MATHEMATICA bewirkt das Ausmultiplizieren des Ausdrncks A mit den Kommandos Expand [A] oder Simplify [A]
18 Umfonnung von Ausdrncken
140
MATIAB
MuPAD
MATLAB bewirkt das Ausmultiplizieren des Ausdrncks A mit der Kommandofolge syms x y ... ; expand (A) falls der Ausdrnck A von den Variablen x , y , ... abhangt. Das Kommando syms dient zur Bezeichnung der symbolischen Variablen. MuPAD bewirkt das Ausmultiplizieren des Ausdrncks A mit dem Kommando expand (A) ;
•
Beispiel 18.12: Die Systeme fUhren die folgende Multiplikation durch: (x 2 + x + 1)*(x3 - x 2 + 1) = x 5 + x + 1
•
18.5
AXIOM DERIVE
MACSYMA MAPLE
MATHCAD
Faktorisierung 1m folgenden betrachten wir Kommandos/Meniifolgen in den einzelnen Systemen, die im Arbeitsfenster befindliche Ausdriicke A faktorisieren (siehe Beispiele 18.7, 18.13), wofUr die meisten Systeme in den KommandosiMeniifolgen die englische Bezeichnung factor fUr faktorisieren verwenden: AXIOM bewirkt die Faktorisiernng des Ausdrncks A mit dem Kommando factor (A) DERIVE liefert nach Anwendung der m・ョコセヲッャァ@ Author セ@ Expression... A セ@ OK セ@ Simplify セ@ Factor... eine Dialogbox, in der man die Variablen bei Factor Variables eintragt und Rational mit der Maus anklickt. Das abschlieBende Anklicken von Factor bewirkt die Faktorisienmg des Ausdrncks A. MACSYMA bewirkt die Faktorisiernng des Ausdnlcks A mit dem Kommando factor (A) MAPLE bewirkt die Faktorisiernng des Ausdrncks A mit dem Kommando factor (A) ; MATHCAD bietet zwei Moglichkeiten zur Faktorisiernng eines Ausdrncks A: 1. Der Ausdrnck A wird eingegeben und mit einer Selektionsbox umrahmt. AbschlieBend wird die folgende Meniifolge aktiviert: Symbolic セ@ Factor Expression II. Unter Verwendung des Schhisselworts factor und des symbolischen Gleichheitszeichens -+ wird folgendes eingegeben: factor A-+
18.6 Auf einen gemeinsamen Nenner bringen
141
MATHEMATICA bewirkt die Faktorisiernng des Ausdrncks A mit MATHEMA- dem Kommando Factor [A] TICA MATLAB bewirkt die Faktorisiernng des Ausdrncks A mit der KomMATIAB mandofolge syms x y ... ; factor (A) falls der Ausdrnck A von den Variablen x , y , ... abhangt. Das Kommando syms dient zur Bezeichnung der symbolischen Varia-
bIen. MuPAD
MuPAD bewirkt die Faktorisiernng des Ausdrncks A mit dem Kommando factor (A) ;
•
Beispiel 18.13: Mit den gegebenen Kommandos lassen sich folgende Ausdrncke mit den Systemen problemlos in Faktoren zerlegen : a) a 2 +2*a*b+b 2 = (a+bi b) x 6 + x4 - x 2 -1 = (x -l)(x + 1)(1 + x 2 i
• Man darf nicht erwarten, das von den Systemen jeder Ausdrnck faktorisiert wird. So hangt z.B. die Faktorisiernng eines pッセケョュウ@ (siehe Beispiel 18.13b) eng mit der Nullstellenbestimmung zusammen (siehe Abschn.23.3).
•
18.6
AXIOM DERIVE
MACSYMA MAPLE
Auf einen gemeinsamen Nenner bringen 1m folgenden betrachten wir KommandoslMenufolgen in den einzelnen Systemen, die im Arbeitsfenster befindliche rationale Ausdriicke A auf einen gemeinsamen Nenner bringen, d.h. gleichnamig machen (siehe Beispiele 18.8, 18.14): AXIOM bringt den Ausdruck A mit dem Kommando simplify (A) auf einen gemeinsamen Nenner. DERIVE bringt den Ausdrnck A durch Anwendung einer der
Menufolgen * Author セ@ Expression ... A セ@ Simplify * Author セ@ Expression... A セ@ OK セ@ Simplify セ@ Factor... セ@ Trivial セ@ Factor auf einen gemeinsamen Nenner. MACSYMA bringt den Ausdrnck A mit dem Kommando ratsimp (A) auf einen gemeinsamen Nenner. MAPLE bringt den Ausdrnck A mit dem Kommando simplify (A) ;
18 Umfonnung von Ausdriicken
142
MATIlCAD
MATHEMATICA
MATIAB
MuPAD
auf einen gemeinsamen Nenner. MATHCAD bietet zwei Moglichkeiten, urn einen Ausdrucks A auf einen gemeinsamen Nenner zu bringen: I. Der Ausdruck A wird eingegeben und mit einer Se/ektionsbox umrahmt. AbschlieBend wird die folgende MeniiJo/ge aktiviert. Symbolic セ@ Simplify II. Unter Verwendung des Sch/iisse/worts simplify und des symbolischen G/eichheitszeichens -+ wird folgendes eingegeben: simplify A-+ MATHEMATICA bringt den AusdruckA durch Anwendung eines der
Kommandos * Together [Al * Simplify [Al auf einen gemeinsamen Nenner. MATI.AB bringt den Ausdruck A mit der KommandoJo/ge syms x y ... ; simplify (A) auf einen gemeinsamen Nenner, falls der Ausdruck A von den Variab/en x , y , ... abhangt. Das Kommando syms dient zur Bezeichnung der symbolischen Variab/en. MuPAD bringt den Ausdruck A mit dem Kommando normal (A) ; auf einen gemeinsamen Nenner.
+ Beispiel 18.14: Die Systeme Ibsen die Aufgabe: 1 1 2 2 bzw. 2 (x -1)(x + 1) x-I x+l x -1
+
18.7
AXIOM
Umformung trigonometrischer Ausdrucke Betrachten wir die UmJormung trigonometrischer Ausdriicke, die einen Spezialja// transzendenter Ausdriicke darstellen. Dies betrifft vor aHem die UmJormung trigonometrischer Funktionen, so Z.B. die bekannten Additionstheoreme. Die einzelnen Systeme steHen hierfUr eine Reihe von KommandoS/MeniiJo/gen zur VerfUgung, wobei der umzuJormende Ausdruck mit A bezeichnet wird: AXIOM verwendet fUr Additionstheoreme das Kommando expand (A) Beispiel 18.15: expand ( sin(x+y) ) lieJert cos(x)sin(y) + sin(x)cos(y)+
18.7 Umformung trigonometrischer Ausdrncke
DERIVE
143
DERIVE liefert nach Aktivierung der Menufolge Declare:::) Algebra State:::) Simplification ... eine Dialogbox, in der Trigonometry auf Expand bzw. Collect eingesteHt wird, d.h., es wird die Umformungsrich tung festgelegt. Danach gibt es zwei Moglichkeiten: * Die Menufolge Author :::) Expression ... A :::) Simplify bewirkt die Umformung des eingegebenen trigonometrischen Ausdrucks A. * Wenn sich der umzuformende trigonometrische Ausdruck A bereits im Arbeitsfenster befindet, wird er durch Mausklick markiert. Das abschlieBende Anklicken des Symbols
-
lost die Umformung des Ausdrucks A aus. Beispiel 18.16: Mittels der Umformungsrichtung Expand berechnet DERIVE sin(x+y) = cos(x)sin(y) + sin(x)cos(y) und mittels der Umformungsrichtung Collect . () . () cos(x - y) - cos(x + y) SIn X *SIn Y = ---'------'"'-2
•
MACSYMA
MACSYMA besitzt eine Reihe von Kommandos zur Umformung eines trigonometrischen Ausdrucks A: trigexpand (A) , trigreduce (A) , trigsimp (A) , halfangles (A) Illustrieren wir die Wirkungsweise der einzelnen Kommandos im
folgenden Beispiel. Beispiel 18.17: a) trigexpand ( sin(x+y) ) liefert cos(x)sin(y) + sin(x)cos(y) b) trigreduce (cos(x)sin(y) + sin(x)cos(y)) liefert sin(x+y) d.h., trigreduce steHt die Umkehrung von trigexpand dar. c) trigsimp(A) versucht, im Ausdruck A die bekannten Formeln und cosh 2 x - sinh2 x =1 sin 2 x + cos 2 X =1 zu substituieren. d) halfangles ( cos(xJ2) ) liefert
•
Jcos(x)+l
J2
144 MAPLE
18 Umformung von Ausdrucken
MAPLE verwendet die Kommandos * expand(A); fur Additionstheoreme, * combine ( A , trig) ; zur Umwandlung von Produkten trigonometrischer Funktionen in Sum men, * convert(A,F); zur Umwandlung des Ausdrucks A in einen Ausdruck, der die Funktion F enthalt. Beispiel 18.18: Das Kommando * expand ( sin(x+y) ) ; liefert das Ergebnis sin(x) cos(y) + cos(x) sin(y) * combine ( sin(x)*cos(y), trig) ; liefert das Ergebnis sin(x + y) + sin(x - y) 2 * convert ( sin(2*x), tan) ; liefert das Ergebnis 2 tan(x)
1 + tan(xi
•
MATHCAD
MATHCAD bietet zwei M6glichkeiten, urn einen trigonometrischen Ausdruck A umzu/onnen: 1. Der Ausdruck A wird eingegeben und mit einer Selektionsbox umrahmt. AbschlieBend wird die folgende Menu/olge aktiviert: Symbolic => Expand Expression II. Unter Verwendung des Schliisselworts expand und des symbolischen Gleichheitszeichens -+ wird folgendes eingegeben: expand A-+ Beispiel 18.19: Die Anwendung der gegebenen Menu/olge 1. auf sin(x+y) liefert das Ergebnis in folgender Form : sin(x+y) expands to sin(x) . cos(y) + cos(x) . sin(y)
•
MATIIEMATICA
MATHEMATICA kann durch Angabe der Option Trig -+ True in den Kommandos fur die Umformung algebraischer Ausdriicke trigonometrische Ausdrncke um/onnen. Beispiel 18.20: Das Kommando * Apart [ Cos[x+y] , Trig-+True ] lie/ertdas Ergebnis
18.7 Umfonnung trigonometrischer Ausdrtlcke
145
Cos [xl Cos[yl - Sin[xl Sin[yl * Cancel [ Sin[xl*Sin[yl , tイゥァセオ・@
lliefert das Ergebnis
Cos[x - yl - Cos[x + yl 2
* Expand [ Sin[xl ll 3 , tイゥァセオ・@
lliefert das Ergebnis
3 Sin[xl - Sin[3 xl 4 * Factor [ (3*Sin[xl - Sin[3*x])/4 , tイゥァセオ・@
lliefertdas Ergebnis
Sin [xl 3
•
Weitere Spezialkommandos zur Umfonnung trigonometrischer Ausdn:icke erhalt man in MATHEMATICA durch Laden des Pakets ALGEBRA'TRIGONOMETRY' .
•
MATI.AB
MATLAB verwendet fUr Additionstheoreme die Kommandofolge syms x y ... ; expand ( A ) falls der Ausdruck A von den Variablen x , y , ... abhangt. Das Kommando syms dient zur Bezeichnung der symbolischen Variablen. Beispiel 18.21: syms x y ; expand ( sin(x+y) ) liefert cos(x)sin(y) + sin(x)cos(y)
•
MuPAD
MuP AD verwendet fur Additionstheoreme das Kommando expand (A); Beispiel 18.22: expand ( sin(x+y) ) ; liefert cos(x)sin(y) + sin(x)cos(y)
•
Es konnte bei allen Systemen beobachtet werden, daB nicht jeder trigonometrische Ausdn./ck umgeformt wird.
•
146
19
Summen und Produkte
In ingenieurtechnischen Berechnungen sind haufig Cendliehe) Summen und manehmal Cendliehe) Produkte reeller Zahlen zu berechnen.
Endliche Summen und Produkte werden von den Systemen prablemlos berechnet, da nur eine endliehe Anzahl von Reehenoperationen erforderlieh ist Cendlicher Algorithmus). Bei einer graBen Anzahl von Gliedern kann die Bereehnung allerdings lange dauern. Die gegebenen KommandosiMenufolgen berechnen Summen und Produkte exakt. Moehte man sie numerisch bereehnen, so ist ein Numerikkommando aus Absehn.12.2 anzuschliejSen.
•
19.1
Summen Zur exakten Berechnung einer endlichen Summe der Form n
AXIOM DERIVE
Lak = am + a m+1 +... +a n k=m mit den Elementen Creellen Zahlen) a k = fCk) C k = m , m+ 1 , ... , n ; m セ@ n ) die aueh als endliche Reihe bezeichnet wird, stellen die Systeme folgende KommandosiMenufolgen bereit, in denen fUr m und n ganze Zahlen einzusetzen sind: AXIOM berechnet die Summe mit dem Kommando sum CfCk), k = m .. n ) DERIVE bietet drei M6glichkeiten zur Berechnung von Summen: I. Naeh Anwendung der Menufolge Author::::} Expression ... fCk) ::::} OK ::::} Calculus::::} Sum... erseheint eine Dialogbox, in der bei Variable k, Sum Definite und bei Def'mite sum in Lower Limit Cuntere Grenze) m und Upper Limit Cobere Grenze) n eingetragen werden. Das abschliejSende Anklicken von Simplify mit der Maus lost die Berechnung aus.
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
19.1 Summen
147
II. Anwendung der m・ョエセヲッャァ@ Author セ@ Expression... sum ( f(k) , k , m , n ) mit dem Summationskommando sum. III. Nach Anklicken des Summenoperators セ@
Simplify
セ@in der Symbolleiste erscheint eine Dialogbox (wie bei I.), in die
MACSYMA MAPLE
MATHCAD
f(k), bei Variable k, bei Sum Definite, bei Definite sum in Lower Limit (untere Grenze) m und Upper Limit (obere Grenze) n eingetragen werden. Das abschlieftende Anklicken von Simplify lost die Berechnung aus. MACSYMA berechnet die Summe mit dem Kommando sum ( f(k) , k , m , n ) MAPLE berechnet die Summe mit dem Kommando sum ( f(k), k = m .. n ) ; MATHCAD besitzt den Summenoperator
•
.- . den man aus derOperatorpalette Nr.5 durch Mausklick auswdhlt. Danach wird * in den Platzhalter hinter dem Summenzeichen f(k) * in die Platzhalter unter dem Summenzeichen k und m * in den Platzhalter ャセ「・イ@ dem Summenzeichen n eingetragen, wodurch sich der folgende Summenausdruck ergibt:
!
f(k)
k=m
Anschlieftend markiert man diesen Summenausdruck mit einer Selektionsbox. Eine der folgenden Aktivitdten lost abschlieftend die exakte Berechnung der Summe aus: * Aktivierung der Meniifolge Symbolic セ@ Evaluate セ@ Evaluate Symbolically * Eingabe des symbolischen Gleichheitszeichens-+ MATHEMA- MATHEMATICA bietet zwei M6glichkeiten zur Berechnung von TICA Sum men: I. Anwendung des Kommandos Sum [ f(k) , { k , m , nIl II. Verwendung einer der Operatorpaletten
19 Summen und Produkte
148
*
Calculus => Common Operations die durch die Menii:folge File => Palettes => BasicCalculations * BasicInput die durch die Menufolge File => Palettes => BasicInput aufgerufen werden. Man wahlt in der erscheinenden Palette den Summenoperator c
L:0 durch Mallsklick aus, flillt die Platzhalter analog wie bei MATH CAD aus und erhalt n
L f(k) k=m
MATIAB
MuPAD
MATLAB berechnet die Summe mit der Kommandofolge syms k ; symsum ( f(k), m , n ) Das Kommando syms dient zur Bezeichnung der symbolischen Variablen. Weiterhin existiert das Kommando sum ( x) zur Berechnung der Summe der Komponenten des Vektors x. MuP AD berechnet die Summe mit dem Kommando sum ( f(k), k = m .. n ) ;
•
Beispiel 19.1: 10
Die Summe (endliche Reihe)
L セ@ k k=1
=
7381 2520
wird von den Systemen folgendermaflen berechnet: * AXIOM: sum ( 11k, k = 1..10) * DERIVE: sum ( 11k, k , 1 , 10 ) * MACSYMA: sum ( 11k, k , 1 , 10 ) sum ( 11k, k = 1..10); * MAPLE: * MATHCAD: ]() 1 7381
lMセ
k 2520 Sum [ 11k, {k, 1,1O} 1 syms k ; symsum ( 11k, 1 , 10 ) sum ( 11k, k = 1..10); k=l
* * *
MATHEMATICA: MATLAB: MuPAD:
•
19.2 Produkte
19.2
149
Produkte Zur exakten Berechnung von (endlichen) Produkten der Form n
TI a k =a
m .
a m +J •..• ·a n
ォセュ@
AXIOM DERIVE
mit den Elementen (reelle Zahlen) ak= f(k) ( k = m , m+ 1 , ... , n ; m::; n ) stellen die Systeme folgende KommandosiMenufolgen zur VerfUgung, in denen fUr m und n ganze Zahlen einzusetzen sind: AXIOM berechnet das Produkt mit dem Kommando product ( f(k) , k = m .. n ) DERIVE bietet drei M6glichkeiten zur Berechnung von Produkten: I. Nach Anwendung der Menufolge Author セ@ Expression... f(k) セ@ OK セ@ Calculus セ@ Product... erscheint eine Dialogbox, in der bei Variable k, Product Definite und bei Definite product in Lower limit (untere Grenze) m und Upper Limit (obere Grenze) n eingetragen werden. Das abschlieflende Anklicken von Simplify mit der Maus lost die Berechnung aus . II. Anwendung der Menufolge Author セ@ Expression... product ( f(k) , k , m , n ) セ@ Simplify mit dem Produktkommando product. III. Nach Anklicken des Produktoperators
[IT]
MACSYMA
MAPLE
in der Symbolleiste erscheint eine Dialogbox (wie bei 1.), in der f(k), bei Variable k, bei Product Definite, bei Definite product in Lower Limit (untere Grenze) m und Upper Limit (obere Grenze) n eingetragen werden. Das abschlieflende Anklicken von Simplify lost die Berechnung aus. MACSYMA berechnet das Produkt mit dem Kommando product ( f(k) , k , m , n ) MAPLE berechnet das Produkt mit dem Kommando product ( f(k) , k = m .. n ) ; MATH CAD verwendet bei der Produktberechnung die gleiche Vorgehensweise wie bei der Summenberechnung. Es ist nur statt des Summenoperators der Produktoperator
19 Sum men und Produkte
150
•
.n· -.
MATIIEMATICA
aus der Operatorpalette Nr.5 auszuwablen. MATHEMATICA bietet zwei M6glicbkeiten zur Berecbnung von Pro-
dukten: I. Anwendung des Kommandos Product [ f(k) , { k , m , n 11 II. Verwendung einer der Operatorpaletten
* Calculus セ@
Common Operations die durch die Menufolge File セ@ Palettes セ@ BasicCalculations * BasicInput die durch die Menufolge File セ@ Palettes セ@ BasicInput aUfgemfen werden. Man wiihlt in der erscbeinenden Palette den Produktoperator
durch Mausklick aus, fUllt die Platzbalter analog wie bei MATHCAD aus und erhiilt n
TI f[kl k=m
MATI.AB MuPAD
MATLAB besitzt nur das Kommando prod (x) zur Berecbnung des Produkts der Komponenten des Vektors x. MuPAD berecbnet das Produkt mit dem Kommando product ( f(k) , k = moon ) ;
•
Beispiel 19.2: 8
Das Produkt
11
k = 40320
k=1
wird von den Systemen folgendermaflen berechnet: * AXIOM: product ( k , k = 1,,8 ) * DERIVE: product ( k , k , 1 , 8 ) product ( k, k, 1 ,8) * MACSYMA:
* *
MAPLE:
MATHCAD:
product ( k, k = 1,,8);
19.2 Produkte
151 8
Dk セ@
40320
k=l
'" '"
MATHEMATICA: MuPAD :
•
Product [k, {k, 1 ,81l product ( k , k = 1..8 ) ;
152
20
Vektoren und Matrizen
20.1
Ingenieurtechnische Anwendungen Vektoren und Matrizen spielen in Technik und Natunvissenschaften eine grundlegende Rolle, so u.a. bei (siehe [41]/2,1) * der Darstellung und L6sung linearer Gleichungssysteme, * der Beschreibung elektrischer Netzwerke unter Verwendung der Kirchhoffschen Gesetze. Hier EiEt sich der strukturelle Aujbau durch Matrizen darstellen. * der Beschreibung von Vierpolen durch Verknupfungsmatrizen, * der Beschreibung von Kettenschaltungen von Vierpolen durch Obertragungsmatrizen.
20.2
Eingabe von Vektoren und Matrizen Wir betrachten Matrizen A mit m Zeilen und n Spalten (d.h. vom Typ (m,n)) mit den Elementen aik
A=
[aua 21
a l2
...
a 22
... a 2n
a," J
a mn amI a m2 und n-dimensionale Vektoren der Fonn * a = (aI' ... , an) (Zeilenvektor, d.h. Matrixvom Typ (l,n)) •
AXIOM
a"
{セZj@
(Spaltenvektor, d.h. Matrixvom Typ (n,l))
Urn mit Vektoren und Matrizen arbeiten zu kbnnen, mussen diese zuerst in die Arbeitsfenster der Systeme eingegeben werden. Dies geschieht mittels folgender KommandosiMenufolgen : AXIOM bietet die Eingabe einer Matrix A vom Typ (m,n) mittels des Kommandos matrix in der Fonn
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
20.2 Eingabe von Vektoren und Matrizen
153
A:= matrix ([ [a ll ,···,a 1n ] , ... , [a m1 , ... ,a mn ]]) d.h., die Elemente der Matrix werden als geschachtelte Liste (Liste der Zeilenvektoren) in das Argument von matrix geschrieben. Auf das Element der i-ten Zeile und k-ten Spalte a ik der Matrix A wird mit A(i,k) zugegriJfen.
Zeilen- und Spaltenvektoren werden als Matrizen vom Typ (l,n) bzw. (m,l) eingegeben (siehe Beispiel 20.1b) bzw. c) .
•
Beispiel 20.1: a) Die Zuweisung A := matrix ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ]] ) liefert die Matrix
A= (1456 2 3) Die Eingabe von A(2,3) liefert das Element 6. b) Die Zuweisung a := matrix ( [ [ 1 , 2 , 3 , 4 , 5 , 6 ]] ) liefert den Zeilenvektor a = ( 1 , 2 , 3 , 4 , 5 , 6 ) auf dessen Komponenten mittels a(1,k) zugegriJfen wird. c) Die Zuweisung a := matrix ( [ [1] , [2] , [3] , [4] , [5] , [6]] ) liefert den Spaltenvektor 1 2
a=
3 4
5 6 auf dessen Komponenten mittels a(k,l) zugegri/fen wird . DERIVE
•
DERIVE besitzt fUr die • Eingabe von Zeilenvektoren folgende drei M6glichkeiten: I. Nach Aktivierung der Memlfolge Author::::} Vector... offnet sich die Dialogbox Vector Setup ... , in der bei Vector dimension in Elements die Anzahl der Komponenten (Dimension) einzutragen ist. Nach clem Anklicken von OK offnet sich eine weitere Dialogbox, in der die Komponenten des Vektors einzutragen sind. Nach dem Anklicken von OK erscheint der eingegebene Vektor im Arbeitsfenster als Zeilen-
vektor. II. Nach Anklicken des Vektoroperators
154
20 Vektoren und Matrizen
I[Wli in der Symbolleiste erscheint wie bei I. die Dialogbox Vector Setup ... Danach geht man wie bei I. VOL III. Eingabe als Liste mittels der m・ョャセイッァ@ Author => Expression... a := [ a] , a 2 , ... , an] => OK Beispiel 20.2: a) Die Meniifolge III. Author => Expression... a := [ 1 , 2 , 3 , 4 , 5 , 6 ] liefert den Zeilenvektor a = ( 1 , 2 , 3 , 4 , 5 , 6 ) b) Benotigt man einen Spaltenvektor, so ist folgendermaBen vorzugehen: Die Menufolge aus III. Author => Expression ... a := [ [1] , [2] , [3] , [4] , [5] , [6]] liefert den Spaltenvektor 1 2 a=
3 4 5 6
•
•
Eingabe von Matrizen folgende drei M6glichkeiten: I. Nach Aktivienmg der m・ョャセイッァ@ Author => Matrix... offnet sich die Dialogbox Matrix Setup ... , in der bei Matrix dimension in Rows: die Anzahl der Zeilen und in Columns: die Anzahl der Spalten einzutragen sind. Nach dem Anklicken von OK offnet sich eine weitere Dialogbox, in der die einzelnen Elemente aik der Matrix einzutragen sind. Nach dem Anklicken von OK erscheint die eingegebene Matrix im Arbeitsfenster. II. Nach Anklicken des Matrixoperators ••• BGャ@ セ ...
in der Symbolleiste erscheint wie bei I. die Dialogbox Matrix Setup.... Danach geht man wie bei I. VOL III. Eingabe als geschachtelte Liste (Liste der Zeilenvektoren) mittels der Meniifolge Author => Expression ... A:= [[all, .. . ,a]n], ... ,[am], ... ,a mn ]] => OK
20.2 Eingabe von Vektoren und Matrizen
Beispiel 20.3: Die Menufolge III. Author セ@ Expression ... A := [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ]] liefert die Matrix
155
セ@
OK
A= (14 5263) • ZugriJfsmoglichkeiten auf die Elemente einer im Arbeitsfenster befindlichen Matrix konnten in DERIVE nicht gefunden werden.
•
MACSYMA
MACSYMA bietet die Eingabe * einer Matrix A vom Typ (m,n) mittels des Kommandos matrix in der Form A: matrix ( [ all, .. ·,a 1n ] , ... , [ am1, ... ,a mn ] ) wobei die Zeilenvektoren der Matrix als Listen in das Argument von matrix zu schreiben sind. Auf das Element der i-ten Zeile und k-ten Spalte a ik der Matrix A wird mit A[i,k] oder A[i][k] zugegriffen. * eines Zeilenvektors a (d.h. Matrizen vom Typ (l,n)) mittels a:[ a 1 ' ... , an ] auf dessen Komponenten mittels ark] zugegriffen wird.
Spaltenvektoren werden als Matrizen vom Typ (m,1) eingegeben (siehe Beispiel 20.4c).
•
Beispiel 20.4: a) Die Zuweisung A: matrix ( [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ) liefert die Matrix
A= (14 5263) Die Eingabe von A[2,3] bzw. A[2][3] ergibt das Element 6. b) Die Zuweisung a: [1, 2 , 3 , 4 , 5 , 6 ] liefert den Zeilenvektor a = ( 1 , 2 , 3 , 4 , 5 , 6 ) c) Die Zuweisung a: matrix ( [1] , [2] , [3] , [4] , [5] , [6] ) liefert den Spaltenvektor
156
20 Vektoren und Matrizen
1
2 a=
3 4 5 6
auf dessen Komponenten mittels a[k] bzw. a[k,l] zugegrifJen wird . MAPLE
•
MAPLE bietet die Eingabe einer Matrix A vom Typ (m,n) mittels des Kommandos array in der Form A:= array ( [[a ll ,···, a 1n 1,... , [a m l'···, a mn 11); wobei die Elemente als geschachtelte Liste (Liste der Zeilenvektoren) in das Argument von array zu schreiben sind. Falls man das Kommando array weglaBt, wird die Matrix nicht in Matrixform sondern als Liste dargestellt.
Zeilen- und Spaltenvektoren werden als Matrizen vom Typ (1,n) bzw. (m,l) eingegeben (siehe Beispiel 20.5 b) bzw. c) .
•
Auf das Element der i-ten Zeile und k-ten Spalte a ik der Matrix A wird mit A[i,k] ; zugegrifJen. Beispiel 20.5: a) Die Zuweisung * A:= array ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] ) ; lie/ert die Matrix A in Matrix/orm
*
a]Hセ@
セ@ セI@
A:= [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] ; liefert die Matrix A in Listen/orm A= [[ 1 ,2,3] , [4,5,6]]
Die Eingabe von A[2,3] ; ergibt das Element 6. b) Die Zuweisung a:= array ( [ 1 , 2 , 3 , 4 , 5 , 6 ] ) ; lie/ert den Zeilenvektor a = ( 1 , 2 , 3 , 4 , 5 , 6 ). c) Die Zuweisung a:= array ( [ [1] , [2] , [3] , [4] , [5] , [6] ] ) ; lie/ert den Spaltenvektor
20.2 Eingabe von Vektoren und Matrlzen
157
1 2
a=
3 4 5 6
MATHCAD
•
MATHCAD offnet nach der der Eingabe von A := in das Arbeitsfenster durch Ausl6sung einer der folgenden Aktivitdten: * Anklicken des Matrixsymbols
[......"'J in der Operatorpalette Nr.4 mit der Maus Aktivierung der Menufolge Math セ@ Matrices ... eine Dialogbox, in die die Anzahl der Zeilen nach Rows: und Spalten nach Columns: einzugeben sind. Durch Anklicken des Buttons (KnopO Create erscheint an der durch den Kursor markierten Stelle die Matrix im Arbeitsfenster in der Form (z.B. fUr m=4 und n=3)
*
A:=
• •
• • in deren Platzhalter die Elemente aik der Matrix A einzutragen sind. Auf das Element der i-ten Zeile und k-ten Spalte a ik der Matrix A wird mittels der Indexschreibweise (siehe Abschn.13.2) Ai,k
zugegriJfen . Bei MATH CAD ist folgendes zu beachten: * Vektoren sind immer als Spalten (Spaltenvektoren) einzugeben. * Als Startwert fUr die Indizienmg der Elemente einer Matrix ist 0 eingestellt. Da man abe r iiblicherweise mit 1 begin nt, muB dies mittels der Menzifolge Math セ@ Built-In Variables ... セ@ Origin セ@ 1 eingestellt werden. •
20 Vektoren und Matrizen
158 MATHEMATICA
MATHEMATICA bietet fUr die Eingabe einer Matrix A vom Typ (m,n) folgende zwei Moglichkeiten: * Direkte Eingabe als geschachtelte Liste (Liste der Zeilenvektoren) A = {{a 11 ' ... , a 1n I , ... , { am]>"" a mn I I * Eingabe unter Verwendung des Matrixsymbols
aus der Operatorpalette File::::} Palettes::::} BasicCalculations ::::} lists and Matrices ::::} Creating lists and Matrices wobei die Anzahl der Zeilen und Spalten mittels der Tastenkombination セgZq@ bzw. セo@ eingestellt Wifd. Bei dieser Vorgehensweise wird die eingegebene Matrix ebenfalls als Liste gespeicherl. Auf das Element def i-ten Zeile und k-ten Spalte a ik def Matrix A wird mit A [ [ i , k II zugegriffen. Beispiel 20.6: a) Die Zuweisung A:= { { 1 , 2 , 3 I , { 4 , 5 , 6 I I erzeugt die Matrix
A (1456 2 3) =
Die Eingabe von A [ [ 2 , 3 llliefert das Element 6. b) Die Zuweisung a:= { 1 , 2 , 3 , 4 , 5 ,6 I lif!ferl den Zeilenvektor a = ( 1 , 2 , 3 , 4 , 5 , 6 ) auf dessen Komponenten mittels a[[kll zugegriffen wifd. e) Die Zuweisung a:= { {II, {21 , {31 , {41 , {51, {61 I lif!ferl den Spaltenvektor 1 2
a=
3 4
5 6 auf dessen Komponenten mittels a[[k, III zugegriffen wird .
•
Moehte man in MATHEMATICA die eingegebene Matrix A in def ubefsichtlieheren Matrix/orm (erseheint ohne Klammern im Arbeitsfenster) efhalten, so ist entweder das zusatzliehe Kommando MatrixForm [Al anzusehlieBen oder bereits bei der Eingabe der Matrix
20.2 Eingabe von Vektoren lind Matrizen
159
das Kommando IIMatrixForm dem Eingabekommando hinzuzufiigen. Wenn mit der eingegebenen Matrix weitergerechnet werden soll, darf das Kommando MatrixForm nicht verwendet werden. In diesem Fall muE die eingegebene Listenform beibehalten werden .
•
MA1LAB bietet die Eingabeeiner Matrix A vom Typ (m,n) als Feld MATIAB
mittels A= [all,···,a 1n ; ... ; a ml> ... ,a mn ] wobei die Zeilenvektoren durch Semikolon zu trennen sind. Auf das Element der i-ten Zeile und k-ten Spalte a ik der Matrix A wird mit A(i,k) zugegrifJen. Beispiel 20.7: a) Die Zuweisung A = [ 1 , 2 , 3 4 , 5 , 6 ] liefert die Matrix
A (1456 2 3) =
Die Eingabe von A(2,3) ergibt das Element 6. b) Die Zuweistlng a = [1 , 2 , 3 ,4, 5 ,6] liefert den Zeilenvektor a = ( 1 , 2 , 3 , 4 , 5 , 6 ) auf dessen Komponenten mittels a(k) zugegrifJen wird. c) Die Zuweisung a = [1 ; 2 ; 3 ; 4 ; 5 ; 6 ] liefert den Spaltenvektor 1
2 a=
3 4 5 6
auf dessen Komponenten mittels a(k) bzw. a(k,l) zugegriffen wird .
•
MuPAD
MuPAD bietet die Eingabe einer Matrix A vom Typ (m,n) mittels der Kommandofolge DM := Dom :: Matrix ( Dom :: Real) : A:= DM ([ [a11> ... ,a 1n ], ... , [am1,···,a mn ]]); wobei die Elemente als geschachtelte Liste (Liste der Zeilenvektoren) zu schreiben sind. Auf das Element der i-ten Zeile und k-ten Spalte a ik der Matrix A wird mit A[i,k] ; zugegriffen.
20 Vektoren und Matrizen
160
Beispiel 20.8: a) Die Kommandofolge DM := Dom :: Matrix ( Dom :: Real) : A := DM ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ]] ) ; liefert die Matrix
2 3) A (1456 =
Die Eingabe von A[2,3] ; liefert das Element 6. b) Die Kommandofolge DM := Dom :: Matrix ( Dom :: Real ): a := DM ( [ 1 , 2 , 3 , 4 , 5 , 6 ] ) ; liefert den Spaltenvektor 1 2 a=
3 4
5 6 auf dessen Komponenten mittels ark] zugegriffen wird. c) Die Kommandofolge DM := Dom :: Matrix ( Dom :: Real ): a := DM ( [ [ 1 , 2 , 3 , 4 , 5 , 6 ]] ) ; liefert den Zeilenvektor a = ( 1 , 2 , 3 , 4 , 5 , 6 )
•
Wie man Vektoren und Matrizen in den einzelnen Systemen einliest, die sich als ASCII-Dateien auf Festplatte oder Diskette befinden, wird im Abschn.14.2 behandelt.
•
20.3
Rechenoperationen mit Vektoren und Matrizen Im folgenden betrachten wir Rechenoperationen mit Vektoren und Matrizen, die durchgefilhrt werden konnen, nachdem sie auf die im Abschn.20.2 beschriebene Art und Weise eingegeben wurden.
20.3.1
Addition und Multiplikation Bei der Addition (bzw. Subtraktion) und Multiplikation von Matrizen ist zu beachten, daB die
20.3 Rechenoperationen mit Vektoren und Matrizen
* *
AXIOM
DERIVE
MACSYMA
MAPLE
MATHCAD
Addition (Subtraktion) A ± B nur moglieh ist, wenn die Matrizen A und B den gleichen Typ besitzen. Multiplikation A . B nur ausgefiihrt werden kann, wenn die Matrizen A und B verkettet sind, d.h., A muB genauso viele Spalten
haben, wie B Zeilen besitzt. Die Addition und Multiplikation im Arbeitsfenster befindlieher Matrizen A und B vollzieht sich in den einzelnen Systemen mittels der folgenden KommandosiMenufolgen: AXIOM berechnet mittels * M :=A+B * M:=A*B die Addition bzw. Multiplikation und weist das Ergebnis der Matrix Mzu. DERIVE berechnet mit den Mentifolgen * Author:=:) Expression... M := A + B :=:) Simplify * Author:=:) Expression... M := A * B :=:) Simplify die Addition bzw. Multiplikation und weist das Ergebnis der Matrix Mzu. MACSYMA berechnet mittels * M: A+ B * M:A.B die Addition bzw. Multiplikation und weist das Ergebnis der Matrix MZll. MAPLE berechnet mit einem der Kommandos * M:= evalm ( A + B ) ; * M:= A + B; (nur bei Matrizen, die ohne array definiert sind) die Addition * M:= evalm ( A &* B ) ; die Multiplikation und weistdas Ergebnis der Matrix M Zll. MATHCAD berechnet mittels * M :=A+B * M:=A*B die Addition bzw. Multiplikation lind weist das Ergebnis der Matrix M zu. Moehte man sich die Ergebnismatrix M ansehen, so wird mセ@ oder M= eingegeben, d.h. nach M das symbolische セ@ oder numeri-
sche Gleichheitszeichen =. MATHEMATICA
161
MATHEMATICA berechnetmittels * M = A+B (Addition) * M =A . B (Multiplikation)
162
MATLAB
MuPAD
20 Vektoren und Matrizen
die Addition bzw. Multiplikation und weist das Ergebnis der Matrix M in Listenform zu, die man in Matrizenform anzeigen lassen kann (siehe Abschn.20.2). Die Matrizen A und B mussen ebenfalls in Listenform eingegeben sein. MATLAB berechnet mittels * M=A+B * M=A*B die Addition bzw. Multiplikation und weist das Ergebnis der Matrix Mzu. MuPAD berechnet mittels * M:=A+B; * M:=A*B; die Addition bzw. Multiplikation und weist das Ergebnis der Matrix Mzu .
•
20.3.2
AXIOM
DERIVE MACSYMA
MAPLE
MATHCAD
Transponieren Das Transponieren einer im Arbeitsfenster befindlichen Matrix A, d.h. das Vertauschen von Zeilen und Spa/ten, geschieht in den S:Ystemen mittels folgender KommandosiMenufolgen: AXIOM berechnet die Transponierte der Matrix A mit dem Kommando transpose (A) DERIVE berechnet die Transponierte der Matrix A mittels der Menufolge Author => Expression... A' => Simplify MACSYMA berechnet die Transponierte der Matrix A mit dem Kommando transpose (A) MAPLE berechnet die Transponierte der Matrix A mittels des Kommandos transpose (A) ; wobei vorher mittels with (linalg) ; das Zusatzpaket Lineare Algebra geladen werden muB. MATHCAD bietet zwei M6glichkeiten zur Transponierung einer Matrix A: I. Umrahmung der eingegebenen Matrix A mit einer Selektionsbox und Anwendung der Menufolge Symbolic => Matrix Operations => Transpose Matrix II. Eingabe von
AT unter Verwendung des Operators
o
aus der Operatorpalette Nr.4.
20.3 Rechenoperationen mit Vektoren und Matrizen
163
Nach Umrahmung des Ausdrucks mit einer Selektionsbox liefert die Eingabe des symbolischen -+ oder numerischen Gleichheitszeichens = die transponierte Matrix. MATHEMA- MATHEMATICA berechnet die Transponierte der Matrix A mit dem llCA Kommando Transpose [AJ MATLAB berechnet durch Eingabe von A' die Transponierte der MATIAB MuPAD
MatrixA. MuP AD berechnet die Transponierte der Matrix A mit dem Kommando linalg:: transpose (A) ;
•
Wahrend die bisher betrachteten Operationen Addition, Multiplikalion und Transponierung fUr relativ groBe Matrizen durchfUhrbar sind, stoBen die Systeme bei der im folgenden behandelten Berechnung der Determinante und der Inversen einer n-reihigen quadratischen Matrix fUr groBes n schnell an ihre Grenzen, da Rechenaufwand und Speicherbedarf stark anwachsen .
•
20.3.3
Berechnung der Determinante Zur Berechnung der Determinante a]] a ln det A= anI
:'
AXIOM
、ゥ・{。セLイッ「ァ@
ann
セZョクャG@
anI ann existieren endliche Algorithmen, wie z.B. Umformung auf Dreiecksgestalt mittels des GaujSschen Algorithmus oder Anwendung des Laplaceschen Entwicklungssatzes, die jedoch mit wachsendem n sehr aufwendig werden. Die Systeme leisten bei der Berechnung eine groBe Hilfe, solange die Dimension n der Determinante nicht den vorhandenen Speicherplatz uberfordert. Die Systeme verwenden die folgenden KommandosiMentifolgen zur Berechnung der Determinante einer im Arbeitsfenster befindlichen Matrix A: AXIOM berechnet die Determinante der Matrix A mit dem Kommando determinant (A).
164 DERIVE
MACSYMA
MAPLE
MATHCAD
20 Vektoren und Matrizen
DERIVE berechnet die Determinante der Matrix A mit der Meniifolge Author セ@ Expression ... det (A) セ@ Simplify mittels des Kommandos det. MACSYMA berechnet die Determinante der Matrix A mit dem Kommando det (A) MAPLE berechnet nach clem Laden des Pakets Lineare Algebra mittels with (iinalg) ; die Determinante der Matrix A mit dem Kommando det (A) ; MATHCAD bietet zwei M6glichkeiten zur Berechnung der Determinante einer Matrix A: I. Nach Umrahmung der eingegebenen Matrix A mit einer Selektionsbox berechnet die MenuJolge Symbolic セ@ Matrix Operations セ@ Determinant of Matrix die Determinante der Matrix A. II. Eingabe von IA I unter Verwendung des Operators
IlBJ
aus der Operatorpalette Nr.4. Nach Umrahmung des eingegebenen Ausdntcks mit einer Selektionsbox liefert das Eintippen des symbolischen -+ oder numerischen Gleichheitszeichens = die Determinante der Matrix A MATHEMA- MATHEMATICA berechnet die Determinante der Matrix A mit dem TICA Kommando Det [A] . MATLAB berecbnet die Determinante der Matrix A mit dem KomMATIAB mando det (A) . MuPAD berechnet die Determinante der Matrix A mit dem KomMuPAD mando linalg:: det (A) ; .
•
Falls man versehentlich die Determinante einer nichtquadratischen Matrix berechnen will, so kommt entweder eine Fehlermeldung (bei AXIOM, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD) oder die Berechnung wird abgelehnt (bei DERIVE) .
•
20.3.4
Berechnung der Inversen
AXIOM
Die Berechnung der Inversen A -1 einer im Arbeitsfenster befindlichen Matrix A, die nur fUr quadratische Matrizen m6glich ist, wobei zusatzlich det A "# 0 erfUllt sein muB (nichtsinguldre Matrix), geschieht in den Systemen mittels folgender Kommandos/MenuJolgen: AXIOM berechnet die Inverse der Matrix A mit dem Kommando
203 Rechenoperationen mit Vektoren und Matrizen
DERIVE MAPLE MATHCAD
165
inverse (A) . DERIVE berechnet die Inverse der Matrix A mit der Menufolge Author セ@ Expression.•. AA-l セ@ Simplify . MAPLE berechnet die Inverse der Matrix A mit dem Kommando inverse (A) ; . MATHCAD bietet zwei Moglichkeiten zur Berechnung der Inversen der Matrix A : I. Umrahmung der eingegebenen Matrix A mittels Selektionsbox und Anwendung der Menufolge Symbolic セ@ Invert Matrix II . Eingabe von A-I
unter Verwendung des Operators
Xf aus der Operatorpalette Nr.1. Nach Umrahmung des eingegebenen Ausdrucks mit einer Selektionsbox liefert das Eintippen des symbolischen -+ oder numerischen Gleichheitszeichens = die Inverse der Matrix A. MATHEMA- MATHEMATICA berechnet die Inverse der Matrix A mit dem KomTICA mando Inverse [A) . MATIAB MATLAB berechnet die Inverse der Matrix A mit dem Kommando inv (A) . MuPAD berechnet die Inverse der Matrix A mittels MuPAD l/A; .
•
Falls die zu invertierende Matrix singular ist, kommt entweder eine Fehlermeldung (bei AXIOM, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD) oder die Berechnung wird abgelehnt (bei DERIVE). Es empfiehlt sieh, nach der Berechnung der Inversen zur Probe das Produkt A ·A- I zu berechnen, das die Einheitsmatrix E liefem muB. Beispiel 20.9: Man addiere, subtrahiere und multipliziere die beiden Matrizen
A=G セI@
und
8=(:0
2)
6 1
von denen B Singular ist und berechne ihre Determinanten unter Verwendung der einzelnen Systeme. Weiterhin versuche man, ihre Inversen zu berechnen .
•
166
20.3.5
20 Vektoren und Matrizen
Skalar·, Vektor· und Spatprodukt Fur beliebige Vektoren a= (a 1, ... ,a n ) , b= (b 1, .. ·,b n ) , c= (c 1, ... ,c n ) berechnen sich clas • Skalmprodukt aus
i=1
•
Vektorprodukt ( fUr n=3 ) aus i
j
k
axb= a 1 a 2 a 3 =(a2b3-a3b2,a3b1-a1b-l,a1b2-a2b1) b1 b2 b3
•
Spatprodukt ( fUr n=3 ) aus a1 a2 a3 (axb)oc= b l b 2 b 3 C1 C 2 c3
Falls in einem System fi.ir ein Proclukt kein Kommando existiert, so kann man es leicht unter Verwenclung cler Kommanclos fUr clie Summen- bzw. Determinantenberechnung berechnen.
•
Bei cler Berechnung cler Produkte ist zu beachten, claB bis auf MATHCAD clie Vektoren als Zeilenvektoren einzugeben sincl.
•
AXIOM DERIVE
MACSYMA
Zur Berechnung von Skalar- unci Vektorprodukt fUr im Arbeitsfenster befinclliche Vektoren a unci b stellen clie Systeme folgencle KommandosiMentifolgen zur VerfUgung: AXIOM berechnet clas Skalarprodukt mit clem produkt a * transpose (b) . DERIVE berechnet clas Skalar- bzw. Vektorprodukt mit clen Menti-
folgen * Author => Expression ... a*b => Simplify (Skalarprodukt) * Author=>Expression...cross(a,b) => Simplify (Vektorprodukt) MACSYMA berechnet clas Skalar- bzw. Vektorprodukt mit clen Kommandos (Skalarprodukt) * innerproduct ( a , b ) ( Vektorprodukt) * express ( a セ@ b )
203 Rechenoperationen mit Vektoren und Matrizen
MAPLE
MATIlCAD
167
wenn vorher mittels des Kommandos load folgende Pakete geladen werden: * eigen fUr das Skalarprodukt mittels load (eigen) * veet fUr das Vektorprodukt mittels load (veet) MAPLE berechnet das Skalar- bzw. Vektorprodukt mit den Kommandos * innerprod ( a, b) ; (Skalarprodukt) * cross prod ( a , b ) ; ( Vektorprodukt) wenn vorher mittels with Oinalg) ; das Zusatzpaket Lineare Algebra geladen wird. MATHCAD bietet fUr die Bereehnung des • Skalarprodukts zwei Moglichkeiten: * Eingabe von a * b mittets der Tastatur * Eingabe von a * bunter Verwendung des Operators
•
f·t aus der Operatorpalette Nr.4 Vektorprodukts zwei Moglichkeiten: * Eingabe von a x b mittels der Tastatur, wobei das Zeiehen x uber die Tastenkombination セᆴ@ realisiert wird. * Eingabe von a x bunter Verwendung des Operators
1M]
aus der Operatorpalette Nr.4 Nachdem sich die Produkte im Arbeitsfenster befinden, werden sie mit einer Selektionsbox umrahmt. AbschlieBend lost die Eingabe des symbolisehen -+ oder numerisehen Gleiehheitszeiehens = die Bereehnung aus. Die Vektoren a und b mussen bei beiden Produkten als Spaltenvektoren eingegeben werden. MATHEMA- MATHEMATICA bereehnet das Skalarprodukts mittels a. b TICA Nach dem Laden des Zusatzpakets v・ォエッイ。ョセケウゥ@ mittels Needs [ "Calculus' VectorAnalysis'" 1 stehen zusatzlich folgende Kommandos zur VerfUgung: * DotProduct [ a , b 1 (Skalarprodukt) * CrossProduct [ a , b 1 ( Vektorprodukt) MATLAB berechnet das Skalarprodukt mittels MATIAB a * b' . MuP AD berechnet das Skalarprodukt mittels MuPAD
168
20 Vektoren und Matrizen
Jinalg :: scalarProduct ( a , b ) ; .
•
Beispiel 20.10: Man berechne ftir die Vektoren a = ( 1 , 2 , 3 ) , b = ( 4 , 5 , 6 ) und c = ( 6 , 8 , 9 ) mit allen Systemen das a) Skalarprodukt a 0 b = 32 b) Vektorprodukt a x b = ( -3 , 6 , -3 ) c) Spatprodukt (a x b) 0 c = 3
•
20.4
AXIOM
DERIVE
Eigenwertprobleme Eine weitere wichtige Aufgabe ftir quadratische Matrizen A besteht in der Berechnung von Eigenwerten A und den dazugehorigen Eigenvektoren. Dabei sind Eigenwerte diejenigen Werte Ai ftir die das lineare homogene Gleichungssystem (A - AiE)x i = 0 nichttriviale (d.h. von Null verschiedene) LOsungen Xi besitzt, die als Eigenvektoren bezeichnet werden. Diese Aufgabe ist sehr rechenintensiv, da sich die Eigenwerte Ai als Nullstellen des charakteristischen Polynoms det (A- A-E) ergeben und anschlieBend ftir sie die zugeh6rigen Eigenvektoren zu ermitteln sind. Die Systeme besitzen zur Berechnung von Eigenwerten und Eigenvektoren einer im Arbeitsfenster befindlichen Matrix A die folgenden Kommandos/Menujolgen: AXIOM berechnet mittels der Kommandos * eigenvalues (A) die Eigenwerte * eigenvector (A , A) einen zu A geh6rigen Eigenvektor * eigenvectors (A) die Eigenwerte und zugeh6rigen Eigenvektoren DERIVE berechnet die Eigenwerte der Matrix A mit der Menujolge Author g Expression... eigenvalues ( A , e ) g Simplify durch das Kommando eigenvalues, wobei e die Bezeichnung fur die Eigenwerte darstellt (wird dies weggelassen, so bezeichnet sie das Programm mit w). Zur Berechnung des zum Eigenwert A gehorigen Eigenvektors muB man zuerst tiber die Menujolge File g Load g Utility..• g Vector die Zusatzdatei VECfOR.MTH laden. AnschlieBend kann mittels der MenUfolge Author g Expression... exact_eigenvector ( A , A ) g Simplify
20.4 Eigenwertprob/eme
MACSYMA
169
ein zum Eigenwert 'A gehorender Eigenvektor bestimmt werden. MACSYMA berechnet mittels der Kommandos * eigenvalues (A) die Eigenwerte, * eigenvectors (A) die Eigenwerte und zugeh6rigen Eigenvektoren, * uniteigenvectors (A) die Eigenwerte und zugeh6rigen normierten Eigenvektoren (mit der Lange 1). 2ur numerischen (naherungsweisen) Berechnung von Eigenwerten und Eigenvektoren ist an die gegebenen Kommandos zur exakten Berechnung ein f anzuhangen und als weitere Argumente die Anzahl der Eigenwerte und Iterationen einzutragen .
MAPLE
•
MAPLE berechnet mit dem Kommando * eigenvals (A); die Eigenwerte, * eigenvects (A); aile Eigenwerte und zugeh6rigen Eigenvektoren, wenn vorher das Zusatzpaket Lineare Algebra mittels des Kommandos with (linalg) ; geladen wurde. MATHCAD MATHCAD besitzt keine Kommandos zur exakten (symbolischen) Berechnung von Eigenwerten und Eigenvektoren einer Matrix A, aber die Numerikkommandos * eigenvals (A) zur numerischen Berechnung der Eigenwerte, * eigenvec (A, 'A) zur numerischen Berechnung der zum Eigenwert 'A gehorigen Eigenvektoren. Nach der Eingabe dieser Kommandos lost die Eingabe des numerischen Gleichheitszeichens = die numerische Berechnung aus. MATHEMA- MATHEMATICA berechnet mittels der Kommandos TICA * Eigenvalues [A] die Eigenwerte, * Eigenvectors [A] die dazugeh6rigen Eigenvektoren, * Eigensystem [A] Eigenwerte und zugeh6rige Eigenvektoren. MATLAB berechnet numerisch mittels der Kommandos: MATIAB * eig (A) die Eigenwerte, * [v,e] = eig (A) eine Matrixv, die als Spalten die Eigenvektoren besitzt, und eine Matrix e, in der man in den Spalten die Eigenwerte findet. MuPAD berechnet mit dem Kommando MuPAD * linalg:: eigenValues (A) ; die Eigenwerte, * linalg:: eigenVectors (A) ; die Eigenwerte und die dazugeh6rigen Eigenvektoren.
170
20 Vektoren und Matrizen
Da eine Matrix A komplexe Eigenwerte besitzen kann, empfiehlt es sich, fur die Eigenwertberechnung Matrizen minels DM := Dom :: Matrix ( Dom :: Complex) : A:= DM ([ [a}p ... ,alnl, ... , [amp···,amnl 1); einzugegeben .
•
Bei allen Berechnungen ist zu beachten, daiS bei einer n-reihigen Matrix A die Eigenwerte als Nullstellen des charakteristischen Polynoms vom Grade n bestimmt werden. Dies fuhrt zu den im Abschn.23.3 geschilderten Problemen fur n セ@ 5. Weiterhin muiS man berucksichtigen, daiS die Eigenvektoren nur bis auf einen Faktor bestimmt sind und durch die Systeme i.a. nicht normiert werden (bei DERIVE erscheint der Faktor explizit als Zeichen @). Wenn die Berechnung der Eigenwerte fehlschHigt, kbnnen die entsprechenden Numerikkommandos zur Nullstellenbestimmung (siehe Abschn.23.3) fur das charakteristische pッセケョュ@ angewendet werden .
•
Beispiel 20.11: a) Fur die zweireihigen Matrizen
• HセT@
セRI@
mit den Eigenwerten A.} = 5 und 11.2 = -1 und den dazugeh6rigen Eigenvektoren Xl= ( -1 , 1 ) und X2= ( 1 , 2 )
• HセR@ セI@ mit den komple.xen Eigenwerten A.} = 2 + i und 11.2 = 2 - i und den dazugeh6rigen Eigenvektoren Xl = ( 1, i-I) und X2 = ( -1, i + 1 )
· GセQI@ mit den Eigenwerten AI ,2 = 2 und dem dazugeh6rigen Eigen-
vektor X},2 = ( 1 , 1 ) liefem alle Systeme die angegebenen Ergebnisse, wobei die Eigenvektoren naturlich unterschiedliche Langen haben kbnnen.
20.4 Eigenwertprobleme
171
b) Fur die dreireihige Matrix
J
-4 -3 3 [ 2 3 -6 -I Mセ@
0
mit den Eigenwerten A1,2 = -3 , A3 = 5 Hefem nur AXIOM, MACSYMA, MAPLE, MATHEMATICA, MATLAB und MuP AD die zu dem zweiJachen Eigenwert -3 existierenden zwei linear unabhiingigen Eigenvektoren ( 3 , 0 , 1 ) und ( -3 , 1 , 0 )
•
172
21
Funktionen
Zur Untersuchung von Funktionen stellen die Systeme umfangreiche Hiifsmittel zur VerfUgung. Hierzu zahlen u.a. * KommandoslMenufolgen zur L6sung von Gleichungen: Zur Bestimmung von Nullstellen, Extremwerten und Wendepunkten. * KommandoslMenufolgen zur Grenzwertberechnung: Zur Untersuchung des Verhaltens in einzelnen Punkten und im Unendlichen : * KommandosiMenufolgen zur Differentiation: Zur Bestimmung von Monotonieinteroallen, Extremwerten und Wendepunkten. Bei der Kuroendiskussion im Abschn.24.6 werden wir sehen, wie diese Hilfsmittel angewandt werden, urn die Eigenschaften von Funktionen zu untersuchen. Viele Eigenschaften von Funktionen lassen sich bereits aus der grafischen Darstellung ablesen. Einen Einblick in die umfangreichen grafischen M6glichkeiten der Systeme geben wir im Kap.22 .
•
Auf eine exakte mengentheoretische Definition des mathematischen Funktionsbegriff verzichten wir im Rahmen dieses Buches. Es ist ausreichend, wenn man sich unter einer Funktion eine eindeutige Zuordung zwischen verdnderlichen GrojSen vorstellt. Diese verdnderlichen Gr6jSen werden Variablen genannt und man unterscheidet zwischen abhdngigen und unabhdngigen Variablen.
•
Fur unsere Betrachtungen k6nnen die Variablen reelle Zahlen annehmen. Derartige Funktionen heiBen reellwertige Funktionen und werden meistens mit f bezeichnet. In vie len mathematischen LehrblJchem wird fUr Funktionen statt der Bezeichnung f fUr eine Funktion von reellen Variablen x, y, ... H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
21.1 Ingenieurtecbniscbe Anwendungen
173
die Bezeichnung f(x, y, ... ) verwendet, die wir im folgenden auch benutzen. 1m weiteren schreiben wir: * y = f(x) ftir eine Funktion f einer reellen Variablen x * z=f(xl,XZ""'x n ) ftir eine Funktion f von n rellen Variablen Xl ,xz , ... , Xn wobei y bzw. z fur die abhiingige reelle Variable stehen
21.1
Ingenieurtechnische Anwendungen Mathematische Funktionen spielen bei technischen und naturwissenschaftlichen Modellen eine fundamentale Rolle, da zwischen zahlreichen technischen bzw. naturwissenschaftlichen Erscheinungen Zusammenhiinge bestehen, die sich durch Funktionen analytisch beschreiben lassen. So Hefem physikalische Gesetze funktionale Zusammenhiinge zwischen den in ihnen vorkornmenden Groflen (siehe [41]), wie schon die folgenden einfachen Beispiele zeigen: * Ohmsches Gesetz U
* *
= U(I,R) = I·R
d.h., die Spannung U ist eine Funktion des Stromes I und des Widerstandes R und berechnet sich als Produkt aus beiden. Federgesetz F = F(x) = - k . X ( k - Federkonstante ) d.h., die FederkraftF ist eine lineareFunktion der Auslenkung x. Fallgesetz 1 z ( g - Schwerebeschleunigung ) s = set) = _. g . t 2
*
Bei diesem Weg-Zeit-Gesetz fur den freien Fall ist der Weg seine quadratische Funktion der Zeit t. Zustandsgleichung idealer Gase T
p = p(V,T) = R· V
( R - Gaskonstante )
d.h., der Drnck p ist eine Funktion des Volumens V und der Temperatur T.
21.2
Elementare Funktionen In den Systemen ist die gesamte Palette der mathematischen Funktionen enthalten.
174
21 Funktionen
In der Mathematik unterscheidet man zwischen elementaren und hoherenFunktionen. Auf hohere Funktionen, die auch als spezielle Funktionen bezeichnet werden, gehen wir kurz im Abschn.21.5 ein. Unter elementaren Funktionen verstehen wir • PotenzJunktionen und deren Umkehrfunktionen (WurzeIJunktionen), • ExponentialJunktionen und deren Umkehrfunktionen (LogarithmusJunktionen), • Trigonometrischen Funktionen und deren Umkehrjimktionen, • Hyperbolischen Funktionen und deren Umkehrfunktionen. In praktischen Problemen treten haufig Funktionen auf, die sich aus elementaren Funktionen zusammensetzen. Je nach Art der Zusammensetzung unterscheidet man zwischen • algebraischen Funktionen * ganzrationalen Funktionen (Polynomen), * gebrochenrationalen Funktionen (Quotient von zwei Polynomen), * nichtrationalen algebraischen Funktionen (enthalten Wurzelfunktionen), • transzendenten Funktionen (enthalten trigonometrische, hyperbolische Funktionen, Exponentialfunktionen und deren Umkehrfu nktionen). Die Elementarfunktionen sind in allen Systemen enthalten, wobei man ihre Schreibweisen aus den integrierten Hi!(en entnehmen kann (siehe auch Abschn.13.4). MATHCAD bietet zusatzlich die Moglichkeit, die enthaltenen Funktionen an der gewlinschten Stelle einzuJugen: Durch Aktivierung der MenuJolge MATII セ@ Choose Function... oder durch Anklicken des Symbols
in der Symbolleiste erscheint eine Dialogbox mit den enthaltenen Funktionen, mit deren Hilfe man die benotigte und markierte Funktion durch Anklicken von Insert an der durch den Kursor markierten Stelle im ArbeitsJenster einfugen kann.
•
21.3 Definition von Funktionen
21.3
175
Definition von Funktionen Bei der Lbsung praktischer Probleme benbtigt man meistens Funktionen, die sich aus elementaren Funktionen zusammensetzen und somit nicht in den Systemen enthalten sind. Benbtigt man derartige Funktionen bfters, empfiehlt es sich, diese als neue Funktionen zu
definieren. Die Systeme gestatten unter Verwendung der Programmierm6glichkeiten (siehe Kap.15) auch die Definition von Funktionen, die sich aus verschiedenen analytischen Ausdriicken zusammensetzen (siehe Beispiel 21.1). Des weiteren bieten einige Systeme die Mbglichkeit, Funktionsausdn'icke aus vorhergehenden Rechnungen einer Funktion zuzuweisen, wie in den folgenden Beispielen gezeigt wird .
•
Beispiel 21.1: Wir betrachten als Beispiel eine Funktion f(x) , die sich in Abhangigkeit von x aus drei Ausdriicken zusammensetzt und definieren diese Funktion in den folgenden Beispielen mit den einzelnen S:Y-
stemen: f(x)
=
-x - I { _x 2 +1 x-I
fur - 00 < x < -1 fur-1sxs1 fur 1 < x < +00
•
Die Definition einer Funktion f(xl , ... , xn ) fUr einen Funktionsausdnlck A( xl , ... , xn ) geschieht in den Systemen folgendermaAXIOM
./Sen: AXIOM weist einen Funktionsausdruck A( xl , ... , xn ) mit n Variablen der Funktion f(xl , ... , xn ) auf eine der folgenden zwei Arten zu: * f ( xl , ... , xn ) == A ( xl , ... , xn ) * f:= ( xl , ... , xn ) + - > A ( xl , ... , xn ) Bei Funktionsnamen wird zwischen Gro./S- und Kleinschreibung unterschieden. Beispiel 21.2: a) Der Funktionsausdruck x· y + sin (x+y) kann mittels F(x,y) == x*Y + sin (x+y)
ode r := (x,y) + - > x*y + sin (x+y)
F
176
21
Funktionen
der Funktion F(x,y) zugewiesen werden. b) Die Funktion aus Beispiel 21.1 kann folgendermaj3en definiert werden: f := x+ -> if x Algebra State => Input... in der erscheinenden Dialogbox bei Input Mode durch Anklicken von Word auf Worteingabe umschalten, urn Variablen benutzen zu konnen, die aus mehreren Zeichen bestehen. Zur exakten Lasung eines linearen Gleichungssystems gibt es zwei Maglichkeiten: 1. Nach Aktivierung der Menufolge Solve => System... offnet sich die Dialogbox Equation Setup ... in die die Anzahl der Gleichungen einzutragen ist. Nach Anklicken von OK erscheint eine weitere Dialogbox, in die die Gleichungen und Variablen (Losungsvariablen) eingetragen werden. Nach Anklicken von Simplify erscheint das Ergebnis. II. Anwendung der Menufolge Author => Expression... solve ( [ all *xl +... + aln*xn = bl , ... , amI *xl +... + amn*xn = bm 1 , [ xl , ... , xn 1) => Simplify mit dem Lasungskommando solve zur Lasting allgemeiner Gleichungen.
23.2 Lineare Gleichungen
217
Beispiel 23.3: 2ur Losung von Beispiel 23.1a) verwenden wir die beiden von DERIVE gegebenen Moglichkeiten: I. Nach Aktivierung der Memlfolge Solve セ@ System... wird in der erscheinenden Dialogbox Equation Setup ... die Anzahl der Gleichungen (2) eingetragen. Nach Anklicken von OK erscheint eine weitere Dialogbox, in die die beiden Gleichungen in der Fonn 5 * xl + x2 = 2 xl - 2 * x2 = 7 und die beiden Losungsvariablen in der Fonn xl , x2 eingetragen werden. Das Anklicken von Simplify liefert das Ergebnis xl = I ,x2 =-3 II. Anwendung der Memlfolge Author セ@ Expression ... solve ( [ 5 * xl + x2 = 2 , xl - 2 * x2 = 7 1, [xl, x2 1) セ@ Simplify Die Beispiele 23.1a) und b) werden problemlos gelost, wobei man bei b) allerdings beachten muB, daB verschiedene Losungsdarstellungen existieren. Die Unlosbarkeitvon Beispiel 23.1c) zeigt DERIVE mittels [] an .
•
MACSYMA
MAPLE
MACSYMA kann zur exakten Losung eines linearen Gleichungssystems das Kommando solve ( [ a11*xl + ... + aln*xn = bl , ... , aml*xl +... + amn*xn = bm 1 , [ xl , ... , xn 1) zur Losung allgemeiner Gleichungen anwenden, wobei die Eingabe der Gleichungen und Variablen als Liste erfolgen muB. Beispiel 23.4: Beispiel 23.1a) wird mittels des Kommandos solve ( [ 5 * xl + x2 = 2 , xl - 2 * x2 = 7 1, [xl, x2 1 ) gelost. Analog lost man Beispiel 23.1b). Die Unlosbarkeit von Beispiel 23.1c) zeigt MACSYMA mittels der Meldung Inconsistent equations (unvertragliche Gleichungen) an .
•
MAPLE bietet zur exakten Losung eines linearen Gleichungssystems zwei Moglichkeiten: I. Die Anwendung des Kommandos solve ( { a11 *xl + ... + aln*xn = bl , ... , amI *xl + ... + amn*xn = bm ) , { xl, ... , xn ) ) ;
23 L6sung von Gleichungen und Ungleichungen
218
zur exakten Losung allgemeiner Gleichungen ist moglich, wobei die Eingabe der Gleichungen und Variablen in Mengenschreibweise erfolgen muB. II. Die Anwendung des speziell fUr lineare Gleichungen vorhandenen Kommandos linsolve ( [ [ all, ... ,aln 1, ... ,[amI, ... , amnll , [ bl , ... ,bm 1 ) ; das nach Laden des Pakets Lineare Algebra mittels with (linalg); zur VerfUgung steht, wobei die Koejfizienten und die rechten Seiten des Gleichungssystems in Listenform einzugeben sind. Beispiel 23.5: Beispiel 23.1 a) wird mittels der Kommandos solve ( { 5*xl + x2 = 2 , xl - 2*x2 = 7 } , { xl , x2 } ) ;
oder linsolve ( [ [ 5 , I 1, [ I , -2 11 , [ 2, 7 1) ; gelost. Analog lost man Beispiel 23.1 b). Fur das unlosbare Beispiel 23.1c) erfolgt keine Reaktion. Es wird zum nachsten Eingabeprompt ubergegangen .
•
Sucht man nur ganzzahlige Losungen des Gleichungssystems, kann bei MAPLE das Kommando isolve anstatt von solve verwendet werden . MATHCAD
•
MATHCAD bietet folgende zwei Moglichkeiten zur exakten Losung von linearen Gleichungssystemen : I. Mittels der Menufolge Symbolic => Solve for Variable kann man eine Gleichung nach einer Variablen (die markiert sein muB) auflosen. Damit laBt sich ein Gleichungssystem schrittweise losen, indem man jeweils eine Gleichung nach einer Variablen auflost und das Ergebnis uber die Zwischenablage in die anderen Gleichungen mittels der Menufolge Symbolic => Substitute for Variable einsetzt. Diese als Eliminationsmethode bezeichnete Methode ist aufwendig und deshalb nur bei einer kleinen Anzahl von Gleichungen und Variablen zu empfehlen. II. Die effektive Losungsmethode fur MATHCAD erhalt man mittels folgender Methode zur exakten Losung allgemeiner Gleichungen: Man gibt given in GroB- oder Kleinbuchstaben in das Arbeitsfenster ein. Es ist nur zu beachten, daB dies im Formelmodus geschehen muB. Unterhalb dieses Wortes ist anschlieBend das zu
23.2 Lineare Gleichungen
219
losende Gleichungssystem einzugeben. Dabei muB das Gleichheitszeichen unter Verwendung des Gleichheitsoperators
EJ
aus der Operatorpalette Nr.2 oder der Tastenkombination @§)E) eingegeben werden. Unter dem zu losenden Gleichungssystem ist danach die Funktion find ( ... ) einzugeben, wobei im Argument die Variablen (durch Komma getrennt) erscheinen mussen, nach denen aufgelost werden soll. Die abschlieBendeEingabe des symbolischen Gleichheitszeichens セ@ liefert das exakte Ergebnis, falls das Gleichungssystem los bar ist. Man kann das berechnete Ergebnis mittels der Zuweisung
x := find ( ... ) セ@ einem Vektor x zuordnen (siehe Beispiel 23.6). Bei der Eingabe der Gleichungen in das Arbeitsfenster konnen bei beiden Methoden die Variablen sowohl indiziert in der Form XI' x 2 , x 3 ,··· ,als auch in der Form xl, x2, x3, ... eingegeben werden. Bei der Verwendung indizierter Variablen lassen sich beide im Abschn. 13.2 beschriebenen Formen (Feldindex oder Literalindex) anwenden .
•
MATHCAD besitzt zur Losung linearer Gleichungssysteme zusatzlich das Numerikkommando lsolve (A, b) das als Ergebnis den Losungsvektor liefert, wenn man das numerische Gleichheitszeichen = eintippt. Dieses Kommando ist nur fUr Systeme mit quadratischer und nichtsinguliirer Koe.!fizientenmatrix A anwendbar, fUr die genau eine Losung existiert. Es werden hier die inverse Matrix A-I und die Losung mittels x = A -I. b berechnet.
•
Beispiel 23.6: a) Beispiel 23.1a) wird mittels given 5*x I + x 2 = 2 x l -2*x 2 =7 x:= find ( x I ' x 2
)
セ@
C3)
exakt gelost. Analog lost man Beispiel 23.1b).
220
23 L6sung von Gleichungen und Ungleichungen
Fur das unlosbare Beispiel 23.1c) erfolgt die Meldung did not find solution (keine Losung gefunden). b) Losen wir das Beispiel aus a) mittels des Numerikkommandos Isolve:
!solve ((: MATHEMATICA
•
MATIfEMATICA bietet zur exakten Losung eines linearen Gleichungssystems zwei Moglichkeiten: I. Das allgemeine Kommando Solve [ I all *xl + ... + aln*xn == bl , ... , amI *xl + ... + amn* xn == bm I , I xl, ... , xn 11 zur Losung beliebiger Gleichungen kann angewandt werden, wobei die Eingabe der Gleichungen und Variablen als Liste erfolgen muB und als Gleichheitszeichen == zu verwenden ist. II. Anwendung des speziell fur lineare Gleichungen vorhandenen Kommandos UnearSolve [ I I all , ... , aln I , ... , I amI , ... , amn I I , I bl , ... , bm 11 wobei die erste Liste die Koe!fizientenmatrix A und die zweite die rechte Seite des zu lOsenden Gleichungssystems enthalten. Beispiel 23_7: Beispiel 23.1a) kann mittels der Kommandos Solve [ I 5*xl + x2 == 2 , xl - 2*x2 == 7 I , I xl , x2 I 1 oder UnearSolve [115, 1 I , 11 , -2 II , I 2 ,711 gelostwerden. Analog lost man Beispiel 23.1b). Das unlosbare Beispiel 23.1c) bewirkt die Meldung der Unlosbarkeit: Linear equation encountered which has no solution.
•
MATI..AB
セj@ G)) = C3)
MATLAB bietet zur Losung eines linearen Gleichungssystems zwei Moglichkeiten: I. Das allgemeine Kommando solve ( 'all*xl + ... + aln*xn = bl ' , ... , , aml*xl + ... + amn* xn = bm ' , 'xl' , ... , 'xn') zur exakten Losung beliebiger Gleichungen kann angewandt werden.
23.2 Lineare Gleichungen
221
Bei der dem Autor zur Verfugung stehenden Version von MATLAB lieB sich das Kommando solve nur anwenden, wenn die (symbolischen) Variablen des Gleichungssystems aus einem Buchstaben bestehen .
•
II. Anwendung des speziell fUr lineare Gleichungen vorhandenen Kommandos A \ b wobei A fUr die Koeffizientenmatrix und b fUr die rechte Seite des Gleichungssystems stehen. Dabei ist zu beach ten, daB der Vektor b immer als Spaltenvektor einzugeben ist. Beispiel 23.8: Beispiel 23.1a) kann minels der Kommandos solve ( , 5*x + y = 2 ' , ' x - 2*y = 7 ' , ' x ' , ' y ') oder [ 5 , I ; I , -2 1 \ [ 2 ; 7 1 gelostwerden. Analog lost man Beispiel 23.1b). Das unlosbare Beispiel 23.1c) bewirkt die Meldung der Unlosbarkeit: Explicit solution could not be found. Bei der Anwendung von II. kommt fUr die beiden letzten Eille die Meldung, daB die Matrix singular ist.
•
MuPAD
MuPAD bietet zur exakten Losung eines linearen Gleichungssystems zwei Moglichkeiten: I. Das allgemeine Kommando solve ( { all *xl + ... + aln*xn = bl , ... , amI *xl + ... + amn* xn = bm } , { xl , ... , xn } ) ; zur Losung beliebiger Gleichungen kann angewandt werden, wobei die Eingabe der Gleichungen und Variablen in Mengenschreibweise erfolgen muB. II. Anwendung des speziell fUr lineare Gleichungen vorhandenen Kommandos linsolve ( { all *xl + ... + aln*xn = bl , ... , amI *xl + ... + amn *xn = bm } , { xl , ... , xn } ) ; wobei die Eingabe der Gleichungen und Variablen in Mengenschreibweise erfolgen muB. Beispiel 23.9: Beispiel 23.1a) kann mittels der Kommandos solve ( { 5*xl + x2 = 2 , xl - 2*x2 = 7 } , { xl , x2 } ) ; oder linsolve ( { 5*xl + x2 = 2 , xl - 2*x2 = 7 } , { xl , x2 } ) ; gelostwerden. Analog lost man Beispiel 23.1b).
222
23 L6sung von Gleichungen und Ungleichungen
Das un16sbare Beispiel 23.1 c) bewirkt die Meldung der Unl6sbarkeit: I} bzw. Fail
•
Die L6sung linearer Gleichungssysteme ist im Rahmen der Computeralgebra problemlos maglieh, da der GaujSsche Algorithmus naeh endlieh vielen Sehritten eine Lasung liefert (endlicher Algorithmus). Sie wird nur bei hoher Dimension (groBe Anzahl von Gleichungen und Variablen) dureh lange Reehenzeit bzw. Abbrueh wegen Speiehermangels eingesehrankt.
•
Wir haben gesehen, daB * aile Systeme die L6sung linearer Gleichungssysteme mittels der KommandosiMenufolgen zur L6sung allgemeiner Gleichungen gestatten, wofUr sie bis auf MATHCAD das Kommando solve (deutseh: 16sen) verwenden. * die Systeme MAPLE, MATHEMATICA, MATLAB und MuPAD spezielle Kommandos fUr lineare Gleichungen anbieten, die naturlieh vorzuziehen sind .
•
Einige der Systeme ordnen die L6sung eines Gleichungssystems den Variablen nur symbolisch zu, d.h., mit den Variablen kann ansehlieBend nicht weitergereehnet werden. Welche Magliehkeiten die Systeme bei der Weiterverwendung von L6sungen von Gleichungssystemen bieten (L6sungszuweisung) , wird im folgenden Beispiel 23.10 am Beispiellinearer Gleichungssysteme fur MAPLE und MATHEMATICA gezeigt.
•
Beispiel 23.10: Wir verwenden das Gleichungssystem aus Beispiel 23.1a) und zeigen fUr MAPLE und MATHEMATICA folgende M6glichkeiten fUr die L6sungszuweisung: MAPLE
•
MAPLE bietet folgende M6glichkeiten fUr eine L6sungszuweisung: • Eine dauerhafte L6sungszuweisung an xl bzw. x2 ist aus der folgenden Bildsehirrnkopie zu ersehen: solve ( I 5*xl + x2 = 2 , xl - 2*x2 = 7 } , I xl , x2 } ) ;
{xl=1,x2=-3} assign (") ;
23.2 Lineare Gleicbungen
223
xl; x2;
1 -3 Aus der gegebenen Bildschirmkopie ist zu erkennen, daB die Zuweisung der L6sung des Gleichungssystems mittels des Kommandos assign erfolgt. Die Zuweisung der Lbsung zu xl und x2 nach der Anwendung des Kommandos solve ist rein symbolischer Natur. Wenn man mit den erhaltenen Zahlenwerten 1 und -3 ftir xl und x2 weiterechnen will, muB unbedingt das Kommando assign ausgefilhrt werden. Die Anwendung dieses Kommandos hat aber den Nachteil, daB anschlieBend xl und x2 nicht mehr als Variable zur Verfilgung stehen, da ihnen Werte zugewiesen wurden. Eine vonlbergehende Zuweisung der Lbsungen filr xl bzw. x2 ist aus der folgenden Bildschirmkopie ersichtlich, wobei der Quotient xl/x2 unter Verwendung des Kommandos subs berechnet wird: lsg := solve ( { 5*xl + x2 = 2 , xl-2*x2 = 7 I , ( xl , x2 I ) ;
lsg:= {xl
= I,x2 = -3}
subs ( lsg , xl/x2 ) ;
-1 3 Mittels des Kommandos subs werden in diesem Beispiel xl und x2 nur zur Berechnung des Quotienten xl/x2 die Werte 1 bzw. -3 zugewiesen. MATIIEMA- MATHEMATICA bietet folgende M6glichkeiten filr eine L6sungszuTICA
weisung: • Eine dauerhafte L6sungszuweisung an xl bzw. x2 ist aus der folgenden Bildschirmkopie zu ersehen: Solve [ { 5*xl+x2==2 , xl-2*x2=7 I , {xl, x2 I ] { { xl -> 1 , x2 -> -3 I I xl = xl /.%[[1]] 1
x2=x2/.%%[[1]]
-3 •
Da hier die L6sung in einer geschachtelten Liste steht, muB sie mittels [[1]] herausgezogen werden. Eine vonlbergehende Zuweisung der Lbsungen filr xl bzw. x2 ist aus der folgenden Bildschirmkopie ersichtlich, wobei wie bei MAPLE der Quotient xl/x2 berechnet wird:
23 L6sung von Gleichungen und Ungleichungen
224
Solve [ { 5*xl+x2=2 , xl-2*x2==7 } , { xl , x2 } ] { { xl -> 1 , x2 -> -3 } } x1/x2 /.%[[1]] 1
-(-)
3
23.3
Polynome Polynomfunktionen (kurz Polynome) n-ten Grades Pn(x) mit reellen KoeJjizienten an ,a n - 1
, ...
,a 1 ,a o
schreiben sich in der Form Pn(JQ
=
n
k
Iak' X' k=O
=
an' x" + an-I'
xr1 + ... + a
1• x
+
aa
(an
* 0)
und werden auch als ganzrationale Funktionen bezeichnet. Die wichtigste Aufgabe bei Polynomen liegt in der Berechnung der (reellen und komplexen) Nullstellen, d.h. der Lbsungen Xi der zugehbrigen Polynomgleichung n-ten Grades Pn(x) =0 Ein Polynom n-ten Grades hat n Nullstellen, die reell, komplex und mehrfach sein kbnnen. Zur Bestimmung der Nullstellen existieren Berechnungsformeln nur fUr Polynome bis zum vierten Grad (d.h. bis n=4). Die bekannteste ist die fUr quadratische Gleichungen (n=2): 2
Die quadratische Gleichung
x + a1 . x + ao = 0
besitzt die beiden L6sungen
x 1,2 = - 2 + - ai 4 - a0
セ@
J
Fur n=3 und 4 sind die Formeln bedeutend schwieriger. Ab n=5 gibt es keine Formeln mehr fUr die Nullstellenberechnung, da allgemeine Polynome ab dem 5. Grad nicht durch Radikale Ibsbar sind. Deshalb kann man von den Systemen nicht erwarten, daB sie fUr ョセ@ 5 imrner die exakten L6sungen finden .
•
Eng mit der Nullstellenbestimmung hangt die Faktorisierung von Polynomen zusammen (siehe Abschn.18.5). Unter Faktorisierung versteht man die Schreibweise eines Polynoms als Produkt von Lineaifaktoren (fUr die reellen Nullstellen) und quadratischen Polynomen (fUr die komplexen Nullstellen), d.h. (fUr an =1)
23.3 Polynome n
Lak x
225 k
=
k=O
(x - Xl )(x - X:.)· ... · (X - Xr )(X 2 + blx + C l )· ... · (X 2 + bsx + C s ) wobei XI""'Xr die reel/en Nullstellen sind (in ihrer eventuellen Vielfachheit gezahlt). Eine derartige Faktorisierung ist nach dem Fundamentalsatz der Algebra gesichert. Bei der Faktorisienmg wird man nur ein Resultat erwarten kbnnen, wenn die Systeme die Nullstellen exakt bestimmen kbnnen (siehe Abschn.18.5) .
•
Mit den Systemen kann man die exakte Nullstellenbestimmung fUr Polynome auf folgende drei Arten in Angriff nehmen: I. Mittels eventuell vorhandener speziel/er Kommandos zur Nullstellenbestimmung fUr Polynome, die wir im folgenden betrachten, II. Mitte1s Faktorisierung (siehe Abschn.18.5), III. Mittels der L6sungskommandos fUr nichtlineare Gleichungen (siehe Abschn.23.4), wobei mit I. begonnen werden sollte. versagt, kbnnen Falls die exakte Nullstellenbestimmung fur pッセケョュ・@ die Numerikkommandos zur Lbsung nichtlinearer Gleichungen herangezogen werden (siehe Abschn.23.4) .
•
MACSYMA
MAPLE
MATIlCAD
Betrachten wir spezielle KommandoSIMenufolgen der Systeme zur Bestimmung def Nullstellen von pッセケョュ・Z@ MACSYMA berechnet mit dem Kommando polysolve ( Pn (x) , X ) die reellen und komplexen Nullstellen des gegebenen Polynoms nten Grades Pn(x) exakt. MAPLE berechnetmit dem Kommandoroots (Pn(x) ) die reellen und komplexen Nullstellen des gegebenen Polynoms nten Grades Pn(x) exakt. MATHCAD berechnet mit dem Kommando polyroots (a) die reellen und komplexen Nullstellen des Polynoms Pn(x) numerisch, wobei def Spaltenvektor a die KoeJfizienten des Polynoms in def folgenden Fonn enthalt:
226
23 L6sung von Gleichungen und Ungleichungen
Man kann das Ergebnis auch einem Vektor z in der Form z = polyroots ( a) zuweisen. MATHEMATICA berechnetmit dem KommandoRoot [ Pn(x), k MATIIEMAdie k-te (k=l , ... , n) reelle oder komplexe Nullstelle des gegebenen TICA Polynoms n-ten Grades Pn(x) exakt. MATLAB berechnet mit dem Kommando MATLAB roots ( [ an an-I··· a 1 a o J) numerisch die reellen und komplexen Nullstellen des Polynoms Pn(x) mit den Koeffizienten an ,a n- 1 , ... ,a 1 ,a o MuPAD berechnet mit einem der Kommandos MuPAD * numeric:: bairstow ( Pn(x) ) ;
*
numeric:: fsolve ( Pn(x) , x , a , b , eps ) ; die reellen und komplexen Nullstellen des Polynoms Pn(x) numerisch, wobei fsolve die Nullstellen im Intervall [a,bJ mit der Genauigkeit eps liefert.
•
Selbst wenn ein System alle Nullstellen eines Polynoms berechnet, ist das Ergebnis kritisch zu betrachten. Es empfiehlt sich, die Funktionskurve der Polynomfunktion zusatzlich zeichnen zu lassen und hieraus Niihernngswerte fur die reellen Nullstellen abzulesen, die man mit den berechneten vergleichen kann. Des weiteren ist eine Probe zu empfehlen, d.h., die berechneten Nullstellen sollten in das Polynom eingesetzt werden.
•
Beispiel 23.11a) zeigt, daB die Systeme die Nullstellen fur Polynome mit einem Grad groBer als 4 exakt berechnen konnen, wenn diese ganzzahlig sind.
•
Beispiel 23.11: a) Die ganzzahligen Nullstellen -1, -2, 1 , 2 , 5 der Polynomgleichungfunften Grades
23.4 Nichtlineare Gleichungen X4 -
5 . X 3 + 25· x 2 + 4· x - 20 werden von allen Systemen berechnet. b) Fur die PoZynomgleichung dr"itten Grades X5 -
5·
227
o
10· x3 + 3· X2 -7 = 0 liefert kein System eine exakte L6sung, obwohl hierfUr noch eine Lbsungsformel existiert. Diese Gleichung besitzt allerdings zwei komplexe Nullstellen und die einzige reelle Nullstelle ist nicht
ganzzahlig. MATHCAD, MATLAB und MuPAD berechnen mit den gegebenen Numerikkommandos polyroots bzw. roots bzw. numeric :: bairstow die folgenden Niiherungswerte fUr die drei Nullstellen: 0.7983 -0.5492 - 0.7585 i -0.5492 + 0.7585 i
•
Wenn die exakte Nullstellenbestimmung fUr Po(ynome versagt, so erscheinen die gleichen Anzeigen, die bei der Lbsung von Gleichungen ausgegeben werden (siehe Abschn.23.4). In diesem Fall kann auf Numerikkommandos zuruckgegriffen werden, die wir im Abschn.23.4 besprechen .
•
23.4
Nichtlineare Gleichungen Zur exakten L6sung nichtlinearer Gleichungssysteme (m Gleichungen mit n Variablen) der Form U1(X1' ... ,x n ) = 0 Um(x1' ... ,x n ) = 0 werden die allgemeinen KommandosiMenufolgen verwendet, die wir im Abschn.23.2 bei linearen Gleichungssystemen kennenlernten und die bis auf MATHCAD das Kommando solve (deutsch: l6sen) benutzen. Wir brauchen diese KommandoslMenufolgen deshalb nicht nochmals zu erHi.utern. Es sind in ihnen lediglich die linearen durch die nichtlinearen Gleichungen zu ersetzen.
Da fUr nichtlineare Gleichungen kein allgemein anwendbarer endlicher L6sungsalgorithmus existiert, kann man nur bei einfachstrukturierten Gleichungen eine exakte Lbsung erwarten .
•
228
23 L6sung von Gleichungen und Ungleichungen
Als Spezialfiille nichtlinearer Gleichungen haben wir im Abschn.23.2 und 23.3 bereits lineare Gleichungen bzw. Polynomgleichungen kennengelemt. Betrachten wir zwei weitere Beispiele fur nichtlineare Gleichungen. Beispiel 23.12: a) Fur das System von Polynomgleichungen 2 2 4 4 2·x -y =-1 x +y =2 das neben vier reel/en Losungen
セHjU@
セHMQU@
,J35)
,J35)
セHQU@
555
,-J35)
1 -( 5 -15 ,-v ;'35) ))
noch vier komplexe Losungen ( i, i ) ( -i, i ) ( i, -i ) ( -i, -i ) besitzt, Hefem bei der exakten Berechnung AXIOM, MACSYMA, MAPLE, MATH CAD , MATHEMATICA und MuPAD dieses Ergebnis, wahrend DERIVE und MATLAB versagen. b) Fur die einfache transzendente Gleichung 7cosh x = sinh x + 9 berechnen AXIOM, DERIVE, MAPLE, MATHEMATICA und MATLAB die beiden Losungen
1 (9-J33) n 6
1 (9+J33) n 6 Wenn man diese Gleichung jedoch mittels eX _ e- x eX + e- X coshx=--2
sinhx=--2
auf die Form 3e x + 4e- x - 9 = 0 transformiert, Hefem auch MATHCAD und MuPAD diese Lasungen .
•
Aufgrund der geschilderten Problematik sind bei der Losung nichtlinearer Gleichungen in den meisten Fallen numerische Verfahren (vor allem Iterationsverfahren) anzuwenden, die * Niiherungswerte fur die Losungen Hefem, * als Startwert einen Schiitzwert fur eine Losung benatigen, der dann durch das numerische Verfahren im FaIle der Konvergenz verbessert wird, * nicht konvergieren miissen, d.h. kein Ergebnis Hefem (z.B. das Newton- Verfahren), auch wenn der Startwert nahe bei einer Losung Hegt, wie aus der numerischen Mathematik bekannt ist. Die Wahl der Startwerte laBt sich bei einer Unbekannten (d.h. fur die Lasung einer Gleichung u(x) = 0) erleichtem, wenn man die
23.4 Nicbtlineare Gleicbungen
229
Funktion u(x) grafisch darstellt und hieraus Niiherungswerte fur die Nullstellen abliest.
•
1m folgenden betrachten wir nur die numerische L6sung einer Gleichung. Bei mehrereren Gleichungen geschieht die Eingabe analog wie bei linearen Gleichungen.
•
DERIVE
MACSYMA
MAPLE
MATHCAD
Die einzelnen Systeme stellen folgende NumerikkommandosiMenufolgen fUr die numerische L6sung nichtlinearer Gleichungen der Form u(x) = 0 zur VerfUgung: DERIVE stellt nach dem Laden des Zusatzprogramms SOLVE.MTH mittels der Menufolge File セ@ Load セ@ Utility... Solve folgende L6sungsmethoden fUr die Gleichung u(x) = 0 zur Verfugung: • Durch die Menufolge Author セ@ Expression ... セ@ Newtons ( u(x) , x , xa , n ) セ@ Simplify セ@ Approximate... セ@ Approximate wird das Newton- Verfahren aktiviert, • Durch die Menufolge Author セ@ Expression... セ@ {"txed_point ( u(x) , x , xa , n ) セ@ Simplify セ@ Approximate... セ@ Approximate wird ein Fixpunktverfahren aktiviert, wobei in der erscheinenden Dialogbox die Genauigkeit eingestellt werden kann (Digits of precision). Weiterhin stehen * xa fUr den Schiitzwert (Startwerte) fUr x, * n fUr die Anzahl der durchzufUhrenden Iterationen. MACSYMA liefert mit dem Numerikkommando (fur das NewtonVerfahren) newton (u(x) = 0, x , xa , n) eine reelle oder komplexe Niiherungsl6sung fur die Gleichung u(x) = 0 fUr den Startwert x = xa nach n Iterationen. Bei MAPLE ist der Kommandoname solve fUr die exakte (symbolische) Losung lediglich durch fsolve (Name fUr das Numerikkommando) zu ersetzen. Fur fsolve wird kein Startwert veriangt. Ein jetzt mogliches drittes Argument liiBt noch verschiedene Optionen zu. So bewirkt z.B. die Option complex, daB auch komplexe L6sungen numerisch bestimmt werden. MATHCAD stellt folgende Numerikkommandos zur L6sung nichtlinearer Gleichungen zur VerfUgung:
23 L6sung von Gleichungen und Ungleichungen
230
•
numerische L6sung einer nichtlinearen Gleichung mit einer UnbekannteniVariablen der Gestalt u(x) = 0, d.h. numerische Bestimmung der Nullstellen der Funktion u(x) : Das Kommando root ( u(x) , x ) liefert im Falle der Konvergenz eine reelle oder komplexe Ndherungsl6sung fUr die Gleichung u(x) = 0, wenn vorher mittels x := xa der Variablen x ein reeller oder komplexer Startwert xa ftir das Naherungsverfahren (Iteration) zugewiesen wurde. Als numerisches Veifahren wird von MATHCAD die Sekantenmethode (Regula falsO benutzt. Obwohl die Sekantenmethode zwei Startwerte benbtigt, verlangt MATHCAD nur einen. • numerische L6sung von nichtlinearen Gleichungssystemen Bis auf zwei Ausnahmen: * Zuweisung von Startwerten * Eingabe des numerischen Gleichheitszeichens = statt des symbolischen -+ nach find ist die Vorgehensweise analog zur exakten L6sung und gestaltet sich folgendermafien: Zuweisung von Startwerten an aile Variablen Xl , x 2 , ... , xn given Eingabe der Gleichungen Das Gleichheitszeichen muB mittels des Gleichheitsoperators
[E] aus der Operatorpalette Nr.2 eingegeben werden find (Xl , X 2 , ... , Xn) = d.h. die Eingabe des numerischen Gleichheitszeichens = nach find liefert ein berechnetes numerisches Ergebnis. MATHCAD verwendet zur numerischen L6sung das LevenbergMarquardt-Verfahren. Bei dieser Methode kbnnen neben Gleichungen auch Ungleichungen auftreten. Wenn ein Gleichungssystem keine Lbsungen besitzt, so kann das
Numerikkommando Minerr(xl ,x 2 , ... , xn) anstatt von find zum Erfolg fUhren, da hiermit die Quadratsumme aus den linken Seiten der Gleichungen minimiert, d.h. luセHxi@
m
i=l
,x2 ,···,
Xn)
セmゥョュオ@ Xl' Xl.···' Xn
und damit eine L6sung im verallgemeinerten Sinne bestimmt wird.
23.4 Nicbtlineare G/eicbungen
231
Falls MAlHCAD eine Lbsung ermitteln kann, liefert die Eingabe des numeriscben Gleicbbeitszeicbens = nach den gegebenen Numerikkommandos den berechneten Lbsungsvektor. Statt Eingabe dieses Gleichheitszeiehens kann man das berechnete Ergebnis auch einem Vektor zuweisen, z.B. z:= polyroots (a) bzw. z:= nnd (Xl' X 2 , ... , Xn) bzw. z := Minerr (Xl , X 2 , ... , Xn) MATIIEMATICA
•
MAlHEMATICA lie/ert mit dem Numerikkommando * FindRoot [ u(x) == 0 , { X , xa } 1 eine reelle oder komplexe Naberungsl6sung fUr die Gleicbung u(x) = 0 fur den Startwert X = xa, falls es erfolgreieh ist. * Nsolve [ u(x) = 0 , X 1 das obne Startwert auskommt, bei erfolgreiehem Einsatz auch mebrere Naberungsl6sungen fUr die Gleicbung u(x) = 0 Es empfiehlt sieh, mit dem Kommando NSolve zu beginnen und nur bei dessen Versagen auf das Kommando FindRoot zUrUckzugreifen. Bei mehreren Gleiehungen und Variablen sind diese in Listen/orm im Argument der Kommandos einzugeben.
•
MATIAB
MuPAD
MATLAB lie/ert mit dem Numerikkommando syms X ; fzero ( , u(x) , , xa) eine reelle oder komplexe Naberungsl6sung fUr die Gleicbung u(x) = 0 fUr den Startwert x = xa. MuPAD liefert mit dem Numerikkommando (fUr das NewtonVerfahren) numeric :: newton ( u(x) , x) ; eine reelle oder komplexe Naberungsl6sung fUr die Gleicbung u(x) = 0 , obne daB ein Startwert verlangt wird.
•
Bei den gegebenen Numerikkommandos, die Startwerte benbtigen, ist zu beachten, daB bei Vorgabe von reellen bzw. komplexen Startwerten meistens nur reelle bzw. komplexe Naherungen geliefert werden.
•
Zusammen/assend kann zur numeriscben L6sung nicbtlinearer Gleicbungen mittels der Systeme festgestellt werden, daB diese nur bei einfachstrukturierten Gleichungen erfolgreieh sind. Dies ist nieht
23 L6sung von Gleichungen und Ungleichungen
232
anders zu erwarten, da man aus der numerischen Mathematik weiB, daB aIle bisher bekannten numerischen Methoden nicht notwendigerweise konvergieren mussen, selbst wenn die Startwerte nahe bei einer Lasung liegen .
•
Eine weitere effektive numerische Losungsmethode besteht fur aIle Systeme in der Oberjuhrung des nichtlinearen Gleichungssystems in die Minimierungsaujgabe m
L uセHxi@
i=l
, x 2 ,···, x n ) セ@
Minimum Xl
I
x 2 ,"', xn
die mit numerischen Methoden der Optimierung gelast werden kann (siehe Abschn.30.4). Diese Methode gestattet auch die Ermittlung verallgemeinerter Losungen, wenn keine Lasung existiert. Wir haben diese Methode eben bei MATHCAD kennengelernt, wo hierfur das Kommando Minerr existiert .
•
Beispiei23.13: Fur die einzige reelle Nullstelle der Funktion u(x) = x 7 + eX + sin x die zwischen -0.58 und -0.57 liegt, wird von * DERIVE mittels (Startwert 0 und 5 Iterationen) Newtons (xA7 + e Ax + sin(x) , x , 0 , 5 ) * MACSYMA mittels (Startwert 0 und 5 Iterationen) newton (x A7 + exp(x) + sin(x) = 0, x, 0 , 5 ) * MAPLE mittels fsolve ( x A7 + exp(x) + sin(x) = 0 , x) ; * MATHCAD mittels (fur den Startwert 0) X:= 0 root(x 7 + eX + sin(x),x) =-0.5738444264
* * *
MATHEMATICA mittels (fur den Startwert 0) FindRoot [xA7 + Exp[x) + Sin[x) == 0 , ( x , 0 } ) MATIAB mittels (fur den Startwert 0) syms x ; fzero ( , x A7 + exp(x) + sin(x) , ,0) MuPAD mittels numeric :: newton (x A7 + exp(x) + sin(x) , x) ;
233
23.5 Ungleichungen
der Wert -0.5738444264 berechnet.
•
23.5
Ungleichungen Betrachten wir die Lasung von Ungleichungen der Form P(x) < 0 bzw. P(x) セ@ 0 wobei P(x) ein beliebiger Ausdruck (algebraisch, transzendent usw.) sein kann und geben zuerst einige einfache Beispiele. Beispiei23.14: Beispiele fUr Ungleichungen sind
a) Ix + 11 + Ix - 11 < 3 mit der L6sung -1.5 < x Palettes => BasicCalculations * BasicInput die durch die Menufolge File => Palettes => BasicInput aufgemfen werden. Man wiihlt in der erscheinenden Palette den Dif.[erentiationsoperator
セ@
aus, der wie folgt ausgefullt wird
a{x,n }, {y,m} [[x, y] Beispiel 24.6: a) Die gemischte parlielle Ableitung funfter Ordnung
as
-2--3 sin x . In y &By der Funktion sin x . In y kann auf eine der folgenden beiden Arlen bereehnet werden: 1. mittels des Kommandos D [ Sin[x]*Log[y] , I x , 2 } , { y , 3 } ] 2. unter Verwendung des Dif.[erentiationsoperators aus n.2. mittels a{x,2}, {y,3} (Sin[x]* Log[ y]) wobei das folgende Ergebnis geliefert wird: 2Sin[x] y3 b) Falls man die Quotientenregel (
f(X))1 g(x)
=
f'(x)· g(x) - f(x)· g'(x) g2(X)
vergessen hat, so erhiilt man diese auf eine der folgenden beiden Arlen: 1. Mittels des Kommandos D [ flx]/g[x] , x ] 2. Unter Verwendung des Dif.[erentiationsoperators aus 1.2. und der Operatorpalette Arithmetic and Numbers
a
[[x]
x
g[x]
c) Die Bereehnung der Momentangesehwindigkeit fUr den freien Fall aus Beispiel 24. Ie) kann auf jolgende zwei Arlen geschehen: 1. Mittels des Kommandos D [ g*tJ\212 , t 1
24 Differentialrechnung
246
2. Dnter Verwendung des Dif.!erentiationsoperators und der Operatorpalette Arithmetic and Numbers t ag*22
t
MATIAB
•
MATLAB berechnetmit der Kommandofolge * syms x ; diff ( , f(x) , , x , n ) die n-te Ableitung der Funktion f(x) nach x. Falls man Ableitungen erster Ordnung berechnen mbchte, kann man diff ( , f(x) , , x ) schreiben (siehe Beispiel 24.7b). * syms x y; diff ( , f(x,y) , , x , n ) die n-te partielle Ableitung der Funktion f(x,y) nach x. Das Kommando syms dient zur Bezeichnung der symbolischen Variablen. Beispiel 24.7: a) Die gemischte partielle Ableitungfunfter Ordnung
a5f(x, y) ax 2ay3 der Funktion f(x,y) wird mittels der Kommandofolge syms x y ; diff ( diff ( , f(x,y) , , x , 2 ) , y , 3 ) berechnet. b) Die Berechnung der Momentangeschwindigkeit fUr den freien Fall aus Beispiel 24.1 c) geschieht mittels syms t g; diff( , g*t A 212 " t) MuPAD
•
MuPAD berechnet mit dem Kommando * diff( f(x) , x$n); die n-te Ableitung der Funktion f(x) nach x. Falls man Ableitungen erster Ordnung berechnen mbchte, kann man diff ( f(x) , x ) ; schreiben (siehe Beispiel 24.8b und c). * diff ( f(x,y) , x$n , y$m ) ; die gemischte partielle Ableitung n+m ter Ordnung an+mf
axnaym der Funktion f(x,y). Beispiel 24.8: a) Die gemischte partielle Ableitungfunfter Ordnung
a5f(x, y) ax ay3 2
24.3 Taylorentwicklung
247
der Funktion f(x,y) wird mittels des Kommandos diff ( f(x,y) , x$2 , y$3 ); berechnet. b) Falls man die Quotientenregel ( f(X))1 = f'(x)'g(x)-f(x)'g'(x) g(x) g2(X) vergessen hat, so erhalt man diese mittels des Kommandos diff ( f(x)! g(x) , x ) ; c) Die Berechnung der Momentangeschwindigkeit fUr den freien Fall aus Beispiel 24.1 c) geschieht mittels diff ( g*t1\2/2 , t ) ;
•
24.3
Taylorentwicklung Nach dem Satzvon Taylor hat eine Funktion f(x), die im Interoal/ (x o - r, x o + r) (n+ 1)-mal stetig differenzierbar ist, die Taylorentwicklung n fCk)(x ) f(x)= 0 .(x-xo)k + Rn(x) k=O k!
L
fUr x E (x o - r , Xo + r), wobei das Restglied Rn (x) in der Form von Lagrange (0O und F(-sqrt(3)) 0) O:s;x:S;a,O:s;y:S;a,O:s;z:S;a mit der Dichte p=l (siehe Beispiel aus [41l/2,IV,3.2,3.3). Wenn wir die Bezugskante in die z-Achse legen, berechnet sich das gesuchte Tragheitsmoment Iz durch das folgende dreifache Integral: Iz =
J J J(X 2+y2)dZdYdx
x=o y=o z=o Dabei ist zu beachten, daB die richtige Berechnungsreihenfolge von innen nach auBen eingehalten wird. Diese Reihenfolge muB auch bei der Anwendung der Systeme eingehalten werden, die das Beispiel mittels folgender Kommandos exakt 16sen: •
• •
AXIOM:
integrate ( integrate ( integrate ( x/\2+y/\2 , z = 0 .. a ) , y = 0 .. a),x=O .. a) DERIVE: int ( int ( int ( x/\2+y/\2 , z , 0 , a) , y , 0 , a ) , x , 0 , a ) MACSYMA:
integrate ( integrate ( integrate ( x/\2+y/\2 , z , 0 , a ) , y , 0 , a ),x,O,a) •
MAPLE:
int ( int ( int ( x/\2+y/\2 , z = 0 .. a ) , y = 0 .. a ) , x = 0 .. a ) ; •
MATHCAD:
Eingabe des folgenden Dreifachintegrals
J J J(x 2+ Y2 ) dz dy dx 000
durch dreifache Schachtelung des Integraloperators aus der Ope-
ratorpalette Nr.5. Danach wird dieser Ausdruck mit einer Selektionsbox umrahmt. Die abschlieBende Aktivierung der Meniifolge Symbolic::::} Evaluate::::} Evaluate Symbolically oder die Eingabe des symbolischen Gleichheitszeichens セ@ berechnen dann das Integral. •
MATHEMATICA :
bietet folgende zwei Berechnungsm6glichkeiten: * Anwendung des Kommandos Integrate [ Integrate [ Integrate [ x/\2+y/\2 , { z , 0 , a } ] , {y,O,a}],{x,O,a}]
25.5 Mehifache Integrate
279
ode r
*
Integrate [ x1\2+y1\2 , f z , 0 , a } , f y , 0 , a } , f x , 0 , a } 1 Dreifache Schachtelung des Integraloperators aus der Operatorpalette BasicInput a a a
fffe
x2 +y2) dzdydx
000
•
MATIAB:
symsxyza; int int ( int ( x1\2+y1\2 , 'z', 0, a ) , 'y' , 0 , a ) , 'x' , 0 , a ) MuPAD: int ( int ( int ( x1\2+y1\2 , z = 0 .. a ) , y = 0 .. a ) , x = 0 .. a ) ;
e
•
Als Ergebnis wird
•
2a 5
3
erhalten.
Das Beispiel 25.5 zeigt, daB alle Systeme bei der Berechnung mehrfacher Integrale das Integrationskommando schachteln miissen. Nur MATHEMATICA bietet zusatzlich eine Moglichkeit ohne Schachtelung.
•
280
26
Reihen und Fourierreihen
Zahlenreihen fallen bei der Lbsung einer Reihe von Problemen der Ingenieurmathematik an. 1m Abschn.26.2 illustrieren wir die Mbglichkeiten, die die Systeme zur Berechnung unendlicher konvergenter Zahlenreihen bieten. Von Funktionenreihen haben wir im Abschn.24.3 bereits Potenzreihen kennengelernt. Sie treten bei der Entwicklung von Funktionen in Taylorreihen auf. Eine weitere Klasse von Funktionenreihen behandeln wir im Abschn.26.3. Dies sind die Fourierreihen zur Beschreibung periodischer Vorgiinge.
26.1
Ingenieurtechnische Anwendungen Fourierreihen gestatten eine direkte technische Interpretation. Viele Vorgiinge in Technik und Naturwissenschaften sind zwar periodisch, aber nicht mehr sinusformig (harmonisch). Es zeigt sich, daiS sich die meisten periodischen Funktionen durch Oberlagenmg unendlich vieler harmonischer Schwingungen darstellen lassen. Dies wird durch die zugehbrige Fourierreihe realisiert, die die Zerlegung in Grund- und Oberschwingungen liefert.
26.2
Zahlenreihen Die exakte Berechnung endlicher Zahlenreihen (Sum men) der Form n
Lak = am + a m+1 +... +a n k=m mit den Elementen (reelle Zahlen) a k = f(k) ( k = m , m+ 1 , ... ,n ; m::; n ) bereitet den Systemen keine Schwierigkeiten, da sie in endlich vielen Schritten geschieht (siehe Abschn.19.1). 1m folgenden betrachten wir die Berechnung unendlicher Reihen
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
26.2 Zahlenreihen
281
00
La k =a m + a m + 1 + ... k=m
die fUr die Systeme nur im Faile der Konvergenz (siehe [41]/1) moglich ist. Da kein universeller endlicher Algorithmus zur exakten Berechnung der Summe konvergenter Reihen existiert, darf man von den Systemen keine Wunderdinge erwarten. Es wurden folgende Eigenschajten beobachtet: • Die Systeme DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD verwenden die Kommandos zur exakten Berechnung endlicher Reihen (Summen) aus Abschn.19.1, wobei fur den oberen Summationsindex n Unendlich (Schreibweise siehe Abschn. 13.3) zu verwenden ist. • Mit MACSYMA konnte mit dem oberen Summations index Unendlich keine Reihe berechnet werden. Bei einigen Reihen fUhrt folgendes Kommando zum Erfolg: limit ( sum ( f(k) , k , m , n ) , n , inf) • In AXIOM und MATLAB wurden keine Berechnungsmoglichkeiten fUr unendliche Zahlenreihen gefunden .
•
Falls in einem System die exakte Berechnung der Summe einer konvergenten Zahlenreihe versagt, kann die numerische Berechnung unter Verwendung der Numerikkommandos aus Abschn.12.2 versuchtwerden (siehe Beispiel 26.1b).
•
Bei alternierenden Reihen kann man sich im Faile des Scheiterns der exakten Berechnung helfen, indem man mit der Programmiersprache des vorliegenden Systems ein einfaches Programm zur naherungsweisen Berechnung unter Verwendung der Summenberechnung fUr endliche Summen schreibt, wobei das Leibnizsche Kriterium zu verwenden ist (siehe Beispiel 26.1c).
•
Beispiel 26.1: a) Die exakte Berechnung der konvergenten Zahlenreihe 00
I ォNHセKャI@ k=l
mit der Summe 1 geschieht in den Systemen folgendermaBen: * DERIVE: Author セ@ Expression ... sum ( 1/(k*(k+1)) , k , 1 , 00 ) セ@ Simplify
282
26 Reihen und Fourierreihen
* MAPLE: sum ( l/(k*(k+ 1) ) , k * MATH CAD :
セ@
L....J
1 k*(k + 1)
セ@
= 1 .. infinity) ;
1
k=l * MATHEMATICA : Sum [ 1/(k*(k+1)) , { k , 1 , Infinity} ] * MATLAB: syms k ; symsum ( l/(k*(k+ 1) ) , 1 , inf) * MuPAD: sum ( l!(k*(k+1) ) , k = 1 .. infinity); b) Die konvergente Zahlenreihe 00
Lk=l
C4.k-1)\4.k+1)
mit der Summe
1
7t
2
8
wird nur von MAPLE, MATH CAD , MATHEMATICA und MATLAB
exakt berechnet. Die numerische Berechnung ist in folgenden Systemen erfolg-
reich: * MAPLE: eva1f( sum ( 1/((4*k-1) * (4*k+1)) , k = 1 .. infinity) ; * MATHEMATICA : NSum [ 1/((4*k-1) * (4*k+1)) , { k , 1 , Infinity} ] c) Die konvergente alternierende Reihe
L 00
k_ (_1)k+l._ 2 k=l k +1 wird von keinem System exakt berechnet. * Numerisch berechnen MAPLE, MATHEMATICA den Wert 0.2696 * Nach dem Kriterium von Leibniz (siehe [41] ) ist der absolute Fehler kleiner oder gleich dem Betrag des (n+1)-ten Gliedes der Reihe, urn mittels der endlichen Summe
Ln
k_ (_1)k+l._ k=l k 2 +1
die Sumrne der gegebenen altemierende Reihe anzunahern. Bei der vorgegebenen Genauigkeit eps kann man deshalb mittels der Ungleichung n+1 - - - - - < eps (n + 1)2 + 1 die Zahl n bestimrnen, urn diese Genauigkeit zu erhalten.
26.3 Fourierreiben
283 Wir scbreiben zur Berecbnung der Reibensumme auf der Grundlage des Leibniz-Kriteriums ein kleines Programm mit MATHEMAllCA: f [ k_ 1:= (-1)II( k + 1 ) * k / ( kll2 + 1) ; eps = 0.001 ; k=I;S=O; While [ Abs [ f [ k + III >= eps , ( S = S+f [ k 1 , k = k + 1 I 1 ; N[Sl MATHEMAllCA berecbnet fUr die verwendete Feblerscbranke eps=O.OOI den Wert 0.26911 fur die Summe der gegebenen
alternierenden Reibe. Das gegebene Programm kann als Vorlage zur Berecbnung beliebiger alternierender Reiben verwendet werden. Man braucht nur das allgemeine Glied flkl der Reihe und die Feblerscbranke eps neu einzugeben .
•
26.3
Fourierreihen Bei der Entwicklung einer periodiscben Funktion f(x) mit der Periode 21t in eine Fourierreibe, d.h. 00
ヲHクI]セK@
L(ak ·cosk·x + b k ·sink·x)
2 k=l besteht das Problem in der Berechnung der Fourierkoef/izienten ak =
2.. 1t
J
f(x) . cos k . x dx,
-It
bk =
J
2.. 1t
f(x) . sin k . x dx
-It
Fur die Entwicklung einer periodiscben Funktion mit der Periode 2p oder fUr eine nur auf dem Interoall [ -p , p 1 gegebene Funktion f(x) lautet die Fourierreibe: a o セ@ f(x) = - + k=l 2
L/ ak . cos k . 1t . x
+ b k . sin
P
J
p
J
p
1 f(x)· cos k·1t·x d x , b k = -.
-p
)
P
mit den Fourierkoef/izienten 1 ak = -. p
k . 1t . x
P
P
f(x)· sin k·1t·x dx
-p
P
Der Nacbweis fUr die (punktweise) Konvergenz der Fourierreibe gestaltet sich nicht schwierig (Kriterium von Dirichlet). Die Fourierreibenentwicklung spielt bei vielen praktiscben periodiscben Vorgangen (vor aHem in Elektrotechnik, Akustik und Optik)
26 Reihen und Fourierreihen
284
eine wesentliche Rolle, urn die Zerlegung in Grundschwingungen (n / p) und Oberschwingungen (n·n / p) zu illustrieren Wenn keine speziellen Kommandos zur Berechnung von Fourierreihen existieren, so kann man die Systeme trotzdem heranziehen, indem man mittels der Integrationskommandos aus Abschn.25.2 die einzelnen Fourierkoe!fizienten berechnet. Dies gestaltet sich jedoch aufwendiger und wird im Beispiel 26.2b) fUr MATHCAD gezeigt.
•
In den jolgenden Systemen existieren Kommandos/Memijolgen, die die Fourierreihe automatisch berechnen, wenn man die Funktion f(x), das Internal! [-p,pl und die Anzahl n der gewlinschten Glieder eingibt: DERIVE DERIVE erfordert folgende Vorgehensweise: * Zuerst muB die Zusatzdatei INT_APPS.MTH mittels der Menz'iJolge File => Load => Utility... Incapps geladen werden. * AnschliefSend kann mittels der Mem"ijolge Author => Expression ... fourier( f(x) , x , -p , p , n ) => Simplify die Fourierreihe der auf dem Internal! [-p,pl definierten Funktion f(x) bis zu den Gliedern n-ter Ordnung berechnetwerden. MACSYMA berechnet mittels der Kommandos MACSYMA * Fourier_Series (f(x) , x, p) die Fourierreihe der auf dem Internal! [-p,pl definierten Funktion f(x), d.h., es werden die Formeln fUr die Fourierkoe!fizienten ermittelt. * Fourier_Expand (Fourier_Coeffs (f(x) , x , p) , x , p , n) die Fourierreihe der auf dem Internal! [-p,pl definierten Funktion f(x) bis zu den Gliedern n-ter Ordnung. MATHEMA- MATHEMATICA erfordert folgende Vorgehensweise: TICA * Zuerst muB das Zusatzpaket Fouriertransjormation mittels des Kommandos Needs ["Ca!culus'FourierTransform'''l geladen werden. * AnschliefSend kann man mittels des Kommandos FourierTrigSeries [ fex) , { x , -p , p } , n 1 die Fourierreihe der auf dem Internal! [-p,pl definierten Funktion f(x) bis zu den Gliedern n-ter Ordnung berechnen. Mittels des anschlieBenden Zeichenkommandos Plot [ { % , f(x) } , { x , -p , p } 1 kann man sich die eben erhaltene Reihe zusammen mit der Funktion f(x) im Intervall -p ::; x ::; p grafisch anzeigen lassen.
263 Fourie1Teihen
285
Beispiel 26.2: a) Man berechne fUr die auf dem Interoall -1t セ@ X セ@ 1t definierte Funktion y = f(x) = x die Fourierreihen mit verschiedener Anzahl n von Gliedern und stelle diese und die Funktion f(x) im Intervall [-1t , 1tJ grafisch dar: Fur n=5 ergibt sich mittels * Author => Expression... fourier ( x , x , -pi , pi , 5 ) => Simplify bei der Anwendung von DERIVE * Fourier_Expand ( Fourier_Coeffs ( x , x , %pi ) , x , %pi , 5) bei der Anwendung von MACSYMA * FourierTrigSeries [ x , ( x , -Pi , Pi } , 5 J bei der Anwendung von MATHEMATICA der Ausdruck - .!..sin4x + セNウゥョUク@ 3 2 5 Die grafische Darstellung der Funktion und der Fourierreihe (flir n=5) mittels MATHEMATICA findet man in Abb.26.1. Die Grafik zeigt die gute Annaherung innerhalb des betrachteten Intervalls und die bekannten Abweichungen an den Intervallenden der Fourierreihe an die gegebene Funktion. Dies liegt darin begrundet, daB die Fortsetzung dieser Funktion im Gegensatz zur Funktion aus Beispiel 26.2b) an den Intervallenden unstetig ist (Sprung) und die dazugehbrige Fourierreihe hier gegen den Mittelwert 0 konvergiert. fex)", 2·sinx - sin2x +
Ahh.26.1. Graph der Funktion fex) und ihrer Fourierreihe aus Beispiel 26.2a) mittels MATHEMA-
TICA
セNウゥョSク@
26 Reihen und Fourierreihen
286
b) MATH CAD besitzt kein integriertes Kommando zur Berechnung von Fourierreihen. Man kann die Fourierreihe fUr eine auf dem Internal! [-p,pJ gegebene Funktion f(x) jedoch erhalten, indem man mit den Integrationskommandos aus Abschn.25.2 die einzelnen Fourierkoeffizienten ak und b k berechnet. Wir erlautern diese Vorgehensweise, in dem wir ein Dokument schreiben, das man zur Berechnung der Fourierreihe (bis zum Nten Glied) a
= - o + L(ak ·cos···-- + b k ·S1O-)
FN(x)
2
N
k.".x
k=!
P
.
k.".x P
beliebiger Funktionen f(x) verwenden kann. Man mug nur * die Funktion f(x) * den Wert p fUr die Internal!grenzen [-p,pJ * die Anzahl N der Glieder entsprechend verandern. Als Beispiel entwickeln wir die Funktion f(x) = x 2 im Internal! [-l,lJ in eine Fotlrierreihe mit 5 Gliedern. Dazu milssen wir die beiden Fourierkoeffizienten
J l
J 1
2
X . cos k . 11 . x dx
ak =
bk
=
x 2 . sin k . 11· x dx
-1
-1
fUr k = 0, 1, ... , 10 berechnen. MATH CAD kann das Problem mittels des folgenden Dokuments Ibsen: 2 fex) x P := 1 N
- 5
ak
]セヲ@
bk
k . :: O .. N
ヲHxINcosォQセ@
dx
セイ@
-p
セ@
ヲHxINウゥョォQセ@ P
dx
26,3 Fourlerreihen
287
( ·cos (k·n:·-· x \ +b '5111 . (k·n:·-jj x\\ ,a \ k \ p/ k pJ) Die Grafik in Abb.26.2. zeigt die gute Annaherung der Fourierreihe an die gegebene Funktion .
•
Abb.26.2. Graph der Funktion fex) und ihrer Fourierreihe aus Beispiel 26.2b) mittels MATH-
x = - p ,-p
+ 0.001 .. P
f( x)
F N( x) 0.5
CAn O'-----....:::..........セMG@ -1 o x
288
27
Vektoranalysis
Die Grnndlage der Vektoranalysis bilden Felder, wobei zwischen Skalar- und Vektorfeldern unterschieden wird. Weiterhin werden die von Variablen CRaumkoordinaten) abhangenden Vektoren mit den Mitteln der Differential- und Integralrechnung untersucht. Fur ingenieurtechnische Anwendungen benbtigt man meistens Vektoren in der Ebene Czweidimensionaler Raum R 2) oder im Raum Cdreidimensionaler Raum R 3 ).
27.1
Ingenieurtechnische Anwendungen Viele Phanomene in Technik und Naturwissenschaften lassen sich unter Verwendung von Feldern beschreiben: * Das betrifft die Vielzahl von Kraftfeldern als Beispiel fur Vektorfelder. * Beispiele fUr Skalarfelder werden durch das elektrostatische Potential und die Temperaturverteilung gegeben. Eine Reihe weiterer Anwendungsbeispiele findet man in [41113.
27.2
Felder, Gradient, Rotation und Divergenz Die Grundlage der Vektoranalysis bilden Felder, wobei zwischen Skalar- und Vektorfeldern unterschieden wird: Jedem Punkt P der Ebene bzw. des Raumes wird bei einem * Skalarfeld: eine skalare Grofle CZahlenwert) u * Vektorfeld : ein Vektor v zugeordnet. Damit lassen sich mathematisch in einem kartesischen Koordinatensystem • Skalarfelder: durch eine Funktion der Form * u = uCx, y) = uCr) (in der Ebene) * u = uCx, y, z) = uCr) (im Raum) • Vektorfelder: durch eine Vektorfunktion der Form * v = vCx, y) = vCr) = VI CX, y) . i + V 2 Cx, y) . j
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
27.2 Felder, Gradienten, Rotation und Divergenz
*
289
(in der Ebene) v=v(x, y, z)=v(r)=v/x, y,z)· i +v/x, y,z) . j + v 3 (x, y,z)· k
(im Raum) beschreiben, wobei
* *
r = x . i + Y. j (in der Ebene) r = x . i + Y. j + Z . k (im Raum) den Ortsvektor (Radiusvektor) und i j k die Basisvektoren des rechtwinkligen kartesischen Koordinatensystems bezeichnen. 1m weiteren werden die GrojSen der v・ォエッイ。ョセケウゥ@ fUr dreidimensionale Felder berechnet. Die gegebenen Formeln gelten auch fUr zweidimensionale Felder. Man mug hier nur die Raumvariable z weglassen und die Raumkoordinate gleich Null setzen, d.h. v 3 (x, y, z) = o.
•
Mittels des Gradientenvektors grad wird jedem Skalaifeld u(r) ein Vektoifeld (als Gradientenfeld bezeichnet) gradu(r)= (ux(r),uy(r),uz(r)) = ux(r)·i + uy(r)·j + uz(r)·k zugeordnet, falls die Funktion u partielle Ableitungen
au
au
au
ux =- , uy =- , uz =-
Ox Oy az besitzt. Die Eigenschaften des Gradienten findet man in [41]/3,1,4.1.
•
Eine wichtige Rolle spielen bei praktischen Anwendungen die Potentiaifelder vCr). Dies sind Felder, die sich als Gradientenfeld eines Skalaifeldes (ihres Potentials) u(r) darstellen lassen, d.h. vCr) = grad u(r) Nachpriifen liigt sich dies unter Verwendung der Rotation
rot vCr) =
i
j
Vj
Vz
k
a -a a Ox Oy az カNセ@
die man jedem Vektoifeldv(r) zuorden kann und deren Eigenschaften man in [41]/3,1,5.2.1 findet. Die Bedingung rot vCr) = 0 ist unter gewissen Voraussetzungen notwendig und hinreichend fUr die Existenz eines Potentials.
290
27 Vektoranalysis
Eine weitere wichtige GrojSe zur Charakterisierung von Vektoifeldern ist die Divergenz
Ov Ov Ov Ox Oy 8z deren Eigenschaften man in [41113,1,5.1.2 findet.
divv(r)=
_1 + _2 +_3
•
DERIVE
Fur die Berechnung der drei charakteristischen GrojSen der Vektoranalysis Gradient, Rotation und Divergenz steHen die Systeme folgende KommandoslMent'ifolgen zur VerfUgung: DERIVE berechnet mit den Menufolgen * Author: grad ( u(r) ) ::::} Simplify den Gradienten der Funktion u(r) * Author: curl (v(r) ) ::::} Simplify die Rotation des Vektoifeldes vCr) * Author: div ( vCr) ) ::::} Simplify die Divergenz des Vektoifeldes vCr) wobei das Vektoifeld vCr) als Liste [vI(r), v 2 (r), v 3 (r)] einzugebenist.
MACSYMA
MACSYMA steHt naeh dem Laden des Pakets v・ォエッイ。ョセケウゥ@ load ( veet ) die Kommandofolgen * vect_express ( grad ( u(r) ) ) $ %, diff zur Bereehnung des Gradienten der Funktion u(r) * vect_express ( curl ( vCr) ) ) $ %, diff zur Bereehnung der Rotation des Vektoifeldes vCr) * vect_express ( div ( vCr) ) ) $ %, diff zur Bereehnung der Divergenz des Vektoifeldes vCr) zur Verfugung, wobei das Vektoifeld vCr) als Liste [ VI (r) , v 2 (r) , v 3 (r)] einzugeben ist .
MAPLE
MAPLE berechnet naeh dem Laden des Zusatzpakets Lineare Algebra dureh with Clinalg) ; mittels der Kommandos * grad ( u(r) , r) ; den Gradienten der Funktion u(r) * curl (v(r) , r) ; die Rotation des Vektoifeldesv(r) * diverge ( v(r) , r); die Divergenz des Vektoifeldes v(r) wobei das Vektoifeldv(r) als Liste [ VI (r) , v 2 (r) , v 3 (r)] und der Ortsvektor r als Liste [ x , y, z 1
•
einzugeben sind.
mittels
27.2 Felder, Gradienten, Rotation und Divergenz
291
MATHEMA- MATHEMATICA berechnet nach dem Laden des Pakets Vektoranaセケウゥ@ durch Needs [ "Calculus'VectorAnalysis' " 1 mit den Kommandos * Grad [ u(r) 1 den Gradienten der Funktion u(r) * Curl [v(r) 1 die Rotation des Vektorfeldesv(r) * Div [ vCr) 1 die Divergenz des Vektorfeldes vCr) wobei das Vektorfeld vCr) als Liste { v 1 (r) , v 2 (r) , v'\ (r)} einzugeben ist.
TICA
• Die Systeme bieten zusatzlich die Moglichkeit, aIle Berechnungen auBer in Kartesischen Koordinaten noch in anderen Koordinaten (z.B. in Zylinder- oder Kugelkoordinaten) durchzufUhren.
•
Wenn ein System keine Kommandos zur Berechnung von grad, rot und div zur Verfugung steHt, so lassen sich diese mittels der gegebenen Formeln berechnen.
•
Falls fUr ein Vektorfeld vCr) ein Potential u vorliegt, d.h. rot vCr)=O, so gestaltet sich seine Berechnung uber die Integration der Beziehungen
au
DERIVE
MAPLE
au
au
-=vj(r) , -=v/r) , -=v 3 (r) Ox ay 8z' i.a. schwierig. Die Systeme konnen hier nur helfen, wenn diese Integrationen im Rahmen der im Kap.25 gegebenen Hinweise durchfuhrbar sind. Sie stellen zur Bestimmung des Potentials folgende KommandosiMent"ifolgen zur VerfUgung: DERIVE verwendet die Menz"ifolge Author => Expression... potential [ v 1 (r) , v 2 (r) , v'\ (r) ] => Simplify MAPLE kann nach dem Laden des Zusatzpakets Lineare Algebra mittels with (linalg) ; die Kommandofolge potential ( [ v 1 (r) , v 2 (r) , v:\ (r) 1 , [ x , y , z 1 , u ) ; u ;
u := unapply ( " , x , y , z ) ; anwenden, wobei u die Funktion bezeichnet, der das berechnete Potential mittels des Kommandos unapply zugeordnetwird. AnschlieBend kann mit der berechneten Potentialfunktion u(x,y,z) weitergearbeitet werden .•
292
27
v・ォエッイ。ョセケウゥ@
Beispiel 27.1: Man berechne fUr das Vektoifeld vCr) = x i + Y j + z k * die Rotation rot vCr) = 0 * die Divetgenzdivv(r) = 3 * das Potential
u(r) = !(x 2 + y2 + Z2) 2
mittels der fUr die Systeme gegebenen Kommandos .
•
27.3
MAPLE
MATHCAD
Grafische Darstellung von Vektorfeldern Zur grafischen Veranschaulichung ebener und raumlicher Vektoifelder (uoter Vetwendung von Feldlinien) besitzen die Systeme folgende KommandosiMenufolgen: MAPLE steHt nach dem Laden des Pakets plots mittels with (plots) ; u.a. die Grafikkommandos * fieldplot ( [ v I (r) , v 2 (r) 1) , x = a ..b , y = c ..d ) ; zur Zeichnung zweidimensionaler Felder im Rechteck a:o;x:O;b,c:o;y:o;d * fieldplot3d ( [vl(r), v 2(r), v 3 (r) 1), x = a .. b, y = c .. d, z = e .. f) ; zur Zeichnung dreidimensionaler Felder im Quader a:o;x:O;b,c:o;y:O;d,e:o;z:o;f zur VerfUgung. Bei beiden Kommandos sind noch Optionen zulassig. So k6nnen z.B. mit der Option arrows = SLIM die gezeichneten Vektoren mit Spitzen versehen werden (siehe Beispiel 27.2b). MATH CAD gestattet die grafische Darstellung zweidimensionaler Vektoifelder v = v (x, y) = vj(x, y). i + vzCx, y). j Die Konstruktion der zwei Matrizen VI und V2 fUr die beiden Funktionen v I , V 2 gestaltet sich wie bei den FlachendarsteHungen (siehe Abschn. 22.2). Wenn man die Matrizen VI, V2 berechnet hat, aktiviert man die Menufolge Graphics セ@ Create Vector Field Plot oder klickt den Operator
lm
273 Grafische Darstellung von Vektorfeldem
293
in der Operatorpalette Nr.3 mit der Maus an. Daraufhin erscheint ein Grafilifenster, in dessen Platzhalter (durch missing Operand gekennzeichnet) man die Bezeichnung der Matrizen VI und V2 durch Komma getrennt eintragt. Ein MauskHck auBerhalb des Grafikfensters veranlaBt im Automatikmodus die grafische Darstellung des Vektorfeldes. In der folgenden Abb.27.1 sehen wir die grafische Darstellung des zweidimensionalen Vektorfeldes aus Beispiel 27.2a). Die Abb.27.1 kann man als allgemeine Vorlage (Dokument) fUr die grafische Darstellung von zweidimensionalen Feldern verwenden. MATIIEMA- MATHEMATICA stellt nach dem Laden des Pakets PlotField mittels TICA Needs [ " Graphics-PlotField- "1 folgende Grafikkommandos zur VerfUgung * PlotVectorField[ { v/r),v 2 (r) I, {x, a, b I, {y, c, d 11 zur Zeichnung zweidimensionaler Felder im Rechteck a :5: x :5: b,c :5: Y :5: d * PlotVectorField3D [{v 1(r),v/r),v 3 (r) I, {x,a,bl, {y,c,dl, {z,e,fl1 zur Zeichnung dreidimensionaler Felder im Quader a:5:x:5:b, c:5:y:5:d, e:5:z:5:f 1m Argument der Kommandos sind noch Optionen zulassig, wobei z.B. die Option v・」エッイh。、ウセ@ True bewirkt, daB die gezeichneten Vektoren mit Spitzen versehen werden. Beispiel 27.2: a) Man stelle das zweidimensionale Vektorfeldv(r) = x i + Y j grafisch dar. Das Ergebnis mittels MATHCAD ist aus Abb.27.1 ersichtlich. b) Man stelle das dreidimensionale Vektorfeldv(r) = x i + Y j + z k grafisch dar. Fur dieses Feld Hefem * MATHEMATICA mittels PlotVectorField3D [ { x , y , z 1 , { x , -1 , 1 1 , { y , -1 , 1 I , { z , -1 , 1 1 , v・」エッイh。、ウセ@ True 1 die in Abb.27.2 * MAPLE mittels fieldplot3d ( [ x , y , z 1 , x = -1..1 , Y = -1..1 , z = -1..1 , arrows = SLIM) ; die in Abb.27.3 dargestellte Grafik.
•
294
Abb.27.1. ZweidimensionalesVektorfeld aus Beispiel 27.2a) mittels MATHCAD
27 Vektoranalysis
v 1 ex, y) := x
N := 16
y.J := - 4 + O.5 ·j
x ; := - 4 + 0.5 . i
VI. . := I. )
V2;, j := v2 ( Xi ,y j )
セL@
セ@ セ@
_'" Lセ@
Vl , V2
Abb.27.2. DreidimensionalesVektorfeld aus Beispiel 27.2b) mittels MATHEMATICA
v 2ex, y) := Y
セ@
,
\
\
\ I
\
I \
t I
I
Iセ@
I
I
セ@
t I
I
1
ヲエセ@
J fl fl I fl _ ,
#
8 セW@
セ@
i : =O .. N j: =O .. N
v 1 (x., y.) I)
295
27.4 Kuroen- und Oberjliichenintegrale
Abb.27.3: Vektorfeld aus Beispiel 27.2b) mittels MAPLE
I i
i i
!! 27.4
Kurven· und Oberflachenintegrale Ein weiterer Gegenstand der v・ォエッイ。ョセケウゥ@ ist die Berechnung von Kuroen- und Oberflachenintegralen. HierfUr konnten Kommandos nur fUr Speziaifalle (z.B. Berechnung der Bogenlange) in den einzelnen Systemen gefunden werden. Derartige Integrale konnen aber trotzdem mit den Systemen berechnet werden, wenn man sie vorher per Hand nach den Berechnungsvorschriften auf einfache bzw. zweifache bestimmte Integrale zurtickfUhrt (siehe [41]/3,1) und diese anschlieBend mittels der Kommandos aus Abschn.25.2 lost. Berechnen wir auf diese Art ein Kurven- und ein Flachenintegral im Beispiel 27.3. Beispiel 27.3: a) Es soll das Kuroenintegral
J
2 x y dx + (x - y) dy
c
296
27 Vektorana(ysis
langs der Para bel (als Kuroe C) y = x 2 zwischen den Punkten (0,0) und (2,4) berechnetwerden, das z.B. die geleistete Arbeit gibt, wenn man sich im ebenen Vektoifeld v = 2xy i + (x - y) ; langs der Parabel zwischen den beiden Punkten bewegt. Nach der Berechnungsjormel fUr Kuroenintegrale, muB man y = x 2 , dy = 2x (0 :s: x :s: 2)
setzen, so daB sich das bestimmte Integral
tJ(2.x.x 2 + (x-x 2 )·2·x)dx o
ergibt, das z.B. MATHCAD problemlos berechnet:
2 J0
2· x' x 2 + (x - x 2). 2 . x dx
yields
16
3
b) Betrachten wir das Beispiel aus [411/3,1,8.4.1, wo der Flufl des Vektoifeldes v = 6z i - 3y ; + 3 k durch die im ersten Oktanden gelegene Flache der Ebene x + 2 Y + 2 z = 2 berechnet wird. Dieses zu berechnende ObeiflachenintegrallaBt sich auf das folgende Doppelintegral zuriickjuhren: !
%.
2
--x+! 2
x=O
y=o
f f(-
x - 4 y + 4 ) dy dx
das z.B. mittels MATHEMATICA durch Integrate [Integrate [ -x - 4 y + 4 , { y , 0 , -x/2 + 1 } 1 , {x , 0 , 2 }1
berechnet wird (Wert 3) .
•
297
28
Differentialgleichungen
Differentialgleichungen sind Gleichungen, in denen eine unbekannte Funktion und deren Ableitungen vorkommen. Diese unbekannte Funktion ist so zu bestimmen, daB die Differentialgleichung identisch erfUllt wird. Der Unterschied zwischen gewohnlichen und partiellen Differentialgleichungen besteht darin, daB bei gew6hnlichen die gesuchte Funktion von einer (unabhangigen) Vanablen abhangt, wahrend bei partiellen die gesuchte Funktion von mehreren (unabhangigen) Vanablen abhangt (siehe Beispiel 28.1). Beispiel 28.1: Betrachten wir je ein Beispiel fUr gewohnliche und partielle Differen-
tialgleichungen a) y" + 3 . y' - y = cos x ist eine gewohnliche Differentialgeichung mit der gesuchten Funktion y = y(x), die u.a. bei Schwingungsproblemen auftritt.
au
b) -
2
&x 2
au
+-
2
ay2
au
+ 5· - + 2· u = e X · Y &x
oder in anderer Schreibweise u xx + u yy + 5· u x + 2· u = e X •Y ist eine partielle Differentialgleichung mit der gesuchten Funktion u = u(x,y), die bei Potentialproblemen auftritt .
•
Bei Differentialgleichungen existiert ebenso wie bei algebraischen Gleichungen (siehe Kap.23) nur eine geschlossene Losungstheone fUr lineare Gleichungen, wobei die fur partielle Differentialgleichungen wesentlich komplexer ist, so daB wir im Rahmen dieses Buches nur gewohnliche Differentialgleichungen behandeln k6nnen (siehe Abschn.28.3) .
•
H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
298
28.1
28 Differentialgleichungen
Ingenieurtechnische Anwendungen Differentialgleichungen spielen eine grnndlegende Rolle in Technik und NaturwissenschaJten, da sich viele technische Prozesse und Naturgesetze durch sie modellieren lassen. Aus der Vielzahl der Anwendung von Differentialgleichungen betrachten wir nur einige rnarkante im folgenden Beispiel 28.2. Beispiel 28.2: a) Gew6hnliche Differentialgleichungen findet man bei folgenden praktischen Problemen: a1) Zeifalls- und Wachstumsprozesse flihren auf die Differentialgleichung erster Ordnung der Form y'(t) = c . yet) die sich ergibt, wenn die Andernng y'(t) im Zeitpunkt t als proportional zum Zustand yet) betrachtet wird. Wenn der Zustand zum Zeitpunkt t=O bekannt ist, d.h. yeO) = a , so hat man ein Anfangswertproblem zu Ibsen. Mit den Systemen werden wir das konkrete Anfangswertproblem y'(t) = yet) , yeo) = 1 losen, das die folgende Losung besitzt: yet) = e t a2) Die Anwendung des Newtonschen KraJtgesetzes Kraft = Masse x Beschleunigung und des Hookeschen Gesetzes auf eine ausgelenkte Feder mit der angehiingten Masse m ergibt die Differentialgleichung zweiter Ordnung ftir die Auslenkung (mechanische Schwingung) yet) k y"(t) = - _. yet) - g m
( k - Federkonstante , g - Erdbeschleunigung ) die zur Klasse der Schwingungsgleichungen (harmonischer Oszillator) y"(t) + a . y'(t) + b . yCt) = f(t) (a, b > 0 - Konstanten) gehbrt (siehe [41V2,V,4), wobei flir a = b der aperiodische Grenzfall a < b der Schwingfall a > b der Kriechfall vorliegen. Analoge Differentialgleichung erhalt man bei der analytischen Untersuchung elektrischer RLC-Schwingkreise (siehe [41]12,V,4.2.1).
299
28.1 Ingenieurtechnische Anwendungen
Wenn Auslenkung und Geschwindigkeit zum Zeitpunkt t=O bekannt sind, d.h. yeO) = A und y'(O) = B so hat man ein An/angswertproblem zu Ibsen. Mit den Systemen werden wir mit den An/angsbedingungen yeO) = 2 und y'(O) = 1 die folgenden konkreten Au/gaben Ibsen: y"(t) + y'(t) + yet) 0 (aperiodischer Grenz/all) y"(t) + y'(t) + 2·y(t) = 0 (Schwingfall) y"(t) + 3·y'(t) + yet) = 0 (Kriech/all) bei denen die drei m6glichen Verhaltensweisen eines harmonischen Oszillators auftreten: * aperiodischer Grenz/all x
y(x) = e -:2 . ( 2 . cos 13 x + 4·13 . sin 13 x) 232
*
Schwingfall y(x) = e
*
Mセ@
x
2 •(
fi
4·fi.
fi
2 . cos - x + _ . sm - x) 2
7
2
Kriech/all y(X)=({.J5+1}e(H-M)X)
KセNXjUI・HMᄋク@
a3) Untersuchen wir die Verformung eines mit der Streckenlast Q gleichmaBig belasteten Balkens der Liinge L, der an beiden Enden ( 0 und L) aufliegt (siehe [41l/2,V, 1.4). In der Mechanik wird gezeigt, daB die Biegelinie y(x) fUr kleine Durchbiegungen niiherungsweise der Differentialgleichung zweiter Ordnung (Biegegleichung) y"(x) = _ M(x) E· I
genugt, wenn man 1 + y' 2 (x) "" 1 voraussetzt. Dabei bedeuten: * E den Elastizitiitsmodul, * I das Fliichenmoment des Balkenquerschnitts, * M(x) das Biegemoment. Fur das ortsabhiingige Biegemoment M(x) ergibt sich in dem betrachteten Fall die Beziehung M(x) = Q. x . (L - x) 2
( 0 セ@ x セ@ L )
so daB die Biegegleichung die /olgende Form annimmt
28 DifJerentialgleichungen
300 y" Cx)
=-
_Q- . x . ( L - x ) 2· E· I
die durch zweimalige Integration einfach los bar ist Csiehe [41112,V,1.4). Da an den beiden Enden keine Durchbiegung stattfindet, d.h. yCO) = yCL) = 0 , hat man ein Randwertproblem zu Ibsen, das im allgemeinen mehr Schwierigkeiten als ein Anfangswertproblem bereitet. Wenn man die Niihenmg 1 + y,2 Cx) "" 1 nicht anwendet, ergibt sich die folgende wesentlich schwierigere Dif.ferentialgleichung fUr die Biegung: y"Cx) Q ---'-----::-/:::-2 = - - - . x . ( L - x )
(1 + Y , 2CX) J
2.E.I
mit den Randbedingungen yCO) = yCL) = 0 Bei der Anwendung der Systeme werden wir die Lbsung beider Biegungsgleichungen versuchen, wobei wir folgende konkrete Zahlenwerte verwenden: L = 1 und _Q-
•
=
1
2· E· I
Die angefUhrten Beispiele al)-a3) lassen erkennen, daB bei zeitabhiingigen Problemen die unabhiingige Variable haufig mit t bezeichnet wird und daB hier meistens Anfangswertprobleme auftreten. Randwertprobleme findet man bei statischen Czeitunabhiingigen) Problemen, in denen die unabhangige Variable haufig die Lange darstellt und mit x bezeichnet wird .
•
b) Partielle Dif.ferentialgleichungen treten bei folgenden praktischen Problemen auf, wobei drei Typen von Gleichungen eine breite Anwendung finden: b1) Wiirmeleitungsgleichungen (parabolische Gleichungen) z.B. in der einfachsten Form Ceindimensionaler Fall) u t - a· U xx = 0 wobei die gesuchte Funktion uCx,t) die Temperatur am Ort x zur Zeit t angibt. b2) Wellen- und Schwingungsgleichungen Ch.yperbolische Glei-
chungen) z.B. in der einfachsten Form Ceindimensionaler Fall) Utt セN@ U xx = 0
28.2 Gewohnliche Differentialgleichungen
301
wobei die gesuchte Funktion u(x,t) die Auslenkung am Ort x zur Zeit t angibt. b3) Potentialgleichungen (elliptische Gleichungen) die bei stationaren Problemen auftreten und in der einfachsten Form (zweidimensionaler Fal!) die Gestalt U xx + u yy = 0 haben, wobei die gesuchte Funktion u(x,y) z.B. dem elektrostatischen Potential in der Ebene entspricht.
•
28.2
Gewohnliche Differentialgleichungen Die Systeme kbnnen gewohnliche Differentialgleichungen nur exakt losen, wenn ein endlicher Losungsalgorithmus existiert. Dies ist der Fall fUr lineare Gleichungen n-ter Ordnung der Form an (x) . + a n- 1(x) . /n-1) + ... + a 1(x) . y' + ao(x) . y = f(x)
/0)
wenn die Koe.!fizienten ak(x) gewisse Bedingungen eriiillen, so u.a.: * ak(x) = konstant, d.h., die Gleichung hat konstante Koe.!fizien-
ten.
*
ak(x)
= bk . X k
(b k - konstant)
d.h., es liegt eine Eulersche Differentialgleichung vor. Des weiteren darf die rechte Seite f(x) der Differentialgleichung nicht allzu kompliziert sein, damit die Systeme eine exakte Losung berechnen kbnnen. Man kann jede Differentialgleichung n-ter Ordnung der Form y n = f( x, y, y ,, ... , y n-1) auf ein System von n Differentialgleichungen erster Ordnung der Form Y1'
=
Y2'
= Y3
Yn-1'
Y2
= Yn
Yn' = f(x, Y1, Y2"'" Yn) durch Setzen von y = Y1 zUriickfiihren. Dies benbtigt man bei Systemen, die nur Differentialgleichungen erster Ordnung Ibsen kbnnen, wie z.B. MATHCAD .
•
28 Differentialgleichungen
302
Fur praktische Anwendungen werden nicht beliebige (allgemeine) Losungen einer gewohnlichen Differentialgleichung gesucht, sondern Losungen y(x), die • Anfangsbedingungen d.h. Bedingungen an einer Stellexo fur die Losung y(x) und ihre Ableitungen, z.B. y(x o) = a , y'(x o) = b , ...
•
Randbedingungen d.h. Bedingungen an mindestens zwei Stellen Xo , Xl fur die Losung y(x) und ihre Ableitungen, z.B. y(x o) = a , y(x l ) = b , ... eifiillen, wobei diese Bedingungen aus den praktischen Gegebenheiten folgen (siehe Beispiel 28.2a)
•
Fur lineare Dif.ferentiaigieichungen mit konstanten Koeffizienten der Form an· yen) + an-I· /n-O + ... + a l . y' + a o . y = f(x) bzw. Systeme linearer Difjerentialgleichungen mit konstanten Koeffizienten der Form an· y'l + ... + a ln . y'n = fleX)
AXIOM
anI· y'l + ... + ann· y'n = fn(x) und weitere einfachstrukturierte Differentialgleichungen stellen die einzelnen Systeme folgende KommandosiMeniifolgen zur Verfugung, wobei als Kommandoname haufig dsolve verwendet wird (d steht fur Dif.ferentialgleichung und solve fur losen): AXIOM stellt folgende Kommandofolge zur Losung von Dif.ferentialgleichungen bereit: y:= operator'y; solve ( Dgl , Y , X ) die die allgemeine Losung y(x) bestimmt. Fur Dgl ist die zu losende Differentialgleichung einzugeben (siehe Beispiel 28.3a). Wie man mit diesem Kommando Anfangswertaufgaben lost, ist aus Beispiel 28.3b) ersichtlich. Beispiel 28.3: a) Die allgemeine Losung x
Y(x) = e
--
2.
13
13
(c· cos-x + d· sin-x) 2 2
der Dif.ferentialgleichung y" + y' + Y = 0 aus BeispieI28.2a2) erhalt AXIOM mittels der Kommandofolge
28.2 Gewohnliche Differentialgleichungen
303
y:= operator'y; solve ( D ( y(x) , x , 2 ) + D ( y(x) , x ) + y(x) = 0 , y , x ) in der Fonn
d.h., es werden die beiden Fundamentallosungen berechnet. b) Die spezielle Losllng fUr die Differentialgleichung aus Beispiel a) mit den Anfangsbedingungen yeO) = 2 , y'(O) = 1 liefert AXIOM mit der Kommandofolge y:= operator'y; solve (D( y(x) , x , 2 ) + D( y(x) , x ) + y(x) = 0 , y , x=o , [2,1]) in der Fonn
4 e(
MセI@
sin(
if x) + 2v0 cos( if x) e (- セI@
v0 c) Die allgemeine Losung fur das System Yl' = Y2 Y2'=-Yl-Y2 (siehe Beispiel 28.8 ) wird von AXIOM mittels folgender Kommandofolge bestimmt: yl := operator 'yl ; y2:= operator 'y2 ; solve ( [ D (yl(x) , x ) = y2(x) , D (y2(x) , x ) = - yl(x) - y2(x) 1 , [ yl , y2 1 , x ) DERIVE
•
DERIVE enthalt keine integrierten Kommandos zur Losung von Differentialgleichungen. Erst durch Laden der Zusatzprogramme ODEI , ODE2 und ODE_APPR mittels der Meniifolge File セ@ Load セ@ Utility... lassen sich Gleichungen erster bzw. zweiter Ordnung exakt (symbolisch) bzw. numerisch Ibsen. Dazu stehen eine Reihe von Kommandos zur Verfugung, die man dem Handbuch oder dem Hilfemenii Help セ@ Utility entnehmen kann. Haufig gebrauchte Kommandos aus den Zusatzprogrammen ODEI und ODE2 zur exakten Losung von Differentialgleichungen sind 、ウッャカ・セョL@ dsolvel und dsolve2, die mittels folgender Meniifolgen aktiviert werden:
28 Differentialgleichungen
304
I. Author セ@ Expression... 、ウッャカ・セョ@ ( p(x,y) , q(x,y) , x , y , c ) セ@ Simplify berechnet die allgemeine Lasung der Differentialgleichung erster Ordnung p(x,y) + q(x,y) . y' = 0 mit der Integrationskonstanten c. Expression... dsolvel ( p(x,y) , q(x,y) , x , y , II. Author セ@ Xo , Yo) セ@ Simplify berechnet fUr die Differentialgleichung aus I. die spezielle Lasung, die die Anfangsbedingung y(x o) = Yo erjiUlt. ffi.Author セ@ Expression... dsolve2 ( p(x) , q(x) , rex) , x , c , d ) セ@ Simplify berechnet die allgemeine Lasung der linearen Differentialgleichung zweiter Ordnung y" + p(x) . y' + q(x) . y = rex) mit den Integrationskonstanten c und d. IV. Author セ@ Expression... dsolve2_IV ( p(x) , q(x) , rex) , x ,xo , Yo , YI) セ@ Simplify berechnet fUr die Differentialgleichung aus III. die spezielle Lasung, die die Anfangsbedingungen y(x o) = Yo , y'(x o) = YI eifullt. v. Author セ@ Expression ... dsolve2_bv ( p(x) , q(x) , rex) , x , Xo , Yo , XI , YI) セ@ Simplify berechnet fUr die Differentialgleichung aus III. die spezielle Lasung, die die Randbedingungen y(x o) = Yo, y(x l ) = YI eifulit. Beispiel 28.4: a) Die Menufolge Author セ@ Expression... dsolve2 ( 1 , 1 , 0 , x , c , d ) セ@ Simplify liefert fUr die Differentialgleichung y" + y' + Y = 0 aus Beispiel 28.2a2) die allgemeine Lasung x
y(x) = e - 2" . ( c . cos
セ@
x + d· sin
セ@
x)
b) Die Menufolge Author セ@ Expression... dsolve2_IV ( 1 , 1 , 0 , x , 0 , 2 , 1 ) セ@ Simplify liefert fUr die Differentialgleichung y" + y' + Y = 0 aus Beispiel 28.2a2) mit den Anfangsbedingungen yeO) = 2 , y'(O) = 1 die
Lasung
28.2 Gew6hnliche Differentialgleichungen
305
x
y(x) = e -"2 . ( 2 . cos 13 x + 4·13 . sin 13 x) 232
c) Die Menzlfolge Author セ@ Expression... dsolve2_bv ( 0 , 0 , - x*(l - x) , x , 0 , 0 , 1 , 0 ) セ@ Simplify liefert fUr die Differentialgleichung y" = - x . ( 1 - x ) aus Beispiel 28.2a3) mit den Randbedingungen yeO) = 0 , yO) = 0 die
Lasung yex)
•
MACSYMA
= セN@ 12
x . (x 3 - 2 . x 2
+ 1)
MACSYMA stellt folgende Kommandos zur Lasung von Differentialgleichungen bereit: * ode ( Dgi , Y , x ) berechnet die allgemeine Lasung der als Argument bei Dgl einzugebenden Differentialgleichung exakt. * ode_ibc berechnet Anfangs- und Randwertprobleme bis maximal zweiter
Ordnung. odefi ( Dgl , Y , x ) berechnet die allgemeine Lasung der als Argument bei Dgi einzugebenden Differentialgleichung erster Ordnung exakt. * ode2 ( Dgi , Y , x ) berechnet die allgemeine Lasung der als Argument bei Dgi einzugebenden Differentialgleichung zweiter Ordnung exakt. * odelin2 ( Dgl , Y , x ) berechnet die allgemeine Lasung der als Argument bei Dgi einzugebenden linearen Differentialgleichung zweiter Ordnung exakt. * odelinsys ( [ Dgll , Dg12, ... , 1 , [ x(t) , yet) , ... 1) berechnet die allgemeine Lasung des als Argument einzugebenden Systems Dgil , Dgl2 , ... von linearen Differentialgleichung mit den gesuchten Funktionen x(t) , yet) , ... exakt. * runge_kutta bechnet eine numerische Lasung fUr Anfangswertprobleme mit einem Runge-Kutta-Veifahren vierter Ordnung (siehe Beispiel 28.13). Die genaue Vorgehensweise fUr die Eingabe der Differentialgleichung und der Anfangs- bzw. Randbedingungen fUr die exakte Lasung wird im Beispiel 28.5 erlautert.
*
•
306
28 Differentialgleichungen
Beispiel 28.5: a) Fur die Differentialgleichung erster Ordnung y'(x) = y(x) aus Beispiel 28.2a1) liefern * odefiC'diff(y,x) =y,y,x) die allgemeine L6sung in der Form _e- x y = o/oc
*
ode('diff(y,x) =y,y,x) die allgemeine L6sung in der Form y = %ce x Die spezielle L6sung dieser Differentialgleichung, die der Anfangsbedingung yeO) = 1 genugt, werden von einer der Kommandofolgen * lsg:odefiC'diff(y,x) =y,y,x)$ ode_ibc ( lsg , x = 0 , y = 1 ) in der Form _e-Xy =-1
*
Isg:ode('diff(y,x) =y,y,x) ode_ibc ( lsg , x = 0 , y = 1 ) in der Form y = eX
berechnet. b) Fur die Differentialgleichung zweiter Ordnung y" + y' + y = 0 aus Beispiel 28.2a2) liefern * ode2 ( , diff ( y , x , 2 ) + ' diff ( y , x ) + y = 0 , y , x ) die allgemeine L6sung in der Form y = e-X12-(%k1.sin( セクI@
*
odelin2 (' diff( y, x, 2) +' diff( y, x) + y = 0, y, x) die allgemeine L6sung in der Form
y = %k2.e- x12 . sin( セクI@
*
+ %k2.COS( セクIス@
+ %k1. e- x12 . cos( セクI@
ode ( , diff( y , x ,2) + ' diff( Y , x) + y = 0, y , x) die allgemeine L6sung in der Form
y = e - x/2 -(%k1. sin( セ@ x) + %k2. cos( セ@
x) }
Die spezielle L6sung dieser Differentialgleichung, die den Anfangsbedingungen yeO) = 2 , y'(O) = 1 genugt, werden von einer der Kommandofolgen
28.2 Gew6hnliche Differentialgleichungen
307
* lsg: ode2 ( , diff (y , x , 2) + ' diff ( Y , x ) + y = 0 , y , x ) $ ode_ibc ( lsg , x = 0 , y = 2 , x = 0 , , diff ( Y , x ) = 1 ) in der Form
y(x)
=
e-
xl2 .[
4·
J3 .sin ( J3 x)
2
3
+ 2. cos ( セ@
x)
1
* lsg: odelin2 ( , diff (y , x , 2) + ' diff (y , x) + y = 0 , y , x )$ ode_ibc ( lsg , x = 0 , y = 2 , x = 0 , , diff ( Y , x ) = 1 ) in der Form
y(x)
=
4 . " r:;3 :) . e -
x/2 . sm. (-J3 x) 3
2
+ 2· e - x/2 . cos ( セ@
x)
* lsg: ode (' diff( y, x, 2) +' diff( y, x) + y = 0, y, x) $ ode_ibc ( lsg , x = 0 , y = 2 , x = 0 , , diff ( y, x ) = 1 ) in der Form
y(x) = e - x/2 . [
4· J3 .sin ( J3 3
2
x) + 2. cos ( セ@
x)
1
berechnet. c) Eine der Kommandofolgen * lsg: ode2 ( , diff ( Y , x , 2 ) = - x* (1 - x ) , y , x ) $ ode_ibc ( lsg , x = 0 , y = 0 , x = 1 , Y = 0 ) * lsg: odelin2 ( , diff ( y , x , 2 ) = - x* (1 - x ) , y , x ) $ ode_ibc ( lsg , x = 0 , y = 0 , x = 1 , Y = 0 ) * lsg: ode ( , diff ( Y , x , 2 ) = - x* (1 - x ) , y , x ) $ ode_ibc ( lsg , x = 0 , y = 0 , x = 1 , Y = 0 ) berechnet fur die Aufgabe y"(x) = - X· ( 1 - x ) aus Beispiel 28.2a3) die Losung
y(x)
= セ@ 12 . x . (x3 -
2 . x 2 + 1)
die die Randbedingungen yeO) = y(I) = 0 erfullt. d) Die lineare Differentialgleichung zweiter Ordnung aus Beispiel b) kann auf das lineare System u' = v , v' = - v - u von Differentialgleichungen zUrUckgefiihrt werden, das mittels des Kom-
mandos odelinsys ( [ , diff ( u(x) , x ) u(x) ] , [ u(x) , vex) ] ) gelost wird. •
= vex)
, , diff ( vex) , x )
= -vex) -
28 Differentialgleichungen
308
MAPLE
MAPLE stellt folgende Kommandos zur L6sung von Differentialgleichungen bereit: * dsolve ( Dgl , y(x) ) ; berechnet die allgemeine L6sung der als Argument bei Dgl einzugebenden Differentialgleichung exakt. Falls man beim Argument Dgl zusatzlich Anfangs- oder Randbedingungen eingibt, wird die dazugeh6rige spezielle L6sung berechnet. Die Form dieser Eingaben ist aus Beispiel 28.6 ersichtlich. * dsolve ( Dgl , y(x) , numeric) ; berechnet die numerische L6sung fUr gegebene Anfangs- oder Randbedingungen, die zusammen mit der Differentialgleichung in Dgl einzugeben sind, auf folgende Art: lsg.-y := dsolve ( Dgl , y(x) , numeric) ; liefert eine Prozedur lsg...y zur Berechnung von Niiherungen fUr die L6sungsfunktion y(x), mit deren Hilfe man mittels des Kommandos subs ( lsg...y(a) , y(x) ) ; den berechneten Niihenmgswert an der Stelle a erhalt (siehe Beispiel 28.13 ). Beispiel 28.6: a) Zur Bestimmung der allgemeinen L6sung x
y(x) = e- 2 ·(c·cos
セク@
+ d'sin
セクI@
der Differentialgleichung aus Beispiel 28.2a2) y" + y' + y = 0 ist das Kommando dsolve ( diff ( y(x) , x$2 ) + diff ( y(x) , x ) + y(x) = 0 , y(x) ) ; zu verwenden, b) Das Kommando dsolve ( { diff ( y(x) , x$2 ) + diff ( y(x) , x ) + y(x) = 0 , yeO) = 2 , D(y)(O) = 1 ) , y(x) ) ; berechnet die L6sung x
y(x) = e- 2 ·(2·cos
セ@
x +
TGセ@
.
sin
セ@
x)
fUr die Aufgabe aus Beispiel a), die die Anfangsbedingungen yeO) = 2 , y'(O) = 1 erfiillt. c) Das Kommando dsolve ( { diff ( y(x) , x$2 ) = - x* 0 - x ) , yeO) = 0 , yO) = 0 } , y(x) ) ; berechnet fUr die Aufgabe y"(x) = - X· ( 1 - x ) aus Beispiel 28.2a3) die L6sung
28.2 Gew6bnlicbe Differentialgleicbungen
y(x) = セ@
12
. x . (x3
-
309
2 . x 2 + 1)
die die Randbedingungen yeO) = yO) = 0 erJiUlt. d) Das Anfangswertproblem fur das System Yl(O)=2 Yl' = Y2 aus Beispiel 28.8 wird von MAPLE folgendermaBen gel6st: dsolve ( { cliff ( yl(x) , x ) = y2(x) , cliff ( y2(x) , x ) = - yICx) y2(x) , yICO) = 2 , y2(O) = 1 I , { yl(x) , y2(x) I ) ; wobei als Losung fur yl folgendes berechnet wird: x
--
.J3
x
4·.J3 --
. .J3
yl(x) = 2· e 2. cos - x + - · e 2. sm - x 2
3
2
Diese L6sung entspricht der im Beispiel b) berechneten, da beide Aufgaben aquivalent sind, wie im Beispiel 28.8 gezeigt wird . MAmCAD
•
MATHCAD besitzt keine Kommandos zur exakten Losung von Diffe-
rentialgleicbungen. Die entsprechenden Kommandos aus MAPLE wurden nicht tibernommen. Die einzige Moglicbkeit zur exakten Losung liefert die Anwendung der Laplacetransformation, die wir im Abschn.29.2 besprechen. MATHCAD besitzt verschiedene Kommandos zur numeriscben Losung und kann sowohl Anfangs- als auch Randwertaufgaben numerisch losen. Zur Berechnung von Anfangswertaufgaben steHt MATHCAD mehrere Kommandos zur Verfugung, die aHe nur Systeme von n Differentialgleicbungen erster Ordnung der Form y' (x) = f (x, y(x)) d.h. Yl' = f1 (x,Yl, .. ·,Yn) Y2' = flx'Yl,· .. ,Yn) Yn' = fn(X,Yl, .. ·,Yn) mit den Anfangsbedingungen (fur x = a) yea) =ya, d.h. yャH。I]ケセ@ , yャ。I]ケセ@ , losen k6nnen. In der vektoriellen Scbreibweise bezeicbnen y (x) , f (x, y) und ya die folgenden n-dimensionalen Vektoren
28 Differentialgleichungen
310
Zur Losung dieser Anfangswertaufgabe fur Systeme von Differentialgleichungen erster Ordnung wird am haufigsten das Kommando rkfixed (y, a, b, punkte, D) eingesetzt, das ein Runge-Kutta-Verfahren vierter Ordnung verwendet. Fur die Argumente des Kommandos rkfixed ist folgendes einzugeben: * y bezeichnet den Vektor der Anfangswerteya an der Stelle x = a, dem diese vorher in der Form
y " [:';]
*
* *
zugewiesen wurden. a und b sind die Endpunkte des Losungsinteroal!s [a,b) auf der xAchse, wobei a der Anfangswert fur x ist, fur den der Funktionswert yCa) =ya des Losungsvektors yCx) gegeben sein muB. punkte bezeichnet die Anzahl der vorzugebenden Punkte zwischen a und b, in denen das Verfahren Naherungslosungen bestimmen soll. D bezeichnet den Vektor der rechten Seiten des Differentialgleichungssystems, dem diese vorher in der Form
n)]
D(x,Y)
:=
f1 (x, Y1"'" Y f [ 2 (x, Y1:, ... , Y n )
f n (x, Y1"'" Yn ) zugewiesen wurden. Am einfachsten laBt sich dieses Kommando rkf"txed auf
Differentialgleichung erster Ordnung der Gestalt y' (x) = f (x, y(x))
mit der Anfangsbedingung yCa) = ya
e i n e
28.2 Gew6bnlicbe Differentialgleicbungen
311
anwenden und liefert eine Ergebnismatrix mit zwei Spalten. Darin stehen in der ersten Spalte die x-Werle und in der zweiten die hierfur berechneten y-Werle. Die Anzahl der Zeilen dieser Matrix wird durch das Argument punkte im Kommando bestimmt. Wenn man nur eine Differentialgleichung und damit auch nur eine Anfangsbedingung hat, so muB diese Anfangsbedingung einem Vektor y mit einer Komponente zugewiesen werden. Die genaue Vorgehensweise ist aus dem folgenden Beispiel 28.7 ersichtlich, in dem wir die Indizierung der Vektoren mit 1 beginnen .
•
Beispiel 28.7: Die Lasung der linearen Differentialgleichung erster Ordnung y' =y aus Beispiel 28.2aJ) mit der Anfangsbedingung yeO) = 1 la.Bt sich exakt berechnen und lautet y=e x Die numerische Lasung im Interoall [0,2] mittels MATHCAD kann folgendermaBen erhalten werden, wenn die LOsung in 10 Punkten berechnet wird: Yl =1 D(x, y)=y u := rkfixed(y,0,2,1O,D) Die Ergebnismatrix u enthiilt in der ersten Spalte die x-Werle, fur die in der zweiten Spalte die berechneten Naherungswerle fur die Funktionswerle y(x) der Lasung der Differentialgleichung niiherungsweise berechnet wurden:
u=
o
1
0.2
1.221
0.4
1.492
0.6
1.822
0.8
2.226
1
2.718
1.2
3.32
1.4
4.055
1.6
4.953
1.8
6.05
2
7.389
28 Differentialgleichungen
312
Die grafische Darstellung der exakten und numerischen Losung in Abb.2S.1 l:iBt die gute Ubereinstimmung beider erkennen .
•
Abb.2S.1.
i=l..l1
Grafische Darstellung der exakten und numerischen Losung aus Beispiel 28.7 mittels MATHCAD
x= 0,0.01 .. 2 10r------.------,------,
0'--------'-------.1...------'
o
2
3
( U ) i,X
Mbehte man Anfangswertaufgaben fUr Systeme von n Differentialgleichungen erster Ordnung der Form YI' = f1 Cx, Y1'···' Yn) Y2' = fzCx, Yl,·'" Yn) Yn' = fnCx'Y1,···,Yn) mit den Anfangsbedingungen yiH。I]ケセ@
, yRH。I]ケセ@ , ... , yョH。I]ケセ@ ibsen, so geht man analog wie eben bei einer Differentialgleichung erster Ordnung vor und verwendet das Kommandos rkf"lXed. Man muB lediglich den beiden Argumenten y und D des Kommandos den Vektor der Anfangsbedingungen bzw. der rechten Seiten des Systems zuweisen, d.h.
und
fICX, Yl,"" Yn)] f2Cx, Yl"'" Yn) DCx,y) := ( : fnCx, YI,"" Yn)
Das Kommando rkf"lXed liefert hierfUr eine Ergebnismatrix mit n+ 1 Spalten. In der ersten Spalte stehen die x-Werte und in den restlichen n Spalten die dafUr bereehneten Funktionswerte fUr die gesuchten Funktionen YI"'" Yn'
28.2 Gewohnliche Differentialgleichungen
313
Betrachten wir im Beispiel 28.8 die numerische Lasung einer Diffe-
rentialgleichung zweiter Ordnung. Beispiel 28.8: Das A nfangswertproblem zweiter Ordnung y" + Y' + Y = 0, yeO) = 2 , y'(O) = 1 aus Beispiel 28.2a2), das die exakte Lasung x
y(x) = e -2 . (2 . cos ..[3 x +
4...[3 . sin ..[3 232
x)
besitzt, HiBt sich nach der angegebenen Methode auf das folgende Anfangswertproblem fur das System erster Ordnung Yl'=Y2 Yl(0)=2 Y2'=-Yl-Y2 zurUc/ifiihren. Die Funktion y 1(x) dieses Systems liefert die Lasung der gegebenen Differentialgleichung zweiter Ordnung. Wir fUhren die Berechnung im Interoall [0,2] durch, berechnen die Ndhenmgslasung in 10 Punkten und zeichnen die exakte Lasung und die gefundene numerische Lasung in ein Koordinatensystem (siehe Abb.28.2). Die gelieferte Ergebnismatrix Y enthalt in der ersten Spalte die xWerte und in der zweiten bzw. dritten Spalte die berechneten Ndhentngswerte fUr Yl bzw. Y2, wobei fur unser Problem nur Yl wichtig ist, da es die Lbsung der Differentialgleichung liefert:
Y:= (2)1
D(x, y) : =
(
2
y := rkflxed ( Y , 0 , 2 , 10 , D ) 2 1 0
Y
0.2
2.143
0.441
0.4
2.182
-0.032
0.6
2.136
-0.419
0.8
2.02
-0.72
1
1.853
-0.941
1.2
1.649
-1.088
1.4
1.422
-1.168
1.6
1.185
-1.192
1.8
0.949
-1.169
2
0.72
-1.107
Y
-Yl -Y2
J
28 Differentialgleichungen
314
Abb.2S.2. Grafische Darstellung der exakten und numerischen L6sung aus Beispiel 28.8 mittels
MATHCAD
i
-
1 .. 11
x
=
0 .. 2 I
(y ) j, x
Neben dem Standardkommando rkfixed fUr die Anwendung des Runge-Kutta-Verfahrens besitzt MATHCAD noch weitere Kommandos zur L6sung von Differentialgleichungssystemen erster Ordnung, die wir im folgenden betrachten, wobei die Argumente dieser Kommandos die gleichen wie beim Runge-Kutta-Verfahren sind: • Bulstoer Dieses Kommando benutzt das Bulirsch-Stoer-Veifahren. • Rkadapt 1m Gegensatz zum Kommando rkfixed wird die Lbsung mittels des Runge-Kutta-Verfahrens nicht in gleichabstandigen x-Werten berechnet. Die Schrittweite in der Funktionswertberechnung wird in Abhangigkeit von der Funktionsanderung gewahlt. Das Ergebnis wird allerdings in gleichabstandigen x-Werten ausgegeben. • Stiftb und Stiffr Diese Kommandos verwenden das Bulirsch-Stoer-Veifahren bzw. Rosenbrock-Veifahren zur Lbsung steifer Differentialgleichungen (siehe [2]). In dies en Kommandos erscheint an letzter Stelle als zusatzliches Argument die Matrixbezeichnung J. Dieser Bezeichnung muB vorher eine Matrix J(x,Y) vom Typ (n,n+ 1) zugeordnet werden, die als aD erste Spalte セ@ und als restliche n Spalten aD
ayk
enthalt.
(k
= 1,
2, ... , n)
28.2 Gewobnlicbe Differentialgleicbungen
315
Die Anwendung der fUnf Kommandos zeigt, daB bei steifen Differentialgleichungen nur das sonst problemlos anwendbare Standardverfahren rkf'lXed kein befriedigendes Ergebnis liefert (siehe [2]) .
•
Da man im voraus wenig uber die Eigenschaften der Lbsung einer gegebenen Differentiaigieichung weiB, empfiehit es sich, die gieiche Aufgabe mit mehreren der angegebenen Kommandos numerisch zu Ibsen .
•
Zur Berechnung von Randwertproblemen steHt MATHCAD das folgende Numerikkommando zur VerfUgung, wobei vorausgesetzt wird, daB ein System von Gieichungen erster Ordnung vorliegt: sbval (v , a, b, D , load, score) Die Argumente dieses Kommandos haben die foigende Bedeutung: * v Vektor fUr die Schatzungen der Anfangswerte im Punkt a, die nicht gegeben sind. * a, b Endpunkte des Losungsintervalls [a,b]
*
* *
D(x, y)
Dieser Vektor hat die gleiche Bedeutung wie bei den Kommandos fur Anfangswertprobleme und enthiilt die rechten Seiten der Differentialgleichungen. load ( a, v) Dieser Vektor enthiilt die gegebenen Anfangswerte und die Schatzwerte fUr die fehlenden Anfangswerte im Punkt a. score(b,y) Dieser Vektor hat die gleiche Anzahl von Komponenten wie der Schatzvektor v und enthiilt die Differenzen zwischen denjenigen Funktionen Yi , fUr die Randwerte im Punkt b gegeben sind, und ihren gegebenen Werten in b.
Wiihrend im Kommando sbval fUr die Endwerte a und b des Losungsinterval!s [a,b] die konkreten Zahlen eingegeben werden mussen, sind diese bei load und score symbolisch als a und b einzutragen. Urn das Kommando sbval auf eine Gleichung hbherer Ordnung anwenden zu kbnnen, muB man ebenso wie bei Anfangswertproblemen diese Gleichung auf ein System erster Ordnung zurUckfuhren. Als Ergebnis liefert das Kommando sbval einen Vektor, der die fehlenden Anfangswerte enthiilt. Damit kbnnen wir das gegebene Pro-
316
28 Differentialgleichungen
blem als Anfangswertproblem behandeln und die dafUr gegebenen Komrnandos heranziehen. Aus dem folgenden Beispiel 28.9 ist die Vorgehensweise fur die Anwendung des Kommandos sbval ersichtlich. Die Schiitzungen fUr die Anfangswerte mussen unbedingt als Vektor v eingegeben werden, auch wenn nur ein Wert vorliegt. Wir erkhiren die Vorgehensweise fUr dies en Fall im folgenden Beispiel.
•
Beispiel 28.9: Urn das Randwertproblem y" ex)
=-
(1 + Y,2(X)JV2 .x . (1- x)
,
yeo)
= yO) = 0
aus Beispiel 28.2a3) mit MATHCAD Ibsen zu kbnnen, mussen wir es zuerst auf ein System erster Ordnung der Form Yl' = Y2
Y2' = - セ@ + ケセ@
3
J.
x . (1- x)
mit den Randbedingungen Yl (0)=0, Yl (1)=0 zUrUclifiihren. Danach kbnnen wir das Kommando sbval anwenden. Da nur eine Anfangsbedingung Y2(O) (d.h. y'(O)) fehlt, enthalt der Vektor v fur die Schiitzung der Anfangswerte nur einen Wert. Wenn man das Kommando sbval erfolgreich anwenden will, muB v als Vektor definiert werden. Da MATHCAD die Definition von Vektoren (Matrizen) mit nur einem Element nach der im Abschn.20.2 gegebenen Vorgehensweise nicht zulaBt, kann man sich auf folgende Art helfen:
load(a,v):=
Hセj@
D(x, y)
lMセ@
Y2
+
ケセ@
j.
J
x . (1 - x)
score(b, y) := Yl S: = sbval (v ,0, 1, D,load,score) S = 0.084 Der von S gelieferte fehlende Anfangswert y'(O)= 0.084 gestattet die Lbsung der Aufgabe als Anfangswertproblem mit dem Kommando rkf"txed:
317
28.2 Gew6hnliche Differentialgleichungen
2
D ex, y) _ [
. Y
:=
Mセ@
+
ケセ@
Y
j.
]
x . (1 - x)
rkflxed(y,0,1,10,D)
Als ErgebnismatrixY wird folgende berechnet: 0.084
° ° 0.1
0.00824004
0.07928657
0.2
0.0155888
0.06651851
0.3
0.02134408
0.04775953
0.4
0.02500896
0.02504633
0.5
0.02628801
3.71807601 .10-4
0.6
0.02508334
-0.02430203
0.7
0.02149298
-0.0470134
0.8
0.01581243
-0.06577
0.9
0.00853863
-0.07853598
3.73706473 .10-4
-0.08324855
y=
II
Die grafische Darstellung der erhaltenen numerischen L6sung ist in Abb.28.3 zu sehen .
•
Abb.28.3. Grafische Darstellung der numerischen L6sung aus Beispiel 28.9 mittels
i= 1..11 0.04 . - - - - - - - . , . - - - - - - - - ,
MATIICAD ッlMセ@
Da sich die Anwendung der Numerikkommandos in MATHCAD etwas aufwendig gestaltet, empfiehlt es sieh, eigene Dokumente fur die vorhandenen Kommandos zu schreiben. Als Vorlage hierfi.ir
28 DifJerentialgleichungen
318
konnen die Beispiele 28.7, 28.8 und 28.9 dienen. Dadurch erspart man sich Arbeit, da man in diesen Dokumenten lediglich die Differentialgleichung, die Anfangs- bzw. Randbedingungen und das Losungsintervall andern muB. Des weiteren gibt es in verschiedenen Elektronischen Biichern (z.B. Differential Equations Function Pack, Numerical Recipes, Numerical Methods) fertige Dokumente zur Losung von Differentialgleichungen . MATHEMATICA
•
MATHEMATICA stellt folgende Kommandos zur L6sung von Differentialgleichungen bereit: * DSolve [ Dgl , y[x] , x ] berechnet die allgemeine L6sung der als Argument bei Dgl einzugebenden Differentialgleichung exakt. Falls man beim Argument Dgl zusatzlich Anfangs- oder Randbedingungen eingibt, wird die dazugeh6rige spezielle L6sung berechnet. Die Form dieser Eingaben ist aus Beispiel 28.10 ersichtlich. * NDSolve [ Dgl , y[x] , { x , a , b } ] berechnet die numerische L6sung im Interoall [a,b], wenn Anfangs- oder Randbedingungen gegeben sind. Urn die berechnete Naherungsl6sung yCx) explizit zu erhalten, mug man die folgende Funktionsdefinition anschliefSen (siehe Beispiel 28.13): y[x-"l = y[x] /.% [[1]] Beispiel 28.10: a) Zur Bestimmung der allgemeinen L6sung der Differentialgleichung y" + y' + Y = 0 aus Beispiel 28.2a2) ist das Kommando DSolve [ y"[x] + y'[x] + y[x] == 0 , y[x] , x ] zu verwenden, wobei MATHEMATICA allerdings diese Losung in komplexer Darstellung liefert. b) Das Kommando DSolve [ { y"[x] + y'[x] + y[x] == 0 , y[O]==2 , y'[O]==1 } , y[x] , x ] berechnet die exakte L6sung fUr die Aufgabe aus Beispiel a), die die Anfangsbedingungen yCO) = 2 und y'CO) = 1 erfUllt. Diese Losung wird allerdings in unublicher komplexer Form geliefert. c) Das Kommando DSolve [ { y"[x] == - x* (1 - x ) , y[O]==O , y[I]==O } , y[x] , x ] berechnet fUr die Aufgabe y"Cx) = - X· C 1 - x ) aus Beispiel 28.2a3) die exakte L6sung 1 x· ( x 3 - 2 . x 2 y(x) = 12· +) 1
die die Randbedingungen yCO) = y(I) = 0 eifiillt. d) Das Anfangswertproblem fUr das System
28.2 Gewohnliche Differentialgleichungen
319
YI(O)=2 YI' = Y2 Y2(O)= 1 Y2'=-YI-Y2 aus Beispiel 28.8 wird von MATHEMATICA mit folgendem Kommando gel6st: DSolve [ { yl'[x] == y2[x] , y2'[x] == -yl[x] - y2[x] , yl[O]==2 , y2[O] == 1 } , { yl[x] , y2[x] } , x ]
•
MATIAB
MATLAB stellt folgende Kommandos zur L6sung von Dif.!erentialgleichungen bereit: * dsolve ( 'DgI' , 'x' ) berechnet die allgemeine L6sung der als Argument bei DgI einzugebenden Dif.!erentialgleichung exakt. Falls man beim Argument DgI zusatzlich Anfangs- oder Randbedingungen eingibt, wird die dazugeh6rige spezielle L6sung berechnet. Die Form dieser Eingaben ist aus Beispiel 28.11 ersichtlich. * ode23 ( , f', [ Xo Xl ] , AB) , ode45 ( , f', [ Xo Xl ] , AB ) berechnen die numerische L6sung eines Dif.!erentialgleichungssystems erster Ordnung mit den Anfangsbedingungen AB im Interval! [ Xo , Xl ] mittels Runge-Kutta-Verfahren (2.und 3. bzw. 4. und 5.0rdnung), wobei f die rechten Seiten des Systems als Spaltenvektor enthalt und als m-Datei f.m der Form function y_str = f(x,y) y_str = [ ....... ........ ] ;
geschrieben ist, die auf Festplatte oder Diskette vorliegen muB. Der Standort (Pfad) dieser Datei muB MATLAB zuerst mittels des Kommandos cd (siehe Abschn.21.3) mitgeteilt werden. Die berechneten y-Werte findet man im Vektor y, wahrend X die verwendeten Abszissen enthalt (siehe Beispiel 28.11e). Beispiel 28.11: a) Zur Bestimmung der al!gemeinen L6sung x
y(x) = e -2 . (c· cos 13 X + d· sin 13 x) 2
2
der Dif.!erentialgleichung y" + y' + Y = 0 aus Beispiel 28.2a2) ist das Kommando dsolve ( , D2y + Dy + Y = 0 ' , 'X' ) zu verwenden. b) Das Kommando dsolve ( , D2y + Dy + Y = 0 , y(O)=2 , Dy(O)=l ' , 'X' ) berechnet die L6sung
28 DifJerentialgleichungen
320 x
y(x) = e - 2 . (2 . cos ../3 x +
4.
../3 . sin ../3 x)
232
fUr die Aufgabe aus Beispiel a), die die Anfangsbedingungen yeO) = 2 und y'(O) = 1 etfiillt. c) Das Kommando dsolve ( , D2y= - x* 0 - x ) , y(O)=O , y(1)=O ' , 'x' ) berechnet fUr die Aufgabe y"(x) = - X· ( 1 - x ) aus Beispiel 28.2a3) die L6sung Y(x) = セN@ x . (x 3 - 2 . x 2 + 1) 12
die die Randbedingungen yeO) = yO) = 0 etjiillt. d) Das Anfangswertproblem fUr das System Y1'
= Y2
Y2' = -Y1 - Y2
Y1(O)=2 Y2(O)= 1
aus Beispiel 28.8 wird von MATLAB folgendermaBen gelbst: dsolve ( , Dyl=y2 , Dy2=- yl - y2 , yl(O) = 2 , y2(0) = 1 ' , 'x' ) e) Das Anfangswertproblem fUr das System Y1' = Y2
Y1(O)=2
Y2'=-Y1-YZ
Y2(O)=1
aus Beispiel 28.8 wird von MATLAB im Intervall [0,2) folgendermaBen numerisch gel6st: [x,y) = ode23 ( , f ' , [ 0 2 ) , [ 2 1 ) ) wobei f die rechten Seiten des Systems als Spaltenvektor enthalt und als m-Datei f.m der Form function y_str = f(x,y) y _str = [ y(2) -yO) -y(2) ) ; geschrieben ist, die auf Festplatte oder Diskette vorliegen muB. Der Standort (Pfad) dieser Datei muB MATLAB zuerst mittels des Kommandos cd (siehe Abschn.21.3) mitgeteilt werden. Die berechneten y-Werle findet man im Vektor y, wahrend x die verwendeten Abszissen enthait: x= y= 2.000 1.000 0 2.0256 0.9207 0.0267 0.1600 2.1230 0.5462 2.1817 0.0556 0.3600 2.1510 -0.3482 0.5600 2.0481 -0.6662 0.7600 1.8900 -0.9025 0.9600
28.2 Gew6hnliche Differentialgleichungen
•
MuPAD
321
1.1600 1.3600 1.5600 1.7600 1.9600 2.0000
1.6923 1.4693 1.2336 0.9961 0.7657 0.7211
-1.0634 -1.1567 -1.1914 -1.1768 -1.1223 -1.1074
MuPAD stellt folgendes Kommando zur L6sung von Differentialgleichungen bereit: solve ( ode ( Dgi , y(x) ) ) ; berechnet die allgemeine L6sung der als Argument bei Dgi einzugebenden Differentialgleichung exakt. Falls man beim Argument Dgi zusatzlich Anfangs- oder Randbedingungen eingibt, wird die dazugeh6rige spezielle L6sung berechnet. Wenn man ein System Ibsen mbchte, so mug dies bei Dgi in Mengenschreibweise eingegeben werden. Die Anwendung des Kommandos wird im folgenden Beispiel 28.12 illustriert. Beispiel 28.12: a) Zur Bestimmung der allgemeinen L6sung x
E
x) Y(x) = e -2 . (c· cos 2 x + d· sin ..[3 2 der Differentialgleichung y" + y' + Y = 0 aus Beispiel 28.2a2) ist
das Kommando solve ( ode ( diff ( y(x) , x$2 ) + diff ( y(x) , x ) + y(x) = 0 , y(x) ) ) ;
zu verwenden. b) Das Kommando solve ( ode ( { diff ( y(x) , x$2 ) + diff ( y(x) , x ) + y(x) = 0 , y(0)=2 , D(y)(O)=l ) , y(x) ) ) ;
berechnet die L6sung x
y(x) = e - 2 . ( 2 . cos ..[3 x
+ 4 ...[3 . sin ..[3 x)
232
fUr die Aufgabe aus Beispiel a), die die Anfangsbedingungen yeO) = 2 und y'(O) = 1 eifiillt.
c) Das Kommando solve ( ode ( { diff ( y(x) , x$2 ) = -x*(1-x) , y(O)=O , y(1)=O ) , y(x) ) ) ;
berechnet fUr die Aufgabe y"(x) = aus Beispiel 28.2a3) die L6sung
X· (
1- x )
28 Differentialgleichungen
322
y(x)
= セ@
12
.x
. (x 3 - 2 . x 2 + 1)
die die Randbedingungen yeO) = y(1) d) Die allgemeine Losung fur das System Yl'
= 0 erfiUlt.
= Y2
Y2'=-YI-Y2
aus Beispiel 28.8 wird von MuPAD folgenderrnaBen bestimmt: solve ( ode ( I diff ( y1(x) , x) = y2(x) , diff ( y2(x) , x) = y1(x) - y2(x) I , I y1(x) , y2(x) I) ) ;
•
Falls in einem System kein gesondertes Kommando zur Losung von Differentialgleichungssystemen gefunden wird, so kann man die Lbsung mit den gegebenen Kommandos versuchen, indem man das System als Liste bzw. Feld eingibt, wie es bei der Lbsung von algebraischen Gleichungen der Fall ist und wie in den gegebenen Beispielen illustriert wurde .
•
Falls fur Anfangs- oder Randwertprobleme keine Kommandos in einem System existieren, so kann man diese Probleme ebenfalls Ibsen, indem man die allgemeine Losung ermittelt und anschlieBend die hierin befindlichen Konstanten bestimmt.
•
Nachdem wir bereits die numerische Losung von Differentialgleichungen mittels MATHCAD und MATIAB demonstriert haben (siehe Beispiele 28.8 und 28. lle), betrachten wir im abschlieBenden Beispiel 28.13 die numerische Losung mittels MACSYMA, MAPLE und MATHEMATICA. Beispiel 28.13: Das Anfangswertproblem fur das System y" + y' + Y = 0, yeO) = 2 , y'(O) = 1 aus Beispiel 28.8 wird von MACSYMA, MAPLE und MATHEMATICA im Intervall [0,2] numerisch gelost: * MACSYMA: Das Kommando runge_kutta ( , diff ( y , x , 2 ) + ' diff ( y , x ) + y = 0 , ' y , ' x , [ , at ( y , x = 0 ) = 2 , ' at ( , diff ( y , x = 0 ) = 1 ] , 0 , 2 , 0.2 ) berechnet die NahernngslOsung y(x) im Interoall [0,2] mit der Schrittweite 0.2, d.h. in den Punkten x = 0.2, 0.4, ... , 2 * MAPLE: Das Kommando lsg.-y := dsolve ( I diff ( y(x) , x$2 ) + diff ( y(x) , x ) + y(x) = 0 , yeo) = 2 , D(y)(O) = 1 I , y(x) , numeric) ;
28.] Partielle Differentialgleichungen
323
*
liefert eine Prozedur ャウセケ@ zur Berechnung von Naherungen fur die L6sungsfunktion y(x), mit deren Hilfe man mittels des Kommandos subs ( ャウセケH。I@ , y(x) ) ; den berechneten Naherungswert an der Stelle a erhalt. Nach dem Laden des Zusatzpakets plots mittels with (plots) ; la1st sich die Naherungsl6sung durch das Kommando odeplot ( ャウセケ@ , [ x , y(x) ] , a .. b ) ; im Intervall [a,b] grafisch darstellen. MATHEMATICA: Die Kommandofolge NDSolve [ { y"[x] + y'[x] + y[x] == 0 , y[O] == 2 , y'[O] == 1 } , y[x] , {x, 0,2}] ケ{クセ@
= y[x] /.%[[1]] berechnet die Naherungsl6sung y(x) im Internall [0,2] mittels der Funktion y[x] .
•
Zusammenfassend laBt sich feststellen: * Da die L6sung von Differentialgleichungen eng mit der Integration zusammenhangt, darf man von den Systemen keine Wunderdinge erwarten. Sie zeigen nur bei der exakten L6sung einfacher linearer Differentialgleichungen gute bis zufriedenstellende Eigenschaften, wobei MATHEMATICA das Ergebnis bfters in einer unublichen komplexen Schreibweise liefert. * Mit den Systemen kbnnen neben der Bestimmung der allgemeinen L6sung auch Anfangs- und Randwertaufgaben gelbst werden, wie die Beispiele gezeigt haben. * Fur den Fall des Scheiterns der exakten Berechnung stellen die meisten Systeme Numerikkommandos zur Verfugung, wobei MATHCAD und MATLAB die umfangreichsten Mbglichkeiten bieten. * Fur MATHEMATICA, MATHCAD und MATLAB existieren Zusatzpakete zur exakten (symbolischen) bzw. numerischen Lbsung spezieller (nichtlinearer) Differentialgleichungen aus der Praxis. * Eine ausfuhrliche Beschreibung mit vielen Beispielen fur die Anwendung von MAPLE und MATHEMATICA zur Lbsung von Differentialgleichungen findet man in den Biichern [50] bzw. [49,59,71,76,95] .
•
28.3
Partielle Differentialgleichungen Da die L6sungstheorie selbst fur lineare partielle Differentialgleichungen bereits sehr umfangreich und vielschichtig ist, wird im
324
28 Differentialgleichungen
Rahmen dieses Buches auf partielle DifJerentialgleichungen verzichtet. Dies laBt sich auch noch dadurch rechtfertigen, daB fur ihre Lasung in allen Systemen keine Kommandos vorhanden sind. Man kann aber mit den in den Systemen enthaltenen Kommandos Losungen linearer partieller DifJerentialgleichungen auf der Gnmdlage der entsprechenden Losungstheorie konstruieren, wie in den Biichern fur MAPLE [54] und MATHEMATICA [71, 88, 99] demonstriert wird. Des weiteren lassen sich numerische Losungsalgorithmen mit den in den Systemen integrierten Programmiersprachen implementieren. Inzwischen wurden fur die Systeme MATH CAD , MATHEMATICA und MATLAB Elektronische BucherlZusatzpaketelToolboxen entwikkelt, mit deren Hilfe sich gewisse Klassen linearer partieller DifJerentialgleichungen einfach losen lassen.
325
29
Integraltransformationen
IntegraltransJonnationen werden zur Lasung einer Reihe von Problemen der Ingenieunnathematik benatigt. Das betrifft insbesondere die Laplace- und FouriertransJonnation, die man haufig zur L6sung von Differentialgleichungen heranzieht. Beide TransJonnationen sind im Rahmen der Systeme realisierbar. Einige Systeme gestatten zusatzlich die DurchJuhrung weiterer TransJonnationen wie z.B. der Z-TransJonnation.
29.1
Ingenieurtechnische Anwendungen Schwingungsvorgiinge in Technik und NaturwissenschaJten lassen sich haufig durch lineare Differentialgleichungen mit konstanten Koeffizienten beschreiben. Zur Lasung dieser Aufgaben liefert die LaplacetransJonnation eine effektive L6sungsmethode, so daB sie in der Elektrotechnik als Standardmethode verwandt wird. Zahlreiche Anwendungsbeispiele hierzu findet man in [41]/2,VI. Die FouriertransJonnation hangt eng mit der Laplacetransformation zusamrnen und wird ebenfalls zur L6sung von Differentialgleichunperiodischer gen herangezogen. Des weiteren dient sie zur aョ。セケウ・@ Vorgiinge (siehe [100]12)
29.2
Laplacetransformation Die LaplacetransJonnierte (BildJunktion) L [ f] = F (s) einer Funktion (Originaljunktion) f(x) bestimmt sich unter gewissen Voraussetzungen aus L [ f] = F (s) =
f f(x) . e
'"
-sx
dx
o
Ein bei LaplacetransJonnationen haufig auftretendes Problem besteht darin, aus der BildJunktion F wieder die Originaljunktion f zu berechnen. Diese Aufgabe wird als inverse LaplacetransJonnation oder RucktransJonnation bezeichnet und bestimrnt sich unter gewissen Voraussetzungen aus H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
326
29 Integraltrans!ormationen 1
f(t)
c+ico
- - JestF(s)ds 27t i
.
C-lOO
Zur Berecbnung der uneigentlicben Integrale fur die Laplacetransformation und ihre inverse Transformation existieren keine endlichen Algorithmen (siehe Abschn.25.3). Deshalb ist nicht zu erwarten, daB die Systeme immer eine L6sung finden.
•
AXIOM
Die Systeme stellen folgende KommandosiMenufolgen fur die Laplacetransformation zur Verfugung: AXIOM berecbnet mittels der Kommandos • laplace ( f(t) , t , s ) die Laplacetransformierte (Bildfunktion) F(s) der Funktion f(t), • inverseLaplace ( F(s) , s , t ) die Inverse (Originaljunktion) f(t) der Funktion F(s). Beispiel 29.1: a) AXIOM berecbnet mittels der Kommandos * laplace ( cos(t) , t, s) die Laplacetransformierte der Funktion cos t * inverseLaplace ( s/(sI\2+ 1) , s , t ) die Rucktransformation. b) Die Laplacetransformierten fur die Ableitungen y'(t) , y"(t) der Funktion yet) berechnet AXIOM mittels der Kommandofolgen: * y:= operator' y ; laplace ( D ( yet) , t ) , t , s ) * y:= operator' y ; laplace ( D ( yet) , t , 2) , t , s) in der folgenden Form: * s laplace (y(t) ,t ,s) - yeO) * s2laplace( yO),t,s)- y'(O)- y(O)s Die von AXIOM gelieferte Form fur die Laplacetransformierte laplace ( yet) , t, s) ist fur Anwendungen (z.B. fur die L6sung von Differentialgleichungen) nicht vorteilhaft, so daB sich das Ersetzen durch eine neue Variable yes) empfiehlt.
DERIVE
•
DERIVE berecbnet nach dem Laden der Zusatzdatei INT_APPS.MTH mittels der Menufolge File:::) Load :::) Utility... Incapps durch die Menufolge
29.2 Laplacetransjormation
MACSYMA
MAPLE
327
Author => Expression... laplace ( f(t) , t , s) => Simplify die Laplacetransfonnierte (Bildfunktion) F(s) der Funktion f(t). MACSYMA berechnet mittels der Kommandos • laplace ( f(t) , t , s ) die Laplacetransfonnierte (Bildfunktion) F(s) der Funktion f(t), • ilt ( F(s) , s , t ) die Inverse (Originaljunktion) f(t) der Funktion F(s). Beispiel 29.2: a) MACSYMA berechnet mittels der Kommandos * laplace ( cos(t) , t , s) die Laplacetransfonnierte der Funktion cos x, * ilt ( s/(sI\2+1) , S , t) die Riicktransfonnation. b) Die Laplacetransfonnierten fUr die Ableitungen y'(x) , y"(x) der Funktion y(x) berechnet MACSYMA mittels der Kommandos: * laplace ( diff ( y(x) , x ) , x , s ) ; * laplace (diff( y(x) , x$2 ) , x, s ) ; in der folgenden Fonn: * s laplace ( y(x) , x, s) - yeO) * s ( s laplace (y(x) , x, s) - yeO) ) - D(y)(O) Die von MACSYMA gelieferte Fonn fUr die Laplacetransformierte laplace ( y(x) , x , s) ist fUr Anwendungen (z.B. fUr die Lasung von Differentialgleichungen) nicht vorteilhaft, so daB sich das Ersetzen durch eine neue Variable yes) empfiehlt.
•
MAPLE muB fUr die Laplacetransfonnation zuerst das Paket inttrans CIntegraltransfonnationen) mittels des Kommandos withe inttrans ); laden. AnschlieBend berechnen • laplace ( f(x) , x , s ) ; die Laplacetransfonnierte CBildfunktion) F(s) der Funktion f(x), • invlaplace ( F(s) , s , x ) ; die Inverse (Originaljunktion) f(x) der Funktion F(s). Beispiel 29.3: a) MAPLE berechnet mittels der Kommandos * laplace ( cos(x) , x , s ) ; die Laplacetransfonnierte der Funktion cos x, * invlaplace ( s/(sI\2+ 1) , s , x ) ; die Riicktransfonnation. b) Die Laplacetransfonnierten fUr die Ableitungen y'(x) , y"(x) der Funktion y(x)
328
29 Integraltransfonnationen
berechnet MAPLE mittels der Kommandos: laplace Cdiff CyCx) , x ) , x , s ) ; laplace CdiffC yCx) , x$2) , x , s) ; in der folgenden Form: * s laplace ( y(x) , x, s) - yCO) * s Cs laplace (y(x) , x, s) - yCO) ) - DCy)(O) Die von MAPLE gelieferte Form fUr die Laplacetransformierte laplace ( y(x) , x , s ) ist fUr Anwendungen (z.B. fUr die Lasung von Differentialgleichungen) nicht vorteilhaft, so daB sich das Ersetzen durch eine neue Variable yes) empfiehlt.
* *
MATHCAD
•
MATHCAD berechnet die Laplacetransformierte (Bildfunktion) F(s) und ihre Inverse COrigina!funktion) f(t) folgendendermaflen: • Man gibt die zu transformierende Funktion (Origina!funktion) f(t) in das Arbeitsfenster ein, markiert eine Variable t mit dem Kursor und aktiviert abschlieBend die Menufolge Symbolic セ@ Transforms セ@ Laplace Transform • Fur die Berechnung der Inversen wird eine Variable s in der Bildfunktion F(s) mit dem Kursor markiert und abschlieBend die Menufolge Symbolic セ@ Transforms セ@ Inverse Laplace Transform aktiviert. Es ist zu beachten, daB MATHCAD, die Bildfunktion F(s) als Funktion von s und die Inverse (Origina!funktion) f(t) als Funktion von t darstellt.
•
Betrachten wir elmge Beispiele fUr die Laplacetransformation und ihre Rucktransformation mittels MATHCAD. Beispiel 29.4:
a) Wir berechnen die Laplacetransformierten fur einige elementare Funktionen s cos(t) has laplace transform
sine t)
has laplace transform
has Lap/ace transform
[(n+l) s(n+1)
29.2 Laplacetransjormation
329 has Laplace transform has Laplace transform
t·e
- a· t
1 (s + a)
1
has Laplace transform has Laplace transform
1
s
b) Fur die in a) berechneten Laplacetransformierten ermitteln wir in der gleichen Reihenfolge die Inversen:
has inverse laplace transform
cos(t)
has inverse laplace transform
sine t)
rcn + 1) s( n
has inverse laplace transform
+ 1)
. [ rcn + 1) s, t 1 mvlaplace s( n + 1)
l r
]
'
has inverse laplace transform
s
+
1
1 s
exp (- a·t)
has inverse laplace transform a
has inverse laplace transfonn
has inverse laplace traniform
t·exp(-a·t)
1
Bis auf die Inverse der Bildfunktion von t n werden aile Inversen berechnet. c) Die Laplacetransformierten fur die Ableitungen y'(t) und y"(t) der Funktion yet), berechnet MATHCAD in der folgenden Form:
29 Integraltransfonnationen
330 *
d
-yet) has Laplace transform laplace(y(t),t,s)·s- yeO) dt wobei die gelieferte Form fUr die Laplacetransformierte laplace (y(t) , t , s) fUr Anwendungen (z.B. fUr die Lasung von Differentialgleichungen) nicht vorteilhaft ist, so daB sich das Ersetzen durch eine neue Variable yes) empfiehlt (siehe Beispiel 29.8). * Fur die Ableitung zweiter Ordnung wird das Ergebnis nicht direkt berechnet, sondern es erscheint eine Dialogbox, in der angezeigt wird, daB das Ergebnis MAPLE-speziJisch ist und es wird die Frage gestellt, ob es in die ZWischenablage kopiert werden solI. Bejaht man diese Frage durch Mausklick, so kann man anschlieBend das Ergebnis in das Arbeitsfenster kopieren und erhilt: (((( laplace(y(t),t,s))*(s))+((-1) *(y(O)))) *(s))+((-1) *(diff(y(t2),t2))) & where {(t2)=(O)} Das von MATHCAD indirekt gelieferte Ergebnis (in der Sprache von MAPLE) fUr die Laplacetransformierte der Ableitung zweiter Ordnung y"(t) einer Funktion yet) ist fUr weitere Rechnungen nicht verwendbar. Deshalb ist es fUr die Anwendung auf Differentialgleichungen notwendig, daB diese auf Systeme erster Ordnung zuruckgefUhrt werden (siehe Beispiel 29.Sa1) und a2) .
MATIIEMA-
TICA
•
MATHEMATICA berechnet nach dem Laden des Zusatzpakets Laplacetransformation mittels des Kommandos Needs [ " Cakulus'LaplaceTransform' " ) durch die Kommandos • LaplaceTransform [ f(x) , x , s ) die Laplacetransformierte (Bildfunktion) F(s) der Funktion f(x), • InverseLaplaceTransform [ F(s) , s , x ) die Inverse (Originaljunktion) f(x) der Funktion F(s). Betrachten wir ein Beispiel fUr die Anwendung der Laplacetransformation mittels MATHEMATICA. Beispiel 29.5: a) MATHEMATICA berechnet mittels der Kommandos * LaplaceTransform [ Cos[x) , x , s ) die Laplacetransformierte der Funktion cos x, * InverseLaplaceTransform [ s/(sI\2+ 1), S , x ) die Riicktransformation. b) Die Laplacetransformierten fUr die Ableitungen y'(x) , y"(x) der Funktion y(x)
29.2 Laplacetransjonnation
331
berechnetMATHEMATICA mittels der Kommandos: LaplaceTransform [ y'[x] , x , s ] LaplaceTransform [ y"[x] , x , s ] in der folgenden Form: * s LaplaceTransform [ y[x] , x , s ] - y[O] * S2 LaplaceTransform[y[xl , x , sl-sy[Ol-y'[Ol Die von MATHEMATICA gelieferte Form fUr die Laplacetransformierte LaplaceTransform [ y[x] , x , s] ist fi.ir Anwendungen (z.B. fi.ir die Lasung von Differentialgleichungen) nicht vorteilhaft, so daB sich das Ersetzen durch eine neue Variable yes) empfiehlt.
* *
•
MATLAB
MATLAB berechnet fUr die Laplacetransformation mittels • syms x ; laplace ( f(x) ) die Laplacetransformierte (Bildfunktion) F(s) der Funktion f(x), • syms s ; ilaplace ( F(s) ) die Inverse (Originalfunktion) f(t) der Funktion F(s). Das Kommando syms dient zur Bezeichnung der symbolischen Variablen. Beispiel 29.6: a) MATLAB berechnet mittels der Kommandofolgen * syms x ; laplace ( cos(x) ) die Laplacetransformierte der Funktion cos x, * syms s ; ilaplace ( s/(sI\2+ 1) ) die Rucktransformation. b) Die Laplacetransformierten fUr die Ableitungen y'(x) , y"(x) der Funktion y(x) berechnet MATLAB mittels der Kommandofolgen: * syms x; laplace (diff( , y(x) , , x)) * syms x ; laplace ( diff ( , y(x) , , x , 2 ) ) in der folgenden Form: * s laplace ( y(x) , x , s) - yeo) * s ( s laplace ( y(x) , x , s ) - yeo) ) - D(y)(O) Die von MATLAB gelieferte Form fi.ir die Laplacetransformierte laplace ( y(x) , x , s ) ist fi.ir Anwendungen (z.B. fUr die Lasung von Differentialgleichungen) nicht vorteilhaft, so daB sich das Ersetzen durch eine neue Variable yes) empfiehlt .
MuPAD
MuPAD berechnet fUr die Laplacetransformation mittels • transform::laplace ( f(x) , x , s) ; die Laplacetransformierte (Bildfunktion) F(s) der Funktion f(x),
•
332
29 Integraltransfonnationen
transform::ilaplace ( F(s) , s , x ) ; die Inverse (Originaljunktion) f(x) der Funktion F(s). Beispiel 29.7: a) MuP AD berechnet mittels der Kommandos * transform::laplace ( cos(x) , x, s) ; die Laplacetransformierte der Fzmktion cos x, * transform::ilaplace ( s/(s/\2+ 1) , s , x ) ; die Riicktransformation. b) Die Laplacetransformierten fUr die Ableitungen y'(x) , y"(x) der Funktion y(x) berechnet MAPLE mittels der Kommandos: * laplace ( diff ( y(x) , x ) , x , s ) ; * laplace (diff( y(x) , x$2) , x , s ) ; in der folgenden Form: * s laplace ( y(x) , x , s) - yeo) * s21aplace(y(x), x, s) - D(y)(O) - syCO) •
Die von MuPAD gelieferte Form fUr die Laplacetransformierte laplace ( y(x) , x , s ) ist fUr Anwendungen (z.B. fUr die Losung von Differentialgleichungen) nicht vorteilhaft, so daB sich das Ersetzen durch eine neue Variable yes) empfiehlt.
•
29.3
Fouriertransformation Die Fouriertransformierte (Bildfunktion) einer Funktion (Originalfunktion) f(x) berechnet sich unter gewissen Voraussetzungen aus
Jf(x) . e
C()
F [ f 1= F (t)
=
i ·(·x
dx
-C()
Ein bei Fouriertransformationen haufig auftretendes Problem besteht darin, aus der Bildfunktion F wieder die Originaljunktion f zu berechnen. Diese Aufgabe wird als inverse Fouriertransformation oder Riicktransformation bezeichnet. Da die Fouriertransformation eng mit der Laplacetransformation verwandt ist, wurde sie nicht in alle Systeme integriert. Falls vorhanden, gestaltet sie sich in den Systemen analog zur Laplacetransformation. Es ist nur in den Kommando- und Menunamen Laplace durch Fourier zu ersetzen. Deshalb verzichten wir im folgenden auf Beispiele und geben nur kurz die vorhandenen KommandosiMeniifolgen fur die Fourier-
transformation :
29.3 Fouriertrans/ormation MACSYMA
MAPLE
MATHCAD
333
MACSYMA berechnet fUr die Fouriertransformation mittels • fourier ( f(x) , x , t ) die Fouriertransformierte (Bildfunktion) F(t) der Funktion f(x), • invjourier ( F(t) , t , x ) die Inverse (Originaljunktion) f(x) der Funktion F(t). MAPLE muB fUr die Fouriertransformation zuerst das Paket inttrans (Integraltransjormationen) mittels des Kommandos withe inttrans ); laden. AnschlieBend berechnen • fourier ( f(x) , x , t ) ; die Fouriertransformierte (Bildfunktion) F(t) der Funktion f(x), • invfourier ( F(t) , t , x) ; die Inverse (Originaljunktion) f(x) der Funktion F(t). MATHCAD berechnet die Fouriertransformierte (Bildfunktion) F(s) und ihre Inverse (Originaljunktion) f(t) folgendendermafSen: • Man gibt die zu transformierende Funktion (Originaljunktion) f(t) in das Arbeitsfenster ein, markiert eine Variable t mit dem Kursor und aktiviert abschlieBend die Menufolge Symbolic セ@ Transforms セ@ Fourier Transform • Fur die Berechnung der Inversen wird eine Variable s in der Bildfunktion F(s) mit dem Kursor markiert und abschlieBend die
Menufolge Symbolic セ@ Transforms セ@ Inverse Fourier Transform aktiviert. MATHEMATICA berechnet nach dem Laden des Zusatzpakets FouMATHEMAriertransformation mittels Needs [ " Calculus'FourierTransform' " 1 TICA durch die Kommandos • FourierTransform [ f(x) , x , t 1 die Fouriertransformierte (Bildfunktion) F(t) der Funktion f(x), • InverseFourierTransform [ F(t) , t , x 1 die Inverse (Originaljunktion) f(x) der Bildfunktion F(t). MATIAB MATLAB berechnet fUr die Fouriertransformation mittels • syms x ; fourier ( f(x) ) die Fouriertransformierte (Bildfunktion) F(w) der Funktion f(x), • syms w ; ifourier ( F(w) ) die Inverse (Originaljunktion) f(x) der Funktion F(w). Das Kommando syms dient zur Bezeichnung der symbolischen Variablen. MuPAD MuPAD berechnet fUr die Fouriertransformation mittels • transform::fourier ( f(x) , x , t ) ; die Fouriertransformierte (Bildfunktion) F(t) der Funktion f(x), • transform::ifourier ( F(t) , t , x ) ;
29 Integraltransfonnationen
334
die Inverse (Origina!funktion) f(x) der Funktion F(t).
29.4
Losung von Differentialgleichungen Die exakte Losung von gewohnlichen und partiellen Differentialgleichungen bildet ein Haupteinsatzgebiet fUr die Integraltransformationen. Das Prinzip bei der Anwendung von Laplace- und Fouriertransformationen zur Losung gewohnlicher Differentialgleichungen besteht in folgenden Schritten: I. Die Differentialgleichung fUr die Funktion (Origina!funktion) yet) wird mit der Transformation in eine algebraische Gleichung fUr die Bildfunktion yes) uberfUhrt. II. Die so erhaltene Gleichung wird nach der Bildfunktion yes) aufgelost. Dazu werden die Methoden zur Losung von Gleichungen herangezogen (siehe Kap.23) III. AbschlieBend wird durch Anwendung der inversen Transformation (Riicktransformation) die Losung yet) der Differentialgleichung erhalten. Mit dieser Vorgehensweise kann man vor allem Anfangswertprobleme fUr Differentialgleichungen erfolgreich behandeln, da man hier die Funktionswerte fur die gesuchte Funktion und ihre Ableitungen im Anfangspunkt t=O besitzt. Es lassen sich jedoch auch einfache Randwertaufgaben mittels Transformationen losen, wie im Beispiel 29.8a3) demonstriert wird. Falls die Anfangsbedingungen nicht im Punkt t=O gegeben sind, so muB man das Problem vorher durch eine Transformation in diese Form bringen. Bei zeitabhiingigen Problemen (z.B. in der Elektrotechnik) hat man jedoch meistens die Anfangsbedingungen im Punkt t=O gegeben .
•
Die beschriebene Vorgehensweise zur L6sung von Differentialgleichungen illustrieren wir ausfUhrlich fUr die Laplacetransformation an einer Reihe von Beispielen, wobei die Systeme MAPLE, MATHCAD und MATHEMATICA herangezogen werden. Die anderen Systerne sind analog anzuwenden. Beispiel 29.S: a) Losen wir mit MATHCAD einige Differentialgleichungen mittels der Laplacetransformation. Da MATHCAD bei der Anwendung der Laplacetransformation nur erste Ableitungen transformiert, wie wir im Beispiel 29.4c) gesehen haben, mussen Differential-
29.4 L6sung von Differentialgleichungen
335
gleichungen h6herer Ordnung vorher auf Systeme erster Ordnung umgeformt werden (siehe Abschn.28.2). al)Wir verwenden die homogene DifJerentialgleichung zweiter Ordnung (hannonischer Oszillator) Y" + Y' + Y = 0 mit den Anfangsbedingungen yeO) = 2 , y'(O) = 1 aus Beispiel 28.2a2). Dazu uberfUhren wir die gegebene Gleichung in das DifJerentialgleichungssystem erster Ordnung (siehe Abschn.28.2) Yj'=Y2 Y2'= -yj-Y2 mit den Anfangsbedingungen Yj(O) = 2 , Y2(0) = 1 Danach ist in MATHCAD folgende Vorgehensweise erforderlich: * Auf das DifJerentialgleichungssystem wird zuerst die Laplacetransfonnation angewendet, * anschlieftend wird das entstandene lineare algebraische Gleichungssystem nach den Bildfunktionen Yj(s), YzCs) 。コセヲァ・iVウエL@
* abschlieftend
werden mittels der inversen Laplacetransfonnation von Yj(s), Y2(s) die L6sungen Yj(t), yzCt) berechnet. 1m MATHCAD-Arbeitsfenster zeigt sich dies folgendermaBen: d dt Y 1(t)
= Y 2(t)
has Laplace transfonn
=
laplace (Y 1 (t) , t, s).s - Y 1 (0) laplace (Y 2 (t) , t, s) d dt Y 2(t)
= -Y l(t)- Y 2et)
ャ。ー」セyRHエILウNM
yRHoI]Mャ。ー」セエLウ@
has Laplace transfann Mャ。ー」セyRHエILウ@
Daraus ergibt sich das folgende von MATH CAD zu losende lineare Gleichungssystem, wenn man Y 1 = laplace(Yl(t),t,s) und Y 2= laplace(Y2(t),t,s) setzt und fUr YI(O) , Y2(0) die gegebenen Anfangswerte verwendet:
29 lntegraltransformationen
336
given Y l's - 2=Y 2 Y2·s - 1=-Y1- Y 2 Die LOsung Y 1 ,Y2 dieses Systems ergibt sich zu: find(Y
l'
Y ) 2
セ@ HZ[ャKセIj@
(s - 2) (S2
+ 1 + s)
Die Anwendung der inversen Laplacetransformation (Rucktransformation) auf Y 1 liefert die exakte L6sung der gegebenen Differentialgleichung: (2· s + 3) (S2
has inverse Laplace transform
+ 1 + s)
lexp (-21 .t )
NウゥョgᄋセエI@
+ 2·exp (-21 .t )
L」ッウgᄋセエI@
a2)Wir betrachten die Differentialgleichung aus Beispiel an mit der Inhomogeniilit cos t, d.h. die Gleichung y" + y' + y = cos t und verwenden die gleichen Anfangsbedingungen. Zuerst iiberfuhren wir die gegebene Gleichung wieder in ein Differentialgleichungssystem erster Ordnung (siehe Abschn. 28.2): YI'= Y2 Y2'= -YI-Y2+cos t mit den Anfangsbedingungen yICO) = 2 , Y2CO) = 1 1m MATHCAD-Arbeitsfenster zeigt sich die erforderliche Vorgehensweise folgendermaBen: d dt Y 1(t) = Y 2(t) has Laplace transform laplace (Y 1 (t) , t, s) ·s - Y 1 (0) = laplace (Y 2( t) , t, s) d dt Y 2(t) = - Y l(t) - Y 2(t) + cos(t)
has Laplace transform i。ーャ」セケ@
2(t), t, 5)'5 - yRHoI]Mi。ーャ」セQ@
(t), t, 5)
- i。ーャ」セyRHエIL@
t, 5) + _5_
(l + 1)
Daraus ergibt sich das folgende lineare Gleichungssystem, wenn man
337
29.4 L6sung von Differentialgleichungen
Y1=laplaceCY1Ct),t,s)
und
Y2=laplace(Y2Ct),t,s)
setztundJur Y1CO) , Y2(O) diegegebenenAnJangswerteverwendet: given Y l· s - 2=Y 2
Y2· s - 1=(-Y1- Y2)
s
-;--2--
s + 1
Die Losung Y j , Y 2 dieses Systems ergibt sich zu :
find (Y , Y ) セ@ 1
2
(3.52 + 2· s3 + 3· s + 3)] [ (2· S2 + s4 + 1 + 53 + s) (s3 _ 52 + S - 2) (2·5 2 +s 4 +1+s 3 +5)
Die Anwendung der inversen Laplacetransfannatian (Riicktransfannation) au! Y 1 liefelt die exakte LOSllng der gegebenen Differentialgleichung: C3 . 52 + 2· s3 + 3· s + 3) 2 4 3 has inverse Laplace transJann (2·s +5 +l+s +s)
セN・クOエ|I@
3
\2
.. UゥョHセN{SエI@
\2
+ RN・クーHセエI」ッウ{S@
2
2
+ sir(t)
a3)Betrachten wir da5 Randwertproblem yeO) = 2 , y(n/2) = 3 fi.ir eine lineare Schwingungsdifferentialgleichung (5iehe Beispiel 28.2a2) der Fann y"(t) + yet) = 0 da5 wir zuerst in da5 System erster Ordnung Yl'(t) = yit) Y2'(t) = - Yl(t) mit den Randbedingungen Yj(O)=2, Yj(n / 2)=3 nach der im Abschn.28.2 beschriebenen Art transJanniere11. Die mit MATHCAD durchgefi.ihrte Laplacetransfannatian d dt Y l(t) = Y zCt) has Laplace transfann laplace(y 1 (t), t, s).s - Y 1 (O)=laplace(y 2(t), t, s) d dt Y zCt) = -Y 1(t)
has Laplace transJann
laplace(y 2(t), t, s).s - Y 2(O)=-laplace(y 1 (t), t, s)
338
29 Integraltransjormationen
des Differentialgleicbungssystems ergibt das folgende lineare Gleicbungssystem, wobei fUr die feblende Anfangsbedingung der Parameter a verwendet wird: given Y l·s - 2=Y 2 Y 2·s - a=- Y 1
find(Y1 ,Y2 )
セ@ HZeセャj@ (S2
+ 1)
Die Rucktransformation der Funktion Y1 (2·s
+ a)
(s2 + 1)
.
bas tnverse Laplace transform 2·cos(t) + a·sin(t)
liefert die L6sung yet) der betrachteten Schwingungsgleichung mit dem noch unbekannten Parameter a. Das Einsetzen der gegebenen Randbedingung y(1t/2) = 3 berechnet a :
RNcosHセI@
+
。NウゥョHセI]S@
bassolution(s)
3
Dies ergibt die L6sung yet) = 2·cos(t) + 3·sin(t) fUr das gegebene Randwertproblem. Wir haben damit das Randwertproblem mittels Laplacetransformation gelost, indem das System als Anfangswertproblem mit einer unbekannten Anfangsbedingung (Parameter a) gelost und anschlieBend aus der gegebenen Randbedingung den Parameter a bestimmt wird .
•
b) Losen wir in MATHEMATICA mittels Laplacetransformation das Anfangswertproblem fUr die allgemeine lineare bomogene Scbwingungsdifferentialgleicbung zweiter Ordnung (barmoniscber Oszillator) aus Beispiel 28.2a2) y"(x) + a· y'(x) + b· y(x) = 0 ( a , b > 0 - Konstanten ) wobei fUr a= b der aperiodiscbe Grenzfall a b der Kriecbfall vorliegen. Fur weitere Rechnungen verwenden wir beliebige Konstanten a und b und die Anfangsbedingungen yeO) = 2 und y'(O) = 1.
29.4 L6sung von Differentialgleichungen
339
Zur Losung mittels der Laplacetransfonnation sind nach dem Laden des Zusatzpakets LaplaceTransfonn mitte1s Needs [ " Calculus'LaplaceTransform' " 1 in MATHEMATI CA folgende Schritte erforderlich: I. Fur die Laplacetransfonnation L [y"(x) + a· y'(x) + b· y(x) = 0 1 der gesamten DiJ!erentialgleichung ist das Kommando LaplaceTransform [ y"[xl + a *y'[xl + b*y[xl == 0 , x , s 1 anzuwenden. II. Da MATHEMATICA fur die Laplacetransfonnierte yes) von y(x) die unhandliche Bezeichnung
LaplaceTransfonn [ y[x} , x , s} verwendet, empfiehlt es sich, dem durch I. erhaltenem Ergebnis mitte1s des Kommandos % I. I LaplaceTransform [ y[xl , x , s 1 -+ Y[sl , y[Ol -+ 2 , y'[Ol -+ 1 } der Laplacetransfonnierten die Bezeichnung Y[sl und gleichzeitig die Anfangsbedingungen yeO) = 2 und y'(O) = 1 zltzuweisen, wobei der Pfeil -+ mitte1s - und > einzugeben ist. III. Die in I. transfonnierte Gleichung besitzt nach Anwendung von II. die Fonn - 1 - 2 s + b Y[sl + S2 Y[sl + a (-2 + s Y[sJ) = 0 Die anschliejSende Auflosung dieser algebraischen Gleichung nach Y[sl mitte1s des Kommandos Solve [ %, Y[sll liefert als Ergebnis Y[sl-+ 1+2s+2a b+as+s 2 Diese symbolische Zuordnung der Lasung muB anschlieBend noch durch das Kommando Y[s-.l = Y[sl/. % aktiviert werden. Die Losung y(x) der gegebenen DiJ!erentialgleichung ergibt sich durch die Rucktransfonnation von yes) mitte1s des Kom-
mandos y [x-.l := InverseLaplaceTransform [ Y[sl , s , x 1 und liefert die Losungsfunktion y(x) in der folgenden Fonn:
340
29 Integraltransfonnationen 1 ) --2 (a-fa2=4b) I 2 ( -l-a-"a -4b E
セ。R@ [
-1 +
1
x
- 4b
+
a
セ。RMT「@ セ。RMT「@
] E-
HJ a+
a2
-
4b) x
V. Mittels der Kommandofolge
a=l ; b=l ; ケャ{クセ@ := y[X] ; := y[X] ; a=3 ; b=l ; ケR{クセ@ a=l ; b=2 ; ケS{クセ@ := y[X] ; plot [ { yl[X] , y2[x] , y3[x] } , { X , 0 , 5 } ] zeichnen wir die L6sungskurve im Interval! [0,5] fUr drei verschiedene Wertepaare fUr die Konstanten a und b in ein Koordinatensystem (siehe Abb.29.1). Die Werte wurden so gewahlt, daB die drei angegebenen Falle fUr den harmonischen Oszillator auftreten. c) Lbsen wir in MAPLE mittels Laplacetransformation das Problem aus Beispiel b). DafUr sind in MAPLE nach dem Laden des Zusatzpakets inttrans mittels with (inttrans) ; folgende Schritte erforderlich: 1. Fur die Laplacetransformation L [y"(x) + a· y'(x) + b· y(x) = 0 ] der gesamten Differentialgleichung ist das Kommando laplace ( diff(y(x),x$2) + a*diff(y(x),x) + b*y(x) = 0 , x , s ) ; anzuwenden. II. Mittels des Kommandos G := unapply ( " , s ) ; werden das Ergebnis der Transformation einer Funktion G(s) und mittels yeO) := 0 : D(y)(O) := 1 ; die Anfangsbedingungen yeO) = 2 und y'(O) = 1
zugewiesen. III. Die Aufl6sung der enstandenen algebraischen Gleichung nach der Laplacetransformierten, die von MAPLE durch
laplace ( y(x) , x , s) bezeichnet wird, geschieht mittels des Kommandos solve ( G(s) , laplace ( y(x) , x , s ) ) ; und liefert als Ergebnis
29.4 L6sung von Differentialgleichungen
341
1+2s+2a b+as+s 2 IV. Die Losung y(x) der gegebenen Dif!erentialgleichung ergibt sich durch die anschlieBende Rucktransformation des Ergebnisses aus III. mittels des Kommandos invlaplace ( " , s , x ) ;
•
Die Beispiele zeigen, daB die Laplacetransformation zur exakten Losung linearer Dif!erentialgleicbungen mit konstanten Koeffizienten ein wirksames Hilfsmittel ist .
•
Mit den Systemen lassen sich unter Verwendung der Laplace- und Fouriertransformation auch partielle Differentialgleichungen erfolgreich Ibsen, wie in [54], [88] und [99] gezeigt wird .
•
Abb.29.1. Losungskuryen aus Beispiel 29.8b) minels MATIlEMATICA
1
-0.5
4
5
342
30
Optimierung
Es gibt eine Vielzahl von Optimiernngsaufgaben, die in den Technik- , Natur- und auch in den Wirtschaftswissenschaften Anwendung finden. Hierzu zahlen u.a. die lineare, nichtlineare, ganzzahlige, dynamische und stochastische Optimiernng, die Vektoroptimiernng, die Variationsrechnung und die optimale Steuernng. Dabei versteht man unter optimal, daB ein Giitekriterium (Kostenfunktion, Gewinnfunktion, Nutzenfunktion ... ) minimal oder maximal wird, wobei gewisse Beschrankungen zu beachten sind.
Tbeoretische Hilfsmittel zum Auffinden optimaler Vorgehensweisen liefert die mathematische Optimiernng, die auch als mathematische Programmiernng bezeichnet wird.
•
Mathematische Modelle fUr Optimienmgsaufgaben haben die folgende Strnktur: Maximiere oder minimiere ein gegebenes Giitekriterium (als Zielfunktion bezeichnet) unter Beriicksichtigung gewisser Nebenbedingungen/Beschrankungen (Gleichungen und Ungleichungen).
•
Die einzelnen Gebiete der mathematischen Optimiernng unterscheiden sich durch die Gestalt * der Zielfunktion, * der Nebenbedingungen
•
1m Rahmen dieses Buches betrachten wir Optimiernngsaufgaben, in denen die Zielfunktionen und die Funktionen der Nebenbedingungen durch reelle Funktionen von n reellen Variablen gebildet werden und die Nebenbedingungen algebraische Gleichungen oder Ungleichungen sind. Dies sind aber nicht die einzigen Optimiernngsaufgaben, die in der Ingenieurmathematikvon Bedeutung sind (siehe Abschn.30.1). H. Benker, Ingenieurmathematik mit Computeralgebra-Systemen © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
30.1 Ingenieurtechnische Anwendungen
30.1
343
Ingenieurtechnische Anwendungen Die ersten mathematischen Optimiernngsaufgaben enstanden aus Fragestellungen in den Naturwissenschaften und werden mit der Entwicklung der Differentialrechnung seit dem siebzehnten Jahrhundert betrachtet. Diese Aufgaben lassen sich mit Mitteln der Differentialrechnung lasen und heiBen Extremwertaufgaben (siehe Abschn. 30.2). Weiterhin sei an das beriihmte Problem der Brachistochrone erinnert, das 1696 von Bernoulli formuliert wurde und das zur Entwicklung der Variationsrechnung fiihrte. Die Variationsrechnung bildet die Gnmdlage fiir eine Reihe von physikalischen Problemen, die auf Variationsprinzipien beruhen. Nachdem bis in dieses Jahrhundert * Extremwertaufgaben fur Funktionen von n Variablen, * Aufgaben der Variationsrechnung in Technik und Naturwissenschaften zur Lasung einiger Aufgaben benutzt wurden, nahm die Anwendung der Optimiernngstheorie seit den vierziger Jahren mit der Entwicklung der neuen Tbeorien der * Linearen Optimiernng * Nichtlinearen Optimiernng * Optimalen Steuenmg einen wesentlichen Aufschwung. Diese drei Theorien, die neue L6sungsstrategien erfordern, haben ein breites Anwendungsfeld, wobei die lineare Optimiernng hauptsachlich bei 6konomischen Fragestellungen auftritt, wie z.B. der Gewinnmaximiernng und der Kostenminimiernng. Optimiernngsaufgaben iiber Funktionenraumen,d.h. * Variationsrechnung, * Optimale Steuernng, haben groBe Bedeutung bei der Optimiernng zeitabhangiger Prozesse, z.B. in der Steuernngs- und Regelungstheorie. Auf diese Probleme kannen wir im Rahmen dieses Buches nicht eingehen. Hierfur bieten die Systeme bis jetzt noch keine Lasungsmethoden an. Die meisten Optimiernngsaufgaben in Technik und Naturwissenschaften sind nichlinearund besitzen eine komplexe Strnktur (siehe [26], [35] und [40]). Deshalb miissen wir uns im Rahmen dieses Buches auf wenige Anwendungsaufgaben beschranken. Binfache praktische Anwendungen fur Extremwertaufgaben und Aufgaben der linearen Optimiernng findet man im Beispiel 30.1 bzw.30.7.
30 Optimierung
344
Probleme der Optimiernng gewinnen fur praktische Problemstellungen in Tecbnik und Natunvissenscbaften immer mehr an Bedeutung. Die Ursache hierfur ist, das man bei auftretenden Prozessen Robstoffe und Energie sparen bzw. maximale Produktionsergebnisse erzielen m6chte .
•
30.2
Extremwertaufgaben Eine Optimiernngsaufgabe fur Funktionen besteht darin, Minima oder Maxima, d.h. kleinste oder groflte Funktionswerte, zu bestimmen, d.h. * Y = f (x) --+ Minimum / Maximum x
bei Funktionen einer Variablen,
bei Funktionen von n Variablen. Bei diesen Aufgaben konnen zusatzlicb Nebenbedingungen in Form von Gleicbungen auftreten, wie wir im folgenden sehen. Diese Aufgaben konnen mit den Mitteln der Differentialrecbnung untersucht werden. Wenn man nicht explizit zwischen Minimum oder Maximum unterscheidet, spricht man von einem Extremum (Extremwert) oder Optimum (Optimalwert). Deshalb sind Aufgaben dieser Art unter der Bezeichnung Extremwertaufgaben (Extremalaufgaben) bekannt. Dabei werden die Funktionswerte als Extremwerte und die dazugehorigen Punkte als Extremwertstellen (Extremalstellen) bezeichnet. Bei Extremwerten ist zwischen lokalen (relativen) und globalen (absoluten) zu unterscheiden: * lokale Extremwerte realisieren nur in einer Umgebung eines Punktes ein Minimum oder Maximum, * globale Extremwerte realisieren im gesamten Definitionsbereicb bzw. einem gegebenen abgescblossenem Gebiet das Minimum oder Maximum einer Funktion. Fur praktiscbe Anwendungen sind meistens globale Extremwerte gesucht, die jedoch rechnerisch schwieriger zu bestimmen sind .•
30.2 Extremwertaufgaben
345
Bei den im folgenden behandelten Extremwertaufgaben fUr Funktionen werden nur lokale (relative) Extremwerte bestimmt. Fur diese Aufgaben sind bei Funktionen ab zwei Variablen noch Nebenbedingungen (Beschrankungen) in Form von Gleichungen zugelassen sind, d.h., es sind Aufgaben der folgenden Form zu Ibsen: z=f(x j ,x 2 , ... ,x n ) セ@ Minimum / Maximum Xl'X2'···'Xn
unter m Gleichungsnebenbedingungen gj(X j ,X 2 , ... ,x n )=0 , j=1,2, ... ,m«n) Bereits Extremwertaufgaben als klassische (seit langem bekannte) Optimierungsaufgaben haben eine Reihe von Anwendungen in Technik und Naturwissenschaften, wie im Beispiel 30.1 zu sehen ist. Einen breiteren Anwendungsbereich besitzen jedoch Aufgaben der nichtlinearen Optimierung, die wir im Abschn.30.4 betrachten. Dies liegt darin begrundet, daB bei praktischen Problemen meistens Ungleichungen als Beschrankungen (Nebenbedingungen) auftreten und globale (absolute) Extremwerte gesucht sind .
•
Beispiel 30.1: Die im folgenden gegebenen Extremwertaufgaben werden im Verlaufe dieses Abschnitts mit den Systemen gelbst. a) In Technik und Naturwissenschaften wird haufig der Wert einer betrachteten Grafle x durch m Beobachtungen (Messungen) Xi
bestimmt. Bei dieser Verfahrensweise ensteht die Frage nach dem optimalen Beobachtungswert (Schiitzwert) fUr die technische oder natUrwissenschaftliche Grofle x. Ein konkretes Beispiel hierfUr liefert die Temperaturmessung: Eine unbekannte konstante Temperatur x wird in regelmaBigen Abstanden gemessen, wobei die erhaltenen Meflwerte Xi
(
i
= 1 , ...
,m )
i.a. fehlerbehaftet sind. Gesucht wird ein optimaler BeobachtungswertiSchiitzwert XO fUr die Temperatur. Eine Mbglichkeit zur Bestimmung des optimalen Beobachtungswertes XO fUr X besteht in der Lasting der Extremwertaufgabe m
fex)
=
I(Xk - X) hj
セ@
Minimum x
346
30 Optimiemng
d.h., es wird die Methode der kleinsten Quadrate CFehlerquadratmethode) eingesetzt Csiehe Abschn.21.4 und 32.5). b) Betrachten wir eine weitere Anwendung fUr die Methode der
kleinsten Quadrate: Es sind n gemessene Zahlenpaare CPunktepaare) CXl' YI ) , CX 2 , Y2), ..• , ( Xn , Yn ) durch eine lineare Funktion (Gerade) anzunahern Csiehe Abschn.21.4 und 32.5). Bei der Anwendung der Methode der kleinsten Quadrate wird diese Gerade Y = a·x + b so konstruiert, daIS die Summe der Abstandsquadrate der Punkte zur Geraden minimal wird, d.h., die noch unbekannten Parameter a und b sind Losungen der Ex-
tremwertaufgabe n
F(a, b) = セZcyゥ@
- a· xi - b)2 セ@ i=l
Minimum a,b
Die Parameter a und b bestimmen sich folglich als Minimalstellen der Funktion F(a,b). Eine konkrete Aufgabe dieser Art findet man im Beispiel 32.11. c) Die Biegelinie eines einseitig eingespannten Balkens der Lange L unter dem Einflu/S einer Kraft Kist naherungsweise durch die
Funktion K 2 1 3 y(x) = - _ . CL . X - - . X ) 2·E·F 3 gegeben, worin * E: das Elastizitatsmodul * F: das Flachenmoment des Balkenquerschnitts bedeuten. Gesucht ist die Stelle X des Balkens ( 0 :-:; x :-:; L ) an der die Balkenbiegung am grofSten ist, d.h., es ist das globale Maximum der Funktion einer Variablen y(x) im Interoall [O,L] gesucht. d) Betrachten wir das folgende Beispiel aus [41l/II,IV,2.5.4: Aus einem Baumstamm mit kreisrundem Querschnitt so11 durch Liingsschnitt ein Balken mit rechteckigem Querschnitt so herausgesagt werden, daIS sein Widerstandsmoment W
W(b,h) = b
セィR@
ein Maximum annimmt, wobei * b: die Balkenbreite * h: die Balkendicke
bezeichnen.
347
30.2 Extremwertaufgaben
Balkenbreite b und -dicke h sind voneinander abhangig, d.h., mit dem gegebenen Radius R des Baumes durch folgende Gleichung verbunden: b 2 +h2
= 4·R 2
Damit ist die Extremwertaufgabe b·h 2 Web, h) = - -
6
セ@
Maximum b,h
fUr die Funktion W(b,h) der beiden Variablen b und h mit der
Gleichungsnebenbedingung b 2 +h 2 =4·R 2
zu ldsen .
•
Da bei vie len Funktionen in Technik und Naturwissenschaften die Variablen Xi nur positive Werte annehmen kbnnen und beschrankt sind, mug bei den Extremwertaufgahen 0 セ@ Xi セ@ L zlisatzlich gefordert werden. Diese Fordenmg wurde bei den Beispielen weggelassen, da sie sonst mit der im folgenden angegebenen Lbsungsmethode nicht mehr lbsbar sind, sondern auf die Methoden der nichtlinearen Optimierung aus Abschn.30.4 zuruckgegriffen werden muE.
•
Zur Ldsung von Extremwertaufgaben ohne Nebenbedingungen gibt es die Mbglichkeit, die notwendigen Optimalitatsbedingungen * f'(x)=O bei Funktionen f(x) einer Variablen X,
*
o
of (Xl , ... ,Xn) =
0
Ox n bei Funktionen f(X l ,X 2 , ... ,X n ) von n Variablen fUr lokale Extremwertstellen heranzuziehen. Die L6sungen der Gleichungen aus den Optimalitatsbedingungen bezeichnet man als stationare Punkte. Die Optimalitatsbedingungen kbnnen in den Systemen mit den Kommandos zur Differentiation
30 Optimierung
348
(siehe Abschn.24.2) und Gleichungslasung (siehe Abschn.23.4) berechnet werden, falls die entstandenen Gleichungen exakt lasbar sind. Eine numerische Lasung der Gleichungen der notwendigen Optimalitiitsbedingungen wird nicht empfohlen, sondern die direkte numerische Lasung der Aufgabe (siehe [26], [40]) .
•
Die stationiiren Punkte mussen mittels hinreichender Optimalitiitsbedingungen, z.B. f"(x);t: 0 fur Funktionen y=f(x) einer Variablen x, auf Optimalitiit ubetpriift werden. Fur n::::3 (d.h. ab drei Variablen) gestaltet sich diese Oberprtifung fur praktische Probleme haufig undurchfuhrbar, da man die aus den Ableitungen zweiter Ordnung der Zielfunktion gebildete n-reihige Hesse-Matrix auf positive Definitheit untersuchen muB.
•
Kommen bei Optimienmgsaufgaben noch Gleichungen als Nebenbedingungen hinzu, d.h., werden Aufgaben der Form z=f(x l ,x2> ... 'x n ) -)0 Minimum / Maximum gj (Xl' X 2 ,···,
xn
) =
0 ,
j =
1, 2, ... , m «n)
betrachtet, so sind zwei Lasungsmaglichkeiten anwendbar: Falls man die Gleichungen nach gewissen Variablen aujlasen kann, werden diese in die Zielfunktion eingesetzt und man erhalt ein Problem ohne Nebenbedingungen, wie im Beispiel 30.2d) demonstriert wird. Diese Vorgehensweise wird als Eliminationsmethode bezeichnet. II. Die Lagrangesche Multiplikatorenmethode als universelle L6sungsmethode ist immer anwendbar und beruht auf folgender Vorgehensweise : 1. Zuerst wird aus der Zielfunktion und den Funktionen der Nebenbedingungen die Lagrangefunktion L ( x ; A ) = L (Xl , x 2 , ... , Xn ; Al , A2 , ... , Am ) =
1.
m
f
(Xl , X 2 , ... , Xn )
+
L
Ai . gi (Xl , X 2 , ... , Xn )
i=l
mit den Lagrangeschen Multiplikatoren Al , A2 , ... , Am
gebildet. 2. AnschlieBend werden die notwendigen Optimalitiitsbedingungen auf die Lagrangefunktion L bzgl. der Varia-
30.2 Extremwertaufgaben
349 blenvektoren x und A. angewandt. Dies gibt die folgenden n+m Gleichungen ( k = 1 , ... , n ; i = 1 , ... , m )
a
axk L(xj ,x2 , ... , セ[@ a -L(xj , x , •• セ@ セ[@ -
2
(Ai
A:t, A;z,···,Am) = 0 A:t, A2 , ..., Am) =g(xj , x2 , ••• LセI@
= 0
die sich unter Venuendung des Gradienten in der folgenden vektoriellen Form schreiben : m
gradf(xj,x 2 ,···,X n )+ LAi ·gradgi(xj,xz, ... ,x n ) i=j
0
Die Losungsmethoden I. und II. lassen sich ebenfalls unter Verwendung der KommandosiMenufolgen zur Differentiation und Gleichungslosung in den einzelnen Systemen durchfuhren, falls sich die entstandenen Gleichungen exakt Ibsen lassen .
•
Beispiel 30.2: a) Fur die im Beispiel 30.1a) nach der Methode der kleinsten Quadrate erhaltene Extremwertaufgabe m
L (Xk - X)
セ@ Mini;num k=j liefert die notwendige Optimalitiitsbedingung f(x) =
m
f' (x)
= -
2.
L (Xk - x) = 0
k=j aus der sich als Losung das arithmetische Mittel aus den n Meflwerten ergibt: XO =
セN@
m
LXk k=j Da die hinreichende Bedingung f" (x) =2·m > 0 erfullt ist, liefert die gefundene Losung XO das Minimum, d.h. den optimalen Beobachtungswert (Schiitzwert) fUr die technische oder natunuissenschaftliche Grofle x. b) Die Losung der Extremwertaufgabe
350
30 Optimierung n
F(a, b) = '"' (y - a . X· セ@
I
I
-
bi
セ@
Minimum a,b
i=l
fUr die Methode der kleinsten Quadrate aus Beispiel 30.1b) ergibt sich aus den notwendigen Optimalitiitsbedingungen n
aF(a, b) = _ 2. '"' (y. _ a. x. - b)· x. = 0
aa
セ@
I
I
I
i=l
aF(a, b) = _ 2.
ab
セ@
(y. _ a. セ@
X· -
b) = 0
I
I
i=l
die sich zu den folgenden zwei linearen Gleichungen zur Bestimmung von a und b urnformen lassen: n
a·
l^セ@
+ b· i=l n
n
n
i=l
i=l
LXi = LXi LYi
·Yi
n
a·Ix i + b·n = i=l
i=l
Diese beiden Gleichungen lassen sich einfach durch Elimination oder die Cramersche Regel Ibsen. c) Fur ein relatives Maximum der Biegelinie K y(x) = - _ . ( L·x 2 2·E·F eines Balkens aus Beispiel
1 3 _·x ) 3 30.1c) ergibt sich die notwendige Op-
timalitiitsbedingung: y' (x) = _K_. ( 2. L . x - x 2 ) = 0 2·E·F die die beiden L6sungen x = 0 und x = 2·L besitzt, wobei die erste ein relatives Minimum und die zweite ein relatives Maximum ist, wie man leicht mit der hinreichenden Optimalitiitsbedingung y"(x) "# 0 ( >0 Minimum, Simplify zm Berechnung der Verteilungsfunktion k
F(k) = P(X :::;k) = LP(X=i) i=O
*
*
fUr die hypergeometrische Verteilung H ( N , M , n ), Author => Expression... poisson_density ( k , q) => Simplify zm Berechnung der Wahrscheinlichkeit P(X = k) fUr die Poisson-Verteilung mit A = q , Author => Expression ... poisson_distribution ( k , q ) => Simplify zm Berechnung der Verteilungsfunktion k
F(k) = P(X:::;k) = LP(X=i) i=O
fUr die Poisson-Verteilung mit A= q . Beispiel 31.4: Der Wert der Verteilungsfunktion F(3)=0.258 fur die Binomialverteilung B ( 100 , 0.05 ) aus Beispiel 31.3al) wird in DERIVE mittels Author => Expression... binomial_distribution ( 3 , 100 , 0.05 ) => Simplify
berechnet.
•
MACSYMA
MACSYMA steHt u.a. die folgenden diskreten Verteilungen zm VerfUgung: * binomial_distrib ( k , n , p) zm Berechnung der Wahrscheinlichkeit P(X = k) fUr die Bi-
* *
nomialverteilung B ( n , p ), hypergeometric_distrib ( k , N , M , n ) zm Berechnung der Wahrscheinlichkeit P(X = k) fUr die hypergeometrische Verteilung H ( N , M , n ), poisson_distrib ( k , q) zm Berechnung der Wahrscheinlichkeit P(X = k) fUr die Poisson-Verteilung mit A =q .
31.4 Verteilungsfunktionen
387
Beispiel 31.5: Der Wert der Verteilungsfunktion F(3)=0.258 fUr die Binomialverteilung B ( 100 , 0.05 ) aus Beispiel 31.3al) wird in MACSYMA mittels binomiaCdistrib ( 3 , 100 , 0.05 ) berechnet.
•
MAPLE
MAPLE stellt nach dem Laden des Zusatzpakets Statistik mittels with (stats) ; u.a. die folgenden diskreten Verteilungen zur VerfUgung: * statevalf [ pf , binomiald [ n , p 11 (k) ; zur Berechnung der Wahrscheinlichkeit P(X = k) fUr die Binomialverteilung B ( n , p ), * statevalf [ dcdf , binomiald [ n , p 11(k) ; zur Berechnung der Verteilungsfunktion k
F(k) = P(X:::; k) = LP(x=i)
fUr die Binomialverteilung B ( n , p ),
* statevalf [ pf , hypergeometric [ M *
,N ,n
11(k)
;
zur Berechnung der Wahrscheinlichkeit P(X = k) fUr die hypergeometrische Verteilung H ( N , M , n ), statevalf [ dcdf , hypergeometric [ M , N , n 11 (k) ; zur Berechnung der Verteilungsfunktion k
F(k) = P(X:::; k) =
L P(X= i) i=O
* *
fUr die hypergeometrische Verteilung H ( N , M , n ), statevalf [ pf , poisson [ q 11 (k) ; zur Berechnung der Wahrscheinlichkeit P(X = k) fUr die Poisson-Verteilung mit 'A = q , statevalf [ dcdf , poisson [ q 11 (k) ; zur Berechnung der Verteilungsfunktion k
F(k) = P(X:::;k) = LP(x=i) i=O
fUr die Poisson-Verteilung mit 'A =q . Beispiel 31.6: Der Wert der Verteilungsfunktion F(3)=0.258 fUr die Binomialverteilung B ( 100 , 0.05 ) aus Beispiel 31.3al) wird in MAPLE mittels statevalf [ dcdf , binomiald [ 100 , 0.05 11 (3) ; berechnet.
•
31 Wahrscheinlichkeitsrechnung
388 MATHCAD
MATH CAD besitzt eine Reihe von integrierten Funktionen zu diskreten Verteilungen, von denen wir im folgenden die wichtigsten aufzahlen: * dbinom ( k , n , p ) zur Berechnung der Wahrscheinlichkeit P(X = k) fUr die Binomialverteilung B ( n , p ), * pbinom ( k , n , p ) zur Berechnung der Verteilungsfunktion k
F(k) = pHxセ@
k) =
L P(X= i) i=O
* *
fUr die Binomialverteilung B ( n , p ), dpois ( k , q ) zur Berechnung der Wahrscheinlichkeit P(X = k) fur die Poisson-Verteilung mit A= q , ppois ( k , q ) zur Berechnung der Verteilungsfunktion F(k) = pHxセォI@
k
= LP(X=i) i=O
fUr die Poisson-Verteilung mit A= q . Die Eingabe des numerischen Gleichheitszeichens nach der entsprechenden Funktion berechnet den gewunschten Funktionswert. Beispiel 31.7: Der Wertder Verteilungsfunktion F(3)=0.258 fUr die Binomialverteilung B ( 100 , 0.05 ) aus Beispiel 31,3al) wird in MATHCAD mittels pbinom ( 3 , 100 , 0.05 ) = 0.258 berechnet.
•
MATHEMATICA
MATHEMATICA steHt nach dem Laden des Zusatzpakets Statistik mittels Needs [ "Statistics'Master'" 1 folgende Kommandos zur VerfUgung: * BinomialDistribution [ n , p 1 fUr die Binomialverteilung B ( n , p ) * HypergeometricDistribution [ n , M , N 1 fUr die hypergeometrische Verteilung H ( N , M , n ) * PoissonDistribution [ q 1 fUr die Poisson-Verteilung mit A= q * CDF [ Verteilung , x 1 liefert die zu einer Verteilung geh6rige Verteilungsfunktion F(x).
31.4 Verteilungsfunktionen
389
Beispiel 31.8: Der Wert der Verteilungsfunktion F(3)=0.258 fur die Binomialverteilung B ( 100 , 0.05 ) aus Beispiel 31.jal) wird in MATHEMATICA mittels CDF [ BinomialDistribution [ 100 , 0.05 ] , 3 ] berechnet.
•
Falls man eine diskrete Verteilung in einem zur VerfUgung stehenden System nicht findet, so kann man sie ohne groBe Muhe mit den enthaltenen Kommandos zur Summation und Berechnung von Binomialkoeffizienten berechnen. • DERIVE
•
Fur stetige Verteilungen: DERIVE berechnet mit der Menufolge * Author => Expression... normal ( x , m , 5 ) => OK => Simplify => Approximate... => Approximate den Wert der Verteilungsfunktion fUr die Normalverteilung N(m,s) an der Stelle x. Wenn man m und 5 wegIaBt, so wird die standardisierte Normalverteilung berechnet. * Author => Expression... erf ( y ) => OK => Simplify => Approximate... => Approximate das Fehlerintegral FiCO,y) * Author => Expression... erf ( x , y ) => OK => Simplify => Approximate... => Approximate das Fehlerintegral FiCx,y) Beispiel 31.9: Der Wert der Verteilungsfunktion F(12000)=O.977 fUr die Normalverteilung N ( 10000 , 1000 ) aus Beispiel 31.jbl) wird in DERIVE mittels Author => Expression... normal ( 12000 , 10000 , 1000 ) => OK => Simplify => Approximate... => Approximate berechnet.
•
MACSYMA
MACSYMA stellt u.a. folgende Kommandos fUr stetige Verteilungen zur VerfUgung: * normal_distrib ( x , m , s ) berechnet den Wert der Verteilungsfunktion der Normalverteilung N(m,s) an der Stelle x. * standarcCnormal_distrib ( x ) berechnet den Wert der Verteilungsfunktion der standardisierten Normalverteilung an der Stelle x.
31 Wahrscheinlichkeitsrechnung
390
Beispiel 31.10: Der Wert der Verteilungsfunktion F(12000)=0.977 fUr die Normalverteilung N ( 10000 , 1000 ) aus Beispiel 31.3c) wird in MACSYMA mittels normaCdistrib ( 12000 ,10000, 1000)
berechnet.
•
MAPLE
MAPLE stellt nach dem Laden des Zusatzpakets Statistik mittels with (stats) ; u.a. die folgenden Kommandos fUr stetige Verteilungen zur VerfUgung: * statevaJi [ pdf , normald [ m , s 11(x) ; berechnet den Wert der Dichte der Normalverteilung N(m,s) an der Stelle x. * statevaJi [ cdf , normald [ m , s 11(x) ; berechnet den Wert der Verteilungsfunktion fUr die Normalverteilung N(m,s) an der Stelle x. Wenn man m und s weglaBt, so wird die standardisierte Normalverteilung berechnet. * ChiSquare ( s , n ) ; berechnet das s-Quantil Xs fUr die Chi-Quadrat-Verteilung mit dem Freiheitsgrad n. * Fdist ( s , n , m ) ; berechnet das s- Quantil Xs fUr die F-Verteilung mit den Freiheitsgraden n und m. * StudentsT ( s , n ) ; berechnet das s-Quantil Xs fUr die Student-Verteilung mit dem Freiheitsgrad n. Beispiel 31.11: Der Wert der Verteilungsfunktion F(12000)=0.977 fUr die Normalverteilung N ( 10000 , 1000 ) aus Beispiel 313b1) wird in MAPLE mittels statevaJi [ cdf , normald [ 10000 , 1000 11 (12000) ;
berechnet.
•
MATIICAD
MATH CAD stellt u.a. folgende Funktionen fur stetige Verteilungen zur VerfUgung: * dnorm ( x , m , s ) berechnet den Wert der Dichte der Normalverteilung N(m,s) an der Stelle x. * pnorm ( x , m , s ) berechnet den Wert der Verteilungsfunktion fUr die Normalverteilung N(m,s) an der Stelle x. * cnorm( x)
31.4 Verteilungsfunktionen
391
berechnet den Wert der Verteilungsfunktion der standardisierten Nonnalverteilung N(O,l) an der Stelle x. * dchisq ( x , n ) berechnet den Wert der Dichte der Chi -Quadrat - Verteilung mit dem Freiheitsgrad n an der Stelle x. * pchisq ( x , n ) berechnet den Wert def Chi -Quadrat - Verteilung mit dem Freiheitsgrad n an der Stelle x. * dF(x,m,n) berechnet den Wert der Dichte def F- Verteilung mit den Freiheitsgraden n und m an der Stelle x.
*
pF (x, m, n)
befechnet den Wert der Verteilungsjimktion der F- Verteilung mit den Freiheitsgraden n und m an der Stelle x. * dt(x,n) berechnet den Wert def Dichte der Student-Verteilung mit dem Freiheitsgrad n an der Stelle x. * pt(x,n) befechnet den Wert der Verteilungsfunktion der StudentVerteilung mit dem Freiheitsgrad n an der Stelle x. Die Eingabe des numerischen Gleichheitszeichens nach der entsprechenden Funktion berechnet den gewilnschten Funktionswert. Beispiel 31.12: Der Wert der Verteilungsfunktion F(12000)=0.977 fUr die Normalverteilung N ( 10000 , 1000 ) aus Beispiel 31,3b1) wird in MATHCAD mittets pnorm ( 12000 , 10000 , 1000 ) = 0.977 berechnet.
•
MATHEMATICA
MATHEMATICA stellt nach dem Laden des Zusatzpakets Statistik mittels Needs [ "Statistics'Master'" 1 u.a. folgende Kommandos zur Verfilgung: * NormalDistribution [ m , s 1 filr die Nonnalverteilung N(m,s) * ChiSquareDistribution [ n 1 filr die Chi -Quadrat- Verteilung mit dem Freiheitsgrad n * FRatioDistribution [ m , n 1 filr die F- Verteilung mit den Freiheitsgraden n und m * StudenffDistribution [ n 1 filr die Student-Verteilung mit dem Freiheitsgrad n * PDF [ Verteilung , x 1
31 Wahrscheinlichkeitsrechnung
392
berechnet die Dichtefunktion zur im Argument angegebenen Verteilung an der Stelle x, * CDF [ Verteilung , x 1 berechnet die Verteilungsfunktion zur im Argument angegebenen Verteilung an der Stelle x, * Quantile [ Verteilung , s 1 liefert das Quantil Xs zur im Argument angegebenen Verteilung, * Erf [ y 1 berechnet das Fehlerintegral Fi(O,y), * Erf [ x , y 1 berechnet das Fehlerintegral Fi(x,y), * InverseErf [ s 1 berechnet die Inverse des Fehlerintegrals FiCO,y), d.h., es wird r so bestimmt, daB s = Erf [ r 1gilt, * InverseErf [ x , s 1 berechnet die Inverse des Fehlerintegrals FiCx,y), d.h., es wird r so bestimmt, daB s = Erf [ x , r 1gilt. Beispiel 31.13: a) Die Kommandofolge Verteilung = NormalDistribution [ 0 , 1 1; plot [ { PDF [ Verteilung, xl, CDF [ Verteilung, x 1 I, { x , -3
,3 I 1 zeichnet Dichte- und Verteilungsfunktion der standardisierten Normalverteilung im Intervall [ -3 , 3 1 in ein Koordinatensystem (siehe Abb.31.1). b) Der Wert der Verteilungsfunktion F(12000)=0.977 fUr die Normalverteilung N ( 10000 , 1000 ) aus Beispiel 31.jbl) wird in MATHEMATICA mittels CDF [ NormalDistribution [ 10000 , 1000 1, 12000 1liN berechnet .
•
31.5 Momente von Verteilungen
393
Abb.31.1. Dichte- und Verteilungsfunktion der standardisierten Normalverteilung mittels MATHEMATICA
-3
-2
-1
1
2
3
Falls man eine stetige Verteilung in einem zur Verfugung stehenden System nicht findet, so kann man sie ohne groBe Muhe mit den enthaitenen Kommandos zur Integration berechnen .
•
31.5
Momente von Verteilungen Die Verteilung einer Zufallsgrofte X ist durch die Kenntnis ihrer Verteilungsfunktion (bzw. Dichtefunktion) bestimmt. Weitere wichtige Informationen uber eine Verteilung geben die Momente, von denen wir nur * Erwartungswert (Mittelwert) * Strewing (Varianz) als die beiden wesentlichsten betrachten: • Der Erwartungswert einer Zufallsgrofte X als wichtigstes Moment gibt an, welchen Wert die betreffende ZufallsgrbBe X im Durchschnitt realisieren wird. Deshalb wird auch die Bezeichnung Mittelwert verwendet. Fur den Erwartungswert /.l = E(X) einer * diskreten Zufallsgr6fte X mit den Werten Xl' X 2 , ....
und den Wahrscheinlichkeiten Pi /.l
= E(X) =
= P(X = X) erhait man
IXi 'Pi i=l
*
stetigen Zufallsgrofte X mit der Dichte f(x) erhait man
31 Wabrscbeinlicbkeitsrecbnung
394
!!
=
E(X)
J
=
x . f(x) clx
-a:J
•
wobei man die Konvergenz der unendlichen Reihe bzw. des uneigentlichen Integrals voraussetzen muB. Die StreuungIVarianz einer ZuJallsgrojSe X gibt die durchschnittliche Abweichung ihrer Werte vom Erwartungswert abo Mit einem gegebenen Erwartungswert E berechnet sich die StreuungiVarianz 0'2 aus 0'2
=
E(X-E(X)i
Der Wert 0' wird als Standardabweichung bezeichnet. Nur MATHEMATICA steHt folgende Kommandos zur VerfUgung, urn Erwartungswert und Streuung fUr eine ZufaHsgrbBe mit einer gegebenen Verteilung zu berechnen: MATHEMATICA steHt nach dem Laden des Zusatzpakets Statistik MATHEMAmittels Needs [ " Statistics'Master' " 1die Kommandos TICA * Mean [ Verteilung 1 zur Berechnung des Erwartungswertes, * Variance [ Verteilung 1 zur Berechnung der Streuung! Varianz, * StandardDeviation [ Verteilung 1 zur Berechnung der Standardabweichung fUr die im Argument einzugebene Verteilung zur VerfUgung. Beispiei31.14: Das Kommando * Mean [ BinomialDistribution [ 100 , 0.05 11 berechnet den bekannten Erwartungswert 5 fUr die BinomialverteilungB (100,0.05) aus Beispiel 31,3alJ, * Variance [ BinomialDistribution [ 100 , 0.05 11 berechnet die StreuungiVarianz 4.75 fUr die gleiche Binomialverteilung B ( 100 , 0.05 ) * StandardDeviation [BinomialDistribution [ 100 , 0.05 11 berechnet die Standardabweichung 2.17945 fUr die gleiche Binomialverteilung B ( 100 , 0.05 )
•
Da nur MATHEMATICA Kommandos zur Berechnung von Erwartungswert und Streuung einer ZufaHsgrbBe mit vorgegebener Verteilung besitzt, mtissen diese in den anderen Systemen durch Berechnung der gegebenen Formeln ermittelt werden. Empirische Erwartungswerte und Streuungen fUr entnommene Stichproben werden mit den Systemen im Abschn. 32.3 berechnet.•
31.6 ZuJallszablen
31.6
395
Zufallszahlen Die stochastische Simulation und die mit ihr eng verwandten MonteCarlo-Methoden werden in Technik und Naturwissenschaften angewandt, wenn die betrachteten Vorgange, Phanomene oder Systeme so komplex sind, daB die Anwendung deterministischer Methoden zu aufwendig wird oder wenn gewisse Gr6Ben zufallsbedingt sind. Allgemein versteht man unter Simulation die Untersuchung des Verhaltens eines Vorgangs/Systems mit Hilfe eines Ersatzsystems. Dabei wird fUr das Ersatzsystem ein mathematisches Modell verwandt, das unter Verwendung von Computern ausgewertet wird. In diesem Falle spricht man von digitaler Simulation. Stochastische Simulationen werden u.a bei folgenden Problemen angewandt: * MeB- und Priifvorgange * Lagerhaltungsprobleme * Verkehrsablaufe * Bedienungs- und Reihenfolgeprobleme Zur stochastischen Simulation ben6tigt man ZuJallszahlen, die vorgegebenen Verteilungen genugen. Diese lassen sich mittels Computer erzeugen und werden als Pseudozujallszahlen bezeichnet. Als Monte-Carlo-Methoden wird eine Klasse von Niiherungsveifahren zur Losung verschiedener deterministischer mathematischer Probleme bezeichnet, die auf Methoden der Wahrscheinlichkeitsrechnung und Statistik beruhen. Monte-Carlo-Methoden lassen sich wie folgt charakterisieren : * Anniiherung des gegebenen Problems durch ein stochastisches Modell. * Durchjubrung zujiilliger Experimente unter Verwendung von Zujallszahlen anhand dieses stochastischen Modells. * In Auswerlung der Ergebnisse dieser zujiilligen Experimente werden Niiherungswerle fur das gegebene Problem erhalten. Monte-Carlo-Methoden ben6tigen zur ihrer Durchfuhrung Zujallszahlen und k6nnen zur Losung einer Vielzahl mathematischer Probleme herangezogen werden, so u.a. Zur * Losung von algebraischen Gleichungen und DifJerentialgleichungen * Berechnung von Integralen * Losung von Optimierungsaujgaben Sie sind aber nur zu empjehlen, wenn hoherdimensionale Probleme vorliegen, wie dies z.B. bei mehrfachen Integralen der Fall ist. Hier
31 Wahrscheinlichkeitsrechnung
396
sind die Monte-Carlo-Methoden in gewissen Fallen den deterministisehen numerisehen Verfahren uberlegen .
•
AXIOM
Die Systeme stellen folgende KommandosiMenuJolgen zm Erzeugung von ZuJallszahlen zm Verfugung: AXIOM stellt folgende Kommandos zm Erzeugung von ZuJallszahlen bereit, wobei n eine positive ganze Zahl darstellt: * random(n) liefert eine gleichverteilte ganzzahlige ZuJallszahl aus dem Intervall (O,n). Beispiel 31.15: random (1000) erzeugt z.B. die ZuJallszahl 738
•
DERIVE
DERIVE stellt folgende MenuJolgen zm Erzeugung von ZuJallszahlen bereit, wobei n eine positive ganze Zahl darstellt: * Author => Expression ... random (n) => Simplify liefert eine gleichverteilte ganzzahlige ZuJallszahl z aus dem Intervall [O,n), d.h. 0 セ@ z < n. * Author => Expression ... random_vector (n,s) => Simplify liefert einen n-dimensinalen Zeilenvektor, dessen Komponenten gleichverteilte ganzzahlige ZuJallszahlen aus dem Interoall (-s,s) sind. * Author => Expression... random_matrix (m,n,s) => Simplify liefert eine Matrix vom Typ (m,n), deren Elemente gleichverteilte ganzzahlige ZuJallszahlen aus dem Intervall (-s,s) sind. Vor der Verwendung der beiden letzten Kommandos random_vector und random_matrix muB die Zusatzdatei MISC.MTH mittels der Memifolge File => Load => Utility... Mise geladen werden. Beispiel 31.16: a) Die MenuJolge Author => Expression ... random (0) => Simplify liefert z.B. die ZuJallszahl3 b) Die MenuJolge Author => Expression ... random_vector (7,3) => Simplify liefert z.B. den ZuJallsvektor[ 2 , -2 , 2 , 0 , 0 , 1 , 21 c) Die MenuJolge Author => Expression... random_matrix (2,3,5) => Simplify liefert z.B. die ZuJallsmatrix
31.6 ZuJallszablen
HセT@
397
セ@ セI@
•
MACSYMA
MACSYMA stellt folgende Kommandos zur Erzeugung von ZuJallszahlen bereit: * random (a) liefert eine gleichverteilte ZuJallszahl aus dem Intervall [O,a], wobei die erzeugten Zahlen vom gleichen Typ wie a sind, d.h., entweder ganze Zahlen (wenn a ganzzahlig) oder Dezimalzahlen (wenn a Dezimalzahl). * random_array ( x , n ) berechnet ein Feld x von n gleichverteilten ZuJallszahlen aus dem Intervall (0,1). Beispiel 31.17: random (10) ; erzeugt z.B. die ganze ZuJallszahl 4 random (10.) ; erzeugt z.B. die ZuJallszahl (Dezimalzahl) 7.16757
•
MAPLE
MAPLE stellt folgende Kommandos zur Erzeugung von ZuJallszahlen bereit: * rand () ; liefert eine zwolfstellige nichtnegative gleichverteilte ganze ZuJallszahl * rand(a .. b); liefert eine Prozedur zur Erzeugung gleichverteilter ganzer ZuJallszahlen im Intervall [a,b] (siehe Beispiel 31.18b). * rand(n); stellt eine abgekurzte Schreibweise fUr die Funktion rand ( 0 .. n-1 ) ; dar, wobei n eine ganze positive Zahl darstellt. Beispiel 31.18: a) rand ( ) ; erzeugt Z.B. die ZuJallszahl 297962718781 b) z:=rand (10 .. 100) ; liefert eine Prozedur zur Erzeugung gleichverteilter ganzer ZuJallszahlen aus dem Intervall [10,100], die mittels z( ) ; aufgerufen wird. So wird Z.B. bei zweimaligem Aufruf folgendes geliefert:
zO; 93
zO; 20
31 Wabrscbeinlicbkeitsrecbnung
398
c) z:=rand 00) ; liefert eine Prozedur zur Erzeugung gleichverteilter ZuJallszahlen aus dem Intervall [0,9], die minels z( ) ; aufgerufen wird. So wird z.B. bei dreimaligem Aufruf folgendes geliefert: z() ;
7 z() ;
°
z() ;
1
•
MAmCAD
MATHCAD besitzt eine Reihe von integrierten Funktionen zur Erzeugung von ZuJallszahlen, die verschiedenen Verteilungen gentigen. Wir beschranken uns auf die Funktionen zur Erzeugung gleichverteilter und norrnalverteilter ZuJallszahlen (a>O): * rnd(a) erzeugt eine gleichverteilte ZuJallszahl aus dem Intervall [O,a], wenn man nach Eingabe dieser Funktion das numerische Gleichheitszeichen eintippt. * runif(n,a,b) erzeugt einen Vektor, dessen n Komponenten gleichverteilte ZuJallszahlen aus dem Intervall [a,b] sind (a