235 63 12MB
German Pages XXI, 309 [321] Year 2020
Mathematik Primarstufe und Sekundarstufe I + II
Helmut Albrecht
Elementare Koordinatengeometrie Mit einer Einführung in Maxima
Mathematik Primarstufe und Sekundarstufe I + II Reihe herausgegeben von Friedhelm Padberg, Universität Bielefeld, Bielefeld, Deutschland Andreas Büchter, Universität Duisburg-Essen, Essen, Deutschland
Die Reihe „Mathematik Primarstufe und Sekundarstufe I + II“ (MPS I + II), herausgegeben von Prof. Dr. Friedhelm Padberg und Prof. Dr. Andreas Büchter, ist die führende Reihe im Bereich „Mathematik und Didaktik der Mathematik“. Sie ist schon lange auf dem Markt und mit aktuell rund 60 bislang erschienenen oder in konkreter Planung befindlichen Bänden breit aufgestellt. Zielgruppen sind Lehrende und Studierende an Universitäten und Pädagogischen Hochschulen sowie Lehrkräfte, die nach neuen Ideen für ihren täglichen Unterricht suchen. Die Reihe MPS I + II enthält eine größere Anzahl weit verbreiteter und bekannter Klassiker sowohl bei den speziell für die Lehrerausbildung konzipierten Mathematikwerken für Studierende aller Schulstufen als auch bei den Werken zur Didaktik der Mathematik für die Primarstufe (einschließlich der frühen mathematischen Bildung), der Sekundarstufe I und der Sekundarstufe II. Die schon langjährige Position als Marktführer wird durch in regelmäßigen Abständen erscheinende, gründlich überarbeitete Neuauflagen ständig neu erarbeitet und ausgebaut. Ferner wird durch die Einbindung jüngerer Koautorinnen und Koautoren bei schon lange laufenden Titeln gleichermaßen für Kontinuität und Aktualität der Reihe gesorgt. Die Reihe wächst seit Jahren dynamisch und behält dabei die sich ständig verändernden Anforderungen an den Mathematikunterricht und die Lehrerausbildung im Auge.
Konkrete Hinweise auf weitere Bände finden Sie am Ende dieses Buches und unter http://www.springer.com/series/8296
Helmut Albrecht
Elementare Koordinatengeometrie Mit einer Einführung in Maxima
Helmut Albrecht Institut für Mathematik und Informatik PH Schwäbisch Gmünd Schwäbisch Gmünd, Baden-Württemberg Deutschland
Mathematik Primarstufe und Sekundarstufe I + II ISBN 978-3-662-61619-2 ISBN 978-3-662-61620-8 (eBook) https://doi.org/10.1007/978-3-662-61620-8 Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. © Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von allgemein beschreibenden Bezeichnungen, Marken, Unternehmensnamen etc. in diesem Werk bedeutet nicht, dass diese frei durch jedermann benutzt werden dürfen. Die Berechtigung zur Benutzung unterliegt, auch ohne gesonderten Hinweis hierzu, den Regeln des Markenrechts. Die Rechte des jeweiligen Zeicheninhabers sind zu beachten. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag, noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Der Verlag bleibt im Hinblick auf geografische Zuordnungen und Gebietsbezeichnungen in veröffentlichten Karten und Institutionsadressen neutral. Planung/Lektorat: Annika Denkert Springer Spektrum ist ein Imprint der eingetragenen Gesellschaft Springer-Verlag GmbH, DE und ist ein Teil von Springer Nature. Die Anschrift der Gesellschaft ist: Heidelberger Platz 3, 14197 Berlin, Germany
Meinem Hochschullehrer Josef Lauter gewidmet
Hinweis der Herausgeber
Dieser Band von Helmut Albrecht beschäftigt sich umfassend mit der Elementaren Koordinatengeometrie. Der Band erscheint in der Reihe Mathematik Primarstufe und Sekundarstufe I + II. Insbesondere die folgenden Bände dieser Reihe könnten Sie unter mathematikdidaktischen oder mathematischen Gesichtspunkten interessieren: • R. Danckwerts/D. Vogel: Analysis verständlich unterrichten • M. Franke/S. Reinhold: Didaktik der Geometrie in der Grundschule • C. Geldermann/F. Padberg/U. Sprekelmeyer: Unterrichtsentwürfe Mathematik Sekundarstufe II • G. Greefrath: Didaktik des Sachrechnens in der Sekundarstufe • G. Greefrath/R. Oldenburg/H.-S. Siller/V. Ulm/H.-G. Weigand: Didaktik der Analysis für die Sekundarstufe II • K. Heckmann/F. Padberg: Unterrichtsentwürfe Mathematik Sekundarstufe I • W. Henn/A. Filler: Didaktik der Analytischen Geometrie und Linearen Algebra • G. Hinrichs: Modellierung im Mathematikunterricht • K. Krüger/H.-D. Sill/C. Sikora: Didaktik der Stochastik in der Sekundarstufe • F. Padberg/S. Wartha: Didaktik der Bruchrechnung • H.-J. Vollrath/H.-G. Weigand: Algebra in der Sekundarstufe • H.-J. Vollrath/J. Roth: Grundlagen des Mathematikunterrichts in der Sekundarstufe • H.-G. Weigand et al.: Didaktik der Geometrie für die Sekundarstufe I • A. Büchter/H.-W. Henn: Elementare Analysis • A.Büchter/F. Padberg: Einführung in die Arithmetik • A. Filler: Elementare Lineare Algebra • S. Krauter/C. Bescherer: Erlebnis Elementargeometrie • H. Kütting/M. Sauer: Elementare Stochastik • T. Leuders: Erlebnis Algebra • F. Padberg/A. Büchter: Elementare Zahlentheorie
VII
VIII
Hinweis der Herausgeber
• F. Padberg/R. Danckwerts/M. Stein: Zahlbereiche • B. Schuppar: Geometrie auf der Kugel – Alltägliche Phänomene rund um Erde und Himmel • B. Schuppar/H. Humenberger: Elementare Numerik für die Sekundarstufe Bielefeld Essen März 2020
Friedhelm Padberg Andreas Büchter
Vorwort
Die euklidische Geometrie fristet schon seit Langem ein bedauernswertes Schattendasein in wohl allen Schularten und diese Tendenz hält leider nach wie vor an. Ein Hauptaugenmerk gerade in der Ausbildung von Lehrerinnen und Lehrern sollte daher darauf gerichtet sein, den Studierenden wieder die klassische Geometrie an sich und vielleicht unter einem etwas veränderten, neuartigen Blickwinkel nahezubringen. Von besonderem Reiz ist in diesem Zusammenhang die alte, ursprüngliche Descartesʼsche Idee einer algebraischen Lösung geometrischer Probleme – und zwar, ohne dabei die Geometrie alsbald durch den Formalismus der linearen Algebra und durch ein artistisches Jonglieren mit Matrizen zu verdecken. Der Nachteil, dass eine solche Koordinatengeometrie hauptsächlich in der zweidimensionalen Ebene verhaftet bleibt, kann dabei getrost in Kauf genommen werden. Für die rechnerische Lösung solcher elementargeometrischer Probleme sind wohl nur einfache algebraische Verfahren nötig – in der Regel ist die Lösung quadratischer Gleichungen und Gleichungssysteme ausreichend. Trotzdem würde der Aufwand und Zeitbedarf für die Lösung solcher Aufgaben die eigentliche Geometrie wieder viel zu stark verdecken, sodass hier der Einsatz eines Werkzeugs nötig und sinnvoll wird. Jede Mathematikstudentin und jeder Mathematikstudent sollte während des Studiums auch im Lehramt ohnehin den Umgang mit einem Computer-Algebra-System erlernen und zwar grundsätzlich im Sinne von R. W. Hamming: „The purpose of computing is insight, not numbers.“ Für die damit notwendige Einweisung in den Umgang mit einem Computer-Algebra-System bieten die Problemstellungen der Koordinatengeometrie einen durchgehend stringenten und motivierenden Rahmen. Die Übertragung der herausgearbeiteten geometrisch-algebraischen Verfahren und Algorithmen der Koordinatengeometrie in Maxima-Funktionen bringt für die Lernenden einen beachtlichen Erkenntnisgewinn und natürlich eine enorme Zeitersparnis bei der Lösung entsprechender Aufgaben. Zudem können mit Maxima Probleme elegant modularisiert werden, genau wie man dies ja auch bei der konstruktiven Lösung geometrischer Probleme tut.
IX
X
Vorwort
Das Zitat von Hamming hat seine Gültigkeit auch bezüglich der hier im Buch vorgestellten Maxima-Funktionen: Es war zu keinem Zeitpunkt beabsichtigt, eine ausgefeilte und alle Sonderfälle abdeckende Funktionenbibliothek zur Verfügung zu stellen. Insbesondere die Problematik mit zur y-Achse parallel verlaufenden Geraden wurde nicht in der letzten Konsequenz behoben; in einigen Funktionen werden solche Spezialfälle abgefangen, in anderen wiederum nicht. Die Behandlung geometrischer Probleme soll auch in einer Koordinatengeometrie nie auf das bloße rechnerische Vorgehen beschränkt werden! Bei einer Problemlösung muss zudem immer die zugrundeliegende Geometrie anhand von Skizzen und Konstruktionen mindestens überblicksartig mit bedacht werden! Es geht eben nicht um exakte Zahlenwerte, sondern in erster Linie um die Einsicht in die zugrundeliegenden Verfahren! Für eine solcherart konzipierte Koordinatengeometrie gibt es bisher keine adäquate Literatur. Die Beck’sche Koordinatengeometrie in zwei Bänden ist rund 100 Jahre alt – wobei weniger das Alter ein Problem darstellt als denn die Tatsache, dass dort eine Koordinatengeometrie in der Menge der komplexen Zahlen betrieben wird. Letztere sind aber in aller Regel aus dem Mathematik-Kanon des Gymnasiums verschwunden. Über mehrere Semester hinweg ist aus teils alltäglichem geometrischem Grundlagenwissen, einfachen bis anspruchsvollen Problemstellungen bis hin zu einigem im schulischen Kontext längst Vergessenem zunächst ein Skript und daraus nun ein Lehrbuch mit einer umfangreichen Aufgabensammlung entstanden, das einen Bogen ausgehend von verschiedenen Koordinatensystemen über Punkte, Geraden und Kreise bis hin zu den fast in Vergessenheit geratenen Kegelschnitten spannt und zusammen mit vielfältigen Aufgaben die Basis für eine anregende und intensive Beschäftigung mit geometrischen Inhalten liefert. Gleichzeitig ermöglicht es eine praxis- und anwendungsbezogene Einführung in den sinnvollen Gebrauch des Computer-Algebra-Systems Maxima. Bei der Behandlung der Koordinatengeometrie sollte die eigentliche Geometrie nicht aus den Augen verloren werden, dafür leistet ein dynamisches Geometriesystem beim Erarbeiten der Inhalte und der Lösung der Aufgaben wertvolle Dienste. Hier im Buch wird auf Cinderella verwiesen, auch die abgedruckten geometrischen Konstruktionen wurden mit Cinderella erstellt, jedoch kann grundsätzlich jedes andere dynamische Geometrieprogramm zum Einsatz kommen. Dieses Lehrbuch ist, wie es sich für ein solches gehört, traditionell vom Einfachen zum Schwierigen aufgebaut: Ganz am Titel orientiert werden – nach einer Einführung in den Umgang mit Maxima – zunächst grundlegende Merkmale verschiedener Koordinatensysteme angesprochen. In Koordinatensysteme werden Punkte eingetragen, durch welche die Lage von Strecken und Geraden festgelegt wird. Diese wiederum bilden Polygone, sodass damit bereits wesentliche Aspekte der Dreiecksgeometrie bearbeitet werden können. Weitere Möglichkeiten erschließt die Hinzunahme von Kreisen, da sich nun die klassisch-griechischen Konstruktionsaufgaben mit Zirkel und Lineal koordinatengeometrisch durchführen lassen. Im Kapitel über Kegelschnitte werden vermutlich viele Leserinnen und Leser geometrisches Neuland erreichen, dessen Betreten allerdings ungemein spannend und lehrreich ist. Schließlich rundet die zweidimensionale
Vorwort
XI
Darstellung räumlicher Körper dieses Lehrbuch zur Koordinatengeometrie mit einem kurzen Ausflug in die darstellende Geometrie ab. Nach den inhaltsbezogenen Teilen eines jeden Kapitels schließen sich Aufgabenstellungen an, mit welchen die zuvor erarbeiteten Inhalte nochmals durchdacht und angewendet werden können. In den Aufgaben finden sich mancherorts Wiederholungen. Diese rühren daher, dass einzelne Übungsaufgaben zu Klausuraufgaben kombiniert wurden und diese subsumierenden Klausuraufgaben hier im Buch ebenfalls aufgeführt sind. Diese Redundanzen wurden bewusst in Kauf genommen, da ein gesicherter Erkenntnisgewinn durch eine stetige Wiederholung stark unterstützt wird. Lösen Sie die Aufgaben zunächst traditionell von Hand. Wenn Sie eine Problemstellung mehrfach mit unterschiedlichen Ausgangswerten lösen, erkennen Sie eher die Strukturen des Lösungswegs und erhalten somit wertvolle Hinweise für die Abbildung des Lösungswegs in eine selbst zu erstellende Maxima-Funktion. Zudem haben Sie damit Ergebnisse zur Hand, mit denen Sie die korrekte Arbeitsweise Ihrer selbst erstellen Funktionen überprüfen können. Jeweils am Ende der ersten sieben Kapitel folgen schließlich explizite Hinweise zur Erstellung von Maxima-Funktionen für die diskutierten Probleme. Dabei werden diese Hinweise bewusst immer kürzer gehalten: Während anfangs die Maxima-Funktionen im Sinne eines exemplarischen Lernens komplett vorgegeben werden, beschränken sich die Hilfestellungen zunehmend und es werden nur noch neue, bisher noch nicht besprochene Sprachelemente von Maxima erläutert. In den späteren Kapiteln mit komplexeren Problemen und dadurch auch umfangreicher werdenden Maxima-Funktionen sind die Hinweise zu Maxima jeweils gleich an Ort und Stelle bei der inhaltlichen Erarbeitung eingefügt. Die Lösungshinweise zu den Aufgaben, einige komplexe Maxima-Funktionen und aktuelle Links finden sich auf der eigens beim Verlag eingerichteten Homepage des Buchs: www.springer.com/9783662616192 Zur Typografie im Buch: Die Namen von zu betätigenden besonderen Tasten bzw. Tastenkombinationen sind in spitze Klammern gesetzt: steht beispielsweise für diejenige Tastenkombination, welche in Maxima für das Absenden einer Eingabezelle benötigt wird. Dies bedeutet, auf die Großschreibtaste zu drücken, diese festzuhalten und zusätzlich auf die Eingabetaste tippen. In der Schriftart Courier Geschriebenes gibt Funktionsnamen und Eingaben in Maxima wieder. So kann beispielsweise die Anweisung wxplot2d(x^2,[x,−3,3])
XII
Vorwort
direkt in Maxima eingegeben und mit der Tastenkombination ausgeführt werden. Nach dem Absenden dieses Befehls stellt Maxima eine Normalparabel im Bereich von −3 bis 3 dar. Da Maxima aus dem angelsächsischen Raum stammt, verwendet es konsequent den Punkt als Dezimaltrennzeichen. Kommata werden hingegen als Trenner von Objekten, beispielsweise den Elementen einer Liste verwendet. So stellt beispielsweise das Objekt [2.7,3.6] eine Liste mit den beiden Dezimalzahlen 2,7 und 3,6 dar. Um Inkonsistenzen in der Darstellung zu vermeiden, wurde diese Schreibweise an manchen Stellen auch in den normalen Text übernommen. Häufig kommt die Listenverwaltung in Maxima zum Einsatz. So werden beispielsweise die Koordinaten von Punkten als zweielementige Listen dargestellt. Der Punkt A mit den Koordinaten x = 3 und y = 7 wird in der Form A:[3, 7] geschrieben. Diese auch im Text verwendete Notation mit dem Doppelpunkt lehnt sich dabei an die Zuweisung in Maxima an. Es wurde bereits erwähnt, dass die hier im Buch abgedruckten Konstruktionszeichnungen in Cinderella entstanden sind. Dabei handelt es sich um ein hervorragendes und ungemein leistungsfähiges dynamisches Geometriesystem, dessen Möglichkeiten zur Textdarstellung jedoch stark begrenzt sind. Es ist unter anderem nicht möglich, Indizes korrekt durch Tieferstellung darzustellen. So muss beispielsweise anstatt der korrekten Schreibweise xM daher in den Konstruktionszeichnungen mit der Darstellung xM vorliebgenommen werden. Es liegt in der Natur der Sache begründet, dass in einem Lehrbuch zur Mathematik viele Gleichungen enthalten sind. Formeln und Gleichungen, auf welche an späterer Stelle wieder zurückgegriffen wird, werden rechtsbündig dezimalklassifikatorisch nummeriert. Dabei bezeichnet die erste Ziffer das Kapitel, in welchem die Gleichung erscheint, die zweite Ziffer gibt die laufende Nummer im jeweiligen Kapitel an. Über die Jahre hinweg hat sich die Koordinatengeometrie zu meinem Steckenpferd in der Lehre entwickelt: Wie kaum eine andere Thematik verknüpft sie traditionelle elementargeometrische und algebraische Sichtweisen und liefert neben der Verwendung dynamischer Geometriesysteme gleichzeitig einen naheliegenden Ansatz zur Einbindung eines Computer-Algebra-Systems. Letztlich bietet die Koordinatengeometrie somit eine hervorragende Grundlage und Motivation für eine ganzheitliche Vermittlung mathematischer Inhalte. Ich habe mich daher sehr über die Zusage von Friedhelm Padberg gefreut, dieses Thema in seine Reihe Mathematik Primar- und Sekundarstufe I + II aufzunehmen und bin dem Springer-Verlag sehr dankbar für dessen Bereitschaft, dieses Buchprojekt in seinem Portfolio zu veröffentlichen. Besonders positiv hervorzuheben ist dabei die Bereitschaft, die enthaltenen Abbildungen farbig darzustellen. So stehen am Ende einer langjährigen Genese der Thematik in den letzten Zeilen dieser Veröffentlichung der Dank an alle „Geburtshelfer“, die Vorfreude auf das gedruckte Werk und die Hoffnung auf dessen Brauchbarkeit in der Mathematik-Ausbildung. Während sich eben diese Brauchbarkeit in der Zukunft erst noch erweisen muss, lassen sich all die Personen schon benennen, denen es zu danken gilt:
Vorwort
XIII
Meinem ehemaligen Gmünder und zwischenzeitlich Potsdamer Kollegen Ulli Kortenkamp danke ich für seine stets geduldige Beantwortung meiner Fragen zu Cinderella. Meine Studierenden haben durch ihre Fragen, Anmerkungen und Hinweise auf Fehler über viele Semester mitgeholfen, aus einem rudimentären Skript ein abgerundetes Skript zu machen. Durch akribisches Lesen konnten Friedhelm Padberg, Josef Lauter und Sandra Gleißberg viele weitere Fehler bereinigen. Im Springer-Verlag haben Andreas Rüdinger, Kathrin Maurischat, Stella Schmoll und Annika Denkert aus ihrem reichen Erfahrungsschatz das Entstehen dieses Lehrbuchs mit vielen Tipps und technischen Erläuterungen ganz wesentlich unterstützt. Matthias Delbrück hat als Copyeditor eine Unmenge verbliebener Ungereimtheiten zutage gefördert. Es bleibt die Hoffnung, dass nicht allzu viele Fehler übrig geblieben sind und dass dieses Buch einen bescheidenen Teil dazu beitragen möge, einerseits der euklidischen Geometrie wieder etwas mehr schulisches Leben einzuhauchen sowie andererseits den sinnvollen Einsatz von Maxima zu unterstützen. Schwäbisch Gmünd im April 2020
Helmut Albrecht
Inhaltsverzeichnis
1
Einführung in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Das Programm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Einfache Rechenoperationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Symbolische versus numerische Werteangabe. . . . . . . . . . . . . . . . . . . . . 4 1.4 Funktionen in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.1 Arbeiten mit Schaltflächen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.2 Eingabehilfen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 Eigene Funktionen definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.1 Definition einfacher Funktionen in Maxima. . . . . . . . . . . . . . . 11 1.5.2 Vorgehen beim Erstellen komplexer Funktionen. . . . . . . . . . . . 12 1.5.3 Häufige Fehler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5.4 Untersuchung auf Gleichheit. . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.6 Funktionensammlung erzeugen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7 Grafik in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.7.1 Die Befehlsfamilie plot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.7.2 Die Befehlsfamilie draw. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.8 Datentypen in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.8.1 Punkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.8.2 Geraden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.8.3 Kreise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.8.4 Kegelschnitte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.9 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2 Koordinatensysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.1 Kartesisches Koordinatensystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2 Affines Koordinatensystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.3 Polarkoordinatensystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
XV
XVI
Inhaltsverzeichnis
2.5
3
Realisation in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.5.1 Umrechnung in affine Koordinaten. . . . . . . . . . . . . . . . . . . . . . 34 2.5.2 Umrechnung in Polarkoordinaten . . . . . . . . . . . . . . . . . . . . . . . 35 2.5.3 Drehung eines Punkts im kartesischen System. . . . . . . . . . . . . 37 2.5.4 Aufnahme in die Makrobibliothek. . . . . . . . . . . . . . . . . . . . . . . 37
Punkte und Strecken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1 Streckenlänge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.2 Mittelpunkt einer Strecke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.3 Streckenteilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3.1 Innere Teilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3.2 Äußere Teilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.4 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.5 Realisation in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5.1 Streckenlängen, Streckenmittelpunkt. . . . . . . . . . . . . . . . . . . . . 47 3.5.2 Teilpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4 Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.1 Geradengleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2 Die allgemeine Geradengleichung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3 Die Standardform der Geradengleichung . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4 Geradengleichung in Punkt-Steigungs-Form. . . . . . . . . . . . . . . . . . . . . . 51 4.5 Zwei-Punkte-Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6 Achsenabschnittsform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.7 Polarform der Geradengleichung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.8 Parallelität und Orthogonalität von Geraden. . . . . . . . . . . . . . . . . . . . . . 55 4.8.1 Parallele Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.8.2 Abstand zweier paralleler Geraden. . . . . . . . . . . . . . . . . . . . . . 56 4.8.3 Orthogonale Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.8.4 Winkel zwischen Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.9 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.10 Realisation in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.10.1 Bestimmung der Steigung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.10.2 Allgemeine Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.10.3 Punkt-Steigungs-Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.10.4 Zwei-Punkte-Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.10.5 Achsenabschnittsform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.10.6 Umrechnungen zwischen Standard- und Polarform . . . . . . . . . 67 4.10.7 Winkelbestimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5
Punkte und Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.1 Inzidenz von Punkt und Gerade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2 Schnittpunkte von Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Inhaltsverzeichnis
XVII
5.3
Abstand Punkt – Gerade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.3.1 Abstand – Gerade in Polarform. . . . . . . . . . . . . . . . . . . . . . . . . 70 5.3.2 Abstand Punkt–Gerade in Standardform. . . . . . . . . . . . . . . . . . 72 5.4 Lote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.4.1 Lotgerade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.4.2 Lotfußpunkt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.4.3 Mittelsenkrechte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.5 Kollineare Geraden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.6 Kopunktale Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.7 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.8 Realisation in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.8.1 Punktprobe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.8.2 Schnittpunkte von Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.8.3 Abstand Punkt – Gerade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.8.4 Lote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.8.5 Kollinearität. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.8.6 Kopunktalität. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6
Erkennen von Figuren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.1 Parallelogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.2 Raute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.3 Rechteck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4 Quadrat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.5 Rechtwinkliges Dreieck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.6 Gleichschenkliges Dreieck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.7 Gleichseitiges Dreieck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.8 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.9 Realisation in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7
Linien, Punkte und Flächeninhalt im Dreieck. . . . . . . . . . . . . . . . . . . . . . . . 91 7.1 Länge einer Seitenhalbierenden im Dreieck . . . . . . . . . . . . . . . . . . . . . . 91 7.2 Seitenhalbierende im Dreieck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.3 Schwerpunkt im Dreieck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.4 Höhe im Dreieck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.5 Winkelhalbierende im Dreieck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.6 Flächeninhalt eines Dreiecks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.7 Flächeninhalt eines beliebigen Vierecks . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.8 Flächeninhalt eines n-Ecks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.9 Umkreis eines Dreiecks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.10 Inkreis eines Dreiecks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.11 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.12 Realisation in Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
XVIII
Inhaltsverzeichnis
8
Kreise im Koordinatensystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.1 Die Koordinatengleichung eines Kreises. . . . . . . . . . . . . . . . . . . . . . . . . 103 8.2 Lage von Kreisen und Punkten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 8.2.1 Punkte auf dem Kreis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 8.2.2 Lage zweier Kreise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.3 Kreise und Geraden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.3.1 Schnitt von Kreis und Gerade . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.3.2 Geradenspiegelung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8.3.3 Punktspiegelung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 8.3.4 Drehung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 8.3.5 Verschiebung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 8.3.6 Durchmessergerade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 8.3.7 Tangenten an einen Kreis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 8.4 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
9
Schnittpunkte zweier Kreise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 9.1 Algebraisches Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.2 Ein Sonderfall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 9.3 Kreise, die sich nicht schneiden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.4 Tangenten durch einen Punkt an einen Kreis. . . . . . . . . . . . . . . . . . . . . . 138 9.5 Festlegung von Kreisen durch Punkte. . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9.5.1 Kreise durch zwei Punkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9.5.2 Kreis durch drei Punkte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9.6 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
10 Kegelschnitte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 10.1 Die Ellipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 10.2 Die Hyperbel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 10.3 Die Parabel als Kegelschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 10.4 Darstellung von Kegelschnitten in Maxima. . . . . . . . . . . . . . . . . . . . . . . 160 10.5 Formbetrachtungen an Kegelschnitten. . . . . . . . . . . . . . . . . . . . . . . . . . . 162 10.5.1 Exzentrizität. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 10.5.2 Der Formparameter p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 10.5.3 Brennpunkteigenschaft und Tangente an einen Kegelschnitt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 10.6 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 11 Kegelschnitte bewegen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 11.1 Koordinatentransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 11.1.1 Parallelverschiebung des Koordinatensystems . . . . . . . . . . . . . 180 11.1.2 Achsenparallele Verschiebung. . . . . . . . . . . . . . . . . . . . . . . . . . 180 11.1.3 Drehung des Koordinatensystems um den Ursprung. . . . . . . . . 181 11.1.4 Drehung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Inhaltsverzeichnis
XIX
11.2 Vereinfachungen mit Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 11.2.1 Umformen der erhaltenen Gleichungen. . . . . . . . . . . . . . . . . . . 184 11.2.2 Darstellung von Kegelschnitten in Maxima. . . . . . . . . . . . . . . . 187 11.3 Bewegen von Kegelschnitten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 11.3.1 Algebraisches Verschieben eines Kegelschnitts. . . . . . . . . . . . . 190 11.3.2 Verschieben mit Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 11.3.3 Algebraisches Drehen eines Kegelschnitts . . . . . . . . . . . . . . . . 192 11.3.4 Drehen mit Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 11.4 Scheitelgleichung von Kegelschnitten. . . . . . . . . . . . . . . . . . . . . . . . . . . 194 11.5 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 12 Hintereinanderausführung von Bewegungen. . . . . . . . . . . . . . . . . . . . . . . . . 199 12.1 Transformieren durch sukzessive Substitution . . . . . . . . . . . . . . . . . . . . 199 12.1.1 Verschiebung mit anschließender Drehung. . . . . . . . . . . . . . . . 199 12.1.2 Drehung mit anschließender Verschiebung. . . . . . . . . . . . . . . . 200 12.2 Transformieren durch eine geschlossene Gleichung. . . . . . . . . . . . . . . . 202 12.3 Transformation von Kegelschnitten in beliebige Lagen . . . . . . . . . . . . . 203 12.4 Bewegungen in Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 12.5 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 13 Rücktransformation von Kegelschnitten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 13.1 Drehen von Kegelschnitten in die achsenparallele Lage. . . . . . . . . . . . . 212 13.1.1 Bestimmung des Drehwinkels. . . . . . . . . . . . . . . . . . . . . . . . . . 212 13.1.2 Ermitteln des Drehwinkels mit Maxima . . . . . . . . . . . . . . . . . . 214 13.1.3 Zurückdrehen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 13.1.4 Zurückdrehen mit Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 13.1.5 Anpassen des Ergebnisses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 13.2 Zurückschieben von Ellipse und Hyperbel . . . . . . . . . . . . . . . . . . . . . . . 220 13.2.1 Bestimmung des Vektors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 13.2.2 Bestimmung des Verschiebungsvektors mit Maxima . . . . . . . . 221 13.2.3 Zurückschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 13.2.4 Zurückschieben mit Maxima. . . . . . . . . . . . . . . . . . . . . . . . . . . 223 13.3 Zurückschieben einer Parabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 13.3.1 Transformation einer Parabel. . . . . . . . . . . . . . . . . . . . . . . . . . . 223 13.3.2 Zurückdrehen einer Parabel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 13.3.3 Ermittlung des Verschiebungsvektors bei der Parabel. . . . . . . . 224 13.3.4 Kombinierte Funktion zum Zurückschieben. . . . . . . . . . . . . . . 226 13.4 Ermitteln der Formparameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 13.5 Bestimmung der Brennpunkte eines Kegelschnitts. . . . . . . . . . . . . . . . . 228 13.6 Rytz’sche Achsenkonstruktion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 13.6.1 Konjugierte Durchmesser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 13.6.2 Konstruktion der Haupt- und Nebenachse. . . . . . . . . . . . . . . . . 231 13.7 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
XX
Inhaltsverzeichnis
14 Leitkreiskonstruktion der Kegelschnitte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 14.1 Schnitte mit Kegelschnitten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 14.1.1 Schnitt eines Kegelschnitts mit einer Geraden . . . . . . . . . . . . . 240 14.1.2 Schnitt mit einem Kreis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 14.1.3 Schnitt zweier Kegelschnitte. . . . . . . . . . . . . . . . . . . . . . . . . . . 242 14.1.4 Probleme beim Ermitteln von Schnittpunkten. . . . . . . . . . . . . . 242 14.2 Leitkreiskonstruktion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 14.2.1 Leitkreiskonstruktion der Ellipse. . . . . . . . . . . . . . . . . . . . . . . . 243 14.2.2 Leitkreiskonstruktion der Hyperbel. . . . . . . . . . . . . . . . . . . . . . 245 14.2.3 Leitlinienkonstruktion der Parabel. . . . . . . . . . . . . . . . . . . . . . . 246 14.3 Tangenten an einem Kegelschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 14.3.1 Tangentenkonstruktion an eine Ellipse . . . . . . . . . . . . . . . . . . . 247 14.3.2 Tangentenkonstruktion an eine Hyperbel . . . . . . . . . . . . . . . . . 247 14.3.3 Tangentenkonstruktion an eine Parabel. . . . . . . . . . . . . . . . . . . 248 14.4 Bestimmung der Tangenten mit Maxima. . . . . . . . . . . . . . . . . . . . . . . . . 248 14.5 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 15 Weitere Aufgaben zu Kegelschnitten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 15.1 Ellipsograph des Archimedes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 15.2 Konstruktion der Scheitelschmiegekreise . . . . . . . . . . . . . . . . . . . . . . . . 259 15.3 Kegelschnittgleichungen aufstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 15.3.1 Kegelschnittgleichung aus fünf Punkten. . . . . . . . . . . . . . . . . . 261 15.3.2 Kegelschnittgleichung aus drei Punkten . . . . . . . . . . . . . . . . . . 263 15.4 Der Flächeninhalt einer Ellipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 15.5 Maximales Rechteck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 15.6 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 16 Darstellung dreidimensionaler Körper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 16.1 Kavalierprojektion (Frontschau) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 16.2 Darstellung der Kavalierprojektion mit Maxima. . . . . . . . . . . . . . . . . . . 276 16.3 Drehen von Körpern im Raum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 16.4 Militärprojektion (Vogelschau) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 16.5 Darstellung der Militärperspektive mit Maxima. . . . . . . . . . . . . . . . . . . 286 16.6 Dynamisches Drehen von Objekten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 16.7 Dynamik mit dem Slider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 16.7.1 Gebrauch des Sliders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 16.7.2 Weitere Beispiele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 16.7.3 Würfeldrehung mit dem Slider . . . . . . . . . . . . . . . . . . . . . . . . . 295 16.8 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Inhaltsverzeichnis
XXI
Anhang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 Bisher erschienene Bände der Reihe Mathematik Primarstufe und Sekundarstufe I + II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Weiterführende Literatur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Stichwortverzeichnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
1
Einführung in Maxima
Diese der eigentlichen Thematik vorangestellte kurze Einführung in das Computer-Algebra-System (CAS) Maxima soll Ihnen – soweit Sie noch nie mit einem CAS gearbeitet haben – einen ersten Einblick in den Umgang mit einem solchen System ermöglichen und Ihnen insbesondere die Handhabung von Maxima näherbringen. Sie sollen damit in die Lage versetzt werden, anhand der hier dargestellten Basics selbständig weiterforschen und -experimentieren zu können. Es lohnt sich: Maxima ist ein mächtiges Werkzeug und bietet neben der hervorragenden Unterstützung für Ihr Verständnis mathematischer Zusammenhänge außerdem ungemein vielfältige Möglichkeiten für einen didaktisch und methodisch reflektierten Einsatz in der Schule. Für den praktischen Einsatz und insbesondere die Ausbildung von Studierenden ist wesentlich, dass Maxima mittlerweile auf allen vier verbreiteten Plattformen (Windows-, MacOS-, Unix- und nun auch auf Android-Systemen) zum Einsatz kommen kann und dass es als Open-Source-Programm kostenfrei erhältlich ist. Neben dem Anspruch, dass jede/r Mathematik-Studierende wenigstens ansatzweise ein Computer-Algebra-System kennen und nutzen können sollte, gilt der Satz, dass man nur das wirklich verstanden hat, was man anderen erklären und weitergeben kann. Dieser „Andere“ kann vorzugsweise auch ein Computersystem bzw. -programm sein, weil man hierbei gezwungen wird, eine Problemlösung logisch schlüssig zu durchdenken und exakt zu formulieren!
1.1 Das Programm Das eigentliche Computer-Algebra-System Maxima läuft auf der Kommandoebene oder im Terminal und wird vollständig über Kommandos (die man natürlich wissen muss) gesteuert. Diese Benutzerschnittstelle ist daher nicht besonders einladend, weshalb eine © Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 H. Albrecht, Elementare Koordinatengeometrie, Mathematik Primarstufe und Sekundarstufe I + II, https://doi.org/10.1007/978-3-662-61620-8_1
1
2
1 Einführung in Maxima
grafische Oberfläche namens wxMaxima geschaffen wurde, welche als deutlich benutzerfreundlichere Schnittstelle fungiert und in welcher die gängigsten in Maxima enthaltenen Funktionen über Menüs und Befehlsschaltflächen aufrufbar sind. Wir werden ausschließlich mit dieser Oberfläche wxMaxima arbeiten, sprechen aber im Folgenden der Kürze wegen, wenn nicht explizit unterschieden werden muss, immer nur von Maxima. Sowohl das eigentliche Kernprogramm Maxima als auch die Benutzeroberfläche wxMaxima werden fortlaufend weiterentwickelt. Während Änderungen von Maxima in der Regel unter der Oberfläche versteckt bleiben, machen sich Updates von wxMaxima meist direkt bemerkbar. Hier im Buch ist die Arbeit mit den Versionen 5.43.0 (Maxima) und 19.05.7 (wxMaxima) auf dem Mac dargestellt. Die Installationsdateien findet man im Internet unter http://maxima.sourceforge.net in verschiedenen Versionen für die Betriebssysteme UNIX, Windows, MacOS und Android. Noch vor der Installation sollten Sie den Namen Ihres Benutzerverzeichnisses überprüfen. Enthält dieser Name Sonderzeichen – und dazu zählen für Maxima bereits unsere im Deutschen gängigen Umlaute – so kann es in der Zusammenarbeit zwischen Maxima und dem für die Erzeugung von Grafiken verantwortlichen Programm Gnuplot Probleme geben, da hierfür Dateien über ebendieses Benutzerverzeichnis ausgetauscht werden. Die Installation selbst verläuft auf Windows-Rechnern automatisch – am besten akzeptieren Sie alle während des Installationsprozesses gemachten Vorschläge. Auf dem Mac erhält man ein .dmg-File, das u. a. die Datei ReadMe.rtf enthält, nach deren Vorgaben die Installation vorgenommen wird. Grundsätzlich ist es ausreichend, das Programm Maxima.app und den Launcher wxMaxima.app in das Programmverzeichnis zu ziehen. Leider schiebt Apple inzwischen einer einfachen Installation auf dem Mac einen Riegel vor, da es Programme, die nicht aus dem hauseigenen Appstore stammen, unter Quarantäne stellt. Man bekommt dann beim Aufruf lediglich einen Hinweis, dass die Datei beschädigt sei. In diesem Fall muss die diesbezügliche Kennzeichnung – ein spezielles Quarantäne-Flag – über das Terminal entfernt werden. Die genaue Vorgehensweise wird kleinschrittig in einer mitgelieferten Hilfedatei erläutert. Schließlich sollten Sie Maxima auf einem Mac immer über den erwähnten Launcher wxMaxima.app starten, da es sonst zu Problemen bei der Grafikausgabe kommen kann. Zur Installation und zum Gebrauch des Programms gibt es viele Hilfeseiten im Netz, einige Verweise zu diesen Quellen sind auf der Homepage des Buchs zusammengestellt. Bereits an dieser Stelle soll ein Hinweis auf einen Fehler erfolgen, der sich schon recht lange durch unterschiedliche Programmversionen zieht: Die Benutzeroberfläche wxMaxima bietet die Möglichkeit, automatisch zusammengehörige Klammerpaare zu erzeugen: Sobald man eine öffnende Klammer, egal ob (, [ oder { eingibt, setzt Maxima sofort die korrespondierende schließende Klammer dazu. Dies hat den Vorteil, dass man diese schließenden Klammern nicht vergisst, was in umfangreicheren Funktionstexten sonst leicht geschehen kann. Direkt nach der Installation von Maxima bei dessen erstem Aufruf ist dieses Feature allerdings nicht immer verfügbar, obwohl die entsprechende Option „Automatisch passende Klammern erzeugen“ im Einstellungsmenü angekreuzt
1.2 Einfache Rechenoperationen
3
ist. Man kann dem aber leicht abhelfen, indem man ebendiesen gesetzten Haken durch Anklicken wegnimmt und sofort wieder setzt. Ab sofort wird Maxima immer zusammengehörige Klammerpaare erzeugen.
1.2 Einfache Rechenoperationen Die Eingabe in Maxima ist befehlsorientiert, d. h. Befehle und Anweisungen müssen über die Tastatur in die Eingabezeile eingegeben werden. Maxima akzeptiert als Rechenoperatoren die gewohnten Zeichen +, −, * und /. Zum Potenzieren verwendet man den Zirkumflex ^, beispielsweise bedeutet 2^3 die Potenz 23. Schließlich wird das Ausrufezeichen als Aufforderung zur Berechnung einer Fakultät verstanden. Anstatt des bei uns üblichen Dezimalkommas erwartet Maxima jedoch bei der Notation von Dezimalzahlen immer einen Dezimalpunkt! Den zu berechnenden Term gibt man in das Maxima-Arbeitsblatt ein; dies ist die beim Arbeitsbeginn freie Fläche des Maxima-Fensters. Falls gewünscht können bei der Eingabe von Termen und Gleichungen zur optischen Gliederung beliebig Leerzeichen eingefügt werden. Die Auswertung wird schließlich mit der Tastenkombination gestartet. Die getätigte Eingabe wird automatisch um ein Semikolon ergänzt, darunter erscheint das errechnete Ergebnis. Möchte man dessen Ausgabe unterdrücken, was bei umfangreichen Ergebnissen sinnvoll sein kann, so setzt man ein Dollarzeichen ($) an das Zeilenende. Maxima nummeriert die Ein- und Ausgabezeilen mit (%i…) bzw. (%o…) automatisch durch. Dies hat den Vorteil, dass man jederzeit auf früher generierte Ergebnisse zugreifen kann. Unsere ersten Eingaben und die zugehörigen Ausgaben von Maxima sind in Abb. 1.1 dargestellt.
Abb. 1.1 Einfache Rechenoperationen in Maxima
4
1 Einführung in Maxima
Abb. 1.2 Editieren in Maxima
Bereits gemachte Eingaben kann man durch Überschreiben verändern. Im dargestellten Beispiel wurde die Summe in der vierten Eingabe durch eine Differenz ersetzt. In Abb. 1.2 verdeutlicht der rote Pfeil links der Eingabe, dass die veränderte Eingabe noch nicht abgeschlossen wurde. Um die Eingabe vollständig abzuschließen und das veränderte Ergebnis errechnen zu lassen, muss man erneut drücken. Unterlässt man dies, so kann es möglicherweise bei der weiteren Arbeit in komplexen Berechnungen zu durchaus heftigen Irritationen kommen! Ein Computer-Algebra-System kann selbstverständlich auch mit Variablen rechnen. Für die Zuweisung von Werten zu Variablen verwendet man den Doppelpunkt, beispielsweise weist die Zuordnung x:5 der Variablen x den Wert 5 zu. Durch die bloße Eingabe des Variablennamens kann man jederzeit deren aktuellen Wert erfahren. Die Ein- und Ausgabezeilen bilden in Maxima eine Zelle, die linksseitig von einer Zellenklammer umschlossen wird. Möchte man eine solche Zelle löschen, so selektiert man diese Klammer und drückt die -Taste. Zwischen bestehenden Zellen können jederzeit neue Zellen eingefügt werden.
1.3 Symbolische versus numerische Werteangabe Über die Grundrechenarten hinausgehende Operationen werden in Maxima über Funktionen aufgerufen. So ermittelt beispielsweise die Funktion sqrt(x) nach der soeben durchgeführten Festlegung von x auf fünf die Quadratwurzel aus √ fünf. Wie in Abb. 1.3 dargestellt, antwortet Maxima mit der Darstellung des Symbols 5 und gibt sich als Computer-Algebra-System mit dieser Darstellung zufrieden. Möchte man den Zahlenwert eines Ergebnisses erfahren, so muss Maxima entsprechend angewiesen werden. Hierfür gibt es mehrere Vorgehensweisen, mit deren Darstellung weitere Editiermöglichkeiten von Maxima erläutert werden.
1.3 Symbolische versus numerische Werteangabe
5
Abb. 1.3 Möglichkeiten der numerischen Ergebnisdarstellung
Zunächst kann man den Befehl verändert neu eingeben und Maxima die Wurzel aus 5 als Fließkommazahl bestimmen lassen: float(sqrt(5)). √ Möchte man nachträglich den Zahlenwert von 5 erfahren, so kann man float(%o7) eingeben. Damit wird auf das in der siebten Ausgabezeile dargestellte Ergebnis zugegriffen. Mit dem Operator % allein kann immer auf das soeben generierte Ergebnis zurückgegriffen werden. Aber Achtung: Dieses Ergebnis muss nicht unbedingt in der Zeile darüber stehen, Bezug genommen wird vielmehr auf das zeitlich zuletzt generierte Ergebnis! Durch Klicken kann man den Schreibcursor in jeder beliebigen Eingabezeile positionieren. Gegebenenfalls kann man die gewünschte Stelle auch mit den Pfeiltasten ansteuern. Dabei wird deutlich, dass beim Überfahren von Klammern korrespondierende Klammerpaare hervorgehoben werden – eine nicht zu unterschätzende Hilfe bei der Fehlersuche! In unserem Beispiel steuern wir die siebte Eingabezeile an und fügen den Befehl float am Zeilenanfang ein. Den Klammerautomatismus können wir sinnvoll nutzen, indem wir, wie in Abb. 1.4 dargestellt, den dort vorhandenen Befehl sqrt(5) markieren und dann die öffnende runde Klammer eintippen. Damit wird – wie gewünscht – der gesamte markierte Ausdruck vollständig eingeklammert. Wichtig ist wiederum, die Änderung der Eingabezeile durch die Tastenkombination abzuschließen! Anstatt eine explizite Umwandlung in eine Fließkommazahl vorzunehmen, reicht es aus, Maxima zuvor mitzuteilen, dass man das Ergebnis numerisch als Zahl und nicht als
6
1 Einführung in Maxima
Abb. 1.4 Nachträgliches Setzen von Klammern
algebraischen Ausdruck angezeigt haben möchte. Dies macht man, indem man an einen Befehl, durch ein Komma abgetrennt, das Wort numer angibt: sqrt(5),numer
Da man relativ häufig den numerischen Wert eines eben errechneten Ausdrucks angezeigt haben möchte, gibt es hierfür weitere Möglichkeiten: Zum einen kann dies über das Menü „Numerisch“ geschehen, indem man dort die Optionen „Letztes Ergebnis als Gleitkommazahl“ bzw. „To Numeric“ auswählt. Für diese Option gibt es zudem eine Tastenkombination, welche die nachträgliche Anzeige eines eben generierten Ergebnisses in numerischer Form recht einfach macht. Windows MacOS
Shift>n (Großschreibtaste–Strg–n) bzw. < n (Großschreibtaste–Cmd–n)
Gleichwohl sollte man die Möglichkeit zur numerischen Angabe von Werten nur nutzen, um selbst eine schnelle Vorstellung von der Größe eines errechneten (Zwischen-)Ergebnisses zu erhalten. Keinesfalls sollte man jedoch solche numerischen Zwischenergebnisse zum Weiterrechnen benutzen, da Maxima intern viel besser und insbesondere genauer symbolisch rechnen kann.
1.4 Funktionen in Maxima
7
1.4 Funktionen in Maxima Maxima enthält ungemein viele Funktionen und für einige häufig benötigte Funktionen existieren in den Menüs oder auf Befehlsschaltflächen schnelle Zugriffsmöglichkeiten. Deren Nutzung hat neben dem raschen Zugriff den weiteren Vorteil, dass man damit die zugrundeliegende Funktion nebst deren Syntax peu à peu kennenlernt. Einige wenige sollen nachfolgend im Sinne einer exemplarischen Darstellung erläutert werden. Starten Sie Maxima neu und schalten Sie im Menü „Ansicht“ die Anzeige der Toolbar „Allgemeine Mathematik“ ein. In Abb. 1.5 ist diese Toolbar am linken Fensterrand dargestellt. Sie kann jedoch dort abgelöst und an jede beliebige andere Stelle verschoben werden.
1.4.1 Arbeiten mit Schaltflächen Als Algebrasystem kann Maxima symbolisch rechnen. Um sich beispielsweise das Binom (x+3)2 bestimmen zu lassen, kann man es an der Eingabezeile eintippen und drücken. Gleich danach klickt man mit der Maus auf die „Expandieren“-Schaltfläche. Alternativ wäre es möglich, so man den expand()-Befehl bereits kennt, in die Eingabezeile gleich expand((x+3)^2) einzugeben. Für das umgekehrte Vorgehen steht die Schaltfläche „Faktorisieren“ zur Verfügung. Bei der Nutzung dieser Schalfläche wird automatisch der zuletzt erzeugte Ausdruck faktorisiert. Wie man sieht, verbirgt sich dahinter der Befehl factor(). Die Funktion factor() kann auch auf eine ganze Zahl angewendet werden, was dann zur Ausgabe der Primfaktorzerlegung führt.
Abb. 1.5 Aufruf von Funktionen aus der Toolbar
8
1 Einführung in Maxima
Abb. 1.6 Aufruf der Funktion solve()
Viel Zeit wird in der Schule für das Lösen von Gleichungen und Gleichungssystemen aufgewendet. Maxima erledigt diese Aufgabe auf Knopfdruck, wenn man auf die Schaltfläche „Gleichung lösen…“ klickt und in das erscheinende Fenster sowohl die Gleichung(en) als auch die Variable(n) eingibt. Daraus wird die Funktion solve() mit den übergebenen Gleichungen und der Variablenliste generiert und mitsamt der Lösung ausgegeben. In Abb. 1.6 wird zudem deutlich, dass Maxima die Lösungen als Liste ausgibt. Erkunden Sie weitere in den Schaltflächen und Menüs von Maxima vorhandene Funktionen auf eigene Faust, um im Umgang mit Maxima vertraut zu werden und eine erste Vorstellung von dessen Funktionsumfang zu bekommen.
1.4.2 Eingabehilfen Mit der Zeit werden häufig benutzte Funktionen in aller Regel nicht mehr über die Schaltflächen oder die Menüs ausgewählt, sondern die Funktionsnamen zeitsparend direkt in Maxima eingegeben. Dabei kann es vorkommen, dass Sie den Funktionsnamen bzw. dessen Schreibweise nicht mehr exakt wissen. Hier kann Ihnen Maxima weiterhelfen – zumindest, wenn Sie sich an die ersten Buchstaben der gesuchten Funktion noch erinnern. Geben Sie, wie in Abb. 1.7 gezeigt, einfach die ersten Buchstaben ein und wählen dann im Menü „Zellen“ die Option „Vervollständige Befehl (Complete Word)“ oder alternativ die Tastenkombination auf einem Windows-Rechner bzw. auf dem Mac. Maxima schlägt Ihnen dann in einer Auflistung alle Funktionen vor, die mit Ihrem vorgegebenen Wortanfang übereinstimmen. Die gewünschte Funktion können Sie daraus entweder per Mausklick in die Eingabezelle übernehmen oder mit den Pfeiltasten durchblättern und der Eingabetaste auswählen.
1.5 Eigene Funktionen definieren
9
Abb. 1.7 Funktionsnamen vervollständigen
Abb. 1.8 Syntaxhilfe in Maxima
Noch hilfreicher ist die Menüoption „Zellen/Zeige Muster (Show Template)“ bzw. die Tastenkombination ( auf dem Mac). Klickt man nun auf die gewünschte Funktion, so werden nicht nur der Funktionsname, sondern auch deren Syntax mitsamt den Platzhaltern für die erforderlichen Parameter übernommen. Das Erscheinungsbild dieser Syntaxhilfe zeigt Abb. 1.8.
1.5 Eigene Funktionen definieren Besonders flexibel wird Maxima durch die Möglichkeit, zusätzlich zum enthaltenen Funktionsumfang eigene Funktionen erstellen zu können. Dies lässt sich zunächst recht einfach mit der Definition einer typischen Polynomfunktion aus dem Analysisunterricht zeigen: f(x):=x^3−13*x+12
Für die Zuweisung des Funktionsterms an den Funktionsnamen erwartet Maxima den Zuweisungsoperator := (Doppelpunkt-Gleichheitszeichen). Wichtig ist weiter, dass Koeffizienten explizit mit dem Multiplikationszeichen „*“ an ihre Variable gebunden
10
1 Einführung in Maxima
werden müssen. Die Eingabe wird wie gewohnt mit abgeschlossen, und wenn keine Syntaxfehler vorliegen, echot Maxima die Eingabe. Nach der so erfolgten Definition einer Funktion wird diese unter Angabe ihres Namens aufgerufen. In Abb. 1.9 werden mit f(0), f(2) die Funktionswerte an den angegebenen Stellen null bzw. zwei ermittelt und ausgegeben. Die Befehlsschaltfläche „2D-Plotten…“ liefert den Graphen der Funktion, wobei man in das erscheinende Fenster lediglich den oder – durch Kommata getrennt – die Namen der zu plottenden Funktionen und den Plotbereich eingeben muss. In Abb. 1.10 ist eine eingebettete Grafik dargestellt. Die von Maxima erzeugten Grafiken können allerdings auch in eigenen Fenstern dargestellt werden.
Abb. 1.9 Eigene Funktionen definieren und aufrufen
Abb. 1.10 Darstellen von Funktionsgraphen
1.5 Eigene Funktionen definieren
11
Auf dieselbe Art und Weise kann man sich über die Befehlsschaltflächen „Differenzieren…“ bzw. „Integrieren…“ die Ableitungen und das Integral der Funktion bestimmen lassen.
1.5.1 Definition einfacher Funktionen in Maxima Die Fähigkeit zur Definition eigener Funktionen wird im Zusammenhang mit den trigonometrischen Funktionen benötigt, da Maxima bei Winkelfunktionen die Parameter immer im Bogenmaß erwartet und liefert. Der Zusammenhang zwischen Grad- und Bogenmaß lautet:
grad grad bogen bogen bogen grad ⇔ ⇔ = = = ◦ ◦ ◦ 360 Umfang 360 2π 180 π Wir werden zunächst eine Maxima-Funktion generieren, welche über den eben ermittelten Zusammenhang bogen = grad·π aus dem Gradmaß das zugehörige Bogenmaß 180◦ errechnet. Öffnen Sie bitte eine neue Maxima-Datei, bevor Sie die folgenden Schritte nachvollziehen. Diese sind in Abb. 1.11 dargestellt. Um eine eigene Funktion in Maxima zu erstellen, muss zuerst deren Name festgelegt werden. Bei der Namenswahl sind wir grundsätzlich frei, jedoch sollte man Sonderzeichen im Namen vermeiden und für eine bessere Wiedererkennung möglichst sprechende Namen verwenden. Weiter sollte man vermeiden, Namen von bereits in
Abb. 1.11 Definition und Aufruf selbst generierter Funktionen
12
1 Einführung in Maxima
Maxima eingebauten Funktionen zu verwenden, da sonst die eingebauten Funktionen überschrieben werden. Da Maxima englischsprachig ist, wird sich ein solcher Konflikt bei der Verwendung deutscher Begriffe kaum ergeben. Für unser erstes Beispiel wählen wir den Namen bogen. Eine Funktion können wir uns als Objekt vorstellen, welches aus einem oder mehreren Ausgangswerten einen Ergebniswert bestimmt. Demzufolge müssen wir vermerken, dass unsere Funktion bogen den jeweiligen Winkel im Gradmaß als Aufrufparameter benötigt. Die frei wählbaren Namen der Aufrufparameter werden hinter dem Funktionsnamen in runden Klammern angegeben, wir schreiben daher: bogen(grad):=
Nach dem für die Definition von Funktionen benötigten Zuweisungsoperator := folgt die Angabe, wie die Berechnung des Bogenmaßes aus der Gradangabe erfolgen soll. Wir schreiben weiter: bogen(grad):=grad·%pi/180
Diese Eingabe wird wie gewohnt mit abgeschlossen. Wir können dann die selbst generierte Funktion mit beliebigen Winkelwerten aufrufen. Es ist eine gute Idee, zunächst leicht überprüfbare und besondere Werte berechnen zu lassen. Durch die Möglichkeit, Funktionsaufrufe zu verschachteln, können wir schließlich die in Maxima fest installierten trigonometrischen Funktionen mit der Angabe von Winkelgraden aufrufen. Schließlich benötigen wir die Umkehrfunktion grad, welche aus dem Bogenmaß den zugehörigen Winkel bestimmt: grad(bogen):=bogen·180/%pi
Um zum Sinuswert 1/2 den zugehörigen Winkel im Gradmaß zu bestimmen, genügt der Aufruf: grad(asin(1/2))
1.5.2 Vorgehen beim Erstellen komplexer Funktionen Nicht immer lassen sich Funktionen durch die Angabe eines einzigen Berechnungsterms erstellen. Häufig sind für die Generierung des gewünschten Ergebnisses mehrere Schritte nötig, dabei müssen meist Zwischenergebnisse in Variablen gespeichert werden. Beide genannten Punkte haben Auswirkungen auf die Erstellung eigener Funktionen in Maxima. Diese beiden Auswirkungen sollen anhand einer Funktion dargestellt werden, welche Polarkoordinaten in kartesische Koordinaten umrechnet. Die inhaltliche Relevanz
1.5 Eigene Funktionen definieren
13
wird ausführlich im nächsten Kapitel dargestellt, hier soll es zunächst um eine korrekte Realisierung in Maxima gehen. Die Polarkoordinaten eines Punkts P seien als Paar [r, ϕ] gegeben. Aus diesem sollen die zugehörigen kartesischen Koordinaten berechnet werden. Der Aufrufparameter der zu erstellenden Funktion ist somit eine zweielementige Liste, deren Name P sein soll. Damit und mit dem Funktionsnamen polar_cart kann bereits der Funktionskopf geschrieben werden: polar_cart(P):=
Die gesuchten x- und y-Koordinaten müssen jeweils getrennt berechnet werden, daher wird der Funktionstext aus mehr als einer Anweisung bestehen. Immer, wenn in Maxima mehrere Anweisungen in einer Funktion zusammengefasst werden, benötigt man das block()-Statement, das innerhalb seiner runden Klammern alle Anweisungen zusammenfasst. Bei der Erstellung der Funktion wird man weiter schreiben: polar_cart(P):=block( )
Die schließende Klammer des block()-Statements schiebt man – um sie nicht zu vergessen – mittels einiger eingefügter Zeilenschaltungen ein paar Zeilen nach unten. In diesen Zwischenraum zwischen den Klammern kommen nun die erforderlichen Berechnungsanweisungen. Es ist zwar programmiertechnisch nicht nötig, aber ungemein vorteilhaft, was die Lesbarkeit des Programmcodes angeht, wenn man die als Listenelemente übertragenen Werte in getrennte Variablen überträgt. Genau dies leistet die Zuweisung: [r,phi]:P
Dabei wird die erste Komponente des geordneten Paars P in die Variable r und die zweite Komponente in die Variable ϕ übertragen. Nun können daraus die kartesischen Koordinaten berechnet und den Variablen x und y zugewiesen werden: x:r*cos(bogen(phi)) y:r*sin(bogen(phi))
Als Funktionsergebnis werden beide Koordinaten in eine zweielementige Liste verpackt ausgegeben: [x,y]
14
1 Einführung in Maxima
Das Ergebnis der letzten Anweisung einer selbsterzeugten Maxima-Funktion ist automatisch auch das Funktionsergebnis. Unsere Funktion hat damit die folgende Form: polar_cart(P):=block( [r,phi]:P, x:r*cos(bogen(phi)), y:r*sin(bogen(phi)), [x,y] )
Die einzelnen Anweisungen innerhalb des block()-Statements müssen durch Kommata voneinander abgetrennt werden. Dies bedeutet, dass die letzte Anweisung kein Komma angehängt bekommt! Das abschließende Semikolon fügt Maxima selbst ein, wenn wir mit die Funktion auswerten lassen. Wurde alles korrekt eingegeben, dann echot Maxima den Funktionstext und die Funktion kann mit ihrem Namen und einem konkreten Parameter aufgerufen werden. So liefert beispielsweise der Aufruf polar_cart([8,60])
√ das korrekte Ergebnis 4, 4 3 . Damit wurde die erste Bedingung für die Zusammenfassung mehrerer Anweisungen in eine Funktion erfüllt. Die zweite Bedingung ist weniger offensichtlich, wirkt sich dafür aber bei ihrer Nichtbeachtung umso unangenehmer aus. Ein nochmaliger Blick auf den generierten Funktionstext ruft in Erinnerung, dass wir als Zwischenspeicher für die errechneten Koordinaten die Variablen x und y verwendet haben. Bei ebendieser Verwendung wurden eventuelle, bereits bestehende Inhalte der Variablen x und y ohne weitere Warnung überschrieben! Machen Sie sich dieses Problems bewusst, indem Sie in Maxima die Variablen x und y mit beliebigen Werten belegen, beispielsweise x:1 y:2
und dann die Funktion polar_cart() mit beliebigen Parametern aufrufen. Lassen sich anschließend die Inhalte der Variablen x und y zeigen, indem Sie einfach x bzw. y in Maxima eingeben und drücken. Sie werden feststellen, dass die von Ihnen zuvor zugewiesenen Werte der Variablen x und y durch die Funktion überschrieben wurden. Dies ist natürlich nicht tolerabel und muss auf jeden Fall vermieden werden. Das Problem kann gelöst werden, indem alle innerhalb einer Funktion verwendeten Variablen als sogenannte lokale Variablen deklariert werden. Lokale Variablen sind Variablen, deren Gültigkeit strikt auf die jeweilige Funktion beschränkt ist. Im Gegensatz dazu gibt es globale Variablen, diese sind global über das gesamte Maxima-Arbeitsblatt
1.5 Eigene Funktionen definieren
15
hinweg gültig. Wenn wir eine Variable nicht explizit als lokal kennzeichnen, ist sie immer global gültig. Um Variablen innerhalb einer Funktion als lokal zu kennzeichnen, zählt man diese direkt nach dem block()-Statement in eckigen Klammern auf. In unserem obigen Beispielprogramm sind dies die Variablen r, ϕ, x und y. Damit erhält unsere Funktion die endgültige Form: polar_cart(P):=block( [r,phi,x,y], [r,phi]:P, x:r*cos(bogen(phi)), y:r*sin(bogen(phi)), [x,y] );
Der Aufrufparameter P wird von Maxima automatisch als lokale Variable erkannt. Aufrufparameter dürfen unter keinen Umständen zusätzlich in die Liste der lokalen Variablen aufgenommen werden, da dies zu völlig unerwarteten Ergebnissen und Fehlermeldungen bis hin zu Programmabstürzen führen kann! Leser mit Programmierkenntnissen werden leicht feststellen, dass diese selbst erzeugte Funktion problemlos und sehr kompakt ohne den Rückgriff auf lokale Variablen, mit nur einer einzigen Anweisung und daher ohne die Verwendung des block()-Statements geschrieben werden kann. Dabei wird die Möglichkeit genutzt, durch Indizierung auf die Elemente einer Liste zuzugreifen. P[1] liefert das erste Listenelement, P[2] das Zweite: polar_cart(P):=[P[1]*cos(bogen(P[2])),P[1]*sin(bogen(P[2]))]
Ein solch komprimierter Programmierstil wird hier im Buch bewusst vermieden: Erstens sollte es in einem Lehrbuch vorrangig um eine möglichst leichte Nachvollziehbarkeit des Gebotenen gehen und ebendiese Nachvollziehbarkeit wird durch ein kleinschrittiges Vorgehen und sprechende Variablennamen deutlich verbessert. Zweitens führt die häufig als Argument für kompakten Code ins Feld geführte schnellere Ausführbarkeit bei den im Rahmen dieses Buchs erstellten Progrämmchen überhaupt keine Rolle.
1.5.3 Häufige Fehler Nicht immer wird Maxima den erstellten Funktionstext gleich beim ersten Mal akzeptieren, sondern häufig erst einmal die Fehlermeldung incorrect syntax ausgegeben. Ein zusätzlicher Hinweis könnte lauten: x is not an infix operator (anstatt x kann auch ein anderer Variablenname genannt werden). Diese Fehlermeldung
16
1 Einführung in Maxima
kann zwei Ursachen haben: Entweder wurde vor der angegebenen Variablen ein Komma zur Abtrennung zweier Anweisungen vergessen oder es wurde vergessen, den Koeffizienten der Variablen durch ein explizites Multiplikationszeichen anzubinden, weil man gewohnheitsmäßig 3x anstatt 3*x geschrieben hat. Eine weitere häufige Fehlermeldung lautet: Refusing to send cell to maxima: Un-closed parenthesis on encountering; or $ oder aber kurz und bündig Mismatched parenthesis. In beiden Fällen macht wxMaxima auf ein unpassendes Klammernmanagement aufmerksam und man wird die Klammersetzung nochmals genau überprüfen müssen. Bei dieser Fehlersuche ist hilfreich, dass der Editor beim Ansteuern einer Klammer immer das zusammengehörige Klammerpaar hervorhebt. Sollte Maxima eine lange Liste von Fehlermeldungen ausgeben, so muss dies kein Grund zur Frustration sein: Häufig bedingt ein einziger Syntaxfehler im Funktionstext gleich mehrere Fehlermeldungen. In einem solchen Fall sollte man die zuoberst ausgegebene Fehlermeldung beseitigen und die korrigierte Funktion gleich danach mit übersetzen lassen. Meist sind damit bereits mehrere, wenn nicht schon alle Fehlermeldungen beseitigt.
1.5.4 Untersuchung auf Gleichheit Im Folgenden müssen immer wieder zwei Zahlenwerte auf Gleichheit untersucht werden. Dies ist in Maxima leider etwas aufwändig, weil beispielsweise gemeine Brüche und Dezimalbrüche unterschiedliche Datentypen darstellen und damit 21 und 0,5 von Maxima nicht als gleich erkannt werden. Die an Maxima gerichtete Frage is(2=2.0)
wird von Maxima ebenfalls mit false beantwortet. Es bietet sich deshalb die Erstellung einer eigenen Funktion an, welche diese Besonderheit von Maxima weitestgehend berücksichtigt: gleich(x,y):= x=y or float(x)=float(y) or equal(x,y) or equal(float(x),float(y)) or ratsimp(float(x))=ratsimp(float(y))
Die im Funktionstext zuletzt aufgerufene Maxima-Funktion ratsimp() nähert Fließkommazahlen durch Brüche an. Der selbst erstellten Funktion gleich() können somit zwei Objekte x und y übergeben werden, welche dann in unserem Sinne auf Gleichheit untersucht werden. Das Ergebnis der Funktion ist – je nach Ausgang der Überprüfung – der logische Wahrheitswert true bzw. false.
1.6 Funktionensammlung erzeugen
17
1.6 Funktionensammlung erzeugen Die eben definierte Funktion zur Untersuchung auf Gleichheit gleich() sowie die beiden oben erstellten Funktionen bogen() und grad()werden für den weiteren Fortgang immer wieder gebraucht und um diese nicht immer wieder aufs Neue eingeben zu müssen, sollten wir sie in einer Makrobibliothek speichern. Löschen Sie dazu entweder auf dem eben verwendeten Arbeitsblatt alle Zellen bis auf diejenigen, in welchen die Funktionen bogen(), grad() und gleich() definiert werden oder übertragen Sie diese Definitionen per Copy-&-Paste in ein neues, leeres Arbeitsblatt. Dieses Arbeitsblatt speichern Sie über „Datei/Exportieren“ als Maxima-Bibliothek, indem Sie als „Dateityp“ diesen Eintrag auswählen. Den Dateinamen können Sie frei wählen, ebenso den Speicherort. Maxima erstellt dann eine Datei mit der Endung .mac, die Sie mit jedem einfachen Texteditor öffnen und bearbeiten können. Der Texteditor darf keinerlei Steuerzeichen in die Makrodatei einfügen, verwenden Sie daher unter Windows das Programm Editor und auf dem Mac die App TextEdit. Beenden Sie das Programm Maxima und starten Sie es gleich wieder neu. Öffnen Sie über „Datei/Paket laden…“ die eben erstellte Makrodatei. Wie in Abb. 1.12 ersichtlich, wird dadurch auf dem Maxima-Arbeitsblatt ein Befehl zum Laden ebendieser Datei eingefügt und wenn Sie keine weiteren Meldungen erhalten, dann hat alles geklappt. Dies können Sie überprüfen, indem Sie die Menüoption „Maxima/Zeige Funktionen“ aufrufen. Es wird eine Liste mit den in der Bibliothek enthaltenen, selbst erstellten Funktionen angezeigt, die nun in Maxima genau wie all die anderen fest eingebauten Funktionen zur Verfügung stehen. Die Definition einer in der Makrobibliothek enthaltenen Funktion können Sie nach dem Laden der Bibliothek mit der Menüoption „Maxima/Zeige Definition“ bzw. der Anweisung fundef() anzeigen lassen. Sollten Sie jedoch eine Fehlermeldung erhalten, so ist der Fehler innerhalb der Makrodatei zu suchen. Öffnen Sie die Makrodatei mit einem einfachen Texteditor und
Abb. 1.12 Laden einer Paketdatei
18
1 Einführung in Maxima
überprüfen Sie die enthaltenen Maxima-Funktionen auf fehlende bzw. überzählige Kommata und Klammern oder auf sonstige Fehler. Auf die Verwendung deutscher Sonderzeichen (Umlaute, ß, …) sollten Sie in Makrodateien besser verzichten. Einen Hinweis auf die fehlerhafte Stelle in der Makrodatei können Sie erhalten, indem Sie mit der Anweisung functions die von Maxima erkannten Funktionen aufzählen lassen. Da sich diese Aufzählung an die Reihenfolge der in der Makrodatei erstellen Funktionen hält und der Einleseprozess an der Fehlerstelle stoppt, muss sich der Fehler in derjenigen Funktion befinden, die in der Makrobibliothek genau auf die zuletzt von Maxima erkannte Funktion folgt. Im folgenden Verlauf sollten Sie sukzessive alle weiteren selbst generierten Funktionen dieser Bibliothek hinzufügen, sodass Sie am Ende eine umfangreiche Funktionenbibliothek zur Koordinatengeometrie zur Verfügung haben. Dieses Hinzufügen geschieht am besten, indem der Text einer selbst erstellten Funktion im wxMaxima-Editor kopiert, die Makrodatei in einem einfachen Texteditor geöffnet und die kopierte Funktion dort am Ende eingefügt wird. Bitte darauf achten, dass wirklich der komplette Funktionstext einschließlich des abschließenden Semikolons übertragen wird! Laden Sie bei jedem Neustart von Maxima über „Datei/Lade Paketdatei“ Ihre ergänzte Makrodatei, da häufig neue Funktionen auf die bisher generierten zugreifen.
1.7 Grafik in Maxima Im Hinblick auf die Verwendung von Maxima im Zusammenhang mit den hier im Buch diskutierten geometrischen Aufgabenstellungen sollen am Ende dieses Kapitels noch kurz die grafischen Möglichkeiten von Maxima beleuchtet werden. Hier ist zunächst wichtig zu wissen, dass weder Maxima noch dessen Benutzeroberfläche wxMaxima Grafiken selbst erzeugen kann. Maxima bedient sich für die Erzeugung von Grafiken des Programms Gnuplot, das als Open-Source-Programm ebenfalls frei verfügbar ist und das bei der Installation von Maxima automatisch mitinstalliert wird. Ebenso wie Maxima ist Gnuplot ein befehlszeilenorientiertes Programm, jedoch müssen wir uns als Maxima-Anwender nicht auch noch um diese Befehlssequenzen kümmern, dies erledigt Maxima für uns. Jeder plot- oder draw-Befehl wird von Maxima in die benötigte Syntax übersetzt und an Gnuplot weitergereicht. Gnuplot erstellt daraufhin die gewünschte Grafik, die schließlich in einem eigenen Fenster oder innerhalb der wxMaxima-Oberfläche dargestellt wird. Wie eben angedeutet, gibt es zwei unterschiedliche Befehlsfamilien zur Grafikerzeugung, nämlich plot- und draw-Funktionen. Beide werden noch unterschieden in 2D- und 3D-Routinen: plot2d bzw. plot3d und draw2d bzw. draw3d. Funktionen mit diesen Namen erzeugen Grafiken in eigenständigen Fenstern. Setzt man die Buchstaben „wx“ den jeweiligen Funktionen voran (also bspw. wxplot2d),
1.7 Grafik in Maxima
19
so erstellt Gnuplot die Grafiken im PNG-Format und integriert diese innerhalb der wxMaxima-Oberfläche direkt in das aktuelle Arbeitsblatt.
1.7.1 Die Befehlsfamilie plot Die Befehlsfamilie plot dürfte die erste Wahl sein, um schnell und einfach Graphen von explizit definierten Funktionen der Form f(x)= … darzustellen. Dies wird – wie oben bereits kurz angedeutet – anfangs über die zugehörige Menüfunktion erfolgen. Mit der Zeit und der Geläufigkeit des zugrundeliegenden Befehls wird man dazu übergehen, den Befehl selbst einzugeben. Dabei kann es ratsam sein, die anzuzeigende(n) Funktion(en) zunächst zu definieren: f(x):=5*x^3−8*x−1 g(x):=sin(x) h(x):=%e^x
und danach die plot-Funktion unter Eingabe der festgelegten Namen aufzurufen. Möchte man die Graphen mehrerer Funktionen darstellen lassen, so fasst man deren Namen in einer Liste zusammen. Die Angabe des Plotbereichs in x-Richtung als Liste der Form [x,,] ist obligatorisch, die Angabe des y-Bereichs in derselben Form wird zwar nicht benötigt, kann jedoch für eine aussagekräftige Darstellung sehr hilfreich sein. Probieren Sie den nachfolgenden Grafikbefehl einmal ohne und dann mit der expliziten Angabe des y-Bereichs [y,−5,5] aus: wxplot2d([f,g,h],[x,−5,5],[y,−5,5])
Unabhängig davon, ob ein y-Bereich angegebenen wird, richtet Maxima die Skalierung der Koordinatenachsen an der Größe des Grafikfensters aus. Dies kann zu unschönen Verzerrungen führen. Der folgende Befehl sollte eigentlich einen Halbkreis zeichnen: wxplot2d(sqrt(−x^2+16),[x,-5,5],[y,0,5]);
Dargestellt wird allerdings in aller Regel eine Ellipsenhälfte. Um beide Achsen gleich zu skalieren, muss man die Option same_xy anfügen: wxplot2d(sqrt(−x^2+16),[x,−5,5],[y,0,5],same_xy);
Wie Abb. 1.13 zeigt, können selbst dreidimensionale Plots und damit die Graphen zweidimensionaler Funktionen mit der Plotfunktion leicht dargestellt werden, z. B.: wxplot3d(sin(x)*sin(y),[x,−2*%pi,2*%pi],[y,−2*%pi,2*%pi])
20
1 Einführung in Maxima
Abb. 1.13 3D-Grafik in Maxima
Die plot()-Funktion kann schließlich auch diskrete Punkte in das Koordinatensystem zeichnen. Nach der Definition einer Koordinatenliste wertepaare:[[-1,-7],[0,-1],[1,3],[2,1],[3,0],[4,2],[5,6]]
werden die angegebenen Punkte mit dem folgenden Befehl gezeichnet: wxplot2d([discrete, wertepaare], [x,−2,6], [style,[points,6,1,14]])
Das Schlüsselwort hierfür lautet discrete, gefolgt vom Namen der Koordinatenliste. Abb. 1.14 zeigt, dass auch die Kombination beider Formate möglich ist. Dafür definieren wir die Funktion f neu f(x):=13/36*x^3–50/21*x^2+1049/252*x–11/42;
und rufen die Plotfunktion folgendermaßen auf: wxplot2d([[discrete, wertepaare],f], [x,−2,6], [style,[points,6,1,14], [lines,4,2]])
Insgesamt liefern die plot-Funktionen eine recht einfache Möglichkeit, um sich schnell einen grafischen Eindruck explizit definierter Funktionen zu verschaffen. Allerdings sind
1.7 Grafik in Maxima
21
Abb. 1.14 Kombinierte Grafikausgabe
sie nicht in der Lage, implizit definierte Funktionen darzustellen. Hierfür benötigt man die spezielle Funktion implicit_plot(). Da sich diese nicht im Standardumfang von Maxima befindet, muss sie zuerst mit der Anweisung load(implicit_plot)
geladen werden. Hernach kann sie unter Angabe der jeweiligen Gleichung aufgerufen werden. Ihre weitere Syntax lehnt sich an diejenige der anderen plot-Funktionen an, hier allerdings mit dem Unterschied, dass die Angabe des y-Bereichs ebenfalls obligatorisch ist: implicit_plot((x−2)^2+(y−3)^2-25=0,[x,−4,8],[y,−3,9], same_xy)
1.7.2 Die Befehlsfamilie draw Deutlich leistungsfähiger und flexibler, aber damit leider auch etwas komplexer in der Anwendung, ist die Funktionengruppe um den draw-Befehl. Mit dieser haben
22
1 Einführung in Maxima
wir insbesondere die Möglichkeit, sowohl implizit als auch explizit definierte Funktionen gemeinsam grafisch darzustellen. Da wir diese Möglichkeit für die Darstellung von Kegelschnitten benötigen, folgen abschließend einige grundlegende Hinweise zum Umgang mit den draw-Funktionen. Am besten starten Sie dazu eine neue Maxima-Sitzung. Das draw-Paket ist nicht standardmäßig in Maxima enthalten, es sollte vielmehr vor dem ersten Aufruf mit der Anweisung load(draw)
geladen werden. Ist man mit den von Maxima bzw. Gnuplot getroffenen Vorgaben einverstanden, so ist der Aufruf der draw2d-Funktion recht einfach. Nach den Schlüsselwörtern explicit bzw. implicit gibt man die Funktionsterme oder -gleichungen an und spezifiziert den Bereich, in welchem die Funktion dargestellt werden soll: draw2d(explicit(x^2,x,−3,3))
Dies gilt genauso für die Darstellung einer impliziten Funktion, wobei hierfür auch der y-Bereich festgelegt werden muss: draw2d(implicit(x^2+y^2−2,x,−3,3,y,−3,3))
Möchte man beide Graphen in einem Fenster darstellen lassen, so ist es prinzipiell ausreichend, beide Statements, durch ein Komma getrennt, in einer draw-Funktion zusammenzufassen: draw2d( explicit(x^2,x,−3,3), implicit(x^2+y^2−2,x,−3,3,y,−3,3))
Wenn Sie die dargestellten Maxima-Befehle ausgeführt haben, dann erkennen Sie nun recht deutlich, dass wieder das Problem der ungleichen Achsenskalierung auftritt. Dieses Problem lösen wir mit der Option proportional_axes=xy: draw2d( proportional_axes=xy, explicit(x^2,x,−3,3), implicit(x^2+y^2−2,x,−3,3,y,−3,3))
1.7 Grafik in Maxima
23
Nun interessiert uns eher der Bereich um den Kreis und den Scheitel der Parabel. Daher schränken wir die Darstellung der y-Achse auf diesen Bereich ein: draw2d( proportional_axes=xy, yrange=[−2,5], explicit(x^2,x,−3,3), implicit(x^2+y^2−2,x,−3,3,y,−3,3))
Damit dürfte bereits deutlich geworden sein, dass die eigentliche Herausforderung bei der Arbeit mit der draw-Funktion im korrekten Gebrauch der vielen Optionen liegt. Es würde den Rahmen und die Zielsetzung dieses Buchs deutlich sprengen, hier alle Optionen auch nur aufzuzählen. Abschließend deshalb noch ein etwas umfangreicheres Beispiel, das einige wesentliche Optionen und deren Gebrauch exemplarisch enthält. Dargestellt werden eine explizit definierte Parabel, sowie ein Kreis und eine Ellipse, welche beide implizit definiert sind. draw2d( font=“Helvetica“, font_size=25, dimensions=[1500,1125], proportional_axes=xy, grid=true, xrange=[−5,5], yrange=[−3,3], xaxis=true, xaxis_type=dots, xaxis_color=navy, xaxis_width=3, xlabel=“X−Achse“, yaxis=true, yaxis_type=solid, yaxis_color=blue, yaxis_width=4, ylabel=“Y−Achse“, background_color=grey90, title=“Objekte darstellen mit draw2d()“, color=black,line_type=solid,line_width=3, explicit(x^2,x,−4,4), /*Parabel*/ color=red,line_type=dots,line_width=3, ip_grid=[20,20], implicit(0=x^2+y^2−2,x,−5,5,y,−5,5), /*Kreis*/ color=dark_green,line_type=solid,line_width=5, ip_grid=[500,500], implicit(x*y=1,x,−5,5,y,−5,5)) /*Hyperbel*/
24
1 Einführung in Maxima
Der Zweck und der Gebrauch der meisten Optionen dürfte unschwer aus dem obigen Zusammenhang zu erfassen sein. Es gibt globale Optionen, welche für das Erscheinungsbild der gesamten Darstellung wesentlich sind, wie zum Beispiel die Anzeige der Koordinatenachsen, die Hintergrundfarbe usw. Andere Optionen beziehen sich auf das jeweils nachfolgende Objekt, in unserem Fall beispielsweise die Farbe oder die Linienart und -dicke des jeweiligen Graphen. Für implizit definierte Objekte ist die Option ip_grid wesentlich, da mit ihr die Auflösung und damit ein mehr oder minder glatter Kurvenverlauf eingestellt werden können. Je höher die Werte in den eckigen Klammern gewählt werden, desto feiner wird die Kurve aufgelöst. In Abb. 1.15 wird deutlich, dass die Hyperbeläste sehr fein aufgelöst sind, während der Kreis eher als Vieleck dargestellt wird. Letzteres lässt sich durch größere Werte der ip_grid-Option vor der Kreisformel leicht ändern. Mit der Auflösung steigt allerdings auch die Rechenzeit deutlich an! Durch Verändern einzelner Optionswerte im oben dargestellten Funktionsaufruf können Sie ein Gefühl für den Umgang mit der Funktion draw() erhalten. Für weitere Details zu den vielen Optionen wird auf die Literatur und auf die auf der Homepage zum Buch zusammengestellten Fundstellen im Internet verwiesen.
Abb. 1.15 Funktionsdarstellung mit draw2d()
1.8 Datentypen in Maxima
25
1.8 Datentypen in Maxima Für eine konsistente Arbeit mit Maxima ist es unerlässlich, Datentypen für die einzelnen Objekte festzulegen und diese in der Folge konsequent anzuwenden. Wenn Sie hier nachlässig arbeiten, wird Ihre ganze Mühe mit der Erstellung von Funktionen vergeblich sein! Da Maxima mächtige Funktionen zur Listenverarbeitung aufweist, werden die meisten der im Buch behandelten geometrischen Objekte in Maxima als geordnete Paare dargestellt. Um welches konkrete geometrische Objekt es sich bei einem speziellen geordneten Paar handelt, muss sich jeweils aus dem Kontext erschließen. Die folgenden Paarungen von Objekten und Datentypen haben sich bewährt:
1.8.1 Punkte Völlig unabhängig davon, in welchem Koordinatensystem Sie Punkte verorten, die Koordinaten werden immer als geordnetes Paar angegeben: Kartesische Koordinaten P:[x,y] Bsp.: P:[3,7] Affine Koordinaten Q:[p,q] Bsp.: Q:[6,9] Polarkoordinaten R:[r,phi] Bsp.: R:[5,85]
1.8.2 Geraden Geraden betrachten wir meist in der Standardform y = m · x + b. Durch die beiden Parameter m und b ist daher eine Gerade eindeutig festgelegt. Die Steigung und der Achsenabschnitt werden somit ebenfalls als Paar angegeben: g:[m,b] Bsp.: g:[3,7] bezeichnet die Gerade y = 3 · x + 7 Soll eine Gerade in deren Polarform angegeben werden, dann wird auch dies als Paar aus Betrag und Argument geschehen: h:[r,phi]
Bsp: h:[5,60] ist die Gerade x·cos60°+y·sin60°–5=0
1.8.3 Kreise Kreise in der Ebene sind durch die Koordinaten ihres Mittelpunkts M und durch die Angabe ihres Radius r festgelegt. Diese Konvention behalten wir bei und stellen einen Kreis als geordnetes Paar aus Mittelpunkt und Radius dar: kreis:[M,r]
Bsp.: kreis:[[3,4],5] bezeichnet einen Kreis um den Mittelpunkt [3, 4] mit dem Radius 5.
26
1 Einführung in Maxima
1.8.4 Kegelschnitte Kegelschnitte werden für gewöhnlich über die Parameter a und b – die sogenannten Halbachsen – angegeben. Diese Konvention greifen wir ebenfalls auf und stellen Kegelschnitte als geordnete Paare aus deren Halbachsen a und b dar. Um eine einfache Unterscheidung zwischen Ellipsen und Hyperbeln zu haben, bietet es sich an, Hyperbeln durch eine negative kleine Halbachse b zu bezeichnen: ellipse:[a,b] hyperbel:[a,–b]
sp.: ellipse:[5,2] bezeichnet eine Ellipse mit den HalbB achsen a = 5 und b = 2. Bsp.: hyperbel:[5,–2] bezeichnet eine Hyperbel mit den Halbachsen a = 5 und b = 2
Dabei bezeichnet die erste Zahl immer die Halbachse entlang der x-Achse und die zweite Zahl die Halbachse entlang der y-Achse.
1.9 Aufgaben 1. Erstellen Sie, wie in Abschn. 1.6 angegeben, eine Funktionensammlung mit den Funktionen bogen() und grad() und laden Sie diese in eine neu gestartete Maxima-Sitzung. a) Wie können Sie anschließend überprüfen, ob die beiden genannten Funktionen geladen wurden? b) Wie können Sie deren Definitionen sichtbar machen? 2. Berechnen Sie den Sinus, den Kosinus und den Tangens von 62°. 3. Berechnen Sie den Arkussinus, den Arkuscosinus und den Arkustangens von 0,882948 in Grad. 1 4. Gegeben ist die Funktion e 4 x − 21 x 2. a) Lassen Sie sich den Funktionsgraph im Bereich −5 ≤ x ≤ 5 formatfüllend darstellen. b) Wie lautet die zweite Ableitung dieser Funktion? c) Wie lautet ihr unbestimmtes Integral? d) Wie groß ist die Fläche unter der Kurve im Bereich von –1 bis +2? 5. Gegeben sind die Gerade g(x) = 13 x − 1, die Parabel p(x) = x 2 + 3x + 25 und der Kreis k mit x 2 + 2x + y2 − 4y − 4 = 0. a) Definieren Sie die drei Objekte in Maxima. b) Lassen Sie diese dann mit der Funktion draw2d()mit den folgenden Vorgaben darstellen: Die Darstellung soll unverzerrt im Bereich −5 ≤ x ≤ 5 und −3 ≤ y ≤ 5 erfolgen. Sowohl die x-Achse als auch die y-Achse sollen mit durchgezogenen Linien dargestellt werden.
1.9 Aufgaben
27
Die Gerade und die Parabel sollen mit der Strichstärke 3, der Kreis mit der Strichstärke 5 gezeichnet werden. Die Gerade soll rot, die Parabel blau und der Kreis grün erscheinen. 6. Vereinfachen Sie die folgenden Terme in Maxima so weit als möglich. a) ax − ay b2 y − b2 x : bx + by a2 x + a2 y b)
a− 1−
c)
a 2ab+1 1 1−2ab
2 − x k−1 x2 − 1 4 − 3x k − x −4 2x 6 − 4x 5 − 1 − − − x k−2 x k+5 − x k+4 x k−1 x k+4
d) Versuchen Sie auch, die Lösungen jeweils von Hand zu ermitteln.
2
Koordinatensysteme
Für die Angabe der Lage von Punkten in der Ebene oder im Raum verwendet man Koordinatensysteme. Je nachdem, ob man Punkte auf einer Ebene oder im Raum beschreiben will, benötigt man dazu je 2 oder 3 Zahlenwerte (Koordinaten). Ein alltägliches Beispiel zeigt Abb. 2.1. Dabei ist die Reihenfolge der Zahlenwerte entscheidend, es handelt sich somit um geordnete Paare bzw. Tripel. In höherdimensionalen Räumen benötigt man in Abhängigkeit von der Dimension n entsprechend n Koordinaten in der Form von n-Tupeln. Wir bleiben im Rahmen dieses Buchs jedoch vornehmlich in der Ebene bzw. im 3-dimensionalen Raum und werden zunächst die in der Ebene gebräuchlichen Koordinatensysteme thematisieren.
2.1 Kartesisches Koordinatensystem Das kartesische Koordinatensystem mit seinen senkrecht aufeinander stehenden Koordinatenachsen ist sicher das bekannteste System. Es ist nach dem latinisierten Namen Cartesius seines Erfinders René Descartes (1596–1660) benannt. Die horizontale Achse bezeichnet man als Abszisse (von lateinisch linea abscissa = die abgeschnittene Linie) oder Rechtsachse. Die vertikale Achse heißt Ordinate (von lateinisch linea ordinata = geordnete Linie) oder Hochachse. Häufig werden in der Mathematik die Variablen x und y zur Bezeichnung der Koordinaten verwendet, was die Analogie des Funktionsgraphen zu einer Funktion y = f (x) hervorhebt. Deshalb spricht man häufig auch von der x-Achse (statt Abszisse) und der y-Achse (statt Ordinate). Die Verwendung des kartesischen Koordinatensystems ist sicher hinreichend bekannt und braucht daher an dieser Stelle nicht vertieft zu werden.
© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 H. Albrecht, Elementare Koordinatengeometrie, Mathematik Primarstufe und Sekundarstufe I + II, https://doi.org/10.1007/978-3-662-61620-8_2
29
30
2 Koordinatensysteme
Abb. 2.1 Hinweisschilder auf Straßeneinbauten
2.2 Affines Koordinatensystem Die Achsen eines geradlinigen Koordinatensystems müssen nicht senkrecht aufeinander stehen, vielmehr kann die Ordinate einen beliebigen Winkel zur Abszisse einnehmen. Man erhält dann ein affines Koordinatensystem. In Abb. 2.2 sind die kartesischen Koordinatenachsen dunkelgrau gezeichnet. Die Rechtsachse des affinen Koordinatensystems liegt genau auf der x-Achse des kartesischen Systems. Die Hochachse des affinen Systems nimmt zur gemeinsamen Rechtsachse einen beliebigen Winkel (hier 60°) ein.
Abb. 2.2 Kartesisches und affines Koordinatensystem
2.3 Polarkoordinatensystem
31
Die Koordinaten eines beliebigen Punkts A erhält man sowohl im kartesischen als auch im affinen Koordinatensystem, indem man jeweils Parallelen zur Rechts- als auch zur Hochachse durch den Punkt A zeichnet und die Schnittpunkte dieser Parallelen mit den jeweiligen Koordinatenachsen feststellt. So hat der Punkt A im kartesischen System die Koordinaten x und y und im affinen System die Koordinaten p und q. Der Winkel α = ∡POQ findet sich in Abb. 2.2 als Wechselwinkel noch bei ∡YQO und bei ∡XPA. Aus Kenntnis der Koordinaten x und y lässt sich OQ und damit die affine Koordinate q folgendermaßen berechnen:
OY y = = sin α OQ q
⇒
q=
y . sin α
Für die Strecke PX gilt:
PX PX = = cos α PA OQ
⇒
PX = OQ · cos α
Da OQ genau der Koordinate q entspricht, gilt für die Strecke OP und damit für die Koordinate p:
p = OP = OX − PX = x − q · cos α Umgekehrt berechnet man kartesische aus gegebenen affinen Koordinaten durch Auflösen der gefundenen Gleichungen nach y bzw. x: y = q · sin α und x = p + q · cos α
2.3 Polarkoordinatensystem In einem Polarkoordinatensystem wird die Lage eines Punkts durch dessen Radialkoordinate bezeichnet, welche den Abstand dieses Punkts von einem zentralen Punkt, dem Pol angibt. Dieser Pol ist gleichbedeutend mit dem Ursprung im kartesischen System. Die Winkelkoordinate gibt den gegen den Uhrzeigersinn gedrehten Winkel an, den der Punkt von der 0°-Geraden oder Polarachse ausgehend einnimmt. Diese Polarachse ist i. d. R. nach rechts, also in Richtung der Abszisse eines kartesischen Koordinatensystems ausgerichtet. Das Polarkoordinatensystem wurde Mitte des 17. Jahrhunderts eingeführt. Legt man beide Koordinatensysteme so aufeinander, dass der Pol mit dem Nullpunkt zusammenfällt und die Polarachse auf der x-Achse zu liegen kommt, so wird in Abb. 2.3 leicht einsichtig, wie die Koordinaten ineinander umgerechnet werden können. Ein Punkt P mit den Polarkoordinaten [r, ϕ] lässt sich folgendermaßen in kartesische Koordinaten [x, y] umrechnen:
x = cos ϕ r
⇔
x = r · cos ϕ
32
2 Koordinatensysteme
Abb. 2.3 Polarkoordinatensystem
und
y = sin ϕ r
⇔
y = r · sin ϕ
Umgekehrt berechnet man ausgehend von kartesischen Koordinaten zuerst die Radialkoordinate r = x 2 + y2 , um danach aus dem Sinus oder dem Kosinus die Winkelkoordinate bestimmen zu können:
cos ϕ =
x x = r x 2 + y2
sin ϕ =
y y = r x 2 + y2
bzw.
2.4 Aufgaben 1. Skizzieren Sie die Achsen eines kartesischen Koordinatensystems in Schwarz. Darüber legen Sie ein affines System, das denselben Ursprung und dieselbe Rechtsachse wie das kartesische System aufweist, dessen Hochachse in Rot aber zur Rechtsachse einen Winkel von 60° einnimmt.
2.4 Aufgaben
33
a) Zeichnen Sie einen Punkt A mit den kartesischen Koordinaten [6, 4] und ermitteln Sie dessen Koordinaten im darüberliegenden affinen System manuell. b) Stellen Sie allgemein dar, wie Sie aus vorliegenden kartesischen Koordinaten eines Punkts dessen affine Koordinaten bestimmen können, wenn die Hochachse des affinen Systems mit der Rechtsachse den Winkel α einschließt. c) Gegeben sind die weiteren Punkte B:[4, 7], C:[–3, 5], D:[–1, –9] und E:[8, –2] mit ihren kartesischen Koordinaten. Ermitteln Sie die affinen Koordinaten dieser Punkte in dem oben beschriebenen affinen System. d) Ermitteln Sie die Koordinaten der obigen Punkte A bis E in einem affinen System mit einem Winkel von 30° zwischen den Achsen. e) Überlegen Sie, wie Sie aus den gegebenen affinen Koordinaten eines Punkts dessen kartesische Koordinaten bestimmen können. Führen Sie diese Überlegung zunächst konkret mit dem Punkt R:[5, 4] im affinen System mit dem Achsenwinkel 60° durch. f) Die Punkte A bis E seien nun diejenigen im affinen System mit dem Achsenwinkel 60°. Bestimmen Sie daraus die zugehörigen kartesischen Koordinaten der Punkte. g) Interpretieren Sie die angegebenen Koordinaten der Punkte A bis E als solche in einem affinen System mit dem Achsenwinkel 30°. Bestimmen Sie daraus die zugehörigen kartesischen Koordinaten der Punkte. h) Überprüfen Sie nochmals Ihre Ergebnisse aus den Aufgaben d), f) und g). Was fällt Ihnen bei den erhaltenen Werten auf? Begründen Sie geometrisch, warum es zu diesen Auffälligkeiten kommt! Wieso kommt es bei Teilaufgabe c) nicht zu diesen Auffälligkeiten? 2. Drücken Sie die √ folgenden kartesischen Koordinaten als Polarkoordinaten aus: a) A:[−12, 12 3]; B:[−4, −5]; C:[3, 7]; D:[2, −3] b) Diskutieren Sie, welche Winkelfunktion sich am besten für diese Umrechnung eignet. Überlegen Sie dazu, was das Besondere an den Winkelfunktionen ist, skizzieren Sie deren Graphen und versuchen Sie, daraus eine Antwort auch vor dem Hintergrund zu finden, dass eine Maxima-Funktion erstellt werden soll, welche die eben durchgeführten Transformationen erledigt. c) Zur Lösung dieser Aufgabe werden Sie zwei Fälle unterscheiden müssen. Formulieren Sie diese Fallunterscheidung auf jeden Fall zunächst mit eigenen Worten, die Umsetzung in Maxima fällt dann nicht mehr schwer. 3. Nachfolgend finden Sie Polarkoordinaten verschiedener Punkte, die Sie in kartesische Koordinaten umrechnen sollen: A:[6, 30°]; B:[8, 120°]; C:[13, 256°]; D:[5, 345°] 4. Finden Sie eine einfache Möglichkeit, wie Sie mithilfe der Umrechnungen von kartesischen Koordinaten in Polarkoordinaten und zurück die Drehung eines Punkts P mit gegebenen Koordinaten [x, y] um den Ursprung des kartesischen Systems um einen gegebenen Winkel α realisieren können. 5. Wie können Sie pragmatisch Polarkoordinaten in affine Koordinaten umrechnen und wie affine Koordinaten in Polarkoordinaten?
34
2 Koordinatensysteme
2.5 Realisation in Maxima Die Umrechnungen von einem Koordinatensystem in das jeweils andere soll Maxima vornehmen. Mit der Realisation dieser einfachen Funktionen werden wir weitere Grundlagen in Maxima erarbeiten. Mit den obigen Vorarbeiten und den dargestellten mathematischen Beziehungen lassen sich Funktionen schreiben, welche die gewünschten Transformationen zwischen den verschiedenen Koordinatensystemen vornehmen. Da die Koordinaten eines Punkts immer als geordnete Paare angegeben werden, verwenden wir in Maxima den Datentyp der Liste. Auf Listenelemente kann man in Maxima bequem durch Indizierung zugreifen. Mit der Zuordnung P:[7,3] werden in Abb. 2.4 beispielsweise dem Punkt P die Koordinaten [7, 3] zugewiesen. Auf die x-Koordinate kann dann mit P[1] und auf die y-Koordinate mit P[2] zugegriffen werden. Die Zuweisung der beiden Koordinaten 7 und 3 zu den Variablen x und y geschieht am schnellsten mittels der Zuweisung [x,y]:P.
2.5.1 Umrechnung in affine Koordinaten Diese Funktion zur Berechnung der affinen aus den kartesischen Koordinaten ist etwas aufwändiger als die Funktionen zur Umrechnung von Winkel- in Bogengrade, deshalb verwenden wir den Strukturbefehl block(), um diese Anweisungen zusammenzufassen. Als erste Anweisung werden innerhalb des block-Statements in eckigen Klammern die in der Funktion verwendeten lokalen Variablen deklariert. Hernach werden die p- und q-Koordinaten aus den übergebenen kartesischen Koordinaten x und y nach den oben hergeleiteten Beziehungen berechnet.
Abb. 2.4 Koordinaten in Maxima
2.5 Realisation in Maxima
35
cart_affin(P, alpha):=block( [x,y,p,q], [x,y]:P, q:y/sin(bogen(alpha)), p:x−q*cos(bogen(alpha)), [p,q])
Diese beiden errechneten affinen Koordinaten werden schließlich in eine Zweierliste zusammengefasst. Maxima liefert immer das Ergebnis der letzten Anweisungszeile als Funktionsergebnis zurück. Für die umgekehrte Berechnung von kartesischen aus affinen Koordinaten schreiben wir analog die Funktion affin_cart(): affin_cart(P, alpha):=block( [p,q,x,y], [p,q]:P, x:p+q*cos(bogen(alpha)), y:q*sin(bogen(alpha)), [x,y])
Beide Funktionen benötigen als Aufrufparameter die kartesischen bzw. affinen Koordinaten des gegebenen Punkts sowie den Winkel α, den die Hochachse des affinen Systems mit der Rechtsachse einnimmt.
2.5.2 Umrechnung in Polarkoordinaten Die Funktion polar_cart wird mit den Polarkoordinaten [r, ϕ] des gegebenen Punkts aufgerufen. Das Funktionsergebnis ist eine Liste [x, y] mit den kartesischen Koordinaten des Punkts. Diese Funktion lehnt sich in ihrer Struktur genau an die beiden vorhergehenden an. polar_cart(P):=block( [r,phi,x,y], [r,phi]:P, x:r*cos(bogen(phi)), y:r*sin(bogen(phi)), [x,y])
Für die inverse Funktion zur Bestimmung der Polar- aus den kartesischen Koordinaten müssen hingegen Fallunterscheidungen getroffen werden. Die erste Fallunterscheidung fängt einen möglichen Division-durch-null-Fehler ab, welcher entsteht, wenn die Polarkoordinaten des Nullpunkts berechnet werden sollen.
36
2 Koordinatensysteme
Eine Fallunterscheidung erfolgt auch in Maxima mit der dafür üblichen bedingten Anweisung if … then … else …, wobei wir an dieser Stelle auf die Alternative else verzichten können. Die Radialkoordinate wird über den Satz des Pythagoras aus den kartesischen Koordinaten berechnet und wenn der Wert der Radialkoordinate gleich null ist, dann handelt es sich um den Koordinatenursprung und dieser soll auch in Polarkoordinaten mit dem Paar [0, 0] bezeichnet werden. Folglich lautet die bedingte Anweisung: if r=0.0 then return([0,0]),
Die Anweisung return() beendet die Ausführung der Funktion und liefert als Funktionswert das in ihren Klammern angegebene Objekt, in diesem Fall die Liste [0, 0]. Das Winkelmaß der Polarkoordinate kann auf unterschiedliche Weise bestimmt werden, zwei verschiedene Möglichkeiten wurden oben bereits angesprochen. Darüber hinaus wäre es auch möglich, aus den gegebenen kartesischen Koordinaten den Tangens des Winkels zu bestimmen. Egal welche Winkelfunktion man jedoch verwendet, problematisch ist bei allen, dass deren Umkehrfunktion im Intervall von 0° bis 360° nicht eindeutig ist. Bei der Tangensfunktion kommt hinzu, dass diese in diesem Intervall unendliche Werte annehmen kann, sie ist im interessierenden Bereich nicht stetig. Die Tangensfunktion ist daher für diese Aufgabe eher nicht geeignet. Vergleicht man die Graphen der Sinus- und der Kosinusfunktion, so wird deutlich, dass die Umkehrung der Kosinusfunktion im Intervall von 0° bis 180° eindeutig ist. Erst im Intervall von 180° bis 360° wiederholen sich die Werte symmetrisch. Für die Realisation der Umrechnung von kartesischen in Polarkoordinaten ist deshalb die Kosinusbeziehung am besten geeignet, da damit für alle Punkte, die im positiven y-Bereich liegen, deren Polarkoordinaten problemlos berechnet werden können. Für Punkte in der unteren Halbebene wird quasi der an der x-Achse nach oben gespiegelte Punkt (bzw. dessen Polarkoordinaten) angegeben. Dieser Fall muss durch eine weitere Fallunterscheidung festgestellt und entsprechend korrigiert werden. Dass es sich um Punkte der unteren Halbebene handelt, wird durch eine negative y-Koordinate angezeigt. Die korrekte Winkelkoordinate erhält man in diesem Fall durch Subtraktion des errechneten Winkelwerts vom Vollwinkel 360°: if y