English: Uneven distribution of points ( nonuniformity) of inverse orbit of repelling fixed point of complex quadratic polynomial. Tips of Julia set are visited more frequently, then branch points. This method of drawing Julia set is called Inverse Iteration Method ( IIM ). Inverse iteration creates binary tree of preimages. Drawing repelling periodic point and it's orbit ( forward and backward= inverse) gives visually good aproximation of Julia set = set of points dense enough that nonuniform distribution of these points over Julia set is not important
Polski: Nierównomierna częstość występowania ( niejednolitość) punktów wstecznej orbity odpychającego punktu stałego. Końcowe punkty zbioru Julia są odwiedzane częściej, niż punkty w których zbiór się rozgałęzia. Ta metoda rysowania zbiory Julia nazywa się metodą wstecznej iteracji. Angielska nazwa : Inverse Iteration Method = IIM. Iteracja odwrotna tworzy binarne drzewo preobrazów, Rysowanie odpychającego punktu okresowego i jego orbity (do przodu i wstecz) daje wizualnie dobre przybliżenie zbioru Julii = zbiór punktów na tyle gęsty, że nierównomierny rozkład tych punktów na zbiorze Julii nie jest ważny.
Figure 3 on page 17 in Rational iteration: complex analytic dynamical systems by Norbert Steinmetz, Walter de Gruyter, 1993 , ISBN3110137658,
Maxima src code
c:-1; /* define c value */
iMax:500000; /* maximal number of reversed iterations */
probability:0.5; /* one preimage is more contractive then other so it should be chosen .....*/
f(z,c):=expand(z*z+c);
finverseplus(z,c):=expand(sqrt(z-c));
finverseminus(z,c):=expand(-sqrt(z-c));
/* define z-plane ( dynamical ) */
zxMin:-2.0;
zxMax:2.0;
zyMin:-2.0;
zyMax:2.0;
/* define image size : width:iXmax-0+1; height:iYmax-0+1 ; */
iXmax:1000;
iYmax:1000;
/*
zx:zxMin+PixelWidth*iX ;
zy:zyMin+PixelHeight*iY;
so
iX:fix((zx-zxMin)/PixelWidth);
iY:fix((zy-zyMin)/PixelHeight);
*/
PixelWidth:(zxMax-zxMin)/iXmax;
PixelHeight:(zyMax-zyMin)/iYmax;
GiveJuliaPoints(c,iMax,probability):=
block(
xyv:[],
/* */
array(Hits,fixnum,iXmax,iYmax), /* 2D array of hits pixels . Hit > 0 means that point was in orbit */
fillarray (Hits,[0]), /* no hits for beginning */
/* compute fixed points of f(z,c) : z=f(z,c) */
fixed:float(rectform(solve([z*z+c=z],[z]))),
/* Find which is repelling */
if (abs(2*rhs(fixed[1]))<1)
then (
beta:rhs(fixed[1]),
alfa:rhs(fixed[2])
)
else (
alfa:rhs(fixed[1]),
beta:rhs(fixed[2])
),
/* choose repelling fixed point as a starting point of inversed iteration */
z:beta,
/* reversed iteration of beta */
for i:1 thru iMax step 1 do
(
if random(1.0)>probability
then z:finverseplus(z,c)
else z:finverseminus(z,c),
iX:fix((realpart(z)-zxMin)/PixelWidth),
iY:fix((imagpart(z)-zyMin)/PixelHeight),
/* save hits values to draw it later */
Hits[iX,iY]:Hits[iX,iY]+1
),
/* */
for iX:0 thru iXmax step 1 do
for iY:0 thru iYmax step 1 do
if (Hits[iX,iY]>0) then
(zx:zxMin+PixelWidth*iX ,
zy:zyMin+PixelHeight*iY,
xyv:cons([zx,zy,Hits[iX,iY]],xyv)),
return(xyv)
)$
JuliaPoints:GiveJuliaPoints(c,iMax,probability);
/* draw reversed orbit of beta using draw package */
load(draw);
draw3d(
file_name = "iimj_5",
terminal = 'screen,
pic_width = iXmax,
pic_height = iYmax,
yrange = [zyMin,zyMax],
xrange = [zxMin,zxMax],
title= concat("Julia set for c=",string(c)," using IIM (",string(iMax)," points, prob= 0.5)"),
xlabel = "Z.re ",
ylabel = "Z.im",
point_type = dot,
points_joined = impulses,
line_width = 2,
color = red,
point_size = 5,
/*color = black,*/
points(JuliaPoints)
);
Licencja
Ja, właściciel praw autorskich do tego dzieła, udostępniam je na poniższych licencjach
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.
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.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
Możesz wybrać, którą licencję chcesz zastosować.
Podpisy
Dodaj jednolinijkowe objaśnienie tego, co ten plik pokazuje
{{Information |Description={{en|1=Distribution of points of inverse orbit of crtitical point for complex quadratic polynomial.}} {{pl|1=Częstość występowania punktów we wstecznej orbicie punktu krytycznego}} |Source=Own work by uploader |Author=[[Use