Plik:ComponentNewton.jpg

Treść strony nie jest dostępna w innych językach.
Ten plik jest umieszczony w Wikimedia Commons
Z Wikipedii, wolnej encyklopedii

Rozmiar pierwotny(1000 × 1000 pikseli, rozmiar pliku: 58 KB, typ MIME: image/jpeg)

Ten plik został zastąpiony przez File:Mandelbrot set Component by Newton method.png. Sugerujemy użycie tamtego pliku.
new file

Opis

Opis
English: Boundaries of Components of Mandelbrot set by Newton method
Polski: Brzeg składowych zbioru Mandelbrot obliczony metodą Newtona
Data
Źródło Own work by uploader ( using Maxima and Gnuplot ) with help of many people ( see references )
Autor Adam majewski

Long description

Definition of hyperbolic components ( system of 2 equations)

Boundaries of hyperbolic components for period n of Mandelbrot set are defined by system of equations[1] :

Above system of 2 equations has 3 variables : ( n is constant). One have to remove 1 variable to be able to solve it.

Boundaries are closed curves : cardioids or circles. One can parametrize points of boundaries with angle ( here measured in turns from 0 to 1 ).

After evaluation of one can put it into above system, and get a system of 2 equations with 2 variables .

Now it can be solved

Solving system of equations

Method of solving system of equation :[2]

Using Newton method is based on Mark McClure archive copy at the Wayback Machine's paper "Bifurcation sets and critical curves"[4]

Computing centers of hyperbolic components for given period n:

  • compute center for given period n ( Maxima function polyroots[5][6] or allroots [7])
  • remove centers for dividers of n. It can be done by dividing polynomials ( Robert Munafo method)[8]

Result of solving

Solving above system gives one point c of each hyperbolic compponent of period n for each angle t ( point w ). Together it gives a list of points

Drawing

Draw a list of points ( on the sceen or to the file using Maxima draw2d function [9])

Set of points looks like curve.

Maxima source code

 /* 
 batch file for Maxima
 http://maxima.sourceforge.net/
 wxMaxima 0.7.6 http://wxmaxima.sourceforge.net
 Maxima 5.16.1 http://maxima.sourceforge.net
 Using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (aka GCL)
 Distributed under the GNU Public License. 
 based on :
 Mark McClure "Bifurcation sets and critical curves" - Mathematica in Education and Research, Volume 11, issue 1 (2006).
 */

 start:elapsed_run_time ();

 load("mnewton")$
 newtonepsilon: 1.e-3;
 newtonmaxiter: 100;
 load("C:/Program Files/Maxima-5.13.0/share/maxima/5.13.0/share/polyroots/jtroot3.mac")$ /*  Raymond Toy http://common-lisp.net/~rtoy/jtroot3.mac */
 maperror:false;
 fpprec : 16;

 /* ---------------- definitions ------------------------------------*/

 /* basic funtion */
 f(z,c):=z*z+c$
 /* */
 F(n, z, c) :=
 if n=1 then f(z,c)
 else f(F(n-1, z, c),c)$
 
/* */
 G(n,z,c):=F(n, z, c)-z$
 iMax:100; /* number of points to draw */
 dt:1/iMax;

 /* 
 unit circle D={w:abs(w)=1 } where w=l(t) 
 t is angle in turns ; 1 turn = 360 degree = 2*Pi radians 
 */
 l(t):=%e^(%i*t*2*%pi);
 

