Matheseitenüberblick
3D-Plotter (β)
zurück

Funktionsplotter (ohne Java!)

Mit diesem Tool können Graphen von Funktionen y=f(x) (orthogonale Koordinaten) oder ρ=f(φ) (Polarkoordinaten) und implizit gegebene Kurven gezeichnet werden. Geben Sie dazu den Funktionsterm mit der Variablen x bzw. phi oder eine Gleichung mit den Variablen x und y ein. Es können bis zu sechs Parameter enthalten sein, deren Werte mit den Schiebereglern einstellbar sind. Berechnet werden für die Funktionen Nullstellen, Extrem- und Wendepunkte in der Nähe des Mauszeigers sowie Schnitte je zweier Kurven, falls vorhanden. Der Darstellungsbereich läßt sich mit der Maus verschieben (linke Taste) und skalieren (rechte Taste). Weitere Erläuterungen unten.

In diesem Browser funktioniert dieser Plotter leider nicht. (Fehlende Unterstützung von "canvas" (HTML-5))
Bild in neuem Fenster öffnen
 

Funktionsterm(e) oder Gleichung(en) eingeben:


  Zoom:
 
Farben:
 
Dicken:
 
Parameterwerte
a =
b =
c =
d =
e =
f =

 

Besondere Punkte
„on the fly” (besser: under the mouse) anzeigen für :
     Koordinaten     Ableitung(en)     dort:   Tangente     Normale
Schnittpunkte mit anderen Graphen (sofern vorhanden, für alle Kurvenarten)
Nullstellen    Extrema    Wendepunkte   (nur für explizit gegebene Funktionen der Art y=f(x))
    dabei Brüche und Wurzelausdrücke rekonstruieren     auch Vielfache von pi
Tip: Achsenschnitte impliziter Kurven kann man als Schnitte mit den Kurven x=0 (y-Achse) oder 0 (x-Achse) berechnen lassen.
für x (bzw. φ in °) = und
     Koordinaten     Ableitung(en)     Tangente     Normale
   

Darstellungsbereich manuell

Felder automatisch aktualisieren

Ortskurven
können für die jeweils in der Liste ausgewählte Funktion aufgezeichnet werden für Extrempunkte oder Wendepunkte und Durchlaufen des Parameters durch den an den Reglern eingestellten Bereich. Doppelklicken Sie dazu auf ein markiertes Extremum oder einen markierten Wendepunkt. Durch Doppelklick auf weitere Punkte kann die Ortskurve erweitert werden. Die aufgezeichneten Ortskurven werden solange gespeichert und mitgeplottet, bis die Funktionen neudefiniert werden oder hier geklickt wird: .

Ableitungsfunktionen
plotten ( fnur für Auswahl):         alle     f '(x)   f ''(x)         ∂f(x,y)/∂x   ∂f(x,y)/∂y   df(φ)/dφ

Farben
können entweder per #rrggbb definiert werden, wobei die Rot-, Grün- und Blauanteile hexadezimal von 00 bis FF gehen können, oder per rgb(r,g,b) bzw. rgba(r,g,b,α), mit Werten von 0 bis 255 für die Farbanteile und von 0 bis 1 für den α-Kanal (mit Dezimalpunkten), womit zwischen 1=opak und 0=unsichtbar die Durchsichtigkeit geregelt werden kann. Die Farbmischung ist subtraktiv. Schließlich werden auch die 140 in html bzw. css benannten Farben erkannt.
Hier eine klickbare Liste dieser benannten Farben (einblenden):

Eingabesyntax, Eingabearten und implementierte Funktionen
Das Script versteht die Operatoren + - * / ^ (Produkte mit Parametern unbedingt mit * eingeben: a*x, denn ax oder auch a x werden nicht verstanden; 2x usw. ist möglich); darüber hinaus erkennt es diesen Funktionenzoo: sqrt(), exp(), log() oder ln() (beides für den nat. Log.), sin(), cos(), tan(), asin(), acos(), atan(), sinh(), cosh(), tanh(), asinh(), acosh(), atanh(), abs(). pi wird als Konstante π (=) interpretiert.
Die Parametergrenzen oder -Werte können auch Terme in Javascriptsyntax sein, z.B. Brüche, Math.PI oder Math.sqrt(2).
Wie bereits oben beschrieben, interpretiert dieses Script drei verschiedene Arten der Eingabe von Funktionen bzw. Kurven.
* Geben Sie für "herkömmliche" Funktionen f(x)=y einfach den Funktionsterm ein, welcher x enthalten kann (aber nicht muß) und Parameter, aber kein y enthalten darf.
* In Polarkoordinaten gegebene Funktionen geben Sie mit der Variablen phi (so ausschreiben) ein. Dies ist der von der positiven x-Achse gegen den Uhrzeigersinn gemessene Winkel des Kurvenpunktes; der Funktionswert ist der Abstand zum Ursprung; negative Werte sind möglich und liegen dann gespiegelt am Ursprung oder 180° weiter. Das Script plottet solche Kurven (vorerst) immer im Intervall φ∈[0; 2π]. (Diese Restriktion ist derzeit für die Schnittpunktbestimmung unabdingbar.) Eine geplante Erweiterung wird die Festlegung der einzelnen Definitionsbereiche, auch für diesen Typus, beinhalten.
* Geben Sie Gleichungen ein, die x und y enthalten dürfen; der Plotter zeichnet eine Kurve aus approximierten Wertepaaren (x|y), die diese Gleichung erfüllen (also eine implizite Kurve). Bei geteilten Kurven kann es passieren, daß nicht immer alle Teile gefunden werden. Standardmäßig wird im Darstellungsbereich von 3×3 Startpunkten aus nach initialen Kurvenpunkten gesucht, dann von dort aus in beide Richtungen je maximal 200 Schritte mit 2 Pixeln die Kurve abgeschritten, bis die Kurve den Rand überschreitet oder zum Anfang zurückkehrt. Diese Werte können hier erhöht (oder natürlich auch vermindert) werden. Obacht: Dies geht selbstverständlich zu Lasten der Geschwindigkeit. Raster: , max. Schritte: , Schrittweite: Pixel, Genauigkeit: .
Funktionen können mit // am Zeilenanfang "auskommentiert", also ausgeblendet werden; das kann auch für beliebige Kommentare verwendet werden.

