23.09.2013 Aufrufe

MuPAD — Eine praktische Einführung - Institut für Mathematik ...

MuPAD — Eine praktische Einführung - Institut für Mathematik ...

MuPAD — Eine praktische Einführung - Institut für Mathematik ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kai Gehrs · Frank Postel<br />

<strong>MuPAD</strong> <strong>—</strong><br />

<strong>Eine</strong> <strong>praktische</strong> <strong>Einführung</strong><br />

<strong>Mathematik</strong> 1 x anders: Materialien und Werk-<br />

zeuge <strong>für</strong> computerunterstütztes Lernen<br />

SciFace Software


Kai Gehrs<br />

Frank Postel<br />

Universität Paderborn<br />

AutoMATH <strong>Institut</strong><br />

Warburger Straße 100<br />

33095 Paderborn<br />

schule@mupad.de<br />

<strong>MuPAD</strong> <strong>—</strong> <strong>Eine</strong> <strong>praktische</strong> <strong>Einführung</strong> / von Kai Gehrs und Frank Postel. <strong>Mathematik</strong> 1 x anders: Materialien<br />

und Werkzeuge <strong>für</strong> computerunterstütztes Lernen, Band 1. Paderborn: SciFace Software GmbH & Co. KG, 2001.<br />

ISBN 3-933764-02-5.<br />

1. Auflage: Februar 2001<br />

2. Auflage: Juni 2002, überarbeitete und erweiterte Auflage<br />

3. Auflage: März 2003, überarbeitete und erweiterte Auflage <strong>für</strong> <strong>MuPAD</strong> Pro 3.0<br />

ISBN 3-933764-02-5 SciFace Software GmbH & Co. KG Paderborn<br />

Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Verwertung außerhalb der engen Grenzen<br />

des Urheberrechtsgesetzes ist ohne Zustimmung der Firma SciFace Software GmbH & Co. KG unzulässig<br />

und strafbar.<br />

© 2001 SciFace Software GmbH & Co. KG, Paderborn<br />

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt<br />

auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichenund<br />

Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürfen.<br />

Printed in Germany<br />

Druck und Binden: Druckerei Kleine, Paderborn<br />

Einbandgestaltung: SciFace Software GmbH & Co. KG, Paderborn


Vorwort<br />

Die Entwicklung von <strong>MuPAD</strong> begann 1990 an der Universität Paderborn mit<br />

einem Forschungsprojekt zur Lösung spezieller Problemstellungen im Bereich<br />

der Dynamischen Systeme. <strong>MuPAD</strong> wurde jedoch sehr bald zu einem univer-<br />

sellen Werkzeug zum symbolischen und exakten sowie numerischen Rech-<br />

nen. Darüberhinaus können zwei- und dreidimensionale mathematische<br />

Sachverhalte in hoher Darstellungsqualität visualisiert und interaktiv mani-<br />

puliert werden.<br />

Die Entwicklung von <strong>MuPAD</strong> wurde bereits 1993 von der Forschungsge-<br />

meinschaft mit dem Deutsch-Österreichischen Hochschul-Software Preis und<br />

1994 mit dem European Academic Software Award honoriert.<br />

Im Februar 1997 wurde als Teilausliederung aus der Universität Pader-<br />

born das Unternehmen SciFace Software GmbH & Co. KG gegründet, um<br />

<strong>MuPAD</strong> in enger Kooperation mit der <strong>MuPAD</strong>-Forschungsgruppe weiterzu-<br />

entwickeln und den zunehmenden Anforderungen der Benutzer u.a. hinsicht-<br />

lich vielfältiger und mehrsprachiger Dokumentationen zum System und mo-<br />

dernen Benutzerschnittstellen gerecht zu werden.<br />

Forschungen aus der Universität werden von SciFace Software aufgegrif-<br />

fen, zu marktreifen Entwicklungen ausgebaut und in das System <strong>MuPAD</strong> in-<br />

tegriert. Aufgrund dieser erfolgreichen und engen Zusammenarbeit von Sci-<br />

Face Software mit der Universität Paderborn wurde das Unternehmen 1998<br />

mit dem Förderpreis des Technologie Forum Paderborn e.V. <strong>für</strong> hervorragen-<br />

de Leistungen auf dem Gebiet der Zusammenarbeit zwischen Wirtschaft und<br />

Wissenschaft ausgezeichnet.<br />

<strong>MuPAD</strong> wird u.a. zur Forschung und Lehre an Universitäten eingesetzt<br />

und findet mittlerweile auch verstärkt Einzug in den <strong>Mathematik</strong>unterricht<br />

der gymnasialen Oberstufe. <strong>MuPAD</strong> trägt dabei ergänzend und unterstützend<br />

zur Lehre von <strong>Mathematik</strong> bei.<br />

Das starke Interesse und die vielfältigen Tätigkeiten von SciFace Soft-<br />

ware in dem Bereich der Lehre von <strong>Mathematik</strong> zeigt sich auch an der engen<br />

Zusammenarbeit mit bedeutenden deutschen Verlagen und Herstellern von


Unterrichtssoftware mit dem Ziel, über gemeinsame Anstrengungen heraus<br />

Lösungen zu schaffen, den Schülern und Studenten u.a. einen interaktiven,<br />

explorativen Zugang zu mathematischen Sachverhalten und ein Web-<br />

unterstütztes Lernen zu ermöglichen.<br />

Schreiben Sie uns, wenn Sie Fragen oder Anregungen zum Thema „Mu-<br />

PAD in der Lehre“ haben. Nehmen Sie Teil an der Entwicklung einer moder-<br />

nen <strong>Mathematik</strong>software und senden Sie uns Ihre Vorschläge, Kritiken und<br />

Fragen an schule@mupad.de.<br />

Paderborn im Juni 2001<br />

Dr. Andreas Sorgatz,<br />

SciFace Software


Über dieses Buch<br />

Das vorliegende Buch ist aus einer Reihe von <strong>MuPAD</strong>-Notebooks entstanden,<br />

die als Kursmaterialien auf Lehrerfortbildungen und <strong>MuPAD</strong>-Kursen einge-<br />

setzt worden sind. Das hat sich nachhaltig auf den Stil ausgewirkt, in dem<br />

dieses Buches verfasst ist. Sehr häufig wird der Leser auch außerhalb der<br />

Übungsaufgaben dazu angeregt, selbst Hand anzulegen. Es empfiehlt sich<br />

daher, <strong>MuPAD</strong> beim Lesen dieses Buches stets in greifbarer Nähe zu haben.<br />

Das Buch soll einen schnellen und einfachen Zugang zum Computeralgeb-<br />

ra-System <strong>MuPAD</strong> bieten, insbesondere in Hinsicht auf dessen Einsatz <strong>für</strong> die<br />

Lehre in Schulen und Universitäten. Zu Beginn eines jeden Abschnittes ha-<br />

ben wir eine Tabelle mit den in dem jeweiligen Abschnitt neu behandelten<br />

<strong>MuPAD</strong>-Befehlen angeführt. Dort wird ganz kurz und stichpunktartig erklärt,<br />

wo<strong>für</strong> der Befehl nützlich ist. Wir haben uns in der Regel auf einfache Bei-<br />

spiele aus der Schulmathematik beschränkt, da nicht die <strong>Mathematik</strong>, son-<br />

dern das Arbeiten mit <strong>MuPAD</strong> im Vordergrund steht.<br />

Neben einer kurzen <strong>Einführung</strong> in den Umgang mit dem <strong>MuPAD</strong> Pro Note-<br />

book-Konzept stellen wir Ihnen vor, wie man Probleme aus der Analysis, der<br />

Linearen Algebra und der Stochastik mit einem Computeralgebra-System<br />

behandeln kann. Hier wird insbesondere auch auf grafische Möglichkeiten<br />

eingegangen, die <strong>MuPAD</strong> bietet – ein wichtiger Vorteil von modernen Com-<br />

puteralgebra-Systemen, der es sowohl dem Lehrer erleichtert, spezielle ma-<br />

thematische Sachverhalte anschaulich darzustellen, wie auch den Schüler<br />

darin unterstützt, die notwendige Anschauung und das überaus wichtige in-<br />

tuitive Verständnis von <strong>Mathematik</strong> weiterzuentwickeln.<br />

Das Buch basiert auf <strong>MuPAD</strong> Pro 2.0, das auf Windows-Betriebssystemen<br />

zur Verfügung steht. Insbesondere das Notebook-Konzept, das im ersten<br />

Kapitel behandelt wird, steht nur <strong>für</strong> <strong>MuPAD</strong> Pro zur Verfügung.


Sämtliche <strong>MuPAD</strong>-Eingaben und deren entsprechenden Ausgaben sind je-<br />

doch betriebssystemunabhängig und können somit auch mit <strong>MuPAD</strong> 2.0 un-<br />

ter Linux und MacOS bearbeitet werden.<br />

Zur zweiten Auflage<br />

Kai Gehrs<br />

Frank Postel<br />

Paderborn, Juni 2001<br />

In dieser zweiten Auflage der „Praktischen <strong>Einführung</strong> in <strong>MuPAD</strong>“ wurden<br />

einige kleinere Fehler ausgemerzt, die sich in der ursprünglichen Version<br />

eingeschlichen hatten. Inhaltlich sind alle bisherigen Abschnitte übernom-<br />

men worden. Leichte Modifikationen wurden in Kapitel 5 Abschnitt 4 vorge-<br />

nommen: Die Visualisierung der Binomialverteilung kann in der aktuellen<br />

Version <strong>MuPAD</strong> Pro 2.5 nun leichter erreicht werden als in der, in diesem<br />

Buch ursprünglich vorgestellten, <strong>MuPAD</strong> Version 2.0. Zusätzlich wurde in<br />

Kapitel 6 ein Beispiel zum Umgang mit dem neuen 3d-Viewer eingefügt. Alle<br />

anderen in der ersten Auflage beschriebenen Funktionalitäten stehen weiter-<br />

hin auch in <strong>MuPAD</strong> Pro 2.5 zur Verfügung.<br />

Kai Gehrs<br />

Paderborn, Mai 2002


Zur dritten Auflage<br />

Für die nunmehr dritte Auflage der „Praktischen <strong>Einführung</strong> in <strong>MuPAD</strong>“<br />

wurden alle Stellen in diesem Buch überarbeitet, an denen <strong>MuPAD</strong>-Grafiken<br />

erzeugt werden.<br />

Die neue Version <strong>MuPAD</strong> Pro 3.0 <strong>für</strong> Windows bietet eine vollständig neu<br />

entwickelte Grafik-Bibliothek, die es nicht nur erlaubt, mathematische Grafi-<br />

ken schöner und ästhetischer zu gestalten, sondern die gleichzeitig auch ei-<br />

ne Vielzahl neuer Möglichkeiten eröffnet: Ein wichtiger Bestandteil der neuen<br />

<strong>MuPAD</strong>-Grafik ist z.B., dass nahezu jedes graphische Objekt – sei es eine<br />

Gerade, ein Kreis oder etwa ein Rotationskörper – animiert werden kann.<br />

Koordinatensysteme in 2D werden nun standardmäßig mit Pfeilen an den<br />

Koordinatenachsen ausgestattet, vertikale Asymptoten von Funktionen kön-<br />

nen in Form gestrichelter Polgeraden angedeutet werden, Legenden an Mu-<br />

PAD Grafiken erlauben ein einfaches Zuordnen von verschiedenen Funktions-<br />

termen zu ihren Funktionsgraphen etc.<br />

Wenn man auch eigentlich ein ganzes Buch vom Ausmaß dieses Bandes<br />

zu dem Kapitel „Grafik in <strong>MuPAD</strong>“ schreiben kann, so soll hier dennoch in<br />

einem bescheidenen Rahmen auf die neue <strong>MuPAD</strong>-Grafik eingegangen wer-<br />

den. Erste elementare Animationen werden im letzten Kapitel des vorliegen-<br />

den Bandes vorgestellt, so dass die „Praktische <strong>Einführung</strong> in <strong>MuPAD</strong>“ auch<br />

in Sachen Grafik weiterhin einen schnellen und unkomplizierten Einstieg in<br />

die Fähigkeiten des Systems bietet. Dem darüber hinaus interessierten Leser<br />

empfiehlt das <strong>MuPAD</strong> in Schule & Studium-Team einen Blick in die in der On-<br />

line-Dokumentation von <strong>MuPAD</strong> 3.0 vorhandene „<strong>Einführung</strong> in die neue Mu-<br />

PAD Grafik“; dieses Dokument wartet mit vielen tollen Beispielen auf, die<br />

leider in diesem knappen Rahmen hier nicht diskutiert werden können.<br />

Kai Gehrs<br />

Paderborn, Februar 2004


Inhaltsverzeichnis<br />

Vorwort .........................................................................................3<br />

Über dieses Buch ............................................................................5<br />

Inhaltsverzeichnis ...........................................................................9<br />

1. Arbeiten mit <strong>MuPAD</strong>-Notebooks unter Windows ............................9<br />

1.1 Was ist ein <strong>MuPAD</strong>-Notebook? .................................................9<br />

1.2 Speichern und Einladen von Notebooks................................... 11<br />

1.3 Ändern und Löschen in einer Region ....................................... 12<br />

2. Grundkurs Analysis ................................................................ 14<br />

2.1 Rechnen mit <strong>MuPAD</strong>............................................................. 14<br />

2.2 <strong>Eine</strong> klassische Funktionsuntersuchung ................................... 18<br />

2.3 Bestimmte und unbestimmte Integration ................................ 25<br />

2.4 Ein Extremwertproblem ........................................................ 32<br />

2.5 Das Arbeiten mit <strong>MuPAD</strong>-Bibliotheken..................................... 35<br />

2.6 Hilfe, ich weiß nicht weiter ... ................................................ 36<br />

2.7 Differentialgleichungen – <strong>Eine</strong> Anwendungsaufgabe .................. 38<br />

3. Lineare Algebra ..................................................................... 40<br />

3.1 Erstellen von Matrizen .......................................................... 40<br />

3.2 Zeilen- und Spaltenzahl einer Matrix....................................... 42<br />

3.3 Zugriff auf die Einträge einer Matrix ....................................... 42<br />

3.4 Elementare Matrixrechnung................................................... 44<br />

3.5 Weitere Tipps zur Eingabe von Matrizen .................................. 47<br />

3.6 Über den Koeffizientenbereich von Matrizen............................. 48<br />

4. Die linalg-Bibliothek ............................................................... 50<br />

4.1 Lineare Abhängigkeit und Unabhängigkeit von Vektoren............ 52<br />

4.2 <strong>Eine</strong> Anwendung aus der Analytischen Geometrie ..................... 55<br />

5. Kombinatorik und Wahrscheinlichkeitsrechnung ......................... 58<br />

5.1 Kombinatorische Berechnungen ............................................. 58<br />

5.2 Simulation einfacher Laplace-Experimente............................... 60<br />

5.3 Relative Häufigkeiten und das Gesetz der großen Zahlen ........... 62<br />

5.4 Berechnung der Binomialverteilung ........................................ 64


6. Grafiken in <strong>MuPAD</strong> leicht gemacht ............................................ 68<br />

6.1 Funktionsgraphen ................................................................ 69<br />

6.2 Beispiele im Umgang mit der Plot-Bibliothek ............................ 74<br />

6.3 <strong>Eine</strong> Anwendung – Modellierung eines Strahlers ....................... 79<br />

6.4 Grafik-Gallerie..................................................................... 86<br />

6.5 Einfache Animationen ........................................................... 88<br />

7. <strong>MuPAD</strong> in Schule und Studium ................................................. 95<br />

Literaturverzeichnis ....................................................................... 96


Arbeiten mit <strong>MuPAD</strong>-Notebooks unter Windows 9<br />

1. Arbeiten mit <strong>MuPAD</strong>-Notebooks unter<br />

Windows<br />

1.1 Was ist ein <strong>MuPAD</strong>-Notebook?<br />

Ein <strong>MuPAD</strong>-Notebook präsentiert sich als ein Arbeitsblatt, das aus<br />

verschiedenen Absätzen besteht, die Text, mathematische Formeln,<br />

<strong>MuPAD</strong>-Eingaben, <strong>MuPAD</strong>-Ausgaben und Grafiken enthalten können.<br />

In einem <strong>MuPAD</strong>-Notebook handelt es sich bei Absätzen mit einem<br />

Punkt • vor dem Text (gewöhnlich in roter Farbe) um <strong>MuPAD</strong>-<br />

Eingaben, sogenannte Eingaberegionen. Befindet sich der Cursor in<br />

einer solchen Region, so wird im rechten Teil der <strong>MuPAD</strong> Pro - Sta-<br />

tuszeile der Text „Eing, ite“ angezeigt.<br />

Absätze, die direkt unterhalb von <strong>MuPAD</strong>-Eingaben stehen und<br />

gewöhnlich in blauer Farbe erscheinen, sind <strong>MuPAD</strong>-Ausgaben. Solche<br />

Absätze werden im folgenden als Ausgaberegionen bezeichnet. Befin-<br />

det sich der Cursor in einer solchen Region, wird der Text „Ausg.“ im<br />

rechten Teil der <strong>MuPAD</strong> Pro - Statuszeile angezeigt.<br />

Schließlich gibt es noch Textregionen, d.h. Absätze, die gewöhnli-<br />

chen, formatierten Text enthalten. Sie erkennen solche Absätze wie-<br />

der an dem Eintrag in der <strong>MuPAD</strong> Pro - Statuszeile, dort erscheint die<br />

Kennung „Text“.<br />

Um eine <strong>MuPAD</strong>-Eingabe auszuführen (d.h. die Eingabe von Mu-<br />

PAD berechnen zu lassen), reicht es, den Cursor an einer beliebigen<br />

Stelle innerhalb des entsprechenden Absatzes zu platzieren und die<br />

-Taste zu drücken. Die zugehörige <strong>MuPAD</strong>-Ausgabe er-<br />

scheint unmittelbar darunter. Ein Beispiel:<br />

• 1/5 + 2/3 – 5<br />

− 62 <br />

15


10<br />

1.1 Was ist ein <strong>MuPAD</strong>-Notebook?<br />

Mit + ist es möglich, eine <strong>MuPAD</strong>-Anweisung<br />

über mehrere Zeilen zu erstrecken, ohne dass der jeweilige Teil der<br />

<strong>MuPAD</strong>-Anweisung sofort ausgewertet wird. Ein Beispiel:<br />

• 2+<br />

3+<br />

4+<br />

5+<br />

6+<br />

7<br />

27<br />

Es ist im Gegensatz zu früheren Versionen von <strong>MuPAD</strong> nicht mehr<br />

zwingend notwendig, eine <strong>MuPAD</strong>-Eingabe mit einem Semikolon ab-<br />

zuschließen. Das Semikolon dient jetzt nur noch zur Trennung von<br />

Anweisungen, die über mehrere Zeilen verteilt in einem Eingabe-<br />

Absatz oder innerhalb von Prozeduren stehen.<br />

<strong>Eine</strong> <strong>MuPAD</strong>-Eingabe kann auch durch einen Doppelpunkt „:“ ab-<br />

geschlossen werden. Dann wird die Berechnung zwar ausgeführt, a-<br />

ber das Ergebnis nicht auf dem Bildschirm ausgegeben. Probieren Sie<br />

es aus, indem Sie z.B. die Anweisung sin(1.4123) einmal ohne,<br />

einmal mit einem Doppelpunkt abschließen.<br />

Sie können auch mehrere Anweisungen hintereinander in einem<br />

<strong>MuPAD</strong>-Eingabeabsatz eingeben:<br />

• f:= sin(x): F:= int(sin(x), x); diff(F, x)<br />

−cos x <br />

sin x <br />

Dabei müssen die Anweisungen mit dem Semikolon getrennt werden,<br />

wenn die Ergebnisse der Anweisungen auf dem Bildschirm erscheinen<br />

sollen.


1 Arbeiten mit <strong>MuPAD</strong>-Notebooks unter Windows<br />

1.2 Speichern und Einladen von Notebooks<br />

Wie in einem gewöhnlichen Textverarbeitungssystem lassen sich No-<br />

tebooks abspeichern und später wieder einladen. Zum Speichern von<br />

Notebooks stehen die Einträge „Speichern“ und „Speichern unter...“<br />

aus dem Menü „Datei“ zur Verfügung. Geben Sie Ihrem Notebook ei-<br />

nen Namen und bestätigen Sie das Speichern (<strong>MuPAD</strong>-Notebooks tra-<br />

gen die Dateiendung „.mnb“).<br />

Mit „Datei Öffnen...“ laden Sie ein <strong>MuPAD</strong>-Notebook ein. Sie kön-<br />

nen auch mehrere Notebooks gleichzeitig geöffnet halten, wobei je-<br />

des Notebook zu einer eigenständigen <strong>MuPAD</strong>-Sitzung gehört, d.h. sie<br />

kommen sich bei ihren Berechnungen nicht in die Quere.<br />

Tipps<br />