/* point to point method of drawing */
 t:0; /* angle in turns */ 
 /* compute first point of curve, create list and save point to this list */
 /* point of unit circle   w:l(t); */
 w:rectform(ev(l(t), numer)); /* "exponential form prevents allroots from working", code by Robert P. Munafo */ 

 /* period 1 */
 p:1;
 /*   center of component */
 ec:G(p,0,c)$
 center1:polyroots(ec,c);
 nMax1:length(center1);
 /* boundary point */
 e11:expand(G(p,z,c))$
 e12:expand(diff(F(p,z,c),z))$
 c1:mnewton([e11, e12-w], [z,c], [center1[1], center1[1]]);  /* code by Robert P. Munafo  */
 nMax1:length(c1);
 xx1:makelist (realpart(rhs(c1[1][2])), i, 1, 1); 
 yy1:makelist (imagpart(rhs(c1[1][2])), i, 1, 1); 

 /* period 2 */
 p:2;
 /*   center of component */
 ec:radcan(G(p,0,c)/G(1,0,c))$ /* code by Robert P. Munafo  and all similar beyond  */
 center2:polyroots(ec,c);
 nMax2:length(center2);
 /* boundary point */
 e21:radcan(G(p,z,c)/G(1,z,c))$
 e22:expand(diff(F(p,z,c),z))$
 c2:mnewton([e21, e22-w], [z,c], [center2[1], center2[1]]);
 xx2:makelist (realpart(rhs(c2[1][2])), i, 1, 1); 
 yy2:makelist (imagpart(rhs(c2[1][2])), i, 1, 1);  

 /* period 3 */
 p:3;
 /*   center of component */
 ec:radcan(G(p,0,c)/G(1,0,c))$
 center3:polyroots(ec,c);
 nMax3:length(center3);
 /* boundary point */
 e31:radcan(G(p,z,c)/G(1,z,c))$
 e32:expand(diff(F(p,z,c),z))$
 /*  */
 c3:mnewton([e31, e32-w], [z,c], [center3[1], center3[1]]);
 xx3:makelist (realpart(rhs(c3[1][2])), i, 1, 1); 
 yy3:makelist (imagpart(rhs(c3[1][2])), i, 1, 1); 
 for n:2 thru nMax3 step 1 do /* all components in 1 list */
 block
 ( 
  c3:mnewton([e31, e32-w], [z,c], [center3[n], center3[n]]),
  xx3:cons(realpart(rhs(c3[1][2])),xx3),
  yy3:cons(imagpart(rhs(c3[1][2])),yy3)
 );

 /* period 4 */
 /*   center of component */
 ec:radcan(G(4,0,c)/G(2,0,c))$
 center4:polyroots(ec,c);
 nMax4:length(center4);
 /* boundary point */
 e41:radcan(G(4,z,c)/G(2,z,c))$
 e42:expand(diff(F(4,z,c),z))$
 c4:mnewton([e41, e42-w], [z,c], [center4[1], center4[1]]);
 xx4:makelist (realpart(rhs(c4[1][2])), i, 1, 1); 
 yy4:makelist (imagpart(rhs(c4[1][2])), i, 1, 1); 
 for n:2 thru nMax4 step 1 do /* all components in 1 list */
 block
 ( 
  c4:mnewton([e41, e42-w], [z,c], [center4[n], center4[n]]),
  xx4:cons(realpart(rhs(c4[1][2])),xx4),
  yy4:cons(imagpart(rhs(c4[1][2])),yy4)
 ); 

 /* period 5 */
 newtonmaxiter: 200;
 /*   center of component */
 ec:radcan(G(5,0,c)/G(1,0,c))$
 center5:polyroots(ec,c);
 nMax5:length(center5);
 /* boundary point */ 
 e51:radcan(G(5,z,c)/G(1,z,c))$
 e52:expand(diff(F(5,z,c),z))$ 
 c5:mnewton([e51, e52-w], [z,c], [center5[1], center5[1]]);
 xx5:makelist (realpart(rhs(c5[1][2])), i, 1, 1); 
 yy5:makelist (imagpart(rhs(c5[1][2])), i, 1, 1); 
 for n:2 thru nMax5 step 1 do /* all components in 1 list */
 block
 ( 
  c5:mnewton([e51, e52-w], [z,c], [center5[n], center5[n]]),
  xx5:cons(realpart(rhs(c5[1][2])),xx5),
  yy5:cons(imagpart(rhs(c5[1][2])),yy5)
 ); 

 /* ------------*/
 for i:1 thru iMax step 1 do
 block
 ( 
 t:t+dt,
 w:rectform(ev(l(t), numer)), /* "exponential form prevents allroots from working", code by Robert P. Munafo */ 
 /* period 1 */
 c1:mnewton([e11, e12-w], [z,c], [center1[1], center1[1]]),
 xx1:cons(realpart(rhs(c1[1][2])),xx1),
 yy1:cons(imagpart(rhs(c1[1][2])),yy1),
 /* period 2 */
 c2:mnewton([e21, e22-w], [z,c], [center2[1], center2[1]]),
 xx2:cons(realpart(rhs(c2[1][2])),xx2),
 yy2:cons(imagpart(rhs(c2[1][2])),yy2),
 /* period 3*/
 for n:1 thru nMax3 step 1 do 
 block
 (	c3:mnewton([e31, e32-w], [z,c], [center3[n], center3[n]]),
  xx3:cons(realpart(rhs(c3[1][2])),xx3),
  yy3:cons(imagpart(rhs(c3[1][2])),yy3)
 ),
 /* period 4 */
 if evenp(i) then
 for n:1 thru nMax4 step 1 do 
 block
 (  	c4:mnewton([e41, e42-w], [z,c], [center4[n], center4[n]]),
 xx4:cons(realpart(rhs(c4[1][2])),xx4),
 yy4:cons(imagpart(rhs(c4[1][2])),yy4)
 ),
 /* period 5 */
 if evenp(i) then
 for n:1 thru nMax5 step 1 do /* all components in 1 list */
 block
  (  	c5:mnewton([e51, e52-w], [z,c], [center5[n], center5[n]]),
  xx5:cons(realpart(rhs(c5[1][2])),xx5),
  yy5:cons(imagpart(rhs(c5[1][2])),yy5)
  )
 );

 stop:elapsed_run_time ();
 time:fix(stop-start); 
 nMax:nMax1+nMax2+nMax3+nMax4+nMax5;

 load(draw);

 draw2d(
   file_name = "c4n", /* file in directory  C:\Program Files\Maxima-5.16.1\wxMaxima */
   terminal  = 'jpg, /* jpg when draw to file with jpg extension */
   pic_width  = 1000,
   pic_height = 1000,
   yrange = [-1.5,1.5],
   xrange = [-2,1],
   title= concat("Boundaries of ",string(nMax)," hyperbolic components of Mandelbrot set in ",string(time)," sec"),
   xlabel     = "c.re ",
   ylabel     = "c.im",
   point_type    = dot,
   point_size    = 5,
   points_joined =true,
   user_preamble="set size square;set key out vert;set key bot center",
   color = black,
   key = "one period 1 component  ",
   points(xx1,yy1),
   key = "one period 2 component  ",
   color         = green,
   points(xx2,yy2),
   points_joined =false,
   color         = red,
   key = concat(string(nMax3)," period 3 components  "),
   points(xx3,yy3),
   key = concat(string(nMax4)," period 4 components "),
   points(xx4,yy4),
   key = concat(string(nMax5)," period 5 components "),
   points(xx5,yy5)
 );