Parameter
In den Funktionstermen können die Parameter a bis f verwendet werden, deren Werte mit den Reglern eingestellt oder auch konkret eingetippt werden können. Die Kurven werden simultan neugezeichnet. In den Eingabefeldern links und rechts der Schieberegler können die jeweiligen Bereichsgrenzen festgelegt werden.

Schittpunkte
Während Nullstellen, Extrem- und Wendepunkte (in der Nähe des über die Graphik bewegten Mauszeigers) nur für Funktionen f(x)=y bestimmt werden, versucht das Script, Schnittpunkte zwischen allen Kurven zu finden, d.h. zwischen der jeweils in der Liste ausgewählten Kurve und allen anderen Kurven. Hierzu müssen z.T. nichtlineare Gleichungssysteme numerisch gelöst werden, was u.U. nur bei sehr guten Startnäherungen (Mausposition!) gelingt.
Vorläufig werden die für die Extremstellensuche benötigten 2. Ableitungswerte numerisch angenähert, was zu gewissen „Instabilitäten” in den hinteren Kommastellen führen kann.

Graphik: komplett selbstgemacht mit Javascript und dem „canvas”-Objekt (seit html 5 verfügbar). Auch die Schieberegler sind damit gemacht. Hübsch, nicht wahr?

Rasterung und Achsen

Rasterung: Linienbreite: Farbe:
Achsen: Linienbreite: Farbe:
Bezifferung: Fontgröße:     Schriftart:

Flächenfüllung(en)

Pro Zeile: [Kurve1,Kurve2,...];color;alpha
wobei Kurvei die Form [x(t),y(t),t0,t1,steps] für einen parametrisierten Randkurvenabschnitt über t ∈[t0, t1] haben kann oder nur ein Koordinatenpaar [x,y] für den nächsten Kurvenpunkt ist. Die Begrenzungskurve wird vor dem Füllen automatisch geschlossen. Man kann zeilenweise mehrere Flächen definieren.
Für die Fläche zwischen den Kurven x^3-a*x+b und exp(-x)*(c-x^2) über dem Intervall [0,2] gibt man ein: [[t,t^3-a*t+b,0,2],[t,exp(-t)*(c-t^2),2,0]];red;0.5
für die Fläche unter ex im II. Quadranten [[t,exp(t),-10,0],[0,0],[-10,0]];gold;0.5
Weitere Beispiele: [[t,1/6*t^2+1,a,b,100],[b,0.5*b],[a,0.5*a]];red;0.3
[[a*cos(t)+c,b*sin(t)+d,0,2*PI,1000]];#44ffee;0.5

Punkte und Fitten
In nebenstehende Tabelle können Punktkoordinaten (zeilenweise, durch Leerzeichen oder Tabulatoren getrennt) eingetragen werden. An diese Punkte kann dann eine der eingegebenen Funktionen von Typ f(x)=... angenähert werden. (Nichtlineare Regression, siehe →hier).
Der Erfolg hängt (sofern die Funktion keine einfache Linearkombination aus Teilfunktionen ist) eklatant von der Wahl günstiger Startwerte ab, die aus den aktuellen Einstellungen übernommen werden. Optional können in den Bereichen der Regler zusätzlich zufällige Startwerte getestet werden.

Punktdarstellung:
  Größe: px (Radius)
  Farbe:
Funktion:
Maximale Anzahl an Iterationen:
Schrittweitenparameter: λ=
zusätzliche Zufallssuche:
An Grenzen gebundene Parameter:
  a b c d e f
Verlauf zeigen
Punkte   →Ortskurve eintragen

  Punkte anzeigen

© Arndt Brünner, 31. 7. 2017
Version: 1. 10. 2021