Shader-A für Polynom mit vorgegebenen Koeffizienten

Für ein allgemeines Polynom der Form

d.h. die Koeffizienten aj werden vorgegeben, habe ich den Shader-A (s. unten im Download-Bereich) für das Programm VOC programmiert , mit dem sich für beliebige Polynome die Basins of Attraction sowie die Konvergenzgeschwindigkeit mit allen auf meiner Seite betrachteten Iterationsmethoden (s. Nullstellen komplexer Funktionen) berechnen lassen.

 

Insbesondere erlaubt der Shader-A auch komplexe Koeffizienten.

 

Der maximale Grad n des Polynoms beträgt dabei 10, das Schema lässt sich aber leicht für einen höheren Grad erweitern. Für die bei den Iterationsverfahren benötigte Funktion sowie deren erste bis dritte Ableitung gilt somit:

 

p  (z) = a10z10 + a9z9 + a8z8 + a7z7 + a6z6 + a5z5 + a4z4 + a3z3 + a2z2 + a1z + a0

p ' (z) = 10 a10z9 + 9 a9z8 + 8 a8z7 + 7 a7z6 + 6 a6z5 + 5 a5z4 + 4 a4z3 + 3 a3z2 + 2 a2z + a1

p'' (z) = 90 a10z8 + 72 a9z7 + 56 a8z6 + 42 a7z5 + 30 a6z4 + 20 a5z3 + 12 a4z2 + 6 a3z + 2 a2

p''' (z) = 720 a10z7 + 504 a9z6 + 336 a8z5 + 210 a7z4 + 120 a6z3 + 60 a5z2 + 24 a4z + 6 a3

 

Außer der manuellen Vorgabe der Koeffizienten a0 bis a10 bietet der Shader (als Gimmick) auch die Möglichkeit der zufälligen Vorgabe der Koeffizienten. Gesteuert wird dies mit der Variablen random_method:

  • random_method = 0 :  manuelle Vorgabe der Koeffizienten und Nullstellen

Hier ein Beispiel für das Polynom z6 + 10 z3 - 8 mit seinen sechs Nullstellen

Bei Vorgabe der Koeffizienten und der Nullstellen A, B, ... des Polynoms können mit
color_scheme = 0  die Basins of Attraction dargestellt werden:


Werden die Nullstellen nicht eingegeben, so können die Basins of Attraction (color_scheme = 0) nicht dargestellt werden, zumindest aber kann mittels color_scheme = 1 oder 2 die Konvergenzgeschwindigkeit berechnet werden.

 

Tipp:  Eine Möglichkeit, sich die Nullstellen einer Funktion berechnen zu lassen, bietet Wolfram|Alpha. In die Eingabezeile tragen SIe dann "roots of Ihre Funktion" ein.

  • random_method = 1 :  die Koeffizienten werden mit einem Pseudo Random Number Generator
                                     
      (kurz: PRNG, s. auch hier)  erzeugt.

Die generierten Zufallszahlen randj liegen im Bereich [-1, 1] und werden mit den Faktoren Ri und Ci auf den jeweils gewünschten Bereich der Koeffizienten ai expandiert: ai = (randjRi ,  randj+1 • Ci ).

Die obige Einstellung erzeugt ein zufälliges Polynom 4. Grades mit vier reellen und einem komplexen Koeffizienten (s. Beispiele unten).

 

Dazu kann für den Startwert Seed  des PRNGs eine ganze Zahl im Bereich 0 ... 10 000 000 eingegeben werden, aus der der PRNG dann die pseudo-zufälligen Koeffizienten a0 bis a8 berechnet. Hierzu kann in der Eingabemaske von VOC der Parameter Bailout genutzt werden:

 

Die eingegebene Zahl (z.B. 47182) erzeugt somit ein Unikat eines Polynoms - es ist der Zahl fest zugeordnet.

Dieses kann dann für die Untersuchung mit verschiedenen Iterationsverfahren und/oder Einfärbungen genutzt werden, ohne dass beim Klicken auf den OK-Button (Start des Shaders) neue Koeffizienten berechnet werden, wie dies mit random_method = 2 der Fall ist.

 

Hier dazu einige Beispiele mit den obigen Vorgaben für Ri und Ci :


  • random_method = 2 :  zufällige Erzeugung der Koeffizienten bei jedem (!) Shader-Start
                                        mittels Klick auf den OK-Button; 
                                        als Startwert für den PRNG wird hier eine von VOC gelieferte Zufallszahl
                                        verwendet

Hinweis: Logischerweise muss bei den beiden Zufallsvarianten für die Variable color_scheme der Wert 1

 oder 2 gewählt werden, da die Nullstellen des Zufallspolynoms ja nicht bekannt sind.


Download

Für Ihre eigenen Berechnungen / Experimente mit unterschiedlichsten Parametereinstellungen steht hierzu die nachfolgende Datei Rootfind Polynomial Shader-A.zip als Download zur Verfügung.

 

Sie enthält den oben beschriebenen Shader-A (CFF-Datei) für das Programm Vision of Chaos, und ermöglicht für ca. 50 Iterationsverfahren die Berechnung der Basins of Attraction sowie der Konvergenzgeschwindigkeit für eine komplexe Funktion f : D   mit  D ⊆ ℂ.

 

Die Datei BFrain.zip, enthält die Palette (MAP-Datei), die auf meinen Webseiten bei der Berechnung und Einfärbung der Konvergenzgeschwindigkeit zugrunde lag (s. dazu Basins of Attraction - Algorithmen).