Sehr viel Wert wurde auf die korrekte Darstellung der Graphen von unstetigen Funktionen und von Funktionen mit Extrema gelegt.
Funktionsweise
Die Graphenoptimierung ist ein Kompromiss zwischen Schnelligkeit und Genauigkeit des Graphen-Zeichnens.
Das Zeichnen eines Graphen geschieht in FunkyPlot 1.1 in zwei Phasen:
Phase: Naives Aufstellen einer Wertetabelle.
Hier wird für jeden Bildpunkt/jedes Pixel der entsprechende y-Wert/Funktionswert berechnet, und alle derart gewonnenen Punkte mit einer Linie verbunden.
Phase: Optimierung der Wertetabelle.
Lokale Maxima und Minima
Es wird versucht, lokale Maxima und Minima zu ermitteln und dann ggf. einzelne y-Werte in Richtung auf die Maxima/Minima zu verschieben.

Die Funktion y=2sin(40x) ohne (links) und mit (rechts) Graphenoptimierung.
Sprungstellen
Hier wird die ohne Optimierung falsch dargestellte senkrechte Verbindungslinie entfernt.

Die Funktion y=int(x) ohne (links) und mit (rechts) Graphenoptimierung.
Polstellen
Auch hier entsteht ohne Optimierung ein senkrechter Strich, der bei eingeschalteter Optimierung entfernt wird. Außerdem versucht FunkyPlot 1.1, die Graphenäste links und rechts der Polstelle bis unendlich zu zeichnen.

Die Funktion y=1/(x-1) ohne (links) und mit (rechts) Graphenoptimierung.
Bei ausgeschalteter Graphenoptimierung wird die 2. Phase einfach weggelassen und nur die 1. Phase durchgeführt.
Das Problem war hier, dass bei einer naiven Aufstellung einer Wertetabelle (z.B. mit Stützstellen festen Abstandes) die "Höhen" und "Tiefen" der Extrempunkte nicht vollständig erreicht werden. Deutlich wird das in folgender Abbildung:

Hier sieht man sehr schön, dass die Maxima unterschiedliche Höhen haben, obwohl diese doch gleich sein müßten. Die Ursache dafür ist einfach, dass das Raster der Stützstellen die Stelle des Extrempunktes nicht exakt getroffen hat, sondern zwei Stützstellen links und rechts des Extrempunktes. Da diese tiefer bzw. höher liegen, entsteht der Eindruck unterschiedlich hoher Extrempunkte.
FunkyPlot 1.1 wirkt diesem Problem folgendermaßen entgegen: Es durchsucht die naive Wertetabelle nach allen Tripeln von Funktionswerten, bei denen der mittlere höher bzw. tiefer als seine Nachbarn liegt. Dieser Funktionswert ist ein Kandidat für einen Extrempunkt, und in einer eigenen Iteration wird nun versucht, den Funktionswert weiter in Richtung des Extremums zu verbessern. Der Vorteil dieser Vorgehensweise ist, dass die "teuere" Iteration zur Verbesserung eines Extremwertes nur dann benutzt wird, wenn es sich um einen Extrempunkt-Kandidaten handelt.
Das Ergebnis ist folgendes:

Alle Extrempunkte liegen nun auf gleicher Höhe. Selbstverständlich werden so auch nicht immer alle Extrempunkte erkannt und verbessert, mit den "üblichen" Funktionen werden aber passable Ergebnisse erzielt.
| Zurück | Zum Anfang | Weiter |
| Ableitungsberechnung | Nach oben | Die Flächenberechnung |