# File:Preimages of the circle under map f(z) = z*z+0.25.svg

Original file(SVG file, nominally 1,000 × 2,000 pixels, file size: 188 KB)

## Captions

### Captions

Add a one-line explanation of what this file represents

## Summary

 Description English: Preimages of the green circle under map $f(z)=z^{2}+0.25$ . Preimages of the green circle from the interior gives level curves of the attracting time ( boundaries of the level sets). Green circle here is an attracting petal of the Leau–Fatou flower. Fixed point is on the circle and on the boundary of the Fatou set. Standard view is not readible so click on the image to see animation !! Reload ( refresh ) to see it again. Date 16 March 2018 Source Own work Author Adam majewski Other versions SVG developmentInfoField

## Licensing

I, the copyright holder of this work, hereby publish it under the following license:   This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license. You are free: to share – to copy, distribute and transmit the work to remix – to adapt the work Under the following conditions: attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.

## Algorithm

• compute fixed point
• compute critical orbit ( orbit of the critical point ) which tend to the fixed point
• take 2 points
• fixed point
• draw a circle
• thru 2 points:
• fixed point
• last point of the critical orbit
• with center in the midpoint of above points
• draw preimages of critical point under our function
• compute/draw preimaes of the circle under our function

Note :

• there are 2 preimages

### Green circle

• Radius of the circle is equal to half of the distance between parabolic fixed point ( big blue dot) and last point of critical orbit ( black dots )
• Center of the green circle is a midpoint between above 2 points

### Gray curves

• gray curves are preimages of green circle
• preimages
• go to the left ( from fixed point to the critical point = along critical orbit in the reverse direction) until meet the critical point
• then closed curve is splitted to the curve which join red points ( preimage of critical point and it's symmetric point)
• all preimages tend to the fixed point from the right

## Maxima CAS src code

```
/*

Batch file for Maxima CAS
save as a o.mac
run maxima :
maxima
and then :
batch("s.mac");

*/
kill(all);
remvalue(all);

/* ---------- functions ---------------------- */

/* Forward iteration */
f(z):=float(rectform(z*z+c))\$

b(z):=float(rectform(sqrt(z-c)))\$

/* find fixed point alfa of function f(z,c)   */
GiveFixed(c):= float(rectform((1-sqrt(1-4*c))/2))\$

/*
converts complex number z = x*y*%i
to the list in a draw format:
[x,y]
*/
d(z):=[float(realpart(z)), float(imagpart(z))]\$

/* give Draw List from one point*/
dl(z):=[d(z)]\$

/* gives an orbit of z0 under fc where iMax is the length of the orbit */
GiveForwardOrbit(z0,c, iMax):= block
(
[i,z, orbit],

z:z0,
orbit :[d(z)],
i:1,
while ( i<iMax )
do
(
z:f(z),
orbit : endcons(d(z), orbit),
i:i+1
),

return(orbit)
)\$

/* gives an orbit of z0 under fc where iMax is the length of the orbit */
GiveBackwardOrbit(z0,c, iMax):= block
(
[i,z,  orbit],

orbit :[],
z : z0,
i:1,
while ( i<iMax )
do
(
z:b(z),
orbit : cons(d( z), orbit),
orbit : cons(d(conjugate(z)), orbit),
i:i+1
),

return(orbit)
)\$

/*
point of the 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):= float(rectform(%e^(%i*t*2*%pi)));

/* circle point */

/* here t is a real number */
[t, dt, list],
dt : (tmax - tmin)/n,

t : tmin,
list : [z],

while t < tmax do
( t: t + dt,
list : endcons(z, list)),
list

)\$

/* slimming the list

only between iMin and  iMax
iMin : angle =1/4
iMax : angle = 3/4
*/

SlimList(MyList, n):=block(
[NewList, iMax, iMin, l],
NewList:[first(MyList)],
l : length(MyList),
iMin: l*0.2,
iMax: l*0.8,
for i:1 thru l step 1 do
(if (i>iMin and i<iMax)
then (if (mod(i,n)=0) then  NewList:endcons(MyList[i],NewList))
else NewList:endcons(MyList[i],NewList)
),
NewList : endcons(last(MyList), NewList),
NewList

)\$

compile(all);

jMax:1000;

/* variables */

c:0.25;
zcr : 0;

/* computations */

zf : GiveFixed(c) \$

critical_orbit : GiveForwardOrbit(zcr, c, 100)\$
precritical : GiveBackwardOrbit(zcr, c, 100)\$

/* compute attracting petals */

/*
last ( here)  attracting petal is a circle  with:
*  center on the x axis
* radius = distance between last point of critical orbit and fixed point
= ( cabs(zf) + cabs(z))/2 where z is the last point of critical orbit
so in other words circle whic passes thru zl and zf
=

Method by Scott Sutherland:

choose the connected component containing the critical point
find an analytic curve which lies entirely in the Fatou set, has the right tangency property at the fixed point, and is mapped into its interior by the correct power of the map
*/

z_l : last(critical_orbit);

/*

smallest attracting petal is a circle
under inverse iteration circle ( closed curve ):
"Circles are split because of the branch cut along the imaginary axis"
http://functions.wolfram.com/ElementaryFunctions/Sqrt/visualizations/4/

start from 1/2 !!! not zero
this is the point where circle is splitted

*/

p0 :  GiveCircleArc( center_l, radius_l,   1/2, 3/2, jMax)\$

p60 : p0\$
for i: 1  thru 60  step 1 do p60 : map(b, p60)\$

p70 : p60\$
for i: 1  thru 10  step 1 do p70 : map(b, p70)\$

p80 : p70\$
for i: 1  thru 10  step 1 do p80 : map(b, p80)\$

p81 : map (b, p80)\$
p82 : map (b, p81)\$
p83 : map (b, p82)\$
p84 : map (b, p83)\$
p85 : map (b, p84)\$
p86 : map (b, p85)\$
p87 : map (b, p86)\$
p88 : map (b, p87)\$
p89 : map (b, p88)\$
p90 : map (b, p89)\$

p91 : map(b, p90)\$
p92 : map(b, p91)\$
p93 : map(b, p92)\$

p94 : map(b, p93)\$

p95 : map(b, p94)\$

p96 : map(b,p95)\$

p97 : map(b,p96)\$

p98 : map(b,p97)\$
p99 : map(b,p98)\$

/*
trick :
change first point of the list
from origin to slightly below
now it is different from last !!!
= split closed curve
*/
p99: -4.424164545328475E-7*%i\$

p100 : map (b, p99)\$
p101 : map (b, p100)\$
p102 : map (b, p101)\$
p103 : map (b, p102)\$
p104 : map (b, p103)\$
p105 : map (b, p104)\$
p106 : map (b, p105)\$
p107 : map (b, p106)\$
p108 : map (b, p107)\$
p109 : map (b, p108)\$
p110 : map (b, p109)\$
p111 : map (b, p110)\$
p112 : map (b, p111)\$
p113 : map (b, p112)\$
p114 : map (b, p113)\$
p115 : map (b, p114)\$

/* make lists smaller */

p0: SlimList(p0, 500)\$
p80: SlimList(p80,500)\$
p81: SlimList(p81,500)\$
p82: SlimList(p82,500)\$
p83: SlimList(p83,500)\$
p84: SlimList(p84,500)\$
p85: SlimList(p85,500)\$
p86: SlimList(p86,500)\$
p87: SlimList(p87,500)\$
p88: SlimList(p88,500)\$
p89: SlimList(p89,500)\$
p90: SlimList(p90,500)\$
p91: SlimList(p91,500)\$
p92: SlimList(p92,500)\$
p93: SlimList(p93,500)\$
p94: SlimList(p94,500)\$
p95: SlimList(p95,500)\$
p96: SlimList(p96,500)\$
p97: SlimList(p97,500)\$
p98: SlimList(p98,100)\$
p99: SlimList(p99,100)\$
p100: SlimList(p100,100)\$
p101: SlimList(p101,100)\$
p102: SlimList(p102,500)\$
p103: SlimList(p103,500)\$
p104: SlimList(p104,500)\$
p105: SlimList(p105,500)\$
p106: SlimList(p106,500)\$
p107: SlimList(p107,500)\$
p108: SlimList(p108,500)\$
p109: SlimList(p109,500)\$
p110: SlimList(p110,500)\$
p111: SlimList(p111,500)\$
p112: SlimList(p112,500)\$
p113: SlimList(p113,500)\$
p114: SlimList(p114,500)\$
p115: SlimList(p115,500)\$

/* to draw format */

p0 : map(d, p0)\$
/*
p60: map (d, p60)\$
p70: map (d, p70)\$
*/
p80: map (d, p80)\$
p81: map (d, p81)\$
p82: map (d, p82)\$
p83: map (d, p83)\$
p84: map (d, p84)\$
p85: map (d, p85)\$
p86: map (d, p86)\$
p87: map (d, p87)\$
p88: map (d, p88)\$
p89: map (d, p89)\$
p90: map (d, p90)\$
p91 : map(d, p91)\$
p92 : map(d, p92)\$
p93 : map(d, p93)\$
p94 : map(d, p94)\$
p95 : map(d, p95)\$
p96 : map(d, p96)\$
p97 : map(d, p97)\$
p98 : map(d, p98)\$
p99 : map(d, p99)\$
p100 : map(d, p100)\$
p101 : map(d, p101)\$
p102 : map(d, p102)\$
p103 : map(d, p103)\$
p104 : map(d, p104)\$
p105 : map(d, p105)\$
p106 : map(d, p106)\$
p107 : map(d, p107)\$
p108 : map(d, p108)\$
p109 : map(d, p109)\$
p110 : map(d, p110)\$
p111 : map(d, p111)\$
p112 : map(d, p112)\$
p113 : map(d, p113)\$
p114 : map(d, p114)\$
p115 : map(d, p115)\$

/* ---------------- draw ------------------------------- */

path:"~/maxima/batch/julia/parabolic/1over1/circle_preimages/c4/small/s2/"\$ /*  if empty then file is in a home dir , path should end with "/" */

/* draw it using draw package by */

/* if graphic  file is empty (= 0 bytes) then run draw2d command again */

draw2d(
user_preamble="set key top right; unset mouse",
terminal  = 'svg,
file_name = sconcat(path,"s", string(jMax)),

title= "Preimages of the circle  for f(z) = z^2 +1/4",
dimensions = [1000, 2000],

yrange = [-0.75, 0.75],
xrange = [0, 0.75],

xlabel     = "zx ",
ylabel     = "zy",
point_type = filled_circle,

points_joined =true,
point_size    =  0.1,

color         = green,

key="green circle",
points(p0),

color         = gray,
key = "",

/*
here not drawn because of  dense image
points(p60),
points(p70),
*/

/* points(p80),
points(p81),
points(p82),
points(p83),
points(p84),
points(p85),*/
points(p86),
points(p87),
points(p88),
points(p89),
points(p90),
points(p91),
points(p92),
points(p93),
points(p94),
points(p95),

points(p96),
points(p97),
points(p98),
points(p99),
points(p100),
points(p101),
points(p102),
points(p103),
points(p104),
points(p105),
points(p106),
points(p107),
points(p108),

points(p109),
points(p110),
points(p111),
points(p112),

points(p113),
points(p114),
key = "preimages of the green circle",
points(p115),

point_size    =  0.5,
points_joined =false,
key = "images of critical point",
color         = black,
points(critical_orbit),

key = "preimages of critical point",
color         = red,
points(precritical),

/*  big points */

point_size    =  1.1,
key= "fixed point",
color = blue,
points(dl(zf)),

key= "critical point",
color = black,
points(dl(zcr))

);

```

## Postprocessing

The size of svg image is to big.

"I simply opened the file in a text editor to see what's wrong with it and edited it down to the current version with regex substitutions. Of course regexes can be a bit tricky and the older version of the file is so slow to render that I didn't check for deviations as thoroughly as I should have." TilmannR

"The text editor I used was Notepad++, but that's not particularly relevant.

I don't remember each individual pattern I used, but the main culprit definitely were lines like `<use xlink:href='#gpPt6' transform='translate(600.3,998.2) scale(0.45)' color='rgb(190, 190, 190)'/>`. There are 12141 of those, each about 100 characters long, so approximately 1.2 MB in total. A short regex for that is e.g. `<use[^>]*190, 190, 190\)'/>`, but the real solution to superfluous elements is to not generate them at all. Apparently it's possible to avoid generating points by setting their point_type to -1. If I was more familiar with Maxima, I'd fix the script, but I'm not, so I won't.: TilmannR (talk) 21:03, 19 May 2018 (UTC)

## File history

Click on a date/time to view the file as it appeared at that time.

## File usage on other wikis

The following other wikis use this file:

• Usage on en.wikibooks.org