Unter „Datei/Exportieren...“ können Sie ein Notebook u.a. in das<br />

RTF-Format (Rich-Text-Format) abspeichern, das die gängigen<br />

Textverarbeitungssysteme unter Windows verarbeiten können.<br />

Damit können Sie Ihr Notebook beispielsweise in ein Microsoft<br />

Word-Dokument integrieren, sobald Sie Ihre Berechnungen mit<br />

<strong>MuPAD</strong> abgeschlossen haben. Da Microsoft Word unter anderem<br />

ein Exportieren von Dateien in das HTML-Format ermöglicht,<br />

können auf diese Weise auch <strong>MuPAD</strong>-Notebooks in HTML-<br />

Dokumente konvertiert werden.<br />

Auch der umgekehrte Weg funktioniert: Sie können ein Notebook<br />

mit Ihrer bevorzugten Textverarbeitung vorbereiten und im RTF-<br />

Format abspeichern. Dieses Dokument lässt sich dann unter „Da-<br />

tei/Öffnen“ einladen, indem Sie in dem „Datei/Öffnen“-Dialog als<br />

Dateityp „rtf“ einstellen.<br />

Unter dem Menü „Hilfe“ stehen Ihnen unter dem Eintrag „<strong>Einführung</strong>en“<br />

vorgefertigte Notebooks zur Einarbeitung in <strong>MuPAD</strong> zur<br />

Verfügung.<br />

11


12<br />

1.3 Ändern und Löschen in einer Region<br />

1.3 Ändern und Löschen in einer Region<br />

Wie in einem gewöhnlichen Textverarbeitungssystem lassen sich die<br />

Inhalte einer Region nachträglich ändern. Man kann Text einfügen,<br />

löschen, kopieren und vieles mehr. Auch Drag & Drop und Copy & Pa-<br />

ste sind möglich.<br />

Um neue Eingabe- und Textregionen einzufügen, gibt es die Ein-<br />

träge „Eingabe darüber (+)“, „Eingabe darunter<br />

()“, „Text darüber (+)“ und „Text darunter<br />

()“ in dem Menü „Einfügen“. Besonders hilfreich ist hierbei das<br />

Kontextmenü der Maus (drücken Sie die rechte Maustaste), mit dem<br />

Sie schnell auf die Befehle zum Einfügen von Regionen zugreifen<br />

können. Nach längerem Arbeiten empfiehlt sich zudem der Weg über<br />

Tastaturkürzel. So lässt sich mit der Taste eine neue Eingabe-<br />

region unterhalb der aktuellen Region einfügen.<br />

Zum Löschen von Regionen müssen Sie den Cursor an eine belie-<br />

bige Stelle innerhalb der zu löschenden Region platzieren und die Re-<br />

gion auswählen. Dies geschieht über die Taste oder über den<br />

Eintrag „Region auswählen“ aus dem Menü „Notebook“. Drücken Sie<br />

anschließend die Taste , oder wählen Sie aus dem Menü „Be-<br />

arbeiten“ den Eintrag „Ausschneiden“ aus. Seien Sie bitte vorsichtig<br />

mit dem voreiligen Löschen von Regionen. Es gibt keine Möglichkeit,<br />

ein unbeabsichtigtes Löschen rückgängig zu machen!<br />

Nach dem gleichen Prinzip lassen sich vollständige Regionen ko-<br />

pieren oder verschieben.<br />

Benötigen Sie Hilfe zur Bedienung von <strong>MuPAD</strong> Pro, so empfiehlt<br />

sich die Direkthilfe in der Symbolleiste oder die <strong>MuPAD</strong> Pro Hilfe, die<br />

Sie über den Eintrag „Hilfe Themen“ (+) aus dem Menü<br />

„Hilfe“ erreichen. Sie können hierzu auch auf das Fernglas-Symbol in<br />

der <strong>MuPAD</strong> Pro-Symbolleiste klicken.


Tipp<br />

1 Arbeiten mit <strong>MuPAD</strong>-Notebooks unter Windows<br />

Zum Durcharbeiten eines vorgefertigten <strong>MuPAD</strong>-Notebooks erscheint<br />

es angenehm, dass <strong>MuPAD</strong> nicht nach jeder ausgeführten<br />

Eingaberegion automatisch die Eingabe mit einer neuen<br />

Eingaberegion fortführt. Zum interaktiven Arbeiten mit einem<br />

eigenen Notebook mag man diese Funktionalität jedoch<br />

vermissen. Daher können Sie in dem Menü „Ansicht“ unter dem<br />

Eintrag „Optionen“ und der Registerkarte „Notebook“ einstellen,<br />

welches Verhalten Sie bevorzugen.<br />

13


14<br />

2.1 Rechnen mit <strong>MuPAD</strong><br />

2. Grundkurs Analysis<br />

Wir wollen nun <strong>MuPAD</strong> als Hilfsmittel <strong>für</strong> Berechnungen aus der Ana-<br />

lysis schätzen lernen.<br />

2.1 Rechnen mit <strong>MuPAD</strong><br />

Neue <strong>MuPAD</strong>-Funktionen<br />

sqrt Quadratwurzel<br />

float Gleitkommadarstellung <strong>für</strong> numerische Rechnun-<br />

gen<br />

DIGITS Anzahl der Nachkommastellen bei numerischen<br />

Berechnungen<br />

delete Löschen des Wertes einer Variablen<br />

expand Ausmultiplizieren von Ausdrücken<br />

normal Kürzen rationaler Ausdrücke<br />

simplify Vereinfachen von Ausdrücken<br />

In <strong>MuPAD</strong> können wir wie mit einem gewöhnlichen Taschenrechner<br />

rechnen:<br />

• 2 + 1/3 - 10*2^20<br />

− 31457273 <br />

3<br />

Der Unterschied zum Taschenrechner liegt darin, dass <strong>MuPAD</strong> mit<br />

beliebig langen Zahlen rechnen kann, deren Größe nur durch den zur<br />

Verfügung gestellten Hauptspeicher beschränkt ist. Ein Beispiel <strong>für</strong><br />

eine recht große Zahl liefert die folgende Eingabe:<br />

• 10^1000<br />

1000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000


2 Grundkurs Analysis<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

0000000000000000000000000000000000000000000000000000000<br />

00000000000<br />

Nun rechnet <strong>MuPAD</strong> nicht nur schnell und mit sehr großen Zahlen,<br />

sondern auch exakt. Exakte Berechnungen sind eine der wichtigsten<br />

Eigenschaften von <strong>MuPAD</strong>. Was aber bedeutet „exakt“?<br />

Berechnen wir beispielsweise 12 : Dazu benötigen wir den Befehl<br />

sqrt (square root, englisch: Quadratwurzel):<br />

• sqrt(12)<br />

2 ⋅ 3<br />

<strong>MuPAD</strong> hat offensichtlich die Vereinfachung 12 = 4⋅ 3 = 2⋅ 3 vorge-<br />

nommen. 3 kann <strong>MuPAD</strong> nicht weiter (exakt!) vereinfachen, da 3<br />

eine irrationale Zahl ist. D.h. ein (weitestgehend vereinfachter) exak-<br />

ter Wert von 12 ist 2 3.<br />

Um einen Näherung dieser Zahl auf 10 Nachkommastellen zu<br />

bestimmen, verwenden wir die Funktion float:<br />

• float(sqrt(12))<br />

3.464101615<br />

Ein weiteres Beispiel <strong>für</strong> eine exakte Berechnung liefert uns die<br />

folgende Eingabe:<br />

• cos(PI/2)<br />

0<br />

15


16<br />

2.1 Rechnen mit <strong>MuPAD</strong><br />

Hier taucht das Symbol PI auf, das die Zahl π in <strong>MuPAD</strong> reprä-<br />

sentiert. Viele <strong>MuPAD</strong>-Funktionen kennen dieses Symbol und können<br />

daher exakte Ergebnisse zurückliefern, wie im folgenden Beispiel:<br />

• sin(PI/3)<br />

<br />

3<br />

2<br />

Neben symbolischen und exakten Berechnungen kann <strong>MuPAD</strong><br />

auch numerisch rechnen, wie oben bereits gesehen. Bestimmte nu-<br />

merische Rechnungen können mit einer nahezu beliebigen Ge-<br />

nauigkeit erfolgen. So erhalten wir beispielsweise die ersten 1000 De-<br />

zimalstellen von π wie folgt:<br />

• DIGITS:= 1000: float(PI)<br />

3.14159265358979323846264338327950288419716939937510582<br />

0974944592307816406286208998628034825342117067982148086<br />

5132823066470938446095505822317253594081284811174502841<br />

0270193852110555964462294895493038196442881097566593344<br />

6128475648233786783165271201909145648566923460348610454<br />

3266482133936072602491412737245870066063155881748815209<br />

2096282925409171536436789259036001133053054882046652138<br />

4146951941511609433057270365759591953092186117381932611<br />

7931051185480744623799627495673518857527248912279381830<br />

1194912983367336244065664308602139494639522473719070217<br />

9860943702770539217176293176752384674818467669405132000<br />

5681271452635608277857713427577896091736371787214684409<br />

0122495343014654958537105079227968925892354201995611212<br />

9021960864034418159813629774771309960518707211349999998<br />

3729780499510597317328160963185950244594553469083026425<br />

2230825334468503526193118817101000313783875288658753320<br />

8381420617177669147303598253490428755468731159562863882<br />

3537875937519577818577805321712268066130019278766111959<br />

09216420199<br />

Die Variable DIGITS gibt an, mit wie vielen Stellen numerische Be-<br />

rechnungen durchgeführt werden sollen. Um nicht auch alle nachfol-<br />

genden Rechnungen mit einer derart hohen Genauigkeit auszuführen,<br />

setzen wir mittels der delete-Anweisung diese Variable wieder auf<br />

ihren Ursprungswert, d.h. den Wert 10 zurück:


• delete DIGITS:<br />

2 Grundkurs Analysis<br />

An diesem Beispiel haben wir darüberhinaus erkennen können, wie<br />

in <strong>MuPAD</strong> Werte an Variablen zugewiesen werden, nämlich über den<br />

Zuweisungsoperator := :<br />

• f:= sin(x)<br />

sin x <br />

Nach dieser Anweisung hat die Variable f den Wert sin(x). Den Wert<br />

einer Variablen liest man wie folgt aus:<br />

• f<br />

sin x <br />

Wollen wir die Variable f später <strong>für</strong> einen anderen Zweck verwenden,<br />

so können wir sie entweder einfach mit einem neuen Wert per Zuwei-<br />

sung belegen oder ihren Wert mittels der Anweisung delete löschen:<br />

• delete f:<br />

Besitzt eine Variable keinen Wert, so ist das Ergebnis ihrer Auswer-<br />

tung die Variable selber:<br />

• f<br />

f<br />

Mit solchen Variablen, d.h. Variablen ohne Wert, können beispielswei-<br />

se Unbekannte oder Parameter in Gleichungen repräsentiert werden.<br />

Sie werden festgestellt haben, dass die Funktion delete ange-<br />

wandt auf die Variable DIGITS den Wert von DIGITS nicht gelöscht,<br />

sondern auf ihren Ursprungswert zurückgesetzt hat. Solche Variablen<br />

werden Umgebungsvariablen genannt. Sie steuern global bestimmte<br />

Einstellungen <strong>für</strong> <strong>MuPAD</strong>.<br />

Tipp<br />

Sie haben mit der neu in <strong>MuPAD</strong> Pro angelegten „Befehlsleiste“,<br />

die Sie im oberen Fensterbereich sehen können, die Möglichkeit,<br />

17


18<br />

2.2 <strong>Eine</strong> klassische Funktionsuntersuchung<br />

bestimmte Befehle direkt in Ihre Eingaberegion einzufügen. Kli-<br />

cken Sie beispielsweise auf das Symbol π ≈ 314 , ..., so wird der<br />

Text float(%?) an die Stelle Ihres Cursors eingefügt. Nun brau-<br />

chen Sie nur noch die mit %? gekennzeichneten Stellen wie in ei-<br />

nem vorgefertigten Formular auszufüllen. Mit der Tabulatortaste<br />

können Sie übrigens bei Funktionen, die mehrere Argumente er-<br />

warten, direkt auf die mit %? gekennzeichneten Stellen springen.<br />

Übungen<br />

Berechnen Sie 27 − 4 3 und cos π d 8i<br />

exakt. Ermitteln Sie auf 5<br />

Dezimalstellen genau numerische Näherungen <strong>für</strong> diese Zahlen!<br />

Welchen Unterschied macht <strong>MuPAD</strong> zwischen 1 3 1 3 1 + +<br />

3<br />

und<br />

10 . 1 1<br />

3<br />

+<br />

3<br />

+<br />

3<br />

?<br />

Mit der Funktion expand(expr) wird der Ausdruck expr<br />

ausmultipliziert. Testen Sie diese Funktion an den Ausdrücken<br />

2 3 5<br />

aa+ bf, aa+ bfund aa+ bf!<br />

Mit normal(expr) wird ein rationaler Ausdruck expr auf einen<br />

gemeinsamen Hauptnenner gebracht und weitgehend gekürzt.<br />

Testen Sie diese Funktion an den Beispielen x 2<br />

1+<br />

x 1 x<br />

− 2<br />

x −1<br />

und !<br />

− 1+<br />

x<br />

Wenden Sie die Funktion simplify auf die folgenden Ausdrücke<br />

an:<br />

a f a f<br />

d i<br />

d i<br />

2 2<br />

(1) sin( x) + cos( x)<br />

(2) sin x + π 2<br />

(3) cos x − π 2<br />

2.2 <strong>Eine</strong> klassische Funktionsuntersuchung<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

solve Lösen von Gleichungen und Ungleichungen


2 Grundkurs Analysis<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

diff Bestimmen von Ableitungen<br />

limit Bestimmen von Grenzwerten<br />

%i Rückgriff auf das i-Schritte zurückliegende Er-<br />

gebnis<br />

subs Ersetzen von Ausdrücken (z.B. zum Einsetzen<br />

von Werten in Gleichungen)<br />

plotfunc2d 2-dimensionale Darstellung von Funktionsgra-<br />

phen<br />

Im folgenden wollen wir eine klassische Funktionsuntersuchung am<br />

2<br />

x − 5x+ 6<br />

Beispiel der Funktion f( x):=<br />

durchführen. Wir weisen dazu<br />

x −1<br />

der Variablen f den Funktionsterm zu:<br />

• delete x: f:= (x^2 - 5*x + 6)/(x - 1)<br />

x 2 − 5 ⋅ x + 6<br />

x − 1<br />

Beachten Sie, dass wir den Wert der Variable x (vorsichtshalber) zu-<br />

vor gelöscht haben, um sie als unabhängige Variable im Funktions-<br />

term von f verwenden zu können.<br />

Wir können direkt aus dem Term ablesen, dass die Zahl 1 nicht im<br />

Definitionsbereich von f enthalten ist und können daher unmittelbar<br />

mit der Bestimmung der Schnittstellen von f mit den Koordinatenach-<br />

sen fortfahren. Zunächst bestimmen wir die Nullstellen der Funktion:<br />

• solve(f = 0, x)<br />

2, 3 <br />

Die y-Koordinate des Schnittpunktes von f mit der y-Achse ergibt sich<br />

wie folgt:<br />

• subs(f, x = 0)<br />

−6<br />

19


20<br />

2.2 <strong>Eine</strong> klassische Funktionsuntersuchung<br />

Nun untersuchen wir f auf mögliche Extremstellen und beginnen mit<br />

der notwendigen Bedingung: f ′ ( x)<br />

= 0:<br />

• f1:= diff(f, x)<br />

2 ⋅ x − 5<br />

−<br />

x<br />

x − 1<br />

2 − 5 ⋅ x + 6<br />

(x − 1) 2<br />

<br />

Die Ableitung von f haben wir der Variablen f1 zugewiesen und be-<br />

rechnen nun ihre Nullstellen:<br />

• S:= solve(f1 = 0, x)<br />

<br />

{ 2 + 1, 1 − 2}<br />

Hier sehen wir wieder, dass <strong>MuPAD</strong> exakt rechnet. Wir erhalten eine<br />

Näherung der möglichen Extremstellen, indem wir die Funktion float<br />

auf die Menge S anwenden:<br />

• float(S)<br />

−0.4142135624, 2.414213562 <br />

Nun müssen wir diese Nullstellen der 1. Ableitung in die 2. Ableitung<br />

von f einsetzen, um die hinreichende Bedingung zu überprüfen:<br />

• f2:= diff(f, x, x)<br />

<br />

2 ⋅ x 2 <br />

− 5 ⋅ x + 6<br />

(x − 1) 3<br />

+ 2 2 ⋅ (2 ⋅ x − 5)<br />

−<br />

x − 1 (x − 1) 2<br />

<br />

Tipps<br />

Wir sehen, dass wir einfach nur zweimal das x hinschreiben<br />

brauchen, um die zweite Ableitung zu berechnen. Ganz analog<br />

können Sie auch mit der dritten, vierten usw. Ableitung verfah-<br />

ren.<br />

Der Befehl diff(f, x$n), wobei n eine natürliche Zahl ist, be-<br />

stimmt die n-te Ableitung von f. Wir könnten stattdessen auch<br />

diff(f, x, x) <strong>für</strong> die 2. Ableitung oder diff(f, x, x, x, x,


2 Grundkurs Analysis<br />

x, x) <strong>für</strong> die 6. Ableitung schreiben, nichts anderes bedeutet die<br />

$-Schreibweise:<br />

• x $ 6<br />

x, x, x, x, x, x<br />

• diff(x^7, x $ 6)<br />

5040 ⋅ x<br />

Das Einsetzen der möglichen Extremstellen in die zweite Ableitung<br />

können wir mit Hilfe der Funktion subs (substitute; engl.: ersetze)<br />

machen. Dies haben wir stillschweigend auch schon bei der Berech-<br />

nung des Schnittpunktes der Funktion mit der y-Achse getan. Wir be-<br />

ginnen mit der 1. Nullstelle von f ′ ( x):<br />

• xe:= subs(f2, x = S[1])<br />

<br />

2<br />

2 + 1 − 5 ⋅ 2 + 1 ⋅ 2<br />

−<br />

2<br />

• float(xe)<br />

1.414213562<br />

<br />

2 + 3<br />

Das es sich um einen positiven Wert handelt, liegt an der Stelle 2 + 1<br />

ein Minimum vor. Mit dem hier verwendeten Befehl S[i] greift man<br />

auf das i-te Element einer Menge (oder auch Liste) zu. Wir testen<br />

schließlich noch auf die 2. Nullstelle von f ′ ( x):<br />

• float(subs(f2, x = S[2]))<br />

−1.414213562<br />

Hierbei handelt es sich also um ein Maximum von f.<br />

Die Funktion f besitzt keine Wendestellen, da die 2. Ableitung kei-<br />

ne Nullstellen hat:<br />

21


22<br />

• S:= solve(f2 = 0, x)<br />

∅<br />

2.2 <strong>Eine</strong> klassische Funktionsuntersuchung<br />

Schließlich lassen wir uns von <strong>MuPAD</strong> den Graphen von f im Bereich<br />

[-6,6] zeichnen:<br />

• plotfunc2d(f, x = -6..6)<br />

y<br />

2<br />

-6 -5 -4 -3 -2 -1 1 2 3 4 5 6<br />

x<br />

-2<br />

-4<br />

-6<br />

-8<br />

-10<br />

Dieser Graph lässt sich interaktiv weiter bearbeiten. Ein Doppel-<br />

klick auf den Graphen startet das <strong>MuPAD</strong>-Grafiktool VCam, die Me-<br />

nüleiste trägt nun die Funktionen von VCam. Ein Klick im Menü „Be-<br />

arbeiten“ auf „Objekteigenschaften“ öffnet ein Fenster, indem sich<br />

zahlreiche Eigenschaften dieser Grafik einstellen lassen.<br />

Tipps<br />

Neue Grafiken können auch interaktiv erzeugt werden. Setzen<br />

Sie den Cursor im Notebook an eine beliebige Eingabestelle. In<br />

dem Menü „Einfügen“ finden Sie die Einträge „2D Grafik“ und<br />

„3D Grafik“. Wählen Sie einen dieser beiden Einträge aus, so er-<br />

scheint ein grau hinterlegtes Rechteck. Mit einem Doppelklick auf<br />

dieses Rechteck wird VCam gestartet und dessen Menüleiste an-<br />

gezeigt.


2 Grundkurs Analysis<br />

Für eine (interaktiv) erstellte Grafik lässt sich die zugehörige Mu-<br />

PAD-Anweisung zum Erzeugung der Grafik ermitteln. Im VCam-<br />

Menü „Bearbeiten“ finden Sie den Eintrag „Befehl an das Note-<br />

book“, um den entsprechenden <strong>MuPAD</strong>-Befehl zur Erzeugung der<br />

Grafik direkt in eine Eingabezeile unterhalb der Grafik einzufü-<br />

gen.<br />