See also

References

  1. WikiBooks/Fractals/Iterations in the complex plane/Mandelbrot set
  2. Robert P. Munafo - private communcation
  3. Maxima Manual: 63. mnewton
  4. Mark McClure "Bifurcation sets and critical curves" - Mathematica in Education and Research, Volume 11, issue 1 (2006). archive copy at the Wayback Machine
  5. jtroot3 Maxima package by Raymond Toy archive copy at the Wayback Machine
  6. cvs /maxima/share/numeric/jtroot3.mac
  7. Maxima Manual: 21. function allroots
  8. Robert P. Munafo - private communcation
  9. Maxima draw package by Mario Rodríguez Riotorto archive copy at the Wayback Machine

Acknowledgements

This program is not only my work but was done with help of many great people (see references). Warm thanks (:-))

Licencja

Ja, właściciel praw autorskich do tego dzieła, udostępniam je na poniższych licencjach
w:pl:Licencje Creative Commons
uznanie autorstwa na tych samych warunkach
Wolno:
  • dzielić się – kopiować, rozpowszechniać, odtwarzać i wykonywać utwór
  • modyfikować – tworzyć utwory zależne
Na następujących warunkach:
  • uznanie autorstwa – musisz określić autorstwo utworu, podać link do licencji, a także wskazać czy utwór został zmieniony. Możesz to zrobić w każdy rozsądny sposób, o ile nie będzie to sugerować, że licencjodawca popiera Ciebie lub Twoje użycie utworu.
  • na tych samych warunkach – Jeśli zmienia się lub przekształca niniejszy utwór, lub tworzy inny na jego podstawie, można rozpowszechniać powstały w ten sposób nowy utwór tylko na podstawie tej samej lub podobnej licencji.
GNU head Udziela się zgody na kopiowanie, rozpowszechnianie oraz modyfikowanie tego dokumentu zgodnie z warunkami GNU Licencji Wolnej Dokumentacji, w wersji 1.2 lub nowszej opublikowanej przez Free Software Foundation; bez niezmiennych sekcji, bez treści umieszczonych na frontowej lub tylnej stronie okładki. Kopia licencji załączona jest w sekcji zatytułowanej GNU Licencja Wolnej Dokumentacji.
Możesz wybrać, którą licencję chcesz zastosować.

Podpisy

Dodaj jednolinijkowe objaśnienie tego, co ten plik pokazuje

Obiekty przedstawione na tym zdjęciu

przedstawia

image/jpeg

3b3138087aa5981d78362ded9a55c979d4b31d6e

59 769 bajt

1000 piksel

1000 piksel

Historia pliku

Kliknij na datę/czas, aby zobaczyć, jak plik wyglądał w tym czasie.

Data i czasMiniaturaWymiaryUżytkownikOpis
aktualny19:54, 27 wrz 2008Miniatura wersji z 19:54, 27 wrz 20081000 × 1000 (58 KB)Soul windsurfer{{Information |Description= |Source= |Date= |Author= |Permission= |other_versions= }}
18:58, 26 wrz 2008Miniatura wersji z 18:58, 26 wrz 20081000 × 1000 (56 KB)Soul windsurfer{{Information |Description={{en|1=Boundaries of Components of Mandelbrot set by Newton method}} |Source=Own work by uploader |Author=Adam majewski |Date=26.09.2008 |Permission= |other_versions= }} Components of Mandelbrot set by New

Następujące strony korzystają z tego pliku:

Metadane