Shader für Polynom mit vorgegebenen Nullstellen

Für ein Polynom, das in der Form 

,

vorliegt, d.h. die Nullstellen ζi sind vorgegeben, habe ich einen Shader für das Programm VOC programmiert (s. unten im Download-Bereich), mit dem sich die Basins of Attraction sowie die Konvergenzgeschwindigkeit mit allen auf meiner Seite vorgestellten Iterationsmethoden (s. Nullstellen komplexer Funktionen) berechnen lassen.

 

Der maximale Grad n des Polynoms beträgt dabei 6. Somit gilt für die Polynome und deren erste und zweite Ableitung (die Nullstellen ζ1, …, ζ6  habe ich in A, ..., F umbenannt): 

Der Shader bietet die Möglichkeit der manuellen Vorgabe sowie der zufälligen Berechnung der Nullstellen ζ1, …, ζ6  bzw.  A, ..., F. Gesteuert wird dies mit der Variablen random_method:  

  • random_method = 0 :  manuelle Vorgabe der Nullstellen

Hier ein Beispiel für ein Polynom 5. Grades mit fünf Nullstellen (Abbildung s.unten):

 


  • random_method = 1 :  die Koeffizienten werden mit einem PRNG 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 Nullstellen ai expandiert: ζi = (randjRi ,  randj+1 • Ci ).

Die obige Einstellung erzeugt ein zufälliges Polynom 5. Grades mit zwei reellen und drei komplexen Nullstellen (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 und 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 Nullstellen bei jedem (!) Shader-Start
                                        mittels Klick auf den OK-Button; 
                                        als Startwert für den PRNG wird hier eine von VOC gelieferte Zufallszahl
                                        verwendet

Die folgenden Animationen zeigen Sequenzen der Basins of Attraction zufällig erzeugter Polynome 5. Grades mit der Newton-, der Halley-und der Chun III -Methode. Weitere Beispiele für mit dem Shader generierte Polynome finden Sie unter Diverse Polynome.      

 

Klicken Sie auf ein Bild in der Galerie für eine vergrößerte Darstellung und um sich die Sequenz für ein einzelnes Verfahren besser anschauen zu können.

 


Download

Zur Anwendung mit dem Programm Vision of Chaos enthält die folgende ZIP-Datei neben der Paletten-Datei BFrain.MAP den oben beschriebenen Shader für Polynome vom Grad 3 bis 6 (vier .CFF-Dateien).