分形/复平面迭代/1/2族
-
曼德勃罗集中的周期倍增级联(1/2族)通过指数映射显示
-
逃逸路线 1/2
-
周期倍增
-
通过在负 X 方向平移时放大圆形特征来显示曼德勃罗集的自相似性。显示中心从 (-1,0) 平移到 (-1.31,0),同时视图从 .5 x .5 放大到 .12 x .12。
周期倍增级联的周期:[1]
其中
- 是Myrberg-Feigenbaum 点 c = −1.401155,外部角度 = (0.412454... , 0,58755...)
它是Sharkovsky 排序的一部分
周期也对应于构成二进制周期分数的位数。
angles ( binary periodic fractions) of hyperbolic components from the period doubling cascade 1*2^n period = 1 0.(0) 0.(1) period = 2 0.(01) 0.(10) period = 4 0.(0110) 0.(1001) period = 8 0.(01101001) 0.(10010110) period = 16 0.(0110100110010110) 0.(1001011001101001) period = 32 0.(01101001100101101001011001101001) 0.(10010110011010010110100110010110) period = 64 0.(0110100110010110100101100110100110010110011010010110100110010110) 0.(1001011001101001011010011001011001101001100101101001011001101001) period = 128 0.(01101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001) 0.(10010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110) period = 256 0.(0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110) 0.(1001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001)
注意,
- 所有角度都是周期二进制分数
- 二进制周期部分的长度 = 周期
MSS-谐波[2](Metropolis、Stein 和 Stein[3])
以二进制分数的形式
- 输入: 和
- 输出: 和
可以使用 c 代码计算
/*
Operating with external arguments in the Mandelbrot set antenna
by G Pastor, M Romera, G Alvarez and F Montoya, December 16, 2004
-------------- asprintf --------------------------------------
Using asprintf instead of sprintf or snprintf by james
http://www.stev.org/post/2012/02/10/Using-saprintf-instead-of-sprintf-or-snprintf.aspx
http://ubuntuforums.org/showthread.php?t=279801
gcc c.c -D_GNU_SOURCE -Wall // without #define _GNU_SOURCE
gcc h.c -Wall
cppcheck h.c
----------- run ----------------------
./a.out
./a.out > h.txt
----------------
*/
#define _GNU_SOURCE // asprintf
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // strlen
int main() {
// output = angles of p*2^n component
char *sOut1 = ""; // in plaint text format
char *sOut2 = ""; // in plaint text format
// input = angles of period p=1 component
char *sIn1 = "0";
char *sIn2 = "1";
int n = 0;
int nMax = 10;
int p =1;
printf(" angles ( binary periodic fractions) of hyperbolic components from the period doubling cascade %d*2^n\n ", p);
printf(" period = %d \t 0.(%s)\t 0.(%s)\n", p, sIn1, sIn2);
for (n=1; n<nMax; n++){
p *= 2; // period doubling cascade
// MSS-harmonic h(sIn1. sIn2) = (sOut1, sOut2) = (sIn1+sIn2, sIn2 + sIn1 ) here + means concat the strings
asprintf(&sOut1, "%s%s", sIn1, sIn2);
asprintf(&sOut2, "%s%s", sIn2, sIn1);
//
printf(" period = %d \t 0.(%s)\t 0.(%s)\n", p, sOut1, sOut2);
//
sIn1 = sOut1;
sIn2 = sOut2;
}
//
free(sOut1);
free(sOut2);
return 0;
}
n 周期 = 2n 根点 (cn) 0 1 0.25 1 2 −0.75 2 4 −1.25 3 8 −1.3680989 4 16 −1.3940462 5 32 −1.3996312 6 64 −1.4008287 7 128 −1.4010853 8 256 −1.4011402 9 512 −1.401151982029 10 1024 −1.401154502237 ∞ −1.4011551890…
周期 262144
x = -1.4011551890902510331817705605834440363471931682724714412452613678632418220750013209654238789188079407613058592287511922521315976742525764917468403339396930937 30785180509439998407177461884732043 f(x) = 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000001994 近似费根鲍姆常数 = 4.6692016090744525662279815203708867539460996466796182702147591041742162322183312521153913774503310728833354374225852275733454310057265948843688036767882792034 77482728794667534497622208785380761
周期 524288
-1.4011551890916651883071968100816546650318029614591678115404876967937578305271204258535401015561476261168939337667710591343229259782689769629427546629533666727 86737113473009338909783794873017929 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000008829391 4.6692016090968787947051350378647836776226665257418367260642987723027044088401013356743953120638886994058416817724607788627924785757422345903201225592627931049 69373245311653832559840230430927275
周期 1048576
-1.4011551890919680570294789310328705961503197610898601690317026045601400345356095836255726490446857492092529857212919383793658357679431376624985583329486967143 41390220891894934332628723842939248 -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000022112864 4.6692016091016816811869601608458017299280888932440761709767910764158204329663666795299227205144754947240340906747557847995318754327409221893703408072446351537 83290121618647654581771235818384323
来自 mandelbrot-numerics 库的 m-feigenbaum 程序
m-feigenbaum
period = 4 nucleus = -1.310702641336833008e+00 size = 1.179602276312223114e-01
period = 8 nucleus = -1.381547484432061657e+00 size = 2.590331788620404280e-02
period = 16 nucleus = -1.396945359704560685e+00 size = 5.574904503817590395e-03
period = 32 nucleus = -1.400253081214783091e+00 size = 1.195288587163239984e-03
period = 64 nucleus = -1.400961962944842210e+00 size = 2.560528805309172169e-04
period = 128 nucleus = -1.401113804939776664e+00 size = 5.484142131458955168e-05
period = 256 nucleus = -1.401146325826946537e+00 size = 1.174547734653405196e-05
period = 512 nucleus = -1.401153290849925570e+00 size = 2.515527294624666474e-06
period = 1024 nucleus = -1.401154782546613964e+00 size = 5.387491809938387059e-07
period = 2048 nucleus = -1.401155102022462628e+00 size = 1.153835913118543914e-07
period = 4096 nucleus = -1.401155170444413400e+00 size = 2.471163334462234791e-08
period = 8192 nucleus = -1.401155185098302614e+00 size = 5.292465190668938379e-09
period = 16384 nucleus = -1.401155188236713700e+00 size = 1.133481216591179550e-09
period = 32768 nucleus = -1.401155188908850047e+00 size = 2.427895317585669274e-10
period = 65536 nucleus = -1.401155189052770256e+00 size = 5.204848444681121846e-11
period = 131072 nucleus = -1.401155189083645558e+00 size = 1.116488091172383448e-11
period = 262144 nucleus = -1.401155189090176112e+00 size = 2.401481531760724511e-12
period = 524288 nucleus = -1.401155189091663589e+00 size = 6.463020532652650290e-13
period = 1048576 nucleus = -1.401155189092033737e+00 size = 3.635753686080000682e-14
period = 2097152 nucleus = -1.401155189093066022e+00 size = 9.366255511607845319e-19
period = 4194304 nucleus = -1.401155189093066022e+00 size = 2.943937947459073103e-26
period = 8388608 nucleus = -1.401155189093066022e+00 size = 5.438985544182134629e-40
period = 16777216 nucleus = -1.401155189093066022e+00 size = 5.967915741322236566e-68
period = 33554432 nucleus = -1.401155189093066022e+00 size = 8.736600707368986815e-124
period = 67108864 nucleus = -1.401155189093066022e+00 size = 1.222084981000085251e-235
period = 134217728 nucleus = -1.401155189093066022e+00 size = 0.000000000000000000e+00
period = 268435456 nucleus = -1.401155189093066022e+00 size = 0.000000000000000000e+00
似乎双精度不够
中心 比根点(分叉点)更容易计算。
Period = 1 center = 0.000000000000000000 Period = 2 center = -1.000000000000000000 Period = 4 center = -1.310702641336832884 Period = 8 center = -1.381547484432061470 Period = 16 center = -1.396945359704560642 Period = 32 center = -1.400253081214782798 Period = 64 center = -1.400961962944841041 Period = 128 center = -1.401113804939776124 Period = 256 center = -1.401146325826946179 Period = 512 center = -1.401153290849923882 Period = 1024 center = -1.401154782546617839 Period = 2048 center = -1.401155102022463976 Period = 4096 center = -1.401155170444411267 Period = 8192 center = -1.401155185098297292 Period = 16384 center = -1.401155188236710937 Period = 32768 center = -1.401155188908863045 Period = 65536 center = -1.401155189052817413 Period = 131072 center = -1.401155189083648072 Period = 262144 center = -1.401155189090251057 Period = 524288 center = -1.401155189091665208 Period = 1048576 center = -1.401155189091968106 Period = 2097152 center = -1.401155189092033014 Period = 4194304 center = -1.401155189092046745 Period = 8388608 center = -1.401155189092049779 Period = 16777216 center = -1.401155189092050532 Period = 33554432 center = -1.401155189092051127 Period = 67108864 center = -1.401155189092050572 Period = 134217728 center = -1.401155189092050593 Period = 268435456 center = -1.401155189092050599
它使用 cpp 程序计算,使用了 来自 Mandel 的代码
/*
This is not official program by W Jung,
but it usess his code ( I hope in a good way)
These functions are part of Mandel by Wolf Jung (C)
which is free software; you can
redistribute and / or modify them under the terms of the GNU General
Public License as published by the Free Software Foundation; either
version 3, or (at your option) any later version. In short: there is
no warranty of any kind; you must redistribute the source code as well.
http://www.mndynamics.com/indexp.html
to compile :
g++ f.cpp -Wall -lm
./a.out
*/
#include <iostream> // std::cout
#include <cmath> // sqrt
#include <limits>
#include <cfloat>
typedef unsigned int uint;
typedef long double mdouble; // mdynamo.h
// from the file qmnshell.cpp by Wolf Jung (C) 2007-2018
mdouble cFb = -1.40115518909205060052L;
mdouble dFb = 4.66920160910299067185L;
mdouble bailout = 16.0L; // mdynamoi.h
// c = A+B*i
mdouble A= 0.0L;
mdouble B = 0.0L;
/*
function from mndlbrot.cpp by Wolf Jung (C) 2007-2017 ...
part of Mandel 5.14, which is free software; you can
redistribute and / or modify them under the terms of the GNU General
Public License as published by the Free Software Foundation; either
version 3, or (at your option) any later version. In short: there is
no warranty of any kind; you must redistribute the source code as well.
http://www.mndynamics.com/indexp.html
----------------------------------------------
it is used to find :
* periodic or preperiodic points on dynamic plane
* on parameter plane
** centers
** Misiurewicz points
using Newton method
*/
int find(int sg, uint preper, uint per, mdouble &x, mdouble &y)
{ mdouble a = A, b = B, fx, fy, px, py, w;
uint i, j;
for (i = 0; i < 30; i++)
{ if (sg > 0) // parameter plane
{ a = x; b = y; }
if (!preper) // preperiod==0
{ if (sg > 0) // parameter plane
{ fx = 0;
fy = 0;
px = 0;
py = 0; }
else // dynamic plane
{ fx = -x;
fy = -y;
px = -1;
py = 0; }
}
else // preperiod > 0
{ fx = x;
fy = y;
px = 1.0;
py = 0;
for (j = 1; j < preper; j++)
{ if (px*px + py*py > 1e100) return 1;
w = 2*(fx*px - fy*py);
py = 2*(fx*py + fy*px);
px = w;
if (sg > 0) px++; // parameter plane
w = fx*fx - fy*fy + a;
fy = 2*fx*fy + b;
fx = w;
}
}
mdouble Fx = fx, Fy = fy, Px = px, Py = py;
for (j = 0; j < per; j++)
{ if (px*px + py*py > 1e100) return 2;
w = 2*(fx*px - fy*py);
py = 2*(fx*py + fy*px);
px = w;
if (sg > 0) px++; // parameter plane
w = fx*fx - fy*fy + a;
fy = 2*fx*fy + b;
fx = w;
}
fx += Fx;
fy += Fy;
px += Px;
py += Py;
w = px*px + py*py;
if (w < 1e-100) return -1;
x -= (fx*px + fy*py)/w;
y += (fx*py - fy*px)/w;
}
return 0;
}
int main()
{
int plane = 1; // positive is parameter plane, negative is dynamic plane = signtype
uint preper = 0; // " the usual convention is to use the preperiod of the critical value. This has the advantage, that the angles of the critical value have the same preperiod under doubling as the point, and the same angles are found in the parameter plane." ( Wolf Jung )
uint per ; // period
mdouble x ;
mdouble y = 0.0L;
int n;
// Starting with a center of period n
per = 1;
x = 0.0L;
// find an approximation for the center of period 2n
for (n=1; n<30; n++){
printf("Period = %10u \tcenter = %.18Lf\n", per, x);
// next center
per *= 2; // period doubling
// approximate of next value using Feigenbaum rescaling ( in the 1/2-limb )
x = cFb + (x - cFb)/dFb;
// more precise value of x useing Newton method
find(plane, preper, per, x, y);
}
return 0;
}
-
逃逸路线 1/2
This process in which an orbit of period- successively lose stability to an orbit of period-, ending at a limiting value at which all periodic solutions are unstable is known as the period doubling route to chaos. (Mark Nelson)[4]
- 如何在参数平面上移动?
- 曼德尔布罗特集合的实数切片[5]
- 混沌部分 主天线是 族的一棵灌木
- 曼德尔布罗特集合上的双可达点[6]
- 费根鲍姆常数[7]
- Commons 类别:周期倍增分叉