File:Jungreis.svg
Summary
| Description |
English: Boundary of Mandelbrot set as an image of unit circle under Jungreis function Polski: Brzeg Zbioru Mandelbrota jako obraz koła jednostkowego po zastosowaniu funkcji Jungreisa |
| Date | |
| Source | Own work : translation of maple code by G. A. Edgar; Help : G. A. Edgar and Richard J. Fateman, Robert P. Munafo and Richard J. Fateman.[1] See also : Bifurcation of Dynamic Rays in Complex Polynomials of Degree Two, Atela, P., Ergod Th & Dynam Sys (1991) 12, 401-423 |
| Author | Adam majewski |
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.
Maxima CAS src code
/* batch file for maxima
uses :
- symmetry around horizontal ( 0X ) axis
- Psi_M function to map conjugate plane to parameter plane
- jungreis algorithm to
time :
263 sec for jMax:100; and iMax:800;
4000 sec for jMax:400
*/
kill(all);
remvalue(all);
/* ============== functions ============================================================================*/
/* ------------ computes b coefficient of Jungreis function ----*/
betaF[n,m]:=block
(
[nnn:2^(n+1)-1],
if m=0
then 1.0
else if ((n>0) and (m < nnn))
then 0.0
else (betaF[n+1,m]- sum(betaF[n,k]*betaF[n,m-k],k,nnn,m-nnn)-betaF[0,m-nnn])/2.0
)$
b[m]:=betaF[0,m+1]$
/* -------------------------------*/
/* Power of w to j */
wn[w,j]:= if j=0 then 1 else w*wn[w,j-1]$
/* ---------Jungreis function ; c = Psi_M(w) ----------------------------- */
Psi_M(w):=w + sum(b[j]/wn[w,j],j,0,jMax)$
/* exponential for of complex number with angle in turns */
GiveCirclePoint(t):=R*%e^(%i*t*2*%pi)$ /* gives point of unit circle for angle t in turns */
compile(all);
start:elapsed_run_time ();
jMax:1000; /* precision = proportional to details and time of computations */
iMax:2000; /* number of points to draw */
/* --- w-plane -----------------------------------------*/
/*-------------- unit circle ------------*/
R:1;
circle_angles:makelist(i/iMax,i,0,iMax/2)$
CirclePoints:map(GiveCirclePoint,circle_angles)$
/* -------------------------parameter plane = c plane -----------------------------------*/
MPoints:map(Psi_M,CirclePoints)$ /* Mandelbrot set points */
/* add points below horizontal axis */
for w in CirclePoints do CirclePoints:cons(conjugate(w),CirclePoints)$
for c in MPoints do MPoints:cons(conjugate(c),MPoints)$
/* time */
stop:elapsed_run_time ();
time:fix(stop-start);
/* ---------------- draw *--------------------------------------------------------------------------*/
path : ""; /* pwd ; if you put here working directory name then graphic file will be saved in that dir */
FileName:concat(string(jMax),"jung", string(iMax))$ /* without extension which is the terminal name */
load(draw); /* Mario Rodríguez Riotorto http://www.telefonica.net/web2/biomates/maxima/gpdraw/index.html */
draw(file_name = concat(path,FileName),
dimensions=[2000, 1000],
terminal = 'svg,
columns = 2,
gr2d(title = " unit circle {w:abs(w)=1} ",
point_type = filled_circle,
points_joined =true,
point_size = 0.34,
color = red,
points(map(realpart, CirclePoints),map(imagpart, CirclePoints))
),
gr2d(title = " Image of circle under Psi_M(w) ",
points_joined =true,
point_type = filled_circle,
point_size =0.34,
color = blue,
points(map(realpart, MPoints),map(imagpart, MPoints))
)
);