File:Preimages of curve ER.png
From Wikimedia Commons, the free media repository
Jump to navigation
Jump to search
Size of this preview: 600 × 600 pixels. Other resolutions: 240 × 240 pixels | 480 × 480 pixels | 1,000 × 1,000 pixels.
Original file (1,000 × 1,000 pixels, file size: 55 KB, MIME type: image/png)
File information
Structured data
Captions
Contents
Summary
[edit]DescriptionPreimages of curve ER.png |
English: preimages[1] of circle : {z:abs(z)=ER} under fc(z)=z*z+c. Preimages of circle from the exterior gives level sets of the escaping time. Exterior of the circle is the trap for escaping points ( target set) |
Date | |
Source | own work with help Mario Rodríguez Riotorto |
Author | Adam majewski |
Other versions |
|
How to run the program
[edit]This is batch file for Maxima CAS.
Tested under :
- Maxima version: 5.25.1
- Host type: x86_64-ubuntu-linux-gnu 2.6.32-33-generic
- Lisp implementation type: SBCL
- Lisp implementation version: 1.0.29.11.debian
- G N U P L O T version 4.2 patchlevel 6
- draw package ( "/usr/share/maxima/5.25.1/share/draw/draw.lisp" ) by Mario Rodríguez Riotorto
To run :
- save as m.mac
- open it in Maxima CAS as a batch file:
batch("m.mac")$
Maxima CAS src code
[edit]kill(all); /* ------------------ definitions ----------------------------*/ f(z,c):=z*z+c; finverseplus(z):=float(rectform(sqrt(z-c))); finverseminus(z):=-sqrt(z-c); /* computes invese image of input points */ GivePreimage(OldList):= block( [NewL,NewLP,NewLN], NewLP:map(finverseplus,OldList), /* positive preimages */ NewLN:map("-",NewLP), /* negative preimages */ NewL:append(NewLP,NewLN) /* output = all preimages as a list */ ); /* t is an angle in turns */ p(t):=radius*%e^(2*%pi*%i*t); /* ------------------ compilation --------------------------------------*/ compile(all); /*------------------ constant values ---------------------------------- */ c:-0.11+0.65569999*%i; radius:3; /* radius of initial circle */ iMax:100; /* number of points of initial circle */ /* second curve will have 2*iMax = 200 points, third curve will have 2*2*iMax = 400 points .... */ dt:float(1/iMax); /* step of turn */ /* --------------------- main ------------------------------------------*/ /* point to point method of drawing */ /* compute points of curve and save points to the list */ /* points of initial circle l0={z:abs(z)=radius } */ l0:makelist (i*dt, i, 0, iMax); /* list of turns from 0 to 1 */ l0:map(p,l0); /* list of points of circle of fixed radius */ /* list l0 has iMax=100 points list ln has iMax*2^n points List l11 contains 100*2^11=100*2048 =204 800 points */ /* ---------- preimages of circle under fc = equipotential lines --------------------*/ l1:GivePreimage(l0); /* first preimage */ l2:GivePreimage(l1)$ /* second preimage */ l3:GivePreimage(l2)$ l4:GivePreimage(l3)$ l5:GivePreimage(l4)$ l6:GivePreimage(l5)$ l7:GivePreimage(l6)$ l8:GivePreimage(l7)$ l9:GivePreimage(l8)$ l10:GivePreimage(l9)$ l11:GivePreimage(l10)$ l12:GivePreimage(l11)$ l13:GivePreimage(l12)$ l14:GivePreimage(l13)$ /* preimages : - tend to Julia set as n increases - tend to equipotential lines as ER tends to infinity */ /*--- order point according to its argument to join them by lines --*/ /* thx to Mario Rodriguez */ l1: sort(l1, lambda([z1,z2], is(carg(z1) < carg(z2))))$ l2: sort(l2, lambda([z1,z2], is(carg(z1) < carg(z2))))$ l3: sort(l3, lambda([z1,z2], is(carg(z1) < carg(z2))))$ l4: sort(l4, lambda([z1,z2], is(carg(z1) < carg(z2))))$ l5: sort(l5, lambda([z1,z2], is(carg(z1) < carg(z2))))$ /* for more complicated curves points should be ordered by external angle not argument !!!!! also points are so dense on the curve so joining is not needed */ /*----------------------- draw -----------------------------------*/ load(draw); draw2d( terminal = 'png, file_name = "m4", dimensions = [1000,1000], title= "Preimages of circle (z:abs(z)=ER) under fc(z)=z*z -0.11+0.65569999*i; ", key = "L0", xlabel = "re ", ylabel = "im", points_joined = true, point_type = dot, point_size = 5, color = green, points(map(realpart, l0),map(imagpart, l0)), color = black, key = "f^(-1)(L0)", points(map(realpart, l1),map(imagpart, l1)), key = "f^(-2)(L0)", points(map(realpart, l2),map(imagpart, l2)), key = "f^(-3)(L0)", points(map(realpart, l3),map(imagpart, l3)), key = "f^(-4)(L0)", points(map(realpart, l4),map(imagpart, l4)), key = "f^(-5)(L0)", points(map(realpart, l5),map(imagpart, l5)), color = red, points_joined = false, color = red, key = "f^(-14)(L0)", points(map(realpart, l14),map(imagpart, l14)) );
How the program works
[edit]Steps
[edit]- compute iMax points of circle with radius ER centered at the origin and save the to the l0 list
- compute preimages of points of circle using and save the to the l1 list
- repeat second step n-times
- draw above lists
Escape radius
[edit]Here is definition
Lists
[edit]Number of points in the list :
- list l0 has iMax points
- list l1 has 2*iMax points
- list ln has points
For example when iMax=100 then l11 has 100*2^11=100*2048 =204 800 points
List l0 = circle
Here we use :
- exponential form of complex number
- turn units of angles
so to compute points of circle centered at origin and radius=ER we use function :
p(t):=radius*%e^(2*%pi*%i*t);
List l0 consist of iMax points for angle from 0 to 1 ( in turns).
References
[edit]Licensing
[edit]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 3.0 Unported 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.
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 10:04, 12 September 2011 | 1,000 × 1,000 (55 KB) | Soul windsurfer (talk | contribs) |
You cannot overwrite this file.
File usage on Commons
The following 2 pages use this file:
File usage on other wikis
The following other wikis use this file: