分形/复平面中的迭代/pcheckerboard
外观
< 分形
如何展示抛物线盆地内的动力学 ?
参数 c 是一个抛物点
吸引子(极限集,吸引循环/不动点)
- 属于 Julia 集(不像其他情况)
- 是弱吸引的(懒惰动力学)
颜色取决于
- 数值逼近的 Fatou 坐标的虚部的符号(数值解释)
- 的位置 在...下 关系到临界轨道星的一个臂:上方或下方(几何解释)
- 抛物线棋盘 = 抛物线棋盘
- qn 的零点 - 只使用 Mandelbrot 集的实数切片上的填充 Julia 集的内部(c 是实数,虚部为零)
- 二进制分解(方法 = BDM) 在抛物情况下
- 填充 Julia 集内部的镶嵌(Tomoki Kawahira 在带抛物线的复动力系统中的半共轭)
- 内部拼贴
首先选择
- 选择目标集,它是一个圆,具有
- 目标集由 p 个分量(扇区)的片段组成。将目标集的每个部分划分为 2 个子扇区(高于和低于 临界轨道)= 二进制分解
步骤
- 取 = 轨道的初始点(像素)
- 进行正向迭代
- 如果点逃逸 = 外部
- 如果点没有逃逸,那么检查点是否靠近不动点(在目标集中)
- 如果不是,则进行一些额外的迭代
- 如果是,则检查它在目标集的哪一半(二进制分解)
抛物线盆地的步骤
- 选择包含临界点的分量
- 选择陷阱
- 将陷阱磁盘分解为二进制分解 = 划分为两部分 :高于和低于临界轨道
陷阱特征
- 在包含临界点的分量内
- 陷阱在其边界上有一个抛物点
- 陷阱的中心是临界轨道最后一个点和不动点之间的中点
- 陷阱的半径是不动点和临界轨道最后一个点之间的距离的一半
目标集
- 对于复二次多项式的情况,周期为 1 和 2 :圆形
- 对于周期 >2:围绕不动点的圆的曲线扇区,2 个三角形由
注意,分量的陷阱大于BDM 的两个陷阱
- 分量陷阱 :三角形
- BDM 陷阱 :三角形
其中
- z1、z2 是边界分量(通常是最大的,包含临界点)的外部射线的最后一个点
- 是临界点,或者如果临界轨道臂不是直线,则是它的正向图像
- 是抛物线不动点
由于懒惰动力学,计算在临界轨道和外部射线落在抛物线不动点之前停止。剩余的间隙用从最后一点到着陆点的直线填充(近似)。
-
计算和近似部分
如何计算临界点的原像?
[edit | edit source]这里 a 和 b 是 2 个逆(或反向)迭代(参数调整后的多值),在 Wolf Jung 的 Mandel 程序 中使用
- 第 1 个逆函数 = 键 a =
- 第 2 个逆函数 = 键 b =
"Use the keys a and b for the inverse mapping. (The two branches are approximately mapping to the parts A and B of the itinerary.)
/* *****************************************************************************************
*************************** inverse function of f(z) = z^2 + c ****************************
*******************************************************************************************
*/
/*f^{-1}(z) = inverse with argument adjusted
"When you write the real and imaginary parts in the formulas as complex numbers again,
you see that it is sqrt( -c / |c|^2 ) * sqrt( |c|^2 - conj(c)*z ) ,
so this is just sqrt( z - c ) except for the overall sign:
the standard square-root takes values in the right halfplane, but this is rotated by the squareroot of -c .
The new line between the two planes has half the argument of -c .
(It is not orthogonal to c ... )"
...
"the argument adjusting in the inverse branch has nothing to do with computing external arguments. It is related to itineraries and kneading sequences, ...
Kneading sequences are explained in demo 4 or 5, in my slides on the stripping algorithm, and in several papers by Bruin and Schleicher.
W Jung " */
complex double fa(const complex double z0){
double t = cabs(c);
t = t*t;
complex double z = csqrt(-c/t)*csqrt(t-z0*conj(c));
return - z;
}
complex double fb(const complex double z0){
double t = cabs(c);
t = t*t;
complex double z = csqrt(-c/t)*csqrt(t-z0*conj(c));
return z;
}
complex double give_preimage_a(complex double z0){
int i;
int iMax = child_period;
complex double z = z0;
for (i = 0; i < iMax; ++i){
z = fa(z); }
return z;
}
complex double give_preimage_b(complex double z0){
int i;
int iMax = child_period;
complex double z = z0;
for (i = 0; i < iMax-1; ++i){
z = fa(z); }
z = fb(z);
return z;
}
int Draw_preimages(complex double z0, unsigned char iColor, unsigned char A[]){
complex double z = z0;
int i;
int iMax = 100;
for (i = 0; i < iMax; ++i){
z = give_preimage_a(z);
dDrawPoint(z, iColor, A);
}
z = z0;
z = give_preimage_b(z);
dDrawPoint(z, iColor, A);
for (i = 0; i < iMax - 1; ++i){
z = give_preimage_a(z);
dDrawPoint(z, iColor, A);
}
return 0;
}
字典
[edit | edit source]- 棋盘是将 A 分解为图形和方格的名称
- 棋盘图
- 棋盘方格:“A 中的补集的连通分量被称为棋盘方格(在一个真正的棋盘中它们被称为方格,但这里它们有无限多个角,而不仅仅是四个)。" [1]
- 两个主要的棋盘方格
- 陷阱 = 目标集 = 吸引花瓣
使用棋盘图可视化结构
"An often used and very useful technique of visualization of ramified covers (and partial cover structures that are not too messy) consists in cutting the range in domains, often simply connected, along lines joining singular values, and taking the pre-image of these pieces, which gives a new set of pieces. The way they connect together and the way they map to the range give information about the structure." Arnaud Chéritat Near Parabolic Renormalization for Unicritical Holomorphic Maps by Arnaud Chéritat
描述
[edit | edit source]"一个可视化扩展 Fatou 坐标的好方法是使用抛物线图和棋盘。" [2]
根据以下内容对点进行颜色编码:[3]
- Fatou 坐标的整数部分
- 虚部的符号
棋盘的角点(四个瓷砖交汇的地方)是临界点 [4]
或者
1/1
[edit | edit source]The parabolic chessboard for the polynomial z + z^2 normalizing * each yellow tile biholomorphically maps to the upper half plane * each blue tile biholomorphically maps to the lower half plane under * The pre-critical points of or equivalently the critical points of are located where four tiles meet"[5]
图片
[edit | edit source]点击图片在 Commons 上查看代码和描述!
-
BDM 仅在内部
-
BDM 同时出现在外部(超吸引)和内部(抛物线)
-
只有一个盆地:外部(超吸引)
-
在主心形尖点处
-
从主心形到周期 2
-
沿 1/2 射线从周期 2 到 4 之间
-
0/1 = 1/1
-
1/2
-
1/3
-
1/4
-
5/11
在逃逸路线 0 上的演化
- 以周期 1 的分量核(c = 0)开始
- 沿内部射线移动,角度 = 0
- 抛物线点(c = 1/4)
- 在角度为 0 的外部射线上
-
-
超吸引
-
吸引
-
抛物线
-
只有一个盆地:外部(超吸引),Julia 集不连续
-
各种数量的星形分支
-
0/1 = 1/1
-
主要方格内的不变曲线
-
d=2
-
d=3
-
d=4
-
d=5
-
二度抛物线 Blaschke 乘积第一次重整化的结构化棋盘,用正则映射突出显示的圆柱体。
示例
代码
[edit | edit source]对于内部角 0/1 和 1/2,临界轨道位于实数线上 (Im(z) = 0)。计算抛物线棋盘很容易,因为只需检查 z 的虚部。 对于其他情况,就不那么容易了
0/1
[edit | edit source]Wolf Jung 的 Cpp 代码,请参阅来自文件 mndlbrot.cpp(Mandel 程序)的抛物线函数 [8][9]
要查看效果
- 运行 Mandel
- (在参数平面上)找到角度为 0 的抛物线点,即 c=0.25。使用键 c 在窗口输入 0 并回车。
C 代码
// in function uint mndlbrot::esctime(double x, double y)
if (b == 0.0 && !drawmode && sign < 0
&& (a == 0.25 || a == -0.75)) return parabolic(x, y);
// uint mndlbrot::parabolic(double x, double y)
if (Zx>=0 && Zx <= 0.5 && (Zy > 0 ? Zy : -Zy)<= 0.5 - Zx)
{ if (Zy>0) data[i]=200; // show petal
else data[i]=150;}
Gnuplot 代码
reset
f(x,y)= x>=0 && x<=0.5 && (y > 0 ? y : -y) <= 0.5 - x
unset colorbox
set isosample 300, 300
set xlabel 'x'
set ylabel 'y'
set sample 300
set pm3d map
splot [-2:2] [-2:2] f(x,y)
1/2 或肥胖的巴西利卡
[edit | edit source]Wolf Jung 的 Cpp 代码,请参阅来自文件 mndlbrot.cpp(Mandel 程序)的抛物线函数 [10] 要查看效果
- 运行 Mandel
- (在参数平面上)找到角度为 1/2 的抛物线点,即 c=-0.75。使用键 c 在窗口输入 0 并回车。
C 代码
// in function uint mndlbrot::esctime(double x, double y)
if (b == 0.0 && !drawmode && sign < 0
&& (a == 0.25 || a == -0.75)) return parabolic(x, y);
// uint mndlbrot::parabolic(double x, double y)
if (A < 0 && x >= -0.5 && x <= 0 && (y > 0 ? y : -y) <= 0.3 + 0.6*x)
{ if (j & 1) return (y > 0 ? 65282u : 65290u);
else return (y > 0 ? 65281u : 65289u);
}
-
组件的陷阱
-
棋盘
-
目标集(临界前点)
Numerical approximation of Julia set for fc(z)= z^2 + c child_period = 3 internal argument in turns = 1 / 3 parameter c = -0.1250000000000000 +0.6495190528383290*I fixed point alfa z = a = -0.2500000000000000 +0.4330127018922194*I external angles of rays landing on the fixed point : t = 1/7 t = 2/7 t = 4/7 critical point z = zcr = 0.0000000000000000 +0.0000000000000000*I precritical point z = z_precritical = -0.2299551351162811 -0.1413579816050052*I external argument in turns of first ray landing on fixed point = 1 / 7
-
外部和内部的BDM
Julia set for fc(z)= z^2 + c internal argument in turns = 1/4 parameter c = 0.2500000000000000 +0.5000000000000000*I fixed point alfa z = a = 0.0000000000000000 +0.5000000000000000*I critical point z = zcr = 0.0000000000000000 +0.0000000000000000*I precritical point z = z_precritical = -0.2288905993372869 -0.0151096456992677*I external angles of rays landing on fixed point: 1/15, 2/15, 4/15, 8/15 ( in turns)
-
外部射线和临界轨道(11臂星)
Numerical approximation of Julia set for fc(z)= z^2 + c parameter c = ( -0.6900598700150440 ; 0.2760264827846140 ) fixed point alfa z = a = ( -0.4797464868072486 ; 0.1408662784207147 ) external angle of ray landing on fixed point: 341/2047
- 抛物扰动
- 用户:Tamfang 的双曲镶嵌中的棋盘:图片 和 Python 代码
- https://plus.google.com/110803890168343196795/posts/Eun6pZVkkmA
- shadertoy: Orbit trapped julia 由 maeln 于 2016 年 1 月 19 日创建
- etale_cohomology 的全纯棋盘
- 花椰菜的萼片
- 维基百科:计算机图形学中的斑马条纹
- 真实树逼近花椰菜:收敛到花椰菜朱利亚集的树。顶点集与 z 平方加四分之一的临界点的广义轨道一一对应。[11]
- ↑ Arnaud Cheritat 的单奇异全纯映射的近抛物重整化
- ↑ Arnaud Cheritat 关于 Inou 和 Shishikura 的近抛物重整化
- ↑ Mitsuhiro Shishikura 的近抛物重整化的应用
- ↑ Robert L. Devaney 的复杂动力系统,第
- ↑ Sabyasachi Mukherjee 的反全纯动力学:参数空间的拓扑和拉直的不连续性
- ↑ T Kawahira 的瓷砖
- ↑ A Cheritat 的棋盘
- ↑ commons:Category:用 Mandel 创建的分形
- ↑ Wolf Jung 的 Mandel 程序
- ↑ Wolf Jung 的 Mandel 程序
- ↑ Oleg Ivrii(特拉维夫大学),“树的形状”