Ein Grafik läßt sich als Datei in diverse Grafikformate abspeichern<br />

(siehe den Befehl „Speichere Grafik“ aus dem VCam-Menü<br />

„Bearbeiten“) oder über Copy & Paste in andere Anwendungen<br />

wie beispielsweise Microsoft Word einfügen. Durch Doppelklick<br />

auf ein eingebettetes Grafikobjekt lassen sich Eigenschaften die-<br />

ser Grafik auch noch nachträglich und von der Anwendung aus,<br />

in der die Grafik eingebettet worden ist, ändern.<br />

Notebooks mit grafischen Objekten werden schnell sehr groß.<br />

Das kann reduziert werden, indem ein grafisches Objekt nur als<br />

Symbol eingefügt wird. Dazu muss in dem Untermenü „Objekt<br />

Eigenschaften“ aus dem Menü „Bearbeiten“ in dem Dialogfenster<br />

„Ansicht“ die Option „Darstellung als Symbol“ ausgewählt.<br />

Auch bei den hier kennen gelernten Befehlen diff, solve, subs<br />

und plotfunc2d finden Sie entsprechende Symbole<br />

l q , f x x y<br />

∂<br />

f( x), ∂x<br />

x f = 0 ( ) = und ein Symbol <strong>für</strong> den Graphen einer<br />

Funktion in der Befehlsleiste von <strong>MuPAD</strong> Pro.<br />

Übungen<br />

Zeichnen Sie die Funktion<br />

1<br />

sin( )<br />

x<br />

im Intervall 01 , !<br />

Zeichnen Sie die Funktion sin( x + y)<br />

auf dem Gebiet 0, π × 0,<br />

π !<br />

Führen Sie <strong>für</strong> die folgenden Funktionen eine Funktionsuntersuchung<br />

mit <strong>MuPAD</strong> durch:<br />

(a) f x x e x<br />

( )= ⋅ − 2<br />

23


24<br />

(b) f x e x<br />

( )= − −<br />

1<br />

(c) f( x) = ln x −<br />

2.2 <strong>Eine</strong> klassische Funktionsuntersuchung<br />

2 c 1h<br />

Bestimmen Sie die Nullstellen der folgenden Funktion f(x) zu<br />

5 4 3 2<br />

f( x)= x − 5x + 5x + 5x − 6 x und überprüfen Sie das Ergebnis durch<br />

Einsetzen der Werte in f!<br />

Bestimmen Sie die folgenden Grenzwerte:<br />

lim<br />

x→∞<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

x 1. 000. 000<br />

10 − ⋅ + 2 und lim<br />

2<br />

x + 1 0. 001x<br />

x→∞<br />

I<br />

K<br />

F<br />

G<br />

HG<br />

x<br />

1 3<br />

+ x −1<br />

x<br />

den Sie die Funktionen limit und infinity.<br />

I<br />

J<br />

KJ<br />

. Hinweis: Verwen-<br />

Bestimmen Sie den rechts- und linksseitigen Grenzwert <strong>für</strong> x → 2<br />

x − 3<br />

von: f( x)=<br />

. Zeichnen Sie die Funktion <strong>für</strong> den Bereich<br />

2<br />

x − 5x+ 6<br />

[ −55 , ] . Hinweis: Verwenden Sie die Funktion limit mit den Optio-<br />

nen Right, Left.<br />

Zeigen Sie mit <strong>MuPAD</strong> über die Definition der Ableitung, dass<br />

gilt:<br />

f ( x) = sin( x) ⇒ f ′ ( x) = cos( x)<br />

.<br />

a f a f<br />

20<br />

Bestimmen Sie <strong>für</strong> f( x) = ln ln( x) , f′ ( x) = ?, f′′ ( x) = ?, f ( x)<br />

= ?<br />

und<br />

f ( x) = u( x) ⋅ v( x)<br />

die entsprechenden Ableitungen. Hinweis: Ver-<br />

wenden Sie die Funktionen diff und limit.<br />

Für eine Ware sei die Angebotsfunktion y A und die<br />

Nachfragefunktion y N wie folgt gegeben:<br />

yA( x)<br />

= 100 − , yN( x)<br />

= −<br />

x<br />

x<br />

20<br />

90 15<br />

. Der Staat setzt den Preis auf 95 €<br />

2<br />

pro Mengeneinheit fest. Bestimmen Sie, ob es einen Angebots-<br />

oder Nachfrageüberhang gibt und ermitteln Sie die Höhe des<br />

Überhangs. Hinweis: Lösen Sie die Gleichungen y x<br />

A( )= 95 und<br />

y x<br />

N ( )= 95 jeweils nach x und bilden Sie die Differenz der beiden<br />

gefundenen Lösungen.


2 Grundkurs Analysis<br />

2.3 Bestimmte und unbestimmte Integration<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

int Bestimmte und unbestimmte Integration<br />

taylor Taylor-Reihe einer Funktion<br />

expr Umwandeln einer Reihe in einen gewöhnlichen<br />

Ausdruck<br />

numeric::solve Numerisches Lösen von Gleichungen<br />

Auch bei der, gerade im Vergleich zur Differentiation, wesentlich<br />

schwierigeren Integration kann <strong>MuPAD</strong> helfen:<br />

• delete x: int(x^4, x)<br />

x 5<br />

<br />

5<br />

Der Befehl int führt bestimmte und unbestimmte Integration durch.<br />

Ein weiteres Beispiel:<br />

• F:= int(sin(x)*cos(x)*x^2, x)<br />

cos 2 ⋅ x <br />

x ⋅ sin<br />

+<br />

8<br />

2 ⋅ x <br />

x<br />

−<br />

4<br />

2 ⋅ cos 2 ⋅ x <br />

<br />

4<br />

Machen wir die Probe:<br />

• f:= diff(F, x)<br />

x 2 ⋅ sin 2 ⋅ x <br />

<br />

2<br />

Das Ergebnis hat eine andere Struktur als der Integrand, von dem wir<br />

ausgegangen waren. Doch sind beide Terme gleich, was wir in <strong>MuPAD</strong><br />

wie folgt überprüfen können:<br />

• s:= sin(x)*cos(x)*x^2 - f<br />

x 2 ⋅ cos x ⋅ sin x − x2 ⋅ sin 2 ⋅ x <br />

<br />

2<br />

25


26<br />

• simplify(s)<br />

0<br />

2.3 Bestimmte und unbestimmte Integration<br />

Gerade auf dem Gebiet der Integration kann der Einsatz eines Com-<br />

puteralgebra-Systems sehr nützlich sein. Ein einfaches Beispiel bietet<br />

uns da<strong>für</strong> die Stochastik, in der häufig mit der Gauß’schen Normal-<br />

verteilung gerechnet wird.<br />

Ihre Funktionswerte müssen hierbei mühselig in Tabellen nachge-<br />

schlagen werden, da sie sich als bestimmte Integrale der Funktion<br />

ϕ , x e<br />

01<br />

a f = ⋅<br />

1 2<br />

− ⋅x<br />

2<br />

1<br />

2π<br />

ergeben.<br />

Wir wollen das nun einmal mit Hilfe eines Computeralgebra-Systems<br />

nachvollziehen, mit dem wir darüber hinaus die Werte dieser Vertei-<br />

lungsfunktion in einer nahezu beliebigen Genauigkeit berechnen kön-<br />

nen.<br />

Wir bestimmen im folgenden die halbe Fläche unter der zentrier-<br />

ten und standardisierten Gauß'schen Glockenkurve und beginnen zu-<br />

nächst mit einer Zeichnung der Funktion:<br />

• delete x:<br />

gauss:= 1/(sqrt(2*PI))*exp(-1/2*x^2)<br />

− x2<br />

2<br />

2 ⋅ e<br />

2 ⋅ √ <br />

π


• plotfunc2d(gauss, x = -4..4)<br />

y<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

2 Grundkurs Analysis<br />

Gauss'sche Normalverteilung<br />

-4 -3 -2 -1 0 1 2 3 4<br />

x<br />

• F:=int(gauss, x)<br />

<br />

2 ⋅ x<br />

erf <br />

2<br />

2<br />

• limit(F, x = infinity)<br />

1<br />

2<br />

Und wie erwartet erhalten wir das Ergebnis 1/2.<br />

Zum Schluss dieses Abschnitts wollen wir noch auf die Tangenten-<br />

Problematik eingehen, wie sie in der Analysis auch an Schulen be-<br />

c h und ihre Tangente im<br />

b g schließen eine Fläche ein. Zuerst wollen wir uns<br />

handelt wird. Die Funktion f x x x e x<br />

( )= + + ⋅ −<br />

2<br />

2 1<br />

Berührpunkt P 0?<br />

den Graphen der Funktion ansehen:<br />

27


28<br />

2.3 Bestimmte und unbestimmte Integration<br />

• f:= exp(-x)*(x^2 + 2*x + 1):<br />

plotfunc2d(f, x = -3..3, YRange = 0..10)<br />

y<br />

10<br />

9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

-3 -2 -1 0 1 2 3<br />

x<br />

Um die Gleichung der Tangente zu bestimmen, berechnen wir die ers-<br />

ten beiden Glieder der Taylor-Reihe von f:<br />

• t:= taylor(f, x = 0, 2)<br />

<br />

1 + x + O x 2<br />

<br />

die wir über den Befehl expr in einen gewöhnlichen <strong>MuPAD</strong>-Ausdruck<br />

umwandeln (d.h. der Fehlerterm wird beseitigt):<br />

• t:= expr(t)<br />

x + 1<br />

Jetzt können wir mit t so weiterarbeiten, wie wir es von der Funk-<br />

tion f gewohnt sind.<br />

Ein Schaubild von f und der Tangente t erhalten wir dann wie üb-<br />

lich, indem wir die Funktionen f und t, einen entsprechenden Definiti-<br />

onsbereich (in unserem Fall x = -3..3) sowie einen sinnvollen Wert-<br />

bereich (in unserem Fall YRange = -3..10) an die Funktion plot-<br />

func2d übergeben.


2 Grundkurs Analysis<br />

• plotfunc2d(f, t, x = -3..3, YRange = -3..10)<br />

y<br />

10<br />

8<br />

6<br />

4<br />

2<br />

-3 -2 -1 1 2 3<br />

x<br />

-2<br />

exp(-x)*(2*x + x^2 + 1)<br />

x + 1<br />

Abschließend bestimmen wir noch die Fläche zwischen der Funktion f<br />

und der Tangente t. Das Schaubild suggeriert, dass es „fast keine“<br />

Fläche zwischen den beiden Graphen gibt. Daher vergrößern wir ein-<br />

mal mit Hilfe des Grafik-Viewers VCam (zu erreichen über einen Dop-<br />

pelklick mit der Maus auf die Grafik) einen bestimmten Bereich. Dazu<br />

klicken wir auf das Symbol der Lupe mit dem +-Zeichen sowie an-<br />

schließend einfach mit der Maus in den Bereich des Koordinatensys-<br />

tems, den wir gerne vergrößert sehen möchten:<br />

-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4<br />

exp(-x)*(2*x + x^2 + 1)<br />

x + 1<br />

1.0<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

x<br />

-0.2<br />

-0.4<br />

y<br />

29


30<br />

2.3 Bestimmte und unbestimmte Integration<br />

Hieraus erkennt man leichter, wie wir zur Bestimmung der Fläche<br />

vorgehen müssen und bestimmen zunächst die Schnittstellen der<br />

Tangente mit dem Funktionsgraphen. Das machen wir mit der Funkti-<br />

on numeric::solve, wobei wir in diesem Fall nicht auf die Funktion<br />

solve zurückgreifen können, da es sich um eine transzendente Glei-<br />

chung handelt. Wir sind also gezwungen, diese Gleichung numerisch<br />

zu lösen:<br />

• numeric::solve(f = t, x)<br />

−1.0 <br />

Die gesuchte Fläche erhalten wir daraus unmittelbar durch das fol-<br />

gende bestimmte Integral:<br />

• int(t - f, x = -1..0)<br />

11<br />

− 2 ⋅ e<br />

2<br />

<strong>Eine</strong> Näherung dieser Zahl in Dezimalbruch-Darstellung lautet:<br />

• float(%)<br />

Tipp<br />

0.06343634308<br />

<strong>MuPAD</strong> bietet in der Bibliothek student schulübliche numerische<br />

Standardverfahren zur Integration, die zudem grafisch visuali-<br />

siert werden können. Am Beispiel der Riemann-Integration ste-<br />

hen die Funktionen student::riemann und stu-<br />

dent::plotRiemann zur Verfügung. So lässt sich die Riemann-<br />

Integration der Funktion f x e x<br />

( )= im Intervall −11 , mit dem fol-<br />

genden Aufruf visualisieren, wobei eine Unterteilung des Inter-<br />

valls in 10 Segmente gewählt wurde (die Aufrufsyntax ist sehr<br />

ähnlich zu der, die wir von der Funktion plotfunc2d kennen:<br />

Zuerst geben wir die darzustellende Funktion an, dann den ent-<br />

sprechenden Definitionsbereich und schließlich die Anzahl der


2 Grundkurs Analysis<br />

Unterteilungen des Integrationsintervalls, d.h. im wesentlichen<br />

die Genauigkeit, mit der die Fläche unter dem Graphen angenä-<br />

hert werden soll):<br />

• plot(student::plotRiemann(exp(x), x = -1..1, 10))<br />

Riemann: 2.346<br />

real: 2.350<br />

y<br />

2.5<br />

2.0<br />

1.5<br />

1.0<br />

0.5<br />

-1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0<br />

x<br />

Über ?student erhalten Sie eine Übersicht der zur Verfügung<br />

stehenden Integrationsverfahren.<br />

Übungen<br />

Berechnen Sie das bestimmte Integral der Funktionen f ( x) = sin( x)<br />

und f ( x) = cos( x)<br />

in den Grenzen 0 bis 2.<br />

Bestimmen Sie die folgenden Integrale:<br />

sin( x)cos( x) dx,<br />

x dx z z<br />

π<br />

2<br />

1 1<br />

0<br />

0 2<br />

1−<br />

.<br />

Berechnen Sie die unbestimmten Integrale der folgenden Funktionen:<br />

z<br />

z 1<br />

⋅<br />

4x+ 1<br />

(1) e dx<br />

−x<br />

(2) x e dx<br />

a f2 z<br />

(3) ln( x) dx<br />

(4)<br />

z<br />

ln( x)<br />

2<br />

x<br />

dx<br />

31


32<br />

2.4 Ein Extremwertproblem<br />

z z<br />

2 tx<br />

2 tx<br />

(5) txedx ⋅ und txedt ⋅<br />

z<br />

2<br />

x −1<br />

(6) ln( x)<br />

− dx 2<br />

e −1<br />

Berechnen Sie das Volumen des Rotationskörpers, der durch die<br />

Funktion f x e x 2 + 1<br />

( )= im Intervall 04 , gegeben ist. Verwenden Sie<br />

z0<br />

2 1 2<br />

4<br />

c h .<br />

x+<br />

dazu die Formel V = π ⋅ e dx<br />

2<br />

Für k ∈IR ist die Funktionenschar f ( x)= x −kx ⋅e<br />

k<br />

x c h gegeben.<br />

Bestimmen Sie k ∈IR so, dass die zugehörige Funktion mit der x-<br />

Achse eine Fläche mit dem Inhalt 4 Flächeneinheiten einschließt.<br />

c h und ihre Tangente im Berühr-<br />

b g schließen eine Fläche ein.<br />

Die Funktion f x x x e x<br />

( )= + + ⋅ −<br />

2 3 2<br />

punkt P 0?<br />

(a) Zeichnen Sie den Graphen der Funktion f(x).<br />

(b) Bestimmen Sie die Tangente an den Graphen.<br />

(c) Zeichnen Sie die Funktion und die Tangente in ein gemein-<br />

sames Koordinatensystem ein.<br />

(d) Bestimmen Sie die Schnittstellen der Tangente mit dem<br />

Funktionsgraphen. Wählen Sie nun diese als Integrationsgrenzen<br />

<strong>für</strong> das zu bestimmende Integral.<br />

2.4 Ein Extremwertproblem<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

assume Festlegen von Variablenbereichen<br />

<strong>Eine</strong> zylinderförmige Konservendose soll einen Inhalt von 1 Liter fas-<br />

sen. Wie sind nun der Radius r und die Höhe h zu wählen, damit der<br />

Blechverbrauch zur Herstellung der Konservendose möglichst gering<br />

ist?


2 Grundkurs Analysis<br />

Da der Blechverbrauch von der Größe der Oberfläche abhängt, be-<br />

trachten wir zunächst die bekannte Formel zur Berechnung der Ober-<br />

fläche eines Zylinders:<br />

2<br />

Arh (,)= 2πr+ 2π<br />

rh<br />

Diese Formel übertragen wir nach <strong>MuPAD</strong>, wobei wir annehmen kön-<br />

nen, dass <strong>für</strong> r und h nur positive (reelle) Zahlen in Betracht kom-<br />

men:<br />

• delete r, h: assume(r > 0): assume(h > 0):<br />

• A:= 2*PI*r^2 + 2*PI*r*h<br />

2 ⋅π⋅r 2 + 2 ⋅π⋅h ⋅ r<br />

Um sicher zu stellen, dass r und h keine Werte besitzen, mussten wir<br />

über delete mögliche Werte der Variablen löschen.<br />

Wir haben nun von der Aufgabe die Vorgabe, dass das Volumen 1<br />

Liter betragen soll. Die Formel <strong>für</strong> das Volumen eines Zylinders ist:<br />

• V:= r^2*PI*h<br />

π⋅h ⋅ r 2<br />

Die letzte Gleichung ist also unsere Nebenbedingung, mit der wir in<br />

der Gleichung <strong>für</strong> die Oberfläche einen Parameter eliminieren können.<br />

Wir lösen die Formel V der Einfachheit halber nach h auf:<br />

• L:= solve(1000 = V, h)<br />

<br />

1000<br />

π⋅r 2<br />

<br />

<br />

und setzen den Wert von h in den Funktionsterm von A ein:<br />

• A:= subs(A, h = L[1])<br />

2 ⋅π⋅r 2 + 2000 <br />

r<br />

Damit haben wir unsere Zielfunktion gefunden, die wir jetzt nur noch<br />

auf mögliche Extremstellen untersuchen müssen. Wir berechnen die<br />

erste Ableitung:<br />

33


34<br />

• A1:= diff(A, r)<br />

4 ⋅π⋅r − 2000<br />

r 2<br />

<br />

und bestimmen deren Nullstellen:<br />

• L:= solve(A1 = 0, r)<br />

<br />

3<br />

500<br />

√ <br />

<br />

3<br />

π<br />

2.4 Ein Extremwertproblem<br />

Zum Überprüfen der hinreichenden Bedingung berechnen wir die<br />

zweite Ableitung von A und setzen den <strong>für</strong> r erhaltenen Wert dort ein:<br />

• A2:= diff(A, r, r)<br />

4 ⋅π+ 4000<br />

r 3<br />

<br />

• subs(A2, r = L[1])<br />

12 ⋅π<br />

Dieser Wert ist positiv – damit haben wir ein Minimum gefunden. Nun<br />

gilt es, noch den zugehörigen Wert <strong>für</strong> die Höhe h zu bestimmen.<br />

Um h zu berechnen, setzen wir in die Gleichung V=1000 <strong>für</strong> das<br />

Volumen den berechneten Wert <strong>für</strong> r ein:<br />

• s:= subs(V = 1000, r = L[1])<br />

√ 3<br />

π<br />

⋅ 500<br />

2<br />

3<br />

⋅ h = 1000<br />

und lösen diese Gleichung schließlich nach h auf:<br />

• solve(s, h)<br />

<br />

3<br />

2 ⋅ 500<br />

√ <br />

<br />

3<br />

π


2 Grundkurs Analysis<br />

2.5 Das Arbeiten mit <strong>MuPAD</strong>-Bibliotheken<br />

Das meiste mathematische Wissen von <strong>MuPAD</strong> ist in sogenannten<br />

Bibliotheken strukturiert. <strong>Eine</strong> Bibliothek besteht aus einer Sammlung<br />

von Funktionen zur Lösung von Problemen eines speziellen Gebietes<br />

wie etwa der Linearen Algebra, der Analysis, der Algebra, der Nume-<br />

rik usw.<br />

Die <strong>MuPAD</strong>-Bibliothek numeric beispielsweise stellt eine Vielzahl<br />

an Funktionen <strong>für</strong> die Numerik bereit. Mit info erhalten Sie eine Ü-<br />

bersicht über alle Funktionen dieser Bibliothek:<br />

• info(numeric)<br />

Library 'numeric': functions for numerical<br />

mathematics<br />

-- Interface:<br />

numeric::butcher, numeric::complexRound,<br />

numeric::cubicSpline, numeric::det,<br />

numeric::eigenvalues, numeric::eigenvectors,<br />

numeric::expMatrix, numeric::fMatrix,<br />

numeric::factorCholesky, numeric::factorLU,<br />

