G R A P H - M A S T E R V.3 ( by R.Beck ) Einführung Graph-Master dient hauptsächlich zur Darstellung von Funktionsgraphen. Die bis zur Version 1.3 implementierten Möglichkeiten entsprechen grösstenteils dem Lehrstoff in Analysis von der 11. Gymnasiumsklasse in Bayern aufwärts (ab K12 Leistungskurs Mathematik), so daß Graph-Master besonders für Schüler eine ideale Unterstützung darstellt. Das Programm habe ich in Amigabasic geschrieben, da es mir nur in dieser Sprache möglich war, ein sich selbst veränderndes Programm zu schreiben. Dadurch ist es aber auch leicht zu ergänzen und umzuschreiben. Compilieren ist aufgrund der Selbstmodifikation leider nicht möglich, doch dazu später. Aus Gründen der Übersichtlichkeit verwaltet das Programm zwei Fenster. Das Textfenster befindet sich auf dem Workbenchscreen, das Grafikfenster füllt einen Screen mit 16 Farben und 640*530 Pixeln. Diese Auflösung kann leicht an eigene Speicherverhältnisse (oder zukünftige Grafikkarten) angepasst werden. Dazu ändert man die Werte xx% und yy% am Programmanfang. Einmal in der 3. Zeile, um die Screen-ausmaße zu bestimmen, dann in Zeile 20, wo das Fensterinnere angegeben wird. Diese Werte errechnen sich wie folgt: xx% = Screenbreite - 8 , yy% = Screenhöhe - 5 Um einige Eigenarten des Programms zu erklären muß ich kurz noch auf die Selbstmodifikation eingehen. Graph-Master ermöglicht es, gleichzeitig ein Modul mit 15 verschiedenen Funktionsdefinitionen (mit Definitions- und Wertebereich, ...) zu bearbeiten. Diese befinden sich als Basic-Zeilen im Programm. Wurde nun eine Funktionsdefinition eingegeben, muß erst das gesamte Funktionsmodul gespeichert werden. (Bis jetzt befand er sich nämlich noch als eine Sammlung von Strings und Zahlen im Speicher, AmigaBasic benötigt eine Funktionsdefinition aber in Form einer Basic-Zeile. Beim Speichern werden nun diese Strings und Zahlen von Graph-Master in ein eigenes kleines Basic-Programm verwandelt.) Jetzt muß das eben gespeicherte Funktionsmodul wieder geladen werden (Graph-Master macht das mit dem CHAIN MERGE - Befehl, das Miniprogramm wurde nun an Graph-Master angehängt). Da Graph-Master jetzt um etliche Zeilen länger geworden ist, muß vor dem Laden eines neuen Funktionsmoduls der Menüpunkt "neues Mod." angewählt werden (das angehängte Programm wird dadurch gelöscht und Graph-Master neu an Zeile 20 gestartet), damit AmigaBasic nicht wieder die alten Definitionen übernimmt. Um Graph-Master zu starten klicken Sie zuerst das AmigaBasic - Icon an, geben im AmigaBasicfenster "clear ,60000" ein, laden Graph-Master mit Open und starten ihn mit "run". Beenden können Sie Graph-Master, indem Sie das Textfenster anklikken und "q" drücken. Es folgt eine Sicherheitsabfrage, die Sie mit "j" oder "n" beantworten können. Die einzelnen Menü-Punkte Disk Laden Ein Funktionsmodul kann in den Basicspeicher übernommen werden. Um einen vorher verwendeten Filenamen zu verwenden, brauchen Sie nur Return zu drücken. Die Abfrage "OK ?" ist (wie immer bei Graph-Master) mit "j" oder "n" zu beantworten. Speichern Alle 15 Funktionsdefinitionen werden mit allen Merkmalen als Funktionsmodul in Basicsyntax gespeichert. Ein alter Name kann mit Return übernommen werden. Eine Funktionsdefinition kann erst dann zum Zeichnen verwendet werden, wenn sie zuvor eingeladen wurde. Ein bereits existierendes File mit gleichem Namen wird überschrieben. Directory Nach Angabe des Pfadnamens in AmigaDos-syntax wird das Directory gelistet. Übersicht Graph-Master fragt nach einer Reihe von Funktionen, die mit all ihren Eigenschaften wie Name und Wertemenge entweder auf Drucker oder Bildschirm ausgegeben werden. Die Bildschirmanzeige kann durch Drücken der rechten Maustaste kurzzeitig angehalten werden. Bei der Frage "von .. bis ..." sind natürlich nur Zahlen von 1-15 erlaubt, die durch ein Komma getrennt sein müssen. Wie bei jeder Eingabe bricht Graph-Master den Menüpunkt vorzeitig ab, wenn falsche Werte eingegeben wurden (zu groß, zu klein oder in falscher Reihenfolge). Das kann sehr hilfreich sein, um eine versehentliche Menüwahl nicht zu Ende führen zu müssen. Funktion Definition Zuerst verlangt Graph-Master die Nummer der Funktion (1-15), dann müssen Sie ihre Definition in Basic-Schreibweise eingeben (also 4*x statt 4x, sin(x) statt sin x). Zusätzlich stellt Ihnen Graph-Master noch folgende Konstanten und Variablen zur Verfügung, die in folgender Schreibweise in der Definition verwendet werden können: pi# : Kreiskonstante e# : Eulersche Zahl zz# : Schar-Parameter (siehe Extras-Menü) Bereiche Nach Eingabe der Funktionsnummer können Sie Definitions- und Wertemenge der Funktion jeweils durch Eingabe einer beliebigen unteren und oberen Grenze (die größer als die Untergrenze sein muß) bestimmen. Der Wert, der vor der Wertemenge als "optimaler Y-Abstand" angegeben wird, errechnet sich aus der Definitionsmenge; umfaßt die Wertemenge einen Zahlenbereich von genau dieser Größe, so wird die Funktion verzerrungsfrei wiedergegeben. Netz j/n Hier können Sie bestimmen, ob mit der Funktion kein (0), ein gestricheltes (1) oder ein durchgezogenes Koordinatennetz gezeichnet werden soll. Graph-Master blendet unsichtbare Teile des Netzes selbstständig aus und paßt es jeder Verzerrung an. Das dickere Kreuz um den den Ursprung ist das sogenanntes Einheitskreuz, das die X- und Y-Koordinaten -1 und 1 angibt. An den Bildschirmrändern werden zusätzlich die Endwerte angezeigt. Charakter Dies ist ein sehr umfangreicher Menüpunkt, mit dem u.a. die Zeichentechnik einer Funktion bestimmt werden kann. "Schrittweite" bestimmt, aus wie vielen Bildpunkten (und somit Einzelberechnungen) ein Graph bestehen soll. Ein sehr kleiner Wert erhöht die Genauigkeit, aber auch die Rechenzeit. Bei der ersten Eingabe erscheint hier der optimale Wert, der mit Return übernommen werden kann. "Form" gibt an, ob die einzelnen Punkte mit Linien verbunden werden sollen (1), was eine größere Schrittweite erlaubt, aber z.B. bei der Tangensfunktion Fehler in der Zeichnung verursacht. In solchen Fällen ist der Wert 0 (Punkte) zu wählen. "Punktgröße": Größe der Einzelpunkte. Eine sinnvolle Anwendung wäre z.B., einen Graphen in Größe 3 zu zeichnen, dann die Punktgröße auf 0 (normal) zu reduzieren und anschließend die Ableitung zu zeichen. "Deflückenprotokoll" bestimmt, ob die Definitionslücken der Funktion auf dem Drucker (2), Bildschirm (1) oder überhaupt nicht mitprotokolliert werden sollen. Unabhängig von diesem Wert werden Definitionslücken im Graphen durch einen Kreis auf der X-Achse gekennzeichnet. Namen Jeder Funktion kann ein erklärender Name zugeordnet werden. (z.B. die offizielle mathematische Schreibweise). Kopieren Sämtliche Eigenschaften einer Funktion (Definition, Charakter, Name, ...) können auf eine andere Nummer kopiert werden. Neues Mod. Dient dazu, ein bereits geladenes Funktionsmodul zu löschen, um im Programm wieder Platz für ein neues zu schaffen. Das Programm wird dabei neu gestartet (mit Zeile 20), der Grafikscreen bleibt aber erhalten. Zeichnen Funktion 1 ... Funktion 15 Der Graph wird entsprechend den Eigenschaften seiner Funktion im Grafikfenster ausgegeben. Schar, Ableitung, Umkehrfunktion Diese Menüpunkte bewirken keine unmittelbare Reaktion des Computers, es sind vielmehr Schalter, deren aktiver Zustand am Haken vor dem Menüpunkt zu erkennen ist. Sie bestimmmen, welche Art von Graph gezeichnet wird und können in jeder beliebigen Kombination gesetzt werden. Sind alle gelöscht, wird der normale Funktionsgraph gezeichnet, sind alle gesetzt, werden die Ableitungen der Umkehrfunktionen der durch den Menüpunkt Extra/Schar bestimmten Funktionsschar gezeichnet. Soll eine Umkehrfunktion gezeichnet werden, müssen Sie darauf achten, mit dem Definitionsbereich einen Bereich einzugrenzen, in dem die Funktion auch wirklich umkehrbar ist, sonst ordnet der Graph einem X-Wert mehrere Y-Werte zu, was für eine Funktion in der Mathematik nicht erlaubt ist. Screen Nummern Die Nummern der Funktionen werden in der jeweiligen Farbe ins Grafikfenster geschrieben. Dies ist eine Hilfe, um die Farben den einzelnen Funktionen zuzuordnen. Namen Der im "Funktion"-Menü eingegebene Name einer Funktion kann im Grafikfenster eingesetzt werden. Klicken Sie dazu mit der Maus an die gewünchte Stelle. Haben Sie den Menüpunkt versehentlich angewählt, klicken Sie einfach an den rechten Rand des Grafikfensters. Graph-Master nimmt dann die Menühwahl zurück. Löschen Es erklingen hintereinander 2 Piepstöne. Drücken Sie in der Zeit zwischen den beiden Tönen die linke Maustaste, wird der Grafikbildschirm gelöscht. Invers Es werden lediglich die Farben Schwarz und Weiß vertauscht, was besonders vor einem Ausdruck anzuraten ist. Skala,Gitter Zusätzliche Schirmunterteilungen. Laden,Speich. Die Grafik wird im IFF-Format ohne Kompression gespeichert. Rechnung Einzelwerte Zu einer bestimmten Funktion wird für einen beliebigen X-Wert der Y-Wert ausgegeben. Wird die Ausgabe auf den Drucker gewählt, kann eine ganze Wertetabelle in einem vorgegebenen Bereich erstellt werden. Integral Berechnung des bestimmten Integrals einer Funktion nach einem Grenzwertalgorithmus, der die vom Graphen eingeschlossene Fläche in immer mehr Teilstücke unterteilt und aus dem Mittelwert von Ober- und Untersumme ihrer Flächen das Integral mit der verlangten Genauigkeit errechnet. Der Vorgang kann vorzeitig mit ESC abgebrochen werden. Achten Sie darauf, nicht über Definitionslücken hinweg zu integrieren! Extra Schar Hier werden die Parameter angegeben, nach denen der Scharwert (der in den Funktionsdefinitionen zz# heissen muß) errechent wird. Die konventionelle Methode ist, bei "Definition: f(z)=" einfach "z" einzugeben. Der Scharwert durchläuft dann den angegebenen Definitionsbereich mit der geg. Schrittweite. Diese Parameter gelten aber eigentlich nur für die Funktion, nach der sich der Scharwert errechnet. Wählen Sie z.B. einen Bereich von 0 bis 4 und eine Schrittweite von 1 und setzen "f(z)="z^2, dann nimmt der Scharwert die Werte 0(0^2), 1(1^2), 4(2^2), 9(3^2) und 16(4^2) an. Dieses Verfahren ist nützlich, falls man eine Schar sowohl mit sehr großen als auch kleinen Werten für zz# zeichnen lassen will ohne dabei eine sehr große Anzahl von Graphen zu erhalten. Normalerweise setzt man aber immer f(z)=z. 3D-Bild Sie können eine Funktion auch dreidimensional zeichnen lassen. Beachten Sie dabei aber, daß sie nicht vergrößert wird, sie sollte also Werte von ziemlich hohen Beträgen liefern (gegebenenfalls einen Multiplikator in die Definition einfügen, z.B. 300*sin(x/40) ). Weiterhin sollten ihre Werte nicht zu schnell schwanken (daher beim Beispiel "x/40"), denn im Gegensatz zu der Graphdarstellung zeichnet die 3D-Option in der absoluten Größe, ohne an den Bildschirm anzupassen. Experimentieren Sie ein wenig mit den verschiedenen Parametern, um eine schöne Zeichnung zu erhalten. rekursiv Bei dieser interessanten Darstellungsweise wird die Funktion immer mit dem vorhergehenden Ergebnis aufgerufen. (Beim ersten Mal wird "Startwert" eingesetzt). "Schrittweite" bestimmt hier, wieviele Werte berechnet werden (je kleiner Schrittweite, desto mehr Berechnungen). Am Anfang und Ende der X-Achse werden Startwert und Endergebnis angezeigt. Auf die Frage "Scharparameter durchlaufen" antworten Sie mit 0 für "nein" und mit 1 für "ja". Spezial Fonts,Textstil,Trick Hiermit können Sie das Aussehen des Textes bestimmen, der mit der Name-Option in den Grafikbildschirm geschrieben wird. Experimentieren Sie besonders mit den Tricks, es lassen sich schöne Effekte erzielen. Hardcopy NOCH NICHT ABSTURZSICHER !! Verwenden Sie ein Programm wie GraphicDump, um den Grafikbildschirm zu Papier zu bringen. CLI Neuen CLI öffnen.