numeric::factorQR, numeric::fft,<br />

numeric::fsolve, numeric::gldata,<br />

numeric::gtdata, numeric::indets,<br />

numeric::int, numeric::inverse,<br />

numeric::invfft, numeric::lagrange,<br />

numeric::linsolve, numeric::matlinsolve,<br />

numeric::ncdata, numeric::odesolve,<br />

numeric::odesolve2,<br />

numeric::odesolveGeometric,<br />

numeric::polyroots, numeric::polysysroots,<br />

numeric::quadrature, numeric::rationalize,<br />

numeric::realroot, numeric::realroots,<br />

numeric::singularvalues, numeric::singularvectors,<br />

numeric::solve, numeric::sort,<br />

numeric::spectralradius<br />

Nehmen wir uns einmal die Funktion numeric::fsolve zur Bestim-<br />

mung einer Nullstelle einer Funktion in einem vorgegebenen Bereich<br />

heraus:<br />

• numeric::fsolve(sin(x), x = 2..4)<br />

x = 3.141592654 <br />

35


36<br />

2.6 Hilfe, ich weiß nicht weiter ...<br />

Wie Sie an diesem Beispiel erkennen können, brauchen Funktionen<br />

einer Bibliothek nicht explizit in <strong>MuPAD</strong> eingeladen werden. Bei einer<br />

erstmaligen Verwendung wird die Funktion automatisch geladen und<br />

entsprechend dem Aufruf ausgeführt (daher kann es bei erstmaligen<br />

Aufrufen von <strong>MuPAD</strong>-Funktion zu relativ langen Ladezeiten führen;<br />

bei einer erneuten Verwendung der Funktion sind die Ausführungszei-<br />

ten entsprechend schneller).<br />

Zum interaktiven Arbeiten mit Bibliotheken bietet es sich an, ihre<br />

Funktionen zu „exportieren“, d.h. dem System global bekannt zu ma-<br />

chen. Danach sind sie direkt ohne den Namen der Bibliothek aufruf-<br />

bar. Am Beispiel der Funktion numeric::det zur Bestimmung der De-<br />

terminante einer Matrix mit numerischen Methoden sieht das dann<br />

wie folgt aus:<br />

• export(numeric, det):<br />

• det(matrix([[2, 1], [2, 2]]))<br />

2.0<br />

Funktionen einer Bibliothek lassen sich jedoch nur exportieren, wenn<br />

der Name der Funktion ein „freier“ Bezeichner, d.h. ein Bezeichner<br />

ohne Wert ist.<br />

Die wichtigste <strong>MuPAD</strong>-Bibliothek trägt den Namen stdlib. Sie<br />

enthält zentrale Funktionen des Systems wie beispielsweise diff,<br />

simplify oder int. Alle Funktionen dieser Bibliothek stehen (nur)<br />

global zur Verfügung, d.h. sie werden nicht über den Bibliotheksna-<br />

men stdlib:: angesprochen.<br />

2.6 Hilfe, ich weiß nicht weiter ...<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

?befehl Öffnet die entsprechende Hilfeseite zu einem Befehl


2 Grundkurs Analysis<br />

Kennen Sie den Namen eines <strong>MuPAD</strong>-Befehls, wissen aber nicht mehr<br />

seine genaue Bedeutung oder die exakte Aufrufsyntax, so hilft ein<br />

Blick auf die zugehörige Hilfe-Seite. Um beispielsweise die Hilfe-Seite<br />

der Funktion limit anzufordern, geben Sie den Befehl ?limit ein.<br />

Nach Ausführen des Befehles wird der Hilfe-Assistent gestartet und<br />

der Befehl limit im unteren Fenster des Hilfe-Assistenten markiert.<br />

Bestätigen Sie die Auswahl durch „Anzeigen“, woraufhin das Hilfe-<br />

System von <strong>MuPAD</strong> gestartet und die entsprechende Hilfeseite ange-<br />

zeigt wird.<br />

Das Hilfe-System von <strong>MuPAD</strong> ist hypertextbasiert. Stichworte sind<br />

farbig markiert, durch Anklicken eines dieser Stichworte kann auf die<br />

entsprechende Seite im Handbuch verzweigt werden. Sie können im<br />

Handbuch unmittelbar auf das Inhaltsverzeichnis, den Index oder auf<br />

das vorhergehende bzw. folgende Kapitel springen.<br />

Beispiele, die am Ende einer Beschreibung eines <strong>MuPAD</strong>-Befehls<br />

zu finden sind, lassen sich direkt in ein <strong>MuPAD</strong>-Notebook übertragen.<br />

Dazu genügt ein Doppelklick auf das farbig markierte Symbol >> am<br />

Beginn jedes Beispiels.<br />

Was aber, wenn Sie mit <strong>MuPAD</strong> eine bestimmte Aufgabe lösen<br />

wollen, beispielsweise das charakteristische Polynom einer Matrix be-<br />

rechnen wollen, aber den Namen der entsprechenden <strong>MuPAD</strong>-<br />

Funktion nicht kennen? Auch hier hilft Ihnen der Hilfe-Assistent, in-<br />

dem Sie entweder durch Auswahl der Registerkarte „Suchen“ nach<br />

bestimmten Wörtern (wie beispielsweise chara <strong>für</strong> charakteristisches<br />

Polynom) suchen lassen oder in der Registerkarte „Inhalt“ den Eintrag<br />

„Lineare Algebra“ auswählen, um auf die Hilfeseite der <strong>MuPAD</strong>-Biblio-<br />

thek linalg zu gelangen. Dort werden Sie schnell den gewünschten<br />

<strong>MuPAD</strong>-Befehl finden.<br />

Übungen<br />

Mit welchen <strong>MuPAD</strong>-Funktionen können Differentialgleichungen<br />

in <strong>MuPAD</strong> gelöst werden?<br />

37


38<br />

2.7 Differentialgleichungen – <strong>Eine</strong> Anwendungsaufgabe<br />

Welche <strong>MuPAD</strong>-Funktion löst lineare Gleichungssysteme?<br />

Wie lautet der Name der <strong>MuPAD</strong>-Bibliothek zur elementaren Zah-<br />

lentheorie?<br />

Suchen Sie die Seite im <strong>MuPAD</strong>-Handbuch, die Ihnen eine Übersicht<br />

über alle <strong>MuPAD</strong>-Bibliotheken liefert!<br />

Tipps<br />

<strong>Eine</strong> Demonstration der mathematischen Fähigkeiten von <strong>MuPAD</strong><br />

kann auf der Registerkarte „Inhalt“ des Hilfe-Assistenten geöff-<br />

net werden, indem der Punkt „Demonstration“ angewählt und<br />

auf den Befehl „Anzeigen“ geklickt wird.<br />

Die kontextabhängige Hilfe des Hilfe-Assistenten kann Fragen<br />

zum Hilfe-Assistenten beantworten.<br />

Die Windows-Hilfe erklärt die Benutzung des Hilfe-Assistenten.<br />

Die elektronische interaktive Buchversion des deutschen <strong>MuPAD</strong>-<br />

Tutoriums wird mit <strong>MuPAD</strong> Pro ausgeliefert. Im Menü „Hilfe“ fin-<br />

den Sie dazu den Eintrag „Tutorium öffnen“.<br />

2.7 Differentialgleichungen – <strong>Eine</strong><br />

Anwendungsaufgabe<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

ode Definiert eine Differentialgleichung<br />

solve Lösen einer Differentialgleichung<br />

S[i] Liefert das i-te Element einer Menge S<br />

Die Temperatur eines Backrohres sei beschrieben durch die folgende<br />

Gleichung:<br />

Tt () = − ⋅e −<br />

200 180<br />

<strong>Eine</strong> Pizza soll 20 Minuten bei ca. 200°C gebacken werden. Die Tem-<br />

peraturzunahme ist proportional zur Differenz der Temperatur des<br />

03 . x


2 Grundkurs Analysis<br />

Backrohres und der Pizza mit einem Proportionalitätsfaktor von 0,2.<br />

Nach wie vielen Minuten erreicht die Pizza 95% der Endtemperatur?<br />

PAD:<br />

Wir übertragen die Temperaturfunktion des Backrohres nach Mu-<br />

• T:= 200 - 180*exp(-0.3*t)<br />

− 0.3 ⋅ x − 0.3<br />

200 − 180 ⋅ e<br />

Die Temperatur der Pizza, die zugleich mit dem Einschalten in das<br />

Backrohr kommt, ergibt sich durch:<br />

dP() t<br />

= ,2 ⋅ Tt () −Pt<br />

()<br />

dt<br />

0 a f<br />

wobei P(t) die Temperatur der Pizza zum Zeitpunkt t beschreibt. Neh-<br />

men wir nun zum Zeitpunkt 0 eine Anfangstemperatur der Pizza von<br />

20°C an, so übersetzen wir dieses Anfangswertproblem nach <strong>MuPAD</strong><br />

durch folgende Anweisung:<br />

• o:= ode({diff(p(t), t) = 0.2*(T - p(t)), p(0) = 20},<br />

p(t))<br />

ode<br />

<br />

p 0 = 20, 0.2 ⋅ p t + ∂<br />

<br />

<br />

−0.3⋅t<br />

p t + 36.0 ⋅ e − 40.0 , p<br />

∂t<br />

t <br />

Diese Differentialgleichung lässt sich nun mit <strong>MuPAD</strong> über den be-<br />

kannten Befehl solve lösen:<br />

• s:= solve(o)<br />

⎧<br />

⎪⎨<br />

⎪⎩ −340.0 ⋅ e−0.2⋅t +<br />

<br />

e t 10<br />

⎫<br />

⎪⎬<br />

<br />

360.0 ⋅ e−0.2⋅t<br />

⎪⎭<br />

<strong>Eine</strong> Antwort auf unsere Ausgangsfrage erhalten wir dann wie folgt:<br />

• solve(s[1] = 200*0.95, t)<br />

Die symbolische Lösung ist etwas komplexer in der Ausgabe, daher<br />

haben wir sie hier nicht angegeben.<br />

39


40<br />

3. Lineare Algebra<br />

3.1 Erstellen von Matrizen<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

linalg Die <strong>MuPAD</strong>-Bibliothek zur Linearen Algebra<br />

matrix Erzeugen von Matrizen und Vektoren<br />

Um Ihnen einen Einstieg in die Lineare Algebra zu geben, lernen wir<br />

in diesem Abschnitt, wie sich Matrizen in <strong>MuPAD</strong> erstellen lassen und<br />

wie mit ihnen gerechnet wird. Zudem werden wir einen kleinen Ein-<br />

blick in die Bibliothek linalg von <strong>MuPAD</strong> bekommen, die eine Reihe<br />

von Funktionen aus dem Gebiet der Linearen Algebra umfasst.<br />

3.1 Erstellen von Matrizen<br />

Wir geben die folgende Matrix in <strong>MuPAD</strong> ein:<br />

⎛ ⎞<br />

14033<br />

⎜ ⎟<br />

⎝20020⎠<br />

70321<br />

• matrix([[1, 4, 0, 3, 3], [2, 0, 0, 2, 0], [7, 0, 3, 2,<br />

1]])<br />

<br />

1 4 0 3 3<br />

2 0 0 2 0<br />

7 0 3 2 1<br />

Wir erzeugen eine Matrix also mit dem <strong>MuPAD</strong>-Befehl matrix,<br />

dem in runden Klammern als Argument die Einträge der Matrix pro<br />

Zeile in einem Paar eckiger Klammern [...] angegeben wird.<br />

Übung<br />

Testen Sie einige Eingaben, auch Eingaben, die vermutlich von<br />

<strong>MuPAD</strong> nicht als korrekt akzeptiert werden! Was passiert, wenn<br />

man Zeilen mit unterschiedlicher Anzahl an Elementen eingibt?<br />

Wir geben einige spezielle Schreibweisen an:


• A:= matrix([[8, 3, 5, 6]])<br />

8356 <br />

3 Lineare Algebra<br />

Vergleichen wir diese Matrix (eine 1x4-Matrix, auch Zeilenvektor mit<br />

4 Einträgen genannt) mit der 4x1-Matrix:<br />

• A:= matrix([8, 3, 5, 6])<br />

⎛ ⎞<br />

8<br />

⎜<br />

⎜3<br />

⎟<br />

⎜<br />

⎟<br />

⎝5<br />

⎠<br />

6<br />

so sehen wir, dass uns <strong>MuPAD</strong> hier die Eingabe der Matrix erleichtert,<br />

denn eigentlich hätten wir ja konsistenterweise die Matrix wie folgt<br />

angeben müssen (was wir natürlich auch tun können):<br />

• A:= matrix([[8], [3], [5], [6]])<br />

⎛ ⎞<br />

8<br />

⎜<br />

⎜3<br />

⎟<br />

⎜<br />

⎟<br />

⎝5<br />

⎠<br />

6<br />

Über die Befehlsleiste von <strong>MuPAD</strong> Pro können Sie Matrizen sehr<br />

leicht eingeben. Klicken Sie dazu auf das entsprechende Matrixsymbol<br />

und wählen Sie die passende Zeilen- und Spaltenzahl aus. Für eine<br />

4x4-Matrix wird dann der folgende Text in die aktuelle Eingaberegion<br />

eingefügt:<br />

• matrix([[%?,%?,%?,%?], [%?,%?,%?,%?], [%?,%?,%?,%?],<br />

[%?,%?,%?,%?]])<br />

Mit bzw. springen Sie auf den Einträgen %? vor<br />

und zurück.<br />

Übungen<br />

Erstellen Sie einen Zeilenvektor mit den Einträgen 1,2,3.<br />

Versuchen Sie, in <strong>MuPAD</strong> die drei Einheitsvektoren des IR 3 ein-<br />

zugeben.<br />

41


42<br />

3.2 Zeilen- und Spaltenzahl einer Matrix<br />

Geben Sie ein Beispiel einer Diagonalmatrix an!<br />

Erstellen Sie die 4x5-Nullmatrix!<br />

3.2 Zeilen- und Spaltenzahl einer Matrix<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

linalg::ncols Anzahl der Spalten einer Matrix<br />

linalg::nrows Anzahl der Zeilen einer Matrix<br />

Um die Zeilenzahl und Spaltenzahl einer Matrix zu erhalten, bietet<br />

<strong>MuPAD</strong> die Befehle linalg::ncols (number of columns, englisch:<br />

Anzahl an Spalten) und linalg::nrows (number of rows, englisch:<br />

Anzahl an Zeilen) an:<br />

• M:= matrix([[1, 7], [3, 1], [1.5, 0]])<br />

<br />

1<br />

<br />

7<br />

3 1<br />

1.5 0<br />

• linalg::ncols(M)<br />

2<br />

• linalg::nrows(M)<br />

3<br />

3.3 Zugriff auf die Einträge einer Matrix<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

A[i, j] Koeffizient der i-ten Zeile und j-ten Spalte von A<br />

linalg::col Extrahieren von Spalten einer Matrix<br />

linalg::row Extrahieren von Zeilen einer Matrix


3 Lineare Algebra<br />

Um auf die Koeffizienten einer Matrix zuzugreifen, verwendet man<br />

den Operator []. Dazu ein Beispiel:<br />

• M:= matrix([[1, 4, 0, -1], [3, 4, 7, 8], [-5, -6, 7,<br />

1]])<br />

1 4 0 − 1<br />

3 4 7 8<br />

− 5 − 6 7 1<br />

<br />

Den Koeffizienten der 2. Zeile und 1. Spalte erhalten wir dann wie<br />

folgt:<br />

• M[2, 1]<br />

3<br />

Weitere Beispiele:<br />

• M[1, 3]<br />

0<br />

• M[2, 3]<br />

7<br />

Auf ähnliche Weise lassen sich Einträge einer Matrix ändern, ohne<br />

gleich die gesamte Matrix neu erstellen zu müssen:<br />

• M[1, 3]:= 2<br />

• M<br />

1 4 2 − 1<br />

3 4 7 8<br />

− 5 − 6 7 1<br />

<br />

Wie wir sehen, haben wir den Eintrag der 1. Zeile und 3. Spalte durch<br />

den Wert 2 ersetzt.<br />

Schließlich lassen sich über den Klammernoperator nicht nur ein-<br />

zelne Einträge, sondern ganze Teilmatrizen extrahieren:<br />

43


44<br />

• M1:= M[1..3, 2..3]<br />

<br />

4<br />

<br />

2<br />

4 7<br />

− 6 7<br />

• zeile1:= M[1..1, 1..4]<br />

( 1 4 2 − 1 )<br />

3.4 Elementare Matrixrechnung<br />

Zum Extrahieren von Zeilen und Spalten stehen aber auch die Funkti-<br />

onen linalg::row und linalg::col zur Verfügung:<br />

• zeile1:= linalg::row(M, 1)<br />

( 1 4 2 − 1 )<br />

• spalten132:= linalg::col(M, [1, 3, 2])<br />

Übungen<br />

<br />

1<br />

<br />

3<br />

− 5<br />

,<br />

<br />

2 4<br />

7 , 4<br />

7 − 6<br />

Was passiert, wenn man eine Zeilennummer (Spaltennummer)<br />

angibt, die größer als die Zeilenzahl (Spaltenzahl) der Matrix ist?<br />

Erstellen Sie mit <strong>MuPAD</strong> die Matrix X =<br />

F<br />

G<br />

HG<br />

1 −2<br />

1 5<br />

3 0 1 1<br />

2 2 2 2<br />

0 2 1 12<br />

I<br />

J<br />

KJ<br />

. Definieren<br />

Sie nun diejenigen 2x2-Teilmatrizen A,B,C und D, so dass gilt:<br />

X<br />

A B<br />

= F H G I K J .<br />

C D<br />

3.4 Elementare Matrixrechnung<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

linalg::transpose Transponierte einer Matrix<br />

+ Matrixaddition


3 Lineare Algebra<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

* Matrixmultiplikation<br />

^(-1) Matrixinversion<br />

Zur Matrixrechung erstellen wir uns zwei Beispielmatrizen mit symbo-<br />

lischen Einträgen:<br />

• A:= matrix([[a11, a12], [a21, a22]])<br />

<br />

a11 a12<br />

a21 a22<br />

• B:= matrix([[b11, b12], [b21, b22]])<br />

<br />

b11 b12<br />

b21 b22<br />

die wir wie folgt addieren und multiplizieren können:<br />

• A + B<br />

<br />

• A * B<br />

<br />

<br />

a11 + b11 a12 + b12<br />

a21 + b21 a22 + b22<br />

<br />

a11 ⋅ b11 + a12 ⋅ b21 a11 ⋅ b12 + a12 ⋅ b22<br />

a21 ⋅ b11 + a22 ⋅ b21 a21 ⋅ b12 + a22 ⋅ b22<br />

Natürlich ist es auch möglich, Matrizen in <strong>MuPAD</strong> zu invertieren, was<br />

sehr angenehm ist, da gerade diese Operation – ähnlich wie das Lö-<br />

sen von Gleichungssystemen – in der Regel recht aufwendig ist, aber<br />

mathematisch nicht unbedingt eine große Herausforderung darstellt.<br />

Zur Bestimmung der Inversen beispielsweise der Matrix:<br />

45


46<br />

3.4 Elementare Matrixrechnung<br />

• A:= matrix([<br />

[2, 0, 1, 3, 5], [4, 1, -1, 0, 4], [1, -1, 1, 0, 1],<br />

[0, 2, 1, -6, 7], [-1, -2, 0, 3, 4]<br />

])<br />

⎛<br />

2<br />

⎜<br />

4<br />

⎜<br />

⎝<br />

1<br />

0<br />

0<br />

1<br />

− 1<br />

2<br />

1<br />

− 1<br />

1<br />

1<br />

3 5<br />

0 4<br />

0 1<br />

− 6 7<br />

− 1 − 2 0 3 4<br />

⎞<br />

⎟<br />

⎠<br />

müssen wir die Anweisung 1/A oder auch A^(-1) eingeben:<br />

• iA:= 1/A<br />

⎛<br />

−<br />

⎜<br />

⎝<br />

1 6 62<br />

49 35 245 − 3 5<br />

49 − <br />

49<br />

17 4<br />

49 − 123<br />

35 − 2<br />

245 49 − 13 <br />

49<br />

17 11<br />

49 − 73 2<br />

35 245 49 − 13 <br />

49<br />

29 2<br />

147 − 44<br />

35 − 11<br />

245 − 2<br />

147 − <br />

147<br />

1 13<br />

− 3 5<br />

1<br />

49<br />

35<br />

245<br />

Wir überprüfen das Resultat:<br />

• iA * A; A * iA<br />

⎛<br />

10000<br />

⎜<br />

01000<br />

⎜<br />

⎝<br />

00100<br />

00010<br />

00001<br />

⎛<br />

10000<br />

⎜<br />

01000<br />

⎜<br />

⎝<br />

00100<br />

00010<br />

00001<br />

⎞<br />

⎟<br />

⎠<br />

⎞<br />

⎟<br />

⎠<br />

49<br />

49<br />

⎞<br />

⎟<br />

⎠<br />

Ist eine Matrix nicht invertierbar, so liefert <strong>MuPAD</strong> als Ergebnis FAIL<br />

zurück.<br />

Übung<br />

Gegeben seien die Matrizen A, B, C und D mit<br />

F I<br />

HG KJ F I = HG KJ = F HG I<br />

KJ = − F<br />

HG<br />

2 0 0 −1<br />

1 2 1 0<br />

A= , B , C , D .<br />

1 −1<br />

3 3 3 4 0 −1<br />

Übertragen Sie diese Matrizen nach <strong>MuPAD</strong> und berechnen Sie:<br />

I K J


3 Lineare Algebra<br />

A⋅ ( B + C) + A⋅ C ⋅D,( −A−( B − ( A + C − ( B + C) − D))),<br />

T<br />

A −2 ⋅A⋅B⋅D⋅A⋅D⋅B⋅D. Hinweis: Das hochgestellte T bezeichnet<br />

die transponierte Matrix, die über linalg::transpose(A) be-<br />

rechnet werden kann.<br />

3.5 Weitere Tipps zur Eingabe von Matrizen<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

Diagonal Option <strong>für</strong> matrix: Erzeugung von Diagonal-<br />

matrizen<br />

-> Definition einer Abbildung (Funktion)<br />

Diagonalmatrizen lassen sich direkt über die Angabe der Option<br />

Diagonal erstellen:<br />

• matrix(4, 4, 1, Diagonal)<br />

⎛<br />

1 0 0 0<br />

⎜⎜<br />

⎝<br />

0 1 0 0<br />

0 0 1 0<br />

0 0 0 1<br />

⎞<br />

⎟<br />

⎠<br />

• matrix(4, 4, x -> x^2, Diagonal)<br />

⎛<br />

1 0 0<br />

⎜<br />

⎝<br />

0 4 0<br />

0 0 9<br />

0<br />

0<br />

0<br />

0 0 0 16<br />

⎞<br />

⎟<br />

⎠<br />

• matrix(3, 4, [1, 2, 1], Diagonal)<br />

<br />

1000<br />

0200<br />

0010<br />

Anstelle eine Liste von Zeilen anzugeben, lassen sich Matrizen erstel-<br />

len, deren Einträge aus einer Funktion berechnet werden:<br />

47


48<br />

3.6 Über den Koeffizientenbereich von Matrizen<br />

• matrix(3, 4, (i,j) -> (i^2 + j^2))<br />

<br />

2<br />

<br />

5 10 17<br />

5 8 13 20<br />

10 13 18 25<br />

3.6 Über den Koeffizientenbereich von Matrizen<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

Dom::Matrix Matrixerzeuger <strong>für</strong> Matrizen über Koeffizientenbe-<br />

reiche<br />

Dom::Integer Bereich der ganzen Zahlen<br />

Dom::Rational Körper der rationalen Zahlen<br />

Wir haben uns bisher nicht viele Gedanken über den Typ der Einträge<br />

einer Matrix gemacht. In <strong>MuPAD</strong> hat man aber die Möglichkeit, die<br />

Menge von Matrizen über einem bestimmten Koeffizientenbereich zu<br />

betrachten. Das machen wir beispielsweise über den rationalen Zah-<br />

len wie folgt:<br />

• MQ:= Dom::Matrix(Dom::Rational):<br />

• A:= MQ([[1, -3, 3], [3, -5, 3], [6, -6, 4]])<br />

<br />

1 − 3 3<br />

3 − 5 3<br />

6 − 6 4<br />

Berechnen wir nun die Inverse dieser Matrix:<br />

• 1/A<br />

⎛<br />

3<br />

− 8 ⎜ 7<br />

⎝ − 8<br />

3<br />

−<br />

− 1<br />

8<br />

3<br />

8<br />

3<br />

4<br />

3<br />

8<br />

3<br />

8<br />

1<br />

4 4<br />

⎞<br />

⎟<br />

⎠<br />

so erkennen wir, dass die Einträge dieser Matrix rationale Zahlen<br />

sind, während die Matrix A ausschließlich ganze Zahlen als Einträge<br />

besitzt.


3 Lineare Algebra<br />

Definieren wir nun die Matrix A explizit über den ganzen Zahlen:<br />

• MZ:= Dom::Matrix(Dom::Integer):<br />

• A2:= MZ(A)<br />

<br />

1 − 3 3<br />

3 − 5 3<br />

6 − 6 4<br />

und berechnen dann die Inverse dieser Matrix, so erhalten wir die fol-<br />

gende Antwort von <strong>MuPAD</strong>:<br />

• 1/A2<br />

FAIL<br />

Die Matrix ist also über dem festgelegten Koeffizientenbereich nicht<br />

invertierbar, so wie wir es erwartet haben.<br />

Wir können auch als Koeffizienten beliebige Einträge zulassen, mit<br />

denen wir rechnen können (also insbesondere auch Parameter):<br />

• A:= matrix([[2, 3], [a, 4]])<br />

<br />

• A^2<br />

<br />

<br />

2 3<br />

a 4<br />

<br />

3 ⋅ a + 4 18<br />

6 ⋅ a 3 ⋅ a + 16<br />

Tipp<br />

<strong>MuPAD</strong> stellt mit den Bibliotheken Dom eine Vielzahl an Koeffizientenbereichen<br />

<strong>für</strong> Matrizen zur Verfügung, u.a. Dom::Integer,<br />

Dom::Rational, Dom::Real, Dom::Float und Dom::Complex.<br />

49


50<br />

3.6 Über den Koeffizientenbereich von Matrizen<br />

4. Die linalg-Bibliothek<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

linalg::matlinsolve Lösung linearer Gleichungssysteme<br />

linalg::eigenvectors Eigenvektoren einer Matrix<br />

linalg::charpoly charakteristisches Polynom einer Matrix<br />

linalg::jordanForm Jordan’sche Normalform einer Matrix<br />

linalg::gaussElim Gauß-Elimination<br />

linalg::addRow Addieren einer Zeile zu einer anderen<br />

linalg::addCol Addieren einer Spalte zu einer anderen<br />

linalg::multRow Multiplikation einer Zeile mit einem Skalar<br />

linalg::multCol Multiplikation einer Spalte mit einem Skalar<br />

linalg::expr2Matrix Umwandlung von linearen Gleichungssys-<br />

temen in Matrixschreibweise<br />

Die <strong>MuPAD</strong>-Bibliothek linalg stellt eine Reihe an wichtigen Funktio-<br />

nen aus dem Gebiet der Linearen Algebra zur Verfügung. <strong>Eine</strong>n Über-<br />

blick über den Umfang des Paketes erhalten wir mit der Funktion in-<br />

fo:<br />

• info(linalg)<br />

Library 'linalg': the linear algebra package<br />

-- Interface:<br />

linalg::addCol, linalg::addRow,<br />

linalg::adjoint,<br />

linalg::angle, linalg::basis,<br />

linalg::charmat,<br />

linalg::charpoly, linalg::col,<br />

linalg::companion,<br />

linalg::concatMatrix, linalg::crossProduct, ...<br />

-- Exported:<br />

conjugate, exp, norm, normal<br />

Aufgrund ihrer Größe wurde die Ausgabe hier nur ausschnittsweise<br />

widergegeben.


4 Die linalg-Bibliothek<br />

Wir wollen nun einige Funktionen aus der Bibliothek zur Linearen<br />

Algebra kennen lernen und beginnen mit der Erstellung einer Bei-<br />

spielmatrix:<br />

• A:= matrix([[1, -3, 3], [3, -5, 3], [6, -6, 4]])<br />

<br />

1 − 3 3<br />

3 − 5 3<br />

6 − 6 4<br />

Das System der Eigenwerte und Eigenvektoren von A liefert uns die<br />

folgende Funktion:<br />

• linalg::eigenvectors(A)<br />

⎡<br />

<br />

⎢<br />

⎣ − 2, 2,<br />

⎡<br />

<br />

1 − 1 ⎢<br />

1 , 0 , ⎣4, 1,<br />

0 1<br />

⎡ ⎛<br />

1<br />

⎢ ⎜2<br />

⎣ ⎝1<br />

2<br />

1<br />

⎞⎤<br />

⎤⎤<br />

⎟⎥<br />

⎥⎥<br />

⎠⎦<br />

⎦⎦<br />

Das Ergebnis besteht in diesem Fall aus einer Liste von zwei Teillis-<br />

ten. In jeder Teilliste steht zuerst der entsprechende Eigenwert (hier<br />

-2 und 4), dann dessen algebraische Vielfachheit (hier 2 und 1, d.h.<br />

-2 ist eine doppelte Nullstelle des charakteristischen Polynoms von<br />

A), und schließlich eine Liste von Eigenvektoren zum jeweiligen Ei-<br />

genwert. Diese Folge von Eigenvektoren bildet jeweils ein Eigensys-<br />

tem zum entsprechenden Eigenwert.<br />

folgt:<br />

Das charakteristische Polynom einer Matrix bestimmen wir wie<br />

• linalg::charpoly(A, x)<br />

x 3 − 12 ⋅ x − 16<br />

Dabei übergeben wir dieser Funktion als 2. Parameter die Unbe-<br />

stimmte des charakteristischen Polynoms (hier: x).<br />

Die Diagonalisierung einer Matrix führen wir direkt über die fol-<br />

gende Anweisung aus:<br />

51


52<br />

4.1 Lineare Abhängigkeit und Unabhängigkeit von Vektoren<br />

• linalg::jordanForm(A)<br />

<br />

− 2 0 0<br />

<br />

0 4 0<br />

0 0 − 2<br />

Das Paket stellt auch Funktionen <strong>für</strong> die elementaren Zeilen- und<br />

Spaltenoperationen zur Verfügung, z.B. linalg::addRow und li-<br />

nalg::addCol, linalg::multCol und linalg::multRow, usw. Damit<br />

lassen sich z.B. die einzelnen Rechenoperationen des Gauß-<br />

Verfahrens schrittweise durchführen.<br />

Übungen<br />

Was macht die Funktion linalg::gaussElim? Welche Informationen<br />

liefert uns die Option All dieser Funktion?<br />

Wie berechnet man die Determinante einer quadratischen Matrix<br />

in <strong>MuPAD</strong>? Geben Sie Beispiele an!<br />

Berechnen Sie die allgemeine Lösung des folgenden Systems linearer<br />

Gleichungen: x + y+ z = 10, 2x − y+ z = 8, 3x + 2z = 18.<br />

Verwen-<br />

den Sie da<strong>für</strong> die Funktionen linalg::expr2Matrix und li-<br />

nalg::matlinsolve! Finden Sie heraus, mit welcher Funktion<br />

der Standard-Bibliothek Sie dieses System auch direkt lösen<br />

können!<br />

4.1 Lineare Abhängigkeit und Unabhängigkeit von<br />

Vektoren<br />

Wir wollen nun Vektoren auf lineare Abhängigkeit bzw. Unabhängig-<br />

keit untersuchen. Wie so oft lernt man den Umgang mit Vektoren in<br />

<strong>MuPAD</strong> am besten anhand von Beispielen.


4 Die linalg-Bibliothek<br />

Dazu betrachten wir zunächst die folgenden drei Vektoren:<br />

F<br />

G<br />

HG<br />

I<br />

1 1 0<br />

1 1<br />

2J<br />

, 4 0 J<br />

G<br />

J,<br />

J<br />

G<br />

J . Der Ansatz a⋅ J<br />

G 2 b c G<br />

J + ⋅ J<br />

G4<br />

G<br />

J + ⋅ J −1<br />

2 1<br />

−1<br />

2<br />

K<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

K<br />

homogenes lineares Gleichungssystem:<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

K<br />

F<br />

G<br />

HG<br />

F<br />

G<br />

HG<br />

I<br />

J<br />

K<br />

53<br />

J =<br />

0<br />

0 0 führt dann auf ein<br />

1<br />

I<br />

1 1 0<br />

2 4 0 J −1<br />

2 1<br />

⋅<br />

K<br />

F<br />

G<br />

HG<br />

I<br />

J<br />

K<br />

J =<br />

a<br />

b<br />

c<br />

Besitzt dieses System als einzige Lösung a= b= c=<br />

0, so sind die<br />

Vektoren linear unabhängig, anderenfalls linear abhängig.<br />

Wir erstellen die drei Vektoren in <strong>MuPAD</strong>:<br />

• v1:= matrix([1, 2, -1]):<br />

• v2:= matrix([1, 4, 2]):<br />

• v3:= matrix([0, 0, 1]):<br />

und erhalten die entsprechende Koeffizientenmatrix des linearen Glei-<br />

chungssystems wie folgt:<br />

• A:= v1 . v2 . v3<br />

<br />

1<br />

<br />

1 0<br />

2 4 0<br />

− 1 2 1<br />

Der Punktoperator fügt also in diesem Kontext Vektoren zu einer Mat-<br />

rix zusammen.<br />

In <strong>MuPAD</strong> können wir das Gleichungssystem mit dem Befehl<br />

• linalg::matlinsolve(A, matrix([0, 0, 0]))<br />

<br />

0<br />

0<br />

0<br />

lösen. Ihr werden die Koeffizientenmatrix und der Rechte-Seite-<br />

Vektor als Parameter übergeben.<br />

Wir erhalten das Ergebnis a= b= c=<br />

0, d.h. die Vektoren sind linear<br />

unabhängig.<br />

Wir wissen, dass in einem dreidimensionalen Vektorraum eine<br />

Menge von drei linear unabhängigen Vektoren eine Basis bildet. Fer-<br />

F<br />

G<br />

HG<br />

0<br />

0<br />

0<br />

I<br />

J<br />

KJ<br />

.


54<br />

4.1 Lineare Abhängigkeit und Unabhängigkeit von Vektoren<br />

ner ist uns bekannt, dass jeder Vektor<br />

F<br />

G<br />

H<br />

G<br />

a<br />

a<br />

a<br />

1<br />

2<br />

3<br />

I<br />

J<br />

K<br />

J<br />

des Vektorraumes eindeu-<br />

tig bestimmte Koordinaten bezüglich dieser Basis haben muss, d.h. es<br />

gibt eindeutig bestimmte Zahlen x1, x2, x3,<br />

so dass gilt:<br />

F 1I<br />

F1I<br />

F0I<br />

a1<br />

x1⋅G2x2 4 x3<br />

0 a2<br />

G<br />

J + ⋅ J<br />

G<br />

J + ⋅ J<br />

G<br />

J −1<br />

2 1 a<br />

=<br />

F I<br />

G<br />

J . Wir wollen nun versuchen, im Falle des<br />

J<br />

H<br />

K<br />

Vektors<br />

F<br />

G<br />

HG<br />

1<br />

2<br />

3<br />

H<br />

I<br />

J<br />

KJ<br />

K<br />

H<br />

K<br />

H<br />

3<br />

K<br />

seine Koordinaten bezüglich der Basis aus unseren drei<br />

Vektoren zu bestimmen. Das ist ganz einfach, denn wir müssen ledig-<br />

lich das inhomogene lineare Gleichungssystem<br />

F<br />

G<br />

HG<br />

I<br />

1 1 0<br />

2 4 0 J −1<br />

2 1<br />

⋅<br />

lösen. Das machen wir ganz analog zur obigen Vorgehensweise:<br />

• linalg::matlinsolve(A, matrix([1, 2, 3]))<br />

<br />

1<br />

0<br />

4<br />

Für einen beliebigen Vektor<br />

lung wie folgt:<br />

F<br />

G<br />

H<br />

G<br />

a<br />

a<br />

a<br />

1<br />

2<br />

3<br />

I<br />

J<br />

K<br />

J<br />

K<br />

F<br />

G<br />

H<br />

G<br />

x<br />

x<br />

x<br />

1<br />

2<br />

3<br />

I<br />

J<br />

K<br />

J =<br />

erhalten wir die Koordinatendarstel-<br />

• L:=linalg::matlinsolve(A, matrix([a1, a2, a3]))<br />

⎛<br />

⎜<br />

⎝<br />

4 ⋅ a1 −<br />

2 ⋅ a1 − a2 <br />

2<br />

− a1 + a2 <br />

2<br />

+ a3<br />

3 ⋅ a2<br />

2<br />

⎞<br />

⎟<br />

⎠<br />

Das ist die allgemeine Lösung des obigen Gleichungssystems, was wir<br />

sofort nachprüfen können:<br />

F<br />

G<br />

HG<br />

1<br />

2<br />

3<br />

I<br />

J<br />

KJ


4 Die linalg-Bibliothek<br />

• L[1] * v1 + L[2] * v2 + L[3] * v3<br />

<br />

a1<br />

a2<br />

a3<br />

Übungen<br />

Prüfen Sie die Vektoren<br />

bzw. Unabhängigkeit!<br />

F<br />

G<br />

HG<br />

I<br />

55<br />

2 3 −1<br />

1J,<br />

0 2 J<br />

G<br />

J,<br />

J<br />

G<br />

J auf lineare Abhängigkeit<br />

J<br />

1 −1<br />

0<br />

K<br />

F<br />

H<br />

Zeigen Sie mit <strong>MuPAD</strong>: Zwei Vektoren des IR 3 sind genau dann<br />

linear abhängig, wenn sie skalare Vielfache voneinander sind.<br />

4.2 <strong>Eine</strong> Anwendung aus der Analytischen Geometrie<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

linalg::angle Berechnung des Winkels zwischen zwei Vekto-<br />

ren<br />

Wir betrachten die Ebene Ex : l m<br />

2 1 −3<br />

= G 1 G<br />

J + ⋅ − J<br />

G 1 G<br />

J + ⋅ J<br />

G 1 G<br />

−1<br />

−1<br />

4<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

J<br />

KJ<br />

F<br />

H<br />

I<br />

K<br />

I<br />

K<br />

F<br />

H<br />

F<br />

H<br />

I<br />

K<br />

I<br />

K<br />

F<br />

H<br />

I<br />

J<br />

K<br />

J<br />

und eine Gerade<br />

gx : k<br />

3 4<br />

= G0<br />

G<br />

J + ⋅ − J<br />

G 1 . Gesucht ist der Schnittpunkt von Gerade und Ebene.<br />

G 1 2<br />

F I<br />

G<br />

H<br />

G<br />

K<br />

Wir setzen dazu die Ebenen- und die Geradengleichung gleich<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

K<br />

3 4 2 1 3 1 3 4 1 1 3 4<br />

0J<br />

+ ⋅ 1 1 1 1 1 1 1 1 1 1 1<br />

J<br />

G−<br />

G<br />

J 1 2 1 1 4 1 4 2 2 1 4 2<br />

=<br />

−<br />

− −<br />

G<br />

J + ⋅ − J<br />

G<br />

J + ⋅ J<br />

G<br />

J ⇔ ⋅ − J<br />

G<br />

J + ⋅ J<br />

G<br />

J + ⋅ J<br />

G = G<br />

G−<br />

G<br />

J − −<br />

−<br />

−<br />

⇔<br />

− −<br />

− J − −<br />

⋅<br />

l<br />

k l m l m k<br />

m<br />

k<br />

und erhalten als Koeffizientenmatrix des linearen Gleichungssys-<br />

tems nach dieser Umformung:<br />

F<br />

H<br />

I<br />

K<br />

F<br />

H<br />

I<br />

J<br />

K<br />

J<br />

F<br />

H<br />

I<br />

K<br />

F<br />

G<br />

H<br />

G<br />

I F<br />

G<br />

K H<br />

G<br />

I<br />

J<br />

K<br />

J<br />

F<br />

1<br />

= G−1<br />

G 2<br />

H<br />

I<br />

J<br />

K<br />

J


56<br />

4.2 <strong>Eine</strong> Anwendung aus der Analytischen Geometrie<br />

• A:= matrix([[1, -3, -4], [-1, 1, 1], [-1, 4, -2]])<br />

<br />

1<br />

<br />

− 3 − 4<br />

− 1 1 1<br />

− 1 4 − 2<br />

Als rechte Seite des Systems erhält man nach obiger Rechnung den<br />

Vektor:<br />

• b:= matrix([1, -1, 2])<br />

<br />

1<br />

− 1<br />

2<br />

Das lösen wir wie bereits im vorhergehenden Abschnitt durch die fol-<br />

gende Anweisung:<br />

• L:= linalg::matlinsolve(A, b)<br />

⎛<br />

⎜<br />

⎝<br />

<br />

6<br />

5<br />

3<br />

5<br />

− 2 <br />

5<br />

⎞<br />

⎟<br />

⎠<br />

Die dritte Komponente des Lösungsvektors liefert uns den Wert, den<br />

wir <strong>für</strong> k in die obige Geradengleichung einsetzen müssen. Wir erhal-<br />

ten damit die folgenden Koordinaten <strong>für</strong> den Schnittpunkt von Gerade<br />

und Ebene:<br />

• matrix([3, 0, 1]) + L[3] * matrix([4, -1, 2])<br />

⎛<br />

7<br />

5 ⎜<br />

⎜2<br />

⎝5<br />

<br />

1<br />

5<br />

Übungen<br />

⎞<br />

⎟<br />

⎠<br />

Für die Multiplikation und Addition von Matrizen gilt das Distributivgesetz,<br />

d.h. es ist A⋅ B+ C = A⋅ B+ A⋅C a f . Rechnen Sie nach, dass<br />

dies <strong>für</strong> alle 2x2 Matrizen korrekt ist. Hinweis: Verwenden Sie die<br />

Funktionen expand.


Für welche x ist die Matrix<br />

bar?<br />

4 Die linalg-Bibliothek<br />

F<br />

G<br />

HG<br />

x−1 x− 1 x+<br />

2<br />

x−1 2x− 3 x+<br />

5<br />

2( x−1) 3x− 4 3x+ 4<br />

I<br />

J<br />

KJ<br />

57<br />

nicht invertier-<br />

Hinweis: Berechnen Sie die Determinante von A. Die Determi-<br />

nante von A ist ein Polynom in x, dessen Nullstellen die gesuch-<br />

ten Werte <strong>für</strong> x sind, <strong>für</strong> die A nicht invertierbar ist. Verwenden<br />

Sie die Funktionen linalg::det, solve.<br />

Gegeben seien die Matrizen A und B mit<br />

A =<br />

F<br />

G<br />

HG<br />

I<br />

0 −2<br />

x 1 3 0<br />

2 3 −2J,<br />

B = − J<br />

G0<br />

2 3 G<br />

J . Für welche x ∈IR ist die Summe<br />

J<br />

0 4 −4<br />

x −3<br />

5<br />

K<br />

von A und B nicht invertierbar?<br />

F<br />

H<br />

I<br />

K<br />

Bestimmen Sie die allgemeine Lösung des linearen Gleichungs-<br />

F<br />

G<br />

H<br />

1 2 0 4<br />

4<br />

systems Ax = b mit: A= −1 G<br />

8<br />

−2 1<br />

−1 18 17<br />

, b=<br />

.<br />

−6<br />

−8<br />

J G J<br />

2 4 1 10 11<br />

Es seien die Punkte A, B, C und D im IR 3 wie folgt gegeben: A(1<br />

; 2 ; 3), B = (-1 ; 0 ; 2) und C = (-1 ; 2 ; -3) sowie D = (0 ; 4 ;<br />

4). Bestimmen Sie die Geradengleichungen der Gerade G1 durch<br />

die Punkte A und B und der Gerade G2 durch die Punkte C und<br />

D. Bestimmen Sie den Winkel, in dem die Richtungsvektoren von<br />

G1 und G2 zueinander liegen. Hinweis: Verwenden Sie die Funk-<br />

tion linalg::angle.<br />

Zeigen Sie mit <strong>MuPAD</strong>, dass <strong>für</strong> beliebige 3x3 Matrizen A und B<br />

folgendes gilt: det( A⋅ B) = det( A) ⋅ det( B)<br />

. Hinweis: Verwenden Sie die<br />

Funktionen linalg::det und expand.<br />

I<br />

J<br />

K<br />

F<br />

G<br />

H<br />

3<br />

I<br />

J<br />

K


58<br />

5.1 Kombinatorische Berechnungen<br />

5. Kombinatorik und Wahrscheinlichkeitsrechnung<br />

Dieses Kapitel soll Ihnen einen Einblick in die Einsatzmöglichkeiten<br />

von <strong>MuPAD</strong> in der Stochastik geben.<br />

5.1 Kombinatorische Berechnungen<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

fact Fakultät<br />

binomial Bestimmung des Binomialkoeffizienten<br />

Wir beginnen dazu mit einfachen Aufgaben aus der Kombinatorik:<br />

1. Wir werfen mit einem idealen Würfel 30 mal und legen Wert auf<br />

die Reihenfolge der Wurfergebnisse. Dann gibt es:<br />

• 6^30<br />

221073919720733357899776<br />

verschiedene Wurfergebnisse.<br />

2. Es sollen 25 Personen auf 25 Plätze verteilt werden. Wie viele<br />

mögliche Sitzverteilungen gibt es dabei? Die Antwort lautet:<br />

• fact(25)<br />

15511210043330985984000000<br />

Für 100 Personen und 100 Plätze lautet das Ergebnis:<br />

• fact(100)<br />

9332621544394415268169923885626670049071596826438162146<br />

8592963895217599993229915608941463976156518286253697920<br />

827223758251185210916864000000000000000000000000<br />

Nun, diese Zahl ist wirklich so groß, dass wir sie gar nicht mehr<br />

überblicken können. Um eine Vorstellung von dieser Zahl zu erlan-<br />

gen, führen wir die Berechnung wie folgt aus:<br />

• float(fact(100))


5 Kombinatorik und Wahrscheinlichkeitsrechnung<br />

9.332621545 ⋅ 10 157<br />

Geben wir den 100 Personen <strong>für</strong> das Wechseln von einer Sitzord-<br />

nung zur nächsten 15 Minuten Zeit, so würde es:<br />

• float(fact(100)/35040)<br />

2.663419391 ⋅ 10 153<br />

Jahre dauern, um alle Sitzordnungen auszuprobieren.<br />

3. Alle möglichen Ziehungsergebnisse beim Lotto „6 aus 49“ erhalten<br />

wir bekannterweise wie folgt:<br />

• binomial(49, 6)<br />

13983816<br />

Die Wahrscheinlichkeit, im Lotto „6 aus 49“ genau 6 Richtige zu<br />

erhalten, ist also näherungsweise:<br />

• float(1/binomial(49, 6))<br />

Übungen<br />

0.00000007151123842<br />

Machen Sie sich ein wenig mit den Funktionen fact und binomi-<br />

al vertraut. Experimentieren Sie ruhig auch mit großen Zahlen –<br />

Ihnen sind dabei (fast) keine Grenzen gesetzt.<br />

Wir werfen eine Münze 20 mal. Wie viele mögliche Wurfergebnisse<br />

gibt es?<br />

Bei einem Kartenspiel erhält man 8 aus 32 Karten. Wie viele<br />

mögliche „Blätter“ kann man erhalten?<br />

Nach einem Vortrag sollen 5 <strong>Mathematik</strong>er von einem Reporter<br />

fotografiert werden. Sie können sich aber über die Anordnung<br />

nicht einigen. Folglich beschließen Sie, sich in allen möglichen<br />

Anordnungen fotografieren zu lassen. Der Reporter hat einen<br />

Film mit 32 Bildern. Reicht ein Film?<br />

59


60<br />

5.2 Simulation einfacher Laplace-Experimente<br />

Das Vorgehen aus der vorherigen Aufgabe hat sich bewährt. Nun<br />

treffen sich 5 <strong>Mathematik</strong>er auf einem Kongress. Sie entstam-<br />

men zwei verschiedenen Nationalitäten. Auch sie wollen sich<br />

wieder fotografieren lassen – ihnen kommt es jedoch nur auf An-<br />

ordnung bezüglich ihrer Nationalität an. Wie viele mögliche Auf-<br />

nahmen gibt es? Ist die Aufgabe überhaupt eindeutig gestellt<br />

bzw. lösbar?<br />

5.2 Simulation einfacher Laplace-Experimente<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

random Erzeugung von Zufallszahlen<br />

print Funktion zur Ausgabe von Daten<br />

Um einfache Laplace-Experimente zu simulieren, können wir in Mu-<br />

PAD auf die Funktion random zurückgreifen. Zunächst wollen wir als<br />

einfachsten Fall einen Münzwurf mit einer idealen Münze simulieren.<br />

Wir einigen uns darauf, dass die 1 <strong>für</strong> das Symbol „Kopf“ und die 2<br />

<strong>für</strong> das Symbol „Zahl“ steht. Die Münze soll zunächst nur einmal ge-<br />

worfen werden. Wir definieren uns zunächst eine Variable <strong>für</strong> unser<br />

Zufallsexperiment. Diese nennen wir MuenzWurf:<br />

• MuenzWurf:= random(1..2):<br />

Wir können nun das einmalige Würfeln einer Münze durch:<br />

• MuenzWurf()<br />

2<br />

simulieren. Um die Münze 10 mal hintereinander zu werfen, können<br />

wir den Aufruf dieser Funktion in eine Schleife packen und jeden Wurf<br />

über die Funktion print auf dem Bildschirm ausgeben:<br />

• for i from 1 to 10 do print(MuenzWurf()) end_for<br />

1


2<br />

2<br />

1<br />

1<br />

2<br />

1<br />

2<br />

2<br />

2<br />

5 Kombinatorik und Wahrscheinlichkeitsrechnung<br />

Natürlich können wir damit auch das 10-malige Würfeln mit einem<br />

idealen Würfel simulieren. Wir ändern die obigen Zeilen nur ein wenig<br />

ab, da wir ja nun Zufallszahlen zwischen 1 bis 6 erzeugen müssen.<br />

• Wuerfeln:= random(1..6):<br />

• for i from 1 to 10 do print(Wuerfeln()) end_for<br />

4<br />

4<br />

3<br />

3<br />

2<br />

1<br />

4<br />

4<br />

6<br />

1<br />

Übungen<br />

In einer Urne befinden sich 30 Kugeln, welche mit den Zahlen 1<br />

bis 30 markiert sind. Sie unterscheiden sich nur in ihrer Markie-<br />

61


62<br />

5.3 Relative Häufigkeiten und das Gesetz der großen Zahlen<br />

rung, nicht in ihrer Größe oder Oberfläche. Simulieren Sie mit<br />

<strong>MuPAD</strong> 10 Ziehungen aus dieser Urne, wobei die gezogene Kugel<br />

stets wieder zurückgelegt werden soll und lediglich ihre Markie-<br />

rung vor dem Zurücklegen festgestellt und notiert werden soll.<br />

Führen Sie das Experiment ein weiteres Mal aus. Wie es der Zufall<br />

will, so sollten <strong>—</strong> nach dem Gesetz der großen Zahlen zu ur-<br />

teilen <strong>—</strong> nun andere Zahlen erscheinen.<br />

In einer Schulklasse von 27 Personen wird zu Beginn jeder Stunde<br />

eine Schülerin oder ein Schüler aufgefordert, den Unterrichts-<br />

inhalt der vergangenen Stunde zu wiederholen. Dabei wird sie<br />

oder er zufällig nach folgendem Verfahren ausgelost: In einem<br />

Kasten befinden sich die Namen aller Personen. Zu Beginn zieht<br />

der Lehrer einen Zettel mit einem Namen – diese Person ist da-<br />

mit auserwählt. Wie groß ist die Wahrscheinlichkeit, dass dreimal<br />

hintereinander die gleiche Person den Unterrichtsinhalt der ver-<br />

gangenen Stunde wiederholen muss?<br />

5.3 Relative Häufigkeiten und das Gesetz der großen<br />

Zahlen<br />

Wir wollen nun die Ergebnisse aus dem vorhergehenden Abschnitt<br />

nutzen, um relative Häufigkeiten zu bestimmen. Dazu betrachten wir<br />

wieder einen idealen Würfel und zählen die relative Häufigkeit der<br />

Sechsen. Wir schreiben eine Prozedur, der wir die Anzahl n der<br />

Durchführungen unseres Experimentes übergeben, die dann in der<br />

Variablen rh die Anzahl der gewürfelten Sechsen zählt und anschlie-<br />

ßend die relative Häufigkeit per Division von rh durch n berechnet:<br />

• Wuerfeln:= random(1..6):<br />

• relativeHaeufigkeit:= proc(n)<br />

local rh;<br />

begin<br />

rh := 0;<br />

for i from 1 to n do


5 Kombinatorik und Wahrscheinlichkeitsrechnung<br />

if Wuerfeln() = 6 then rh := rh + 1 end_if;<br />

end_for;<br />

return(rh/n)<br />

end:<br />

Mit dem Aufruf:<br />

• relativeHaeufigkeit(10)<br />

1<br />

10<br />

bestimmen wir nun die relative Häufigkeit der 6 bei 10-maligem Wür-<br />

feln. Wir wissen, dass die Wahrscheinlichkeit, eine 6 zu würfeln, bei<br />

1/6 liegt.<br />

Bei zunehmender Versuchsanzahl (also bei wachsendem n) nähert<br />

sich die relative Häufigkeit der tatsächlichen Wahrscheinlichkeit im-<br />

mer besser an. Wir wollen das experimentell überprüfen und würfeln<br />

hintereinander zunächst 10-mal, dann 100-mal, dann 1000-mal usw.,<br />

bis maximal 100000-mal und bestimmen jeweils die zugehörige rela-<br />

tive Häufigkeit:<br />

• float(relativeHaeufigkeit(10))<br />

0.2<br />

• float(relativeHaeufigkeit(100))<br />

0.17<br />

• float(relativeHaeufigkeit(1000))<br />

0.157<br />

• float(relativeHaeufigkeit(10000))<br />

0.1688<br />

• float(relativeHaeufigkeit(100000))<br />

0.16768<br />

63


64<br />

Übungen<br />

5.4 Berechnung der Binomialverteilung<br />

Versuchen Sie, das obige Berechnungsverfahren so zu modifizieren,<br />

dass es Ihnen die relative Häufigkeit von Einsen und Sech-<br />

sen bestimmt.<br />

Hinweis: Denken Sie dabei besonders über die Rolle der if-<br />

Anweisung in der obigen Prozedur nach.<br />

Schreiben Sie eine neue Prozedur, die die relative Häufigkeit der<br />

0 beim Roulette berechnet. Gehen Sie dabei wieder von n-<br />

maliger Durchführung des Experimentes aus. Hinweis: Auch hier<br />

können Sie große Teile der obigen Prozedur übernehmen – den-<br />

ken Sie lediglich noch einmal über die Rollen der random-<br />

Funktion in der Prozedur nach.<br />

5.4 Berechnung der Binomialverteilung<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

sum Berechnung von Summen<br />

plot::Bars2d Grafische Darstellung von „Daten“ mit <strong>MuPAD</strong><br />

plot Ausgabe einer Grafik auf dem Bildschirm<br />

Wir betrachten ein Experiment, welches n-mal (voneinander un-<br />

abhängig) durchgeführt wird. Wir interessieren uns dabei nur <strong>für</strong> die<br />

zwei möglichen Versuchsausgänge „Treffer“ und „Niete“.<br />

Wir gehen davon aus, dass die Wahrscheinlichkeit <strong>für</strong> einen Treffer<br />

durch p (0


5 Kombinatorik und Wahrscheinlichkeitsrechnung<br />

• B := (n, p, k) -> binomial(n,k) * p^k * (1-p)^(n-k):<br />

Diese Funktion können wir in einem beliebigen Zufallsexperiment<br />

verwenden, solange wir eine Binomialverteilung zugrunde legen kön-<br />

nen.<br />

Dazu ein Beispiel: Wir werfen 50-mal mit einem idealen Würfel.<br />

Gesucht sind die Wahrscheinlichkeiten der folgenden Ereignisse: (1)<br />

Man wirft genau 10-mal eine 6, (2) Man wirft mindestens 2 und höch-<br />

stens 18 Sechsen.<br />

Wir wissen nun, dass die oben mit p bezeichnete Wahrscheinlich-<br />

keit 1/6 ist. Ferner ist n=50 die Anzahl der Durchführungen. Damit ist<br />

die Wahrscheinlichkeit von Ereignis (1) gegeben durch:<br />

• B(50, 1/6, 10)<br />

<br />

46712912853763555176556110382080078125<br />

404140638732382030321569800228268146688<br />

<strong>Eine</strong>n Näherungswert erhalten wir bekannterweise durch:<br />

• float(%)<br />

0.1155857847<br />

Zur Bestimmung der Wahrscheinlichkeit von Ereignis (2) müssen wir<br />

die entsprechenden Einzelwahrscheinlichkeiten aufsummieren:<br />

• float(sum(B(50, 1/6, k), k = 2..18))<br />

0.9985409078<br />

Natürlich können wir eine solche Binomialverteilung auch grafisch<br />

darstellen. Dazu nutzen wir den Befehl plot::Bars2d, mit dem Säu-<br />

lendiagramme erstellt werden können:<br />

• diagramm:= plot::Bars2d([[B(50, 1/6, 7), B(50, 1/6, 10),<br />

B(50, 1/6, 14)]]):<br />

Mit Hilfe des Befehls plot geben wir das Diagramm auf dem Bild-<br />

schirm aus:<br />

65


66<br />

• plot(diagramm)<br />

y<br />

0.14<br />

0.12<br />

0.10<br />

0.08<br />

0.06<br />

0.04<br />

0.02<br />

5.4 Berechnung der Binomialverteilung<br />

0.00<br />

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0<br />

Um die vollständige Binomialverteilung zu zeichnen, nutzen wir den<br />

Folgenoperator $. So kommen wir mit einer sehr kurzen Eingabe zu-<br />

recht:<br />

• plot(plot::Bars2d([[B(50, 1/6, i) $ i = 0..50]]))<br />

y<br />

0.14<br />

0.12<br />

0.10<br />

0.08<br />

0.06<br />

0.04<br />

0.02<br />

0.00<br />

0 10 20 30 40 50<br />

Nun wollen wir Binomialverteilungen <strong>für</strong> jeweils verschiedene Wahr-<br />

scheinlichkeiten in einem Bild darstellen:<br />

x<br />

x


5 Kombinatorik und Wahrscheinlichkeitsrechnung<br />

• plot(plot::Bars2d([[B(50,j/6,i) $ i = 0..50] $ j=1..5]))<br />

y<br />

0.14<br />

0.12<br />

0.10<br />

0.08<br />

0.06<br />

0.04<br />

0.02<br />

Übungen<br />

0.00<br />

0 20 40 60 80 100 120 140 160 180 200 220 240 260<br />

Wir werfen mit einer idealen Münze 100 mal. Bestimmen Sie die<br />

Wahrscheinlichkeiten der folgenden Ereignisse: (1) Genau 50<br />

mal Zahl. (2) Mindestens 40 und höchstens 60 mal Zahl. (3)<br />

Kein einziges Mal Zahl. Verwenden Sie dazu die Funktion B von<br />

oben.<br />

Wir würfeln mit einem idealen Würfel 1500 mal. Bestimmen Sie<br />

die Wahrscheinlichkeit, zwischen 400 und 500 mal eine gerade<br />

Zahl zu werfen.<br />

Bei einem Glücksspiel wird ein Glücksrad 4 mal gedreht. Es können<br />

die Ziffern 0 bis 9 auftreten. Wie groß ist die Wahrschein-<br />

lichkeit der folgenden Ereignisse:<br />

(a) Sie erhalten genau zweimal eine gerade Zahl.<br />

(b) Sie erhalten mindestens dreimal eine Zahl kleiner 5.<br />

(c) Sie erhalten 2 oder 3 mal eine Zahl, die größer ist als 2.<br />

x<br />

67


68<br />

5.4 Berechnung der Binomialverteilung<br />

6. Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Wir haben bereits in den Abschnitten über Analysis und Stochastik<br />

einige der Möglichkeiten kennen gelernt, die <strong>MuPAD</strong> bietet, um ma-<br />

thematische Sachverhalte zu visualisieren. Nun wollen wir uns in die-<br />

sem Kapitel noch etwas intensiver den grafischen Möglichkeiten von<br />

<strong>MuPAD</strong> widmen.<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

plot::Arrow2d/3d Zeichnen von 2D- und 3D-Pfeilen<br />

plot::Circle2d/3d Zeichnen von 2D- und 3D-Kreisen<br />

plot::Cone Zeichnen von 3D-Kegeln und Kegelschnitten<br />

plot::Function2d/3d Zeichnen von 2D- und 3D-Funktionsgraphen<br />

plot::Hatch Zeichnen von Schraffuren in 2D<br />

plot::<strong>MuPAD</strong>Cube Zeichnen des <strong>MuPAD</strong>-Cubes<br />

plot::Piechart2d/3d Zeichnen von 2D- und 3D-<br />

Tortendiagrammen<br />

plot::Point2d/3d Zeichnen von 2D- und 3D-Punkten<br />

plot::PointList2d Zeichnen von 2D- und 3D-Punktelisten<br />

plot::Polygon2d/3d Zeichnen von Polygonen in 2D und 3D<br />

plot::Rectangle Zeichnen von Rechtecken in 2D<br />

plot::Scene2d/3d Zeichnen von 2D- und 3D-Szenen<br />

plot::Sphere Zeichnen von Kugeln in 3D<br />

plot::Tube Zeichnen von Röhren in 3D<br />

plot::XRotate Zeichnen von Rotationskörpern in 3D<br />

Axes = Boxed Koordinatensystem in Form einer Box dar-<br />

stellen<br />

BackgroundColor = c Hintergrundfarbe in Farbe c<br />

Color = RGB::Red Graphische Objekte in roter Farbe darstellen<br />

Footer = „text“ Bildunterschrift<br />

Header = „text“ Bildüberschrift


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Neue <strong>MuPAD</strong>-Funktionen<br />

GridVisible = TRUE Koordinatensystem mit Gitterlinien hinterle-<br />

gen<br />

Height/Width Festlegung der Höhe/Breite <strong>für</strong> graphische<br />

Szenen<br />

Submesh Numerische (Zwischen-)Stützstellen <strong>für</strong><br />

6.1 Funktionsgraphen<br />

glattere Darstellung<br />

In den vorhergehenden Kapiteln haben wir bereits die Funktion plot-<br />

func2d zur Darstellung 2-dimensionaler Funktionsgraphen verwen-<br />

det. Hier wollen wir zu Beginn eine neue Funktion kennen lernen, mit<br />

der wir ebenfalls 2-dimensionale Funktionsgraphen zeichnen können:<br />

die Funktion plot::Function2d. Hierbei handelt es sich um eine<br />

Funktion aus der plot-Bibliothek.<br />

Prinzipiell leistet diese Funktion alles, was uns auch plotfunc2d<br />

bietet, jedoch liefert uns das Konzept der plot-Bibliothek, das wir<br />

hier kurz vorstellen wollen, weitergehende Vorteile insbesondere beim<br />

Erstellen komplexerer Grafiken.<br />

Wir wollen den Graphen der Funktion f( x)= x<br />

3 im Intervall von –3<br />

bis 3 zeichnen. Im Gegensatz zu vorher erstellen wir uns zunächst<br />

den Graphen der Funktion als grafisches Objekt:<br />

• f:= plot::Function2d(x^3, x = -3..3)<br />

<br />

plot::Function2d x 3 <br />

, x =−3 ..3<br />

Beachten Sie, dass der Graph von f nicht unmittelbar auf dem Bild-<br />

schirm ausgegeben wird. Erst mit dem Befehl plot wird der Graph<br />

auf dem Bildschirm ausgegeben:<br />

69


70<br />

• plot(f)<br />

6.1 Funktionsgraphen<br />

y<br />

20<br />

10<br />

-3 -2 -1 1 2 3<br />

x<br />

Wir können das natürlich auch mit einer Zeile erledigen:<br />

• plot(plot::Function2d(x^3, x = -3..3))<br />

y<br />

-10<br />

-20<br />

20<br />

10<br />

-3 -2 -1 1 2 3<br />

x<br />

-10<br />

-20<br />

Jetzt ist es aber auch möglich, den Achsenstil und die Beschriftung<br />

der Achsen vorzugeben. Dazu ein Beispiel: Wir richten die Koordina-<br />

tenachsen so aus, dass sie am linken bzw. unteren Rand der Szene<br />

dargestellt werden. Die Beschriftung der x-Achse wählen wir so, dass<br />

Markierungen an den Stellen von -3 bis 3 aufgetragen werden und<br />

sich dazwischen keine weiteren unbeschrifteten Markierungen befin-<br />

den:


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

• plot(plot::Function2d(x^3, x = -3..3), Axes = Frame,<br />

TicksNumber = Low, TicksBetween = 0)<br />

y<br />

20<br />

10<br />

0<br />

-10<br />

-20<br />

-3 -2 -1 0 1 2 3<br />

x<br />

Es ist auch möglich, den Wertebereich der Funktion, die man zeich-<br />

nen möchte, einzuschränken. Wir wollen, um dies zu verdeutlichen,<br />

einmal einen Graphen der Sinusfunktion zeichnen und wählen dazu<br />

als Definitionsbereich das Intervall 06 , π . Im Gegensatz zur normalen<br />

Darstellung lassen wir die Funktion aber nun nur in den Bereichen<br />

zeichnen, in denen sie Werte aus dem Intervall 01 , annimmt:<br />

• f:= plot::Function2d(sin(x), x = 0..6*PI,<br />

ViewingBoxYRange = 0..1):<br />

plot(f)<br />

y<br />

1.0<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0.0<br />

0 2 4 6 8 10 12 14 16 18<br />

x<br />

71


72<br />

6.1 Funktionsgraphen<br />

Um Gitterlinien in das Koordinatensystem eintragen zu lassen,<br />

wodurch das Ablesen von Koordinaten wesentlich erleichtert wird,<br />

verwendet man die Option GridVisible:<br />

• plot(f, GridVisible)<br />

y<br />

1.0<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0.0<br />

0 2 4 6 8 10 12 14 16 18<br />

Wir können auch den sichtbaren Bereich der Darstellung bestimmen.<br />

Soll beispielsweise die Funktion nur in dem Bereich <strong>für</strong> −2≤ x ≤22<br />

und<br />

−2≤ y ≤2<br />

dargestellt werden, muss die Option ViewingBox=[-2..22,<br />

-2..2] verwendet werden:<br />

• plot(f, ViewingBox = [-2..22, -2..2])<br />

y<br />

2<br />

1<br />

-2 2 4 6 8 10 12 14 16 18 20 22<br />

x<br />

-1<br />

-2<br />

x


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Um mehrere Graphen in ein gemeinsames Koordinatensystem einzu-<br />

zeichnen, definieren wir uns zunächst die entsprechenden grafischen<br />

Objekte, ohne sie zu zeichnen:<br />

• f:= plot::Function2d(sin(x), x = 0..2*PI):<br />

g:= plot::Function2d(cos(x), x = 0..2*PI):<br />

h:= plot::Function2d(tan(x), x = 0..2*PI):<br />

Jetzt ordnen wir diesen Objekten nachträglich Eigenschaften zu - wir<br />

wollen, dass f in schwarzer Farbe erscheint, g in blauer Farbe und h<br />

in grüner Farbe:<br />

• f::Color:= RGB::Black:<br />

g::Color:= RGB::Blue:<br />

h::Color:= RGB::Green:<br />

Hier erkennt man nun bereits die Vorteile der plot-Bibliothek. Wir<br />

können bequem auf den Objekten arbeiten, ihre Eigenschaften ver-<br />

ändern und Manipulationen vornehmen, ohne sie gleich auf dem Bild-<br />

schirm ausgeben zu müssen.<br />

Schließlich zeichnen wir alle Objekte in ein Koordinatensystem,<br />

das zusätzlich mit Gitterlinien unterlegt wird und den Achsenstil Bo-<br />

xed zugewiesen bekommt:<br />

• plot(f, g, h, Axes = Boxed, GridVisible)<br />

y<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

-4<br />

0 1 2 3 4 5 6<br />

x<br />

73


74<br />

6.2 Beispiele im Umgang mit der Plot-Bibliothek<br />

6.2 Beispiele im Umgang mit der Plot-Bibliothek<br />

Die Bibliothek plot stellt insgesamt sehr viele weitere Grafikobjekte<br />

und Grafikfunktionen zur Verfügung, darunter:, plot::Function3d,<br />

plot::Ellipse2d, plot::Curve2d, plot::Curve3d,<br />

plot::Polygon2d, plot::PointList2d und plot::Scene2d/3d.<br />

Auch diese Funktionen zeichnen nicht unmittelbar auf den Bild-<br />

schirm, sondern liefern Objekte, die die zu erstellende Grafik reprä-<br />

sentieren. Sie gestatten u.a. das Zusammensetzen solcher Objekte in<br />

Gruppen oder vollständigen Grafikszenen und das Ändern von Gra-<br />

fikoptionen und Attributen auch nach dem Erzeugen des Objektes -<br />

ähnlich wie wir es bereits am Beispiel der Funktion<br />

plot::Function2d gesehen haben.<br />

Wir lernen nun einige Funktionen der plot-Bibliothek kennen, die<br />

auch das Zeichnen anderer mathematischer Objekte als Funktionen<br />

im 2-dimensionalen erlauben und beginnen dazu mit einem einfachen<br />

Beispiel zum Zeichnen von Kreisen und Ellipsen:<br />

• kreis:= plot::Circle2d([0, 0], 1):<br />

Mit dieser Zeile haben wir uns nun das grafische Objekt kreis defi-<br />

niert, das über den Befehl plot auf dem Bildschirm ausgegeben wird:<br />

• plot(kreis)<br />

y<br />

1.0<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

-1.0 -0.8 -0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1.0<br />

-0.2<br />

x<br />

-0.4<br />

-0.6<br />

-0.8<br />

-1.0


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Soll der Kreis zusätzlich in ein Rechteck eingeschlossen werden,<br />

müssen wir zunächst das Rechteck als grafisches Objekt definieren<br />

und anschließend beide Objekte in eine gemeinsame Grafikszene ein-<br />

zeichnen.<br />

Um dieses Ziel zu erreichen, wählen wir die altbewährte Vorge-<br />

hensweise: Zunächst weisen wir das erzeugte Rechteck an eine Vari-<br />

able rechteck zu.<br />

Wir erinnern uns, dass wir den Kreis als grafisches Objekt noch<br />

immer in der Variablen kreis gespeichert haben – wir müssen ihn<br />

also nicht extra neu in <strong>MuPAD</strong> erzeugen.<br />

Somit können wir uns eine „grafische Szene“ definieren, die wir<br />

schlicht szene nennen, und in der wir beide Objekte zusammen-<br />

schließen.<br />

Anschließend wird die gesamte Szene in einem Koordinatensystem<br />

auf die gewohnte Weise mit Hilfe des plot-Befehls ausgegeben:<br />

• rechteck:= plot::Rectangle(-1..1, -1..1):<br />

• szene:= plot::Scene2d(rechteck, kreis):<br />

• plot(szene)<br />

y<br />

1.0<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

-1.0 -0.8 -0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1.0<br />

-0.2<br />

x<br />

-0.4<br />

-0.6<br />

-0.8<br />

-1.0<br />

75


76<br />

6.2 Beispiele im Umgang mit der Plot-Bibliothek<br />

Abschließend geben wir ein Beispiel zur Visualisierung von Zahlenfol-<br />

n<br />

gen in <strong>MuPAD</strong> und betrachten dazu die Folge an<br />

=<br />

n<br />

sin( ) . Um die ersten<br />

50 Folgenglieder dieser Folge zu zeichnen, müssen wir die folgenden<br />

Anweisungen eingeben:<br />

• punktfolge:= plot::PointList2d([[n, sin(n)/n]<br />

$ n = 1..50]):<br />

• plot(punktfolge)<br />

y<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0 10 20 30 40 50<br />

-0.1<br />

x<br />

-0.2<br />

Um die Farbe der Punkte in Rot zu ändern, ersetzen wir den Wert der<br />

Option Color des Objektes punktfolge durch die gewünschte Farbe:<br />

• punktfolge::Color:= RGB::Red: plot(punktfolge)<br />

y<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0 10 20 30 40 50<br />

-0.1<br />

x<br />

-0.2


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Als nächstes versuchen wir, die Beschränktheit dieser Folge grafisch<br />

darzustellen.<br />

Dazu könnten wir die Folge zwischen den beiden Funktionen<br />

1 1<br />

f( x)<br />

= und gx ( ) = − einschließen.<br />

x<br />

x<br />

Würden wir in diesem Fall auf die Funktion plotfunc2d zurück-<br />

greifen, so hätten wir keine Chance, nachträglich die Folgenglieder in<br />

unsere Grafik einzufügen.<br />

Mit den Funktionen der plot-Bibliothek (ihre Funktionen ermögli-<br />

chen es, dass einzelne grafische Bestandteile wie z.B. Punkte oder<br />

Funktionsgraphen als eigenständige Objekte definiert werden können)<br />

kann das Problem elegant und schnell durch die folgenden Zeilen ge-<br />

löst werden:<br />

• f:= plot::Function2d(1/x, x = 0..50):<br />

• g:= plot::Function2d(-1/x, x = 0..50):<br />

• szene:= plot::Scene2d(f, g, punktfolge):<br />

plot(szene)<br />

y<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.0<br />

-0.2<br />

-0.4<br />

10 20 30 40 50<br />

x<br />

77


78<br />

6.2 Beispiele im Umgang mit der Plot-Bibliothek<br />

Auch hier können wir nachträglich auf dem Objekt szene arbeiten.<br />

Wollen wir beispielsweise das Schaubild in einen Kasten einschließen<br />

und mit Gitterlinien hinterlegen, so brauchen wir auch hier nicht alle<br />

Objekte einzeln zu beeinflussen, sondern es genügt die Befehlszeile:<br />

• szene::Axes:= Boxed: szene::GridVisible:= TRUE:<br />

plot(szene)<br />

y<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.0<br />

-0.2<br />

-0.4<br />

0 10 20 30 40 50<br />

x<br />

Übungen<br />

Zeichnen sie die Graphen der Funktionen sin, cos und tan in ein<br />

gemeinsames Koordinatensystem. Wählen Sie dabei den Bereich<br />

[-4, 4]!<br />

Schränken Sie in der vorhergehenden Aufgabe den Wertebereich<br />

auf y=-1..1 ein!<br />

Wie können Sie erreichen, dass nur der positive Anteil der Funk-<br />

3<br />

tion f( x)= x −x<br />

gezeichnet wird?<br />

Versehen Sie Ihre letzte Zeichnung mit den oben bereits<br />

verwendeten Gitterlinien (GridVisible)!<br />

Versuchen Sie mit Hilfe der kennen gelernten Funktionalitäten<br />

der plot-Bibliothek folgenden Sachverhalt an einem Beispiel zu<br />

visualisieren: Jede konvergente Folge von reellen Zahlen ist be-


schränkt.<br />

6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Hinweis: Lassen Sie sich dazu die Folgen<br />

a<br />

n + 1<br />

= b<br />

2⋅ n + 1<br />

n<br />

=<br />

n<br />

⋅ +<br />

2<br />

2 1<br />

3<br />

−1⋅ , a f<br />

n n n<br />

jeweils in einer Szene von <strong>MuPAD</strong> zeichnen und versuchen Sie<br />

dann, ähnlich wie oben, die Folgenglieder in einen „Schlauch von<br />

zwei Funktionen“ einzuschließen.<br />

Verfahren Sie analog mit der Folge cn<br />

n<br />

= 1+ H nK<br />

1 und lassen Sie<br />

sich auch von <strong>MuPAD</strong> den Grenzwert berechnen.<br />

Zeichnen Sie dann den Grenzwert g als konstante Funktion der<br />

Form y = g (Parallele zur x-Achse des Koordinatensystem) mit in<br />

das Schaubild.<br />

6.3 <strong>Eine</strong> Anwendung – Modellierung eines Strahlers<br />

Wir wollen mit <strong>MuPAD</strong> einen Strahler modellieren. Wir verwenden<br />

<strong>für</strong> die spätere grafische Ausgabe die folgenden Voreinstellungen:<br />

• Kamera := CameraDirection = [-10, -60, 0]:<br />

Optionen:= Scaling = Unconstrained:<br />

a := 40: b := 8/10: c := 10:<br />

Zunächst müssen wir eine Funktion wählen, die die Seitenlinie des<br />

Glaskörpers beschreiben kann. Diese Funktion bezeichnen wir mit<br />

Kontur:<br />

• Kontur = ( K:= x -> a * sqrt(x) * exp(-b*x) /<br />

( 1 + c * sqrt(x) * exp(-b*x) ) )<br />

len".<br />

<br />

Kontur = x → a ⋅ √ − b ⋅ x<br />

x ⋅ e<br />

1 + c ⋅ √ <br />

<br />

− b ⋅ x<br />

x ⋅ e<br />

Die Funktion Kontur scheint hier geradezu "vom Himmel zu fal-<br />

F<br />

I<br />

79


80<br />

6.3 <strong>Eine</strong> Anwendung – Modellierung eines Strahlers<br />

Der Prozess, einige Funktionen auszutesten und ihre Graphen dar-<br />

auf hin zu prüfen, ob sie <strong>für</strong> unsere Zwecke verwendbar sind, kann<br />

hier natürlich nicht im Detail dargestellt werden. Wir beschränken uns<br />

daher, die von uns gewählte Funktion zu betrachten. Auch scheint die<br />

Funktion sehr kompliziert zu sein – dies soll uns nicht stören, denn<br />

sie bietet einen guten Anreiz, die folgenden Berechnungen wirklich<br />

nicht mit Hand, sondern mit dem Computer durchzuführen.<br />

Ihren Graphen können wir darstellen durch:<br />

• plot(plot::Function2d( K(x), x = 0..5.4), GridVisible)<br />

y<br />

3<br />

2<br />

1<br />

0<br />

0 1 2 3 4 5<br />

Das sieht schon recht gut aus - nun lassen wir den Graphen in<br />

dem vorgegebenen Intervall 0..5.4 um die x-Achse rotieren. Auch<br />

solche Rotationskörper können wir mit <strong>MuPAD</strong> darstellen.<br />

Dazu benutzen wir die Funktion plot::XRotate aus der <strong>MuPAD</strong><br />

plot-Bibliothek, die zur Darstellung von Rotationskörpern (bei einer<br />

um die x-Achse rotierenden Funktion oder Kurve) gedacht ist. Die<br />

Handhabung dieser Funktion ist simpel – in Anlehnung an die Integ-<br />

ration müssen wir nur den Funktionsterm angeben, ein geeignetes<br />

Intervall auf der x-Achse, über dem die Funktion rotieren soll, und<br />

(optionaler Weise) Werte <strong>für</strong> das numerische Netz von Stützstellen,<br />

damit wir eine schöne glatte Darstellung des Körpers erhalten.<br />

x


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

• GlassKoerper:= plot::XRotate(K(x), x = 0..5.4,<br />

Submesh = [2,2]):<br />

plot(GlassKoerper, Kamera, Optionen):<br />

Das Volumen dieses Rotationskörpers im Intervall 0..5.4 ist gege-<br />

ben durch das folgende bestimmte Integral:<br />

• Volumen = ( V:= PI * int( K(x)^2, x = 0..5.4) )<br />

<br />

5.4<br />

− 4 ⋅ x<br />

5<br />

1600 ⋅ x ⋅ e<br />

Volumen =π⋅<br />

0<br />

2<br />

<br />

10 ⋅ √ <br />

− 4 ⋅ x 2 d x<br />

5<br />

x ⋅ e + 1<br />

Wir können das Volumen näherungsweise bestimmen durch<br />

• float(V)<br />

109.0970678<br />

Damit ist der Glaskörper des Strahlers modelliert.<br />

Nun fehlt noch das Gewinde, mit dem man ihn in eine Fassung<br />

einschrauben kann. Für das Gewinde wählen wir eine Sinusfunktion.<br />

Dabei erhöhen wir die Periode der Funktion drastisch, um die wellen-<br />

förmige Seitenlinie eines Gewindes zu simulieren:<br />

81


82<br />

6.3 <strong>Eine</strong> Anwendung – Modellierung eines Strahlers<br />

• plot(plot::Function2d(1/9*sin(22*x)+K(5.3),<br />

x = 5.4..6.71))<br />

y<br />

1.10<br />

1.05<br />

1.00<br />

0.95<br />

0.90<br />

5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7<br />

x<br />

Der aufmerksame Leser bemerkt sofort: Mit diesem Gewinde ha-<br />

ben wir keine Chance, die Glühbirne anschließend wirklich einzu-<br />

schrauben. Wir mogeln hier ein wenig und geben uns der Einfachheit<br />

halber mit dieser „Notlösung“ zufrieden.<br />

Lassen wir auch diese Funktion um die x-Achse rotieren, so erhal-<br />

ten wir folgendes Schaubild:<br />

• Gewinde:= plot::XRotate(1/9*sin(22*x) + K(5.3),<br />

x = 5.4..6.71, Submesh = [2, 2]):<br />

plot(Gewinde, Kamera, Optionen)


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Abschließend benötigen wir noch den Kontakt, der unseren Strah-<br />

ler beim Einschalten des Lichtschalters mit Strom versorgt. Diesen<br />

setzen wir rechts an das Gewinde an - der Kontakt wird durch einfa-<br />

chere lineare Funktionen modelliert:<br />

• plot(plot::Function2d( -6*x + 41.26, x = 6.71..6.81),<br />

plot::Function2d( -x + 7.21, x = 6.81..7.21))<br />

y<br />

1.0<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

6.7 6.8 6.9 7.0 7.1 7.2<br />

Man darf aber an dieser Stelle nicht vergessen, dass das Darstel-<br />

lungsintervall 6.71..7.1 verschwindend klein ist.<br />

• Kontakt:= plot::XRotate(-6*x + 41.26, x = 6.71..6.81),<br />

plot::XRotate(-x + 7.21, x = 6.81..7.1):<br />

plot(Kontakt, Kamera, Optionen)<br />

x<br />

83


84<br />

6.3 <strong>Eine</strong> Anwendung – Modellierung eines Strahlers<br />

Und nun setzen wir alle Objekte zusammen zu einem großen Rota-<br />

tionskörper:<br />

• plot(GlassKoerper, Gewinde, Kontakt, Kamera, Optionen)<br />

<strong>Eine</strong> Nachbearbeitung dieser Grafik mit dem neuen Grafik-Viewer<br />

VCam kann wie folgt vorgenommen werden: Wir aktivieren die Grafik<br />

mit einem Doppelklick. Der Grafik-Viewer öffnet sich automatisch und<br />

bietet uns eine Vielzahl von interaktiven Manipulationsmöglichkeiten:<br />

In der Tool-Bar im oberen Bereich des Fensters finden sich u.a. zwei<br />

kleine Lupen (eine mit einem Plus-Symbol und eine weitere mit einem<br />

Minus-Symbol), die ein Hinein- bzw. Herauszoomen in bzw. aus der<br />

geöffneten Grafik ermöglichen. Desweiteren finden wir auf der rech-<br />

ten Seite Fenster, die die „Objekt-Struktur“ der Grafik anzeigen. Über<br />

diesen „Objektbaum“ kann auf alle Eigenschaften („Attribute“) eines<br />

jeden Bestandteils der Gesamtgrafik zugegriffen werden. So lassen<br />

sich im Grafik-Viewer auch nachträglich interaktiv per Mausklick alle<br />

wesentlichen Eigenschaften der Einzelobjekte modifizieren. Die vor-<br />

genommenen Änderungen werden dann auch gleichzeitig im linken<br />

Bildschirmbereich, in dem sich die Grafik befindet, angezeigt. Das fol-<br />

gende Bild zeigt einen Screenshot der englischen Benutzungsoberflä-


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

che des Grafik-Viewers (die bei der deutschen Version von <strong>MuPAD</strong> Pro<br />

3.0 selbstverständlich in deutscher Sprache gehalten ist):<br />

Das Fenster mit der Überschrift „Definition“ in der linken unteren E-<br />

cke des Grafik-Viewers zeigt uns auch die aktuelle Kamera-Position<br />

sowie den Punkt an, auf den die Kamera ausgerichtet ist. Wir können<br />

hier andere Werte eintragen und ändern so die Sicht des Betrachters<br />

auf die graphische Szene. Um die Szene zu drehen, müssen wir die<br />

Kameraposition allerdings nicht explizit angeben. Wir können auch<br />

einfach mit der Maus auf die entsprechenden Symbole <strong>für</strong> Rotation in<br />

der Tool-Bar (ganz oben in der VCam-Oberfläche) klicken und so die<br />

gewünschte Sicht auf die Szene erreichen.<br />

85


86<br />

6.4 Grafik-Gallerie<br />

Einige Bilder, die die Manipulationsmöglichkeiten des Grafik-Viewers<br />

verdeutlichen, haben wir hier <strong>für</strong> unseren Rotationskörper aufgeführt:<br />

6.4 Grafik-Gallerie<br />

<strong>Eine</strong> Auswahl weiterer schöner 2D- und 3D-Grafiken, die mit Mu-<br />

PAD erstellt wurden, zeigt die folgende kleine „Gallerie“. Wir verzich-<br />

ten aus Platzgründen an dieser Stelle darauf, den Quellcode zum Er-<br />

zeugen der jeweiligen Grafik anzugeben. Ein Großteil findet sich aller-<br />

dings unmittelbar in der <strong>MuPAD</strong> Online-Dokumentation.


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

87


88<br />

6.5 Einfache Animationen<br />

6.5 Einfache Animationen<br />

In diesem Abschnitt wollen wir sehen, wie man einfache Animatio-<br />

nen mit <strong>MuPAD</strong> erstellen kann. Prinzipiell ist nahezu jedes graphische<br />

Objekt und jede seiner Eigenschaften animierbar. Diese Tatsache ga-<br />

rantiert ein Höchstmaß an Flexibilität, die wir hier in diesem Rahmen<br />

in ihrem Gesamtumfang nicht vorstellen können. Dem über diesen<br />

Abschnitt hinaus interessierten Leser sei daher ein Blick in die Online-<br />

Dokumentation von <strong>MuPAD</strong> Pro 3.0 empfohlen. Die dort verfügbare<br />

„<strong>Einführung</strong> in die plot-Bibliothek“ stellt eine Vielzahl von Beispielen<br />

bereit und erklärt Grundkonzepte und Anwendungsweise der Grafik-<br />

Bibliothek in detaillierter und verständlicher Form.<br />

Wir beginnen mit einem ganz einfachen Beispiel: Ein Punkt, der<br />

sukzessiv den Graphen der Sinus-Funktion über eine volle Periode<br />

darstellt:<br />

• Punkt:= plot::Point2d(a, sin(a), a = 0..2*PI):<br />

Sinus:= plot::Function2d(sin(x), x = 0..a, a = 0..2*PI):<br />

plot(Punkt, Sinus)<br />

y<br />

1.0<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.0<br />

-0.2<br />

-0.4<br />

-0.6<br />

-0.8<br />

-1.0<br />

1 2 3 4 5 6<br />

Wir haben den Punkt “animiert”, indem wir seine Koordinaten ein-<br />

fach von einem Parameter a abhängig gemacht haben und <strong>für</strong> den<br />

Parameter a (den so genannten „Animationsparameter“) einen Be-<br />

reich spezifiziert haben. Um den Funktionsgraphen zu animieren, ha-<br />

x


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

ben wir den Funktionsterm so eingegeben, als würden wir die Funkti-<br />

on allein darstellen wollen. Die Animation ergibt sich daraus, dass wir<br />

den Darstellungsbereich x = 0..a in Abhängigkeit des Animationspa-<br />

rameters a angegeben haben. Auch hier müssen wir einen Bereich<br />

mit Werten spezifizieren, die von a während der Animation durchlau-<br />

fen werden. Die Grafik, die uns <strong>MuPAD</strong> nun ausgibt, zeigt das erste<br />

Einzelbild der Animation. Wir können die Grafik jetzt mit einem Dop-<br />

pelklick aktivieren, so dass sich der Grafik-Viewer VCam öffnet. Zu-<br />

sätzlich zu der üblichen Oberfläche finden sich jetzt im oberen Bereich<br />

des Fensters Symbole, wie wir sie von einem CD-Player, Video-<br />

Recorder oder etwa dem Media Player von Microsoft Windows kennen.<br />

Ein Mausklick auf den Button führt dazu, dass die Animation<br />

abgespielt wird. Mit Hilfe des Sliders kann die A-<br />

nimation auch interaktiv mit der Maus vor- bzw. zurückgespult und<br />

der Verlauf der Animation dabei beobachtet werden. Darüber hinaus<br />

bietet sich im Menü „Bearbeiten – Grafik Exportieren“ die Möglichkeit,<br />

die Animation u.a. in dem verbreiteten AVI-Filmformat abzuspei-<br />

chern. Die gespeicherte Datei kann dann auf jedem Rechner mit dem<br />

mit einer entsprechenden Software zum Abspielen von AVI-Dateien<br />

betrachtet werden. Vier Einzelbilder der oben von uns erzeugten ani-<br />

mierten Sinus-Funktion sehen wir hier:<br />

89


90<br />

6.5 Einfache Animationen<br />

Als nächstes Beispiel <strong>für</strong> eine Animation betrachten wir die Schar<br />

von Parabeln<br />

• fa:= a * x^2<br />

a ⋅ x 2<br />

Anstatt einige Parabeln der Schar statisch in ein Koordinatensys-<br />

tem zu zeichnen, können wir mit dem folgenden Befehl eine Animati-<br />

on erzeugen, in der sukzessive je eine Parabel gezeichnet wird:<br />

• plotfunc2d(fa, x = -2..2, a = -3..3)<br />

Wir stellen auch hier wieder vier Einzelbilder der erzeugten Anima-<br />

tion dar:


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

Die <strong>MuPAD</strong> Funktion plot::Hatch erlaubt es, flächige Bereiche in-<br />

nerhalb von 2D-Koordinatensystemen schraffiert darzustellen – ein<br />

Hilfsmittel, das im Bereich der Visualisierung der Flächenberechnung<br />

mittels Integration sehr nützlich sein kann. Im folgenden erzeugen<br />

wir eine Animation, die einige Funktionen der Schar<br />

• fa:= sin(a*x)<br />

sin(a ⋅ x)<br />

darstellt und dabei immer die von der Funktion mit der x-Achse ein-<br />

geschlossene Fläche mit einzeichnet:<br />

• f:= plot::Function2d(fa, x = -PI..PI, a = 0.2..3):<br />

plot(f, plot::Hatch(f))<br />

Der Animationsparameter ist wieder a (dies ist der Scharparame-<br />

ter der oben definierten Kurvenschar von Sinus-Funktionen). Die<br />

Funktion plot::Hatch können wir schlicht auf die Funktionsgraphen<br />

der Schar fa anwenden; sie sorgt dann automatisch da<strong>für</strong>, dass die<br />

Fläche zwischen dem jeweiligen Funktionsgraphen und der x-Achse<br />

schraffiert wird. Die folgenden Einzelbilder entstammen der erzeugten<br />

Animation:<br />

91


92<br />

6.5 Einfache Animationen<br />

Zum Abschluss dieses Abschnitts betrachten wir noch eine Anima-<br />

tion im Raum: Der Schnitt eines Kegels mit einer Ebene und die dabei<br />

entstehenden Schnittgebilde.<br />

Diese Animation scheint auf den ersten Blick nicht ganz so leicht<br />

zu erzeugen zu sein wie die bisher betrachteten Animationen in der<br />

Ebene. Das liegt jedoch lediglich daran, dass wir im folgenden separat<br />

zuerst zwei graphische Objekte erzeugen (einen Kegel und eine Ebe-<br />

ne) und dann anschließend zwei graphische Szenen im Raum definie-<br />

ren, die beide sowohl den Kegel als auch die Ebene enthalten. An-<br />

schließend lassen wir beide Szenen gleichzeitig nebeneinander dar-<br />

stellen.<br />

Dies hat den Vorteil, dass wir bei Ablauf der Animation links den<br />

Kegel und die Ebene sehen werden und rechts den Schnitt des Kegels<br />

mit der Ebene in der Ebene selbst:<br />

• Kegel:= plot::Cone(<br />

1, // Radius der Basis<br />

[-sin(a), 0, -cos(a)], // Zentrum der Basis<br />

[sin(a), 0, cos(a)], // Zentrum der Spitze


6 Grafiken in <strong>MuPAD</strong> leicht gemacht<br />

a = 0..2*PI, // Animationsbereich<br />

Color=RGB::Blue.[0.6]):<br />

Ebene:= plot::Surface([x, y, 0],<br />

x = -1.5..1.5,<br />

y = -1.5..1.5,<br />

MeshVisible):<br />

S1 := plot::Scene3d(Kegel, Ebene):<br />

S2 := plot::Scene3d(Kegel, Ebene,<br />

ViewingBoxZRange = -0.02 .. 0.02):<br />

• plot(S1, S2, Layout = Horizontal, Width=240)<br />

Der Trick besteht nun darin, dass wir die zwei Szenen so definie-<br />

ren, dass sie beide den animierten Kegel (er wird während der Ani-<br />

mation gedreht) und die Ebene enthalten. Bei der zweiten Szene je-<br />

doch wählen wir den Sichtbarkeitsbereich in z-Richtung so schmal,<br />

dass es beim Betrachten der Szene so erscheint, als würden wir nur<br />

eine Ebene und eine Kurve in der Ebene gezeichnet haben (die<br />

Schnittkurve von Kegel und Ebene ergibt also, indem wir das gesam-<br />

te Bild stark „zusammenschrumpfen“ und nur einen winzigen Streifen<br />

der gesamten Szene darstellen lassen). Die Ebene selbst ist nicht a-<br />

nimiert – in ihrer Definition taucht kein Animationsparameter auf. Der<br />

einzige animierte Bestandteil der Grafik ist der Kegel selbst. Er wird<br />

durch geschickte Wahl einer Parametrisierung des Zentrums und der<br />

Spitze über die Dauer der Animation gedreht (a ist wieder der Anima-<br />

tionsparameter). Fünf Einzelbilder der Animation sehen wir hier:<br />

93


94<br />

6.5 Einfache Animationen


7 <strong>MuPAD</strong> in Schule und Studium<br />

7. <strong>MuPAD</strong> in Schule und Studium<br />

Unter der Adresse<br />

http://www.mupad.de/schule+studium<br />

bietet das <strong>MuPAD</strong>-Schule-Team eine Vielzahl weiterer Materialien<br />

und Zusatzinformationen zu und rund um <strong>MuPAD</strong> in Schule und Stu-<br />

dium: Neben <strong>MuPAD</strong> selbst stehen dort eine große Menge von vorge-<br />

fertigten interaktiven <strong>MuPAD</strong> Arbeitsblättern und mit <strong>MuPAD</strong> erstellte<br />

Unterrichtseinheiten im mnb-Format sowie auch im html-Format zum<br />

Download zur Verfügung. Der Großteil der dort verfügbaren Unter-<br />

richtseinheiten wurde dabei nicht vom <strong>MuPAD</strong>-Schule-Team selbst,<br />

sondern vielmehr von externen Autoren – Lehrerinnen und Lehrern<br />

die <strong>MuPAD</strong> erfolgreich im Unterricht einsetzen – erstellt.<br />

Diese Materialien ermöglichen nicht nur einen schnellen und un-<br />

komplizierten Einstieg in <strong>MuPAD</strong>, sondern sie geben darüber hinaus<br />

viele Anregungen zum Einsatz von Computeralgebra in der Lehre. Als<br />

besonders nützlich erweist sich bei der Fülle der Materialien die Mög-<br />

lichkeit einer Volltextsuche innerhalb aller <strong>MuPAD</strong> Arbeitsblätter, die<br />

eine zielgerichtete und erfolgreiche Recherche auf dem Server garan-<br />

tiert.<br />

Ein Blick unter die Rubrik „Aktuelles“ verrät auf welchen Tagungen<br />

<strong>MuPAD</strong> vertreten ist, wo und wann Lehrerfortbildungen und Schnup-<br />

perkurse angeboten werden und was es sonst noch so an Neuigkeiten<br />

rund um <strong>MuPAD</strong> gibt. Zusätzlich stehen alle bis dato erschienenen<br />

Exemplare der Buchreihe „<strong>Mathematik</strong> 1 x anders“ sowie diverse Arti-<br />

kel im PDF-Format zum freien Download bereit.<br />

Desweiteren finden sich auf den Webseiten des <strong>MuPAD</strong>-Schule-<br />

Teams diverse Zusatzpakete <strong>für</strong> <strong>MuPAD</strong>: Pakete zur „Elektrotechnik“,<br />

zur „ebenen euklidischen Geometrie“, zur „Analysis“ uvm.<br />

Technische Unterstützung und qualifizierter Rat zu und rund um<br />

<strong>MuPAD</strong> kann jeder Zeit per eMail an schule@mupad.de angefordert<br />

werden.<br />

95


96<br />

Literaturverzeichnis<br />

Literaturverzeichnis<br />

Einige der Beispiele und Übungen dieses Buches sind der folgenden Literatur<br />

entnommen, ohne jeweils unmittelbar darauf verwiesen zu haben:<br />

Baumann: Analysis 1. Klett, 1997<br />

Burkhart: http://www.weihenstephan.org/~burkhart/mupad/mupad.html<br />

Eckart; Jehle; Vogel: Analytische Geometrie. BSV <strong>Mathematik</strong>, 1994<br />

Feuerpfeil; Heigl; Wiedling: Praktische Stochastik. BSV <strong>Mathematik</strong>, 1994<br />

Grabinger: Projekte und Aufgaben zur Analytischen Geometrie. Schroedel,<br />

1999<br />

Griesel; Postel: Grundkurs Analysis Gesamtband, <strong>Mathematik</strong> heute,<br />

Schroedel / Schöningh, 1991<br />

Heugl; Klinger; Lechner: <strong>Mathematik</strong>unterricht mit Computeralgebra-<br />

Systemen. Addison-Wesley, 1996.<br />

Jahnke; Lauter; Rüdiger: <strong>Mathematik</strong> Sekundarstufe II, Analysis Leistungs-<br />

kurse. Cornelsen, 1993<br />

Oevel; Postel; Rüscher; Wehmeier: Das <strong>MuPAD</strong> Tutorium. Springer, 2000<br />

Oevel: <strong>Einführung</strong> in die numerische <strong>Mathematik</strong>. Spektrum, 1996


$ 66<br />

Index<br />

:= 17<br />

All 52<br />

assume 33<br />

delete 14, 16, 17<br />

Diagonal 47<br />

diff 21, 23<br />

DIGITS 14, 16, 17<br />

Dom 49<br />

Integer 49<br />

Rational 49<br />

Real 49<br />

Float 49<br />

Complex 49<br />

expand 14, 18, 56<br />

float 14, 20<br />

GrindVisible 78<br />

if 64<br />

info 35<br />

int 25<br />

linalg<br />

row 44<br />

col 44<br />

transpose 47<br />

addRow 52<br />

addCol 52<br />

multCol 52<br />

multRow 52<br />

expr2Matrix 52<br />

matlinsolve 52<br />

det 57<br />

angle 57<br />

normal 14, 18<br />

numeric<br />

op 21<br />

solve 30<br />

fsolve 35<br />

plot 65, 74<br />

Bars2d 65<br />

Function2d 69<br />

Function3d 74<br />

Ellipse2d 74<br />

Curve2d 74<br />

Curve3d 74<br />

Polygon2d 74<br />

PointList2d 74<br />

Scene2d/3d 74<br />

XRotate 80<br />

random 60, 64<br />

simplify 14, 18, 36<br />

solve 23, 30, 39, 57<br />

sqrt 14, 15<br />

stdlib 36<br />

student 30<br />

subs 21, 23


<strong>Mathematik</strong> 1 x anders: Materialien und Werkzeuge <strong>für</strong><br />

computerunterstütztes Lernen<br />

Bisher erschienen:<br />

<strong>MuPAD</strong> - <strong>Eine</strong> <strong>praktische</strong> <strong>Einführung</strong><br />

Kai Gehrs und Frank Postel, Band 1 - 2. überarb. und erw. Auflage, <strong>Mathematik</strong> 1 x anders -<br />

Materialien und Werkzeuge <strong>für</strong> computerunterstütztes Lernen, August 2001, SciFace Software<br />

GmbH & Co.KG, Paderborn, ISBN-3-933764-02-5, ca. 90 Seiten,<br />

Titelbild, PDF-Version.<br />

Ein Streifzug durch die Physik mit <strong>MuPAD</strong><br />

Alessandro Dell'Aere, Band 2, <strong>Mathematik</strong> 1 x anders - Materialien und Werkzeuge <strong>für</strong> computerunterstütztes<br />

Lernen, August 2001, SciFace Software GmbH & Co.KG, Paderborn, ISBN-3-<br />

933764-03-3, ca. 35 Seiten,<br />

Titelbild, PDF-Version.<br />

Stochastik mit <strong>MuPAD</strong><br />

Julia Faflek, Band 3, <strong>Mathematik</strong> 1 x anders - Materialien und Werkzeuge <strong>für</strong> computerunterstütztes<br />

Lernen, September 2002, SciFace Software GmbH & Co.KG, Paderborn, ca. 68 Seiten,<br />

Titelbild, PDF-Version.<br />

Analysis mit <strong>MuPAD</strong><br />

Kai Gehrs, Vera Verspohl, Band 4, <strong>Mathematik</strong> 1 x anders - Materialien und Werkzeuge <strong>für</strong><br />

computerunterstütztes Lernen, Juni 2003, SciFace Software GmbH & Co.KG, Paderborn, ca. 88<br />

Seiten, ,<br />

Titelbild, PDF-Version.<br />

Elektrotechnik mit <strong>MuPAD</strong><br />

Thomas Kosch, Band 5, <strong>Mathematik</strong> 1 x anders - Materialien und Werkzeuge <strong>für</strong> computerunterstütztes<br />

Lernen, Februar 2003, SciFace Software GmbH & Co.KG, Paderborn, ca. 56 Seiten,<br />

Titelbild, PDF-Version, PDF-Version mit Graustufenbildern <strong>für</strong> den Druck.<br />

Lineare Transformationen mit <strong>MuPAD</strong><br />

Wolfgang Lindner, Band 6, <strong>Mathematik</strong> 1 x anders - Materialien und Werkzeuge <strong>für</strong> computerunterstütztes<br />

Lernen, Mai 2003, SciFace Software GmbH & Co.KG, Paderborn, ca. 103 Seiten,<br />

,<br />

Titelbild, PDF-Version.<br />

Ausgleichsrechnung, überbestimmte LGS und Pseudoinverse mit <strong>MuPAD</strong><br />

Wolfgang Lindner, Band 7, <strong>Mathematik</strong> 1 x anders - Materialien und Werkzeuge <strong>für</strong> computerunterstütztes<br />

Lernen, Juni 2003, SciFace Software GmbH & Co.KG, Paderborn, ca. 110 Seiten,<br />

, Vorabversion, Final folgt Anfang Juli,<br />

Titelbild, PDF-Version.<br />

Die Hefte dieser Reihe sind als PDF-Dokumente auch in Web verfügbar unter:<br />

www.mupad.de/schule/literatur/index.shtml#books

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!