分形/实数迭代/r 次迭代
外观
< 分形
动力学
- 实解析单峰动力学[1]
- 参数是水平轴上的变量
- 分岔图 : P-曲线(=周期点)与参数的关系[2]
- 轨道图 : 临界轨道的点与参数的关系
- 骨架图(临界曲线 = q-曲线)[3]
- 李雅普诺夫图 : 李雅普诺夫指数与参数的关系[4]
- 倍增图 : 周期轨道的倍增因子与参数的关系
- 常数参数图
-
轨道图
-
临界曲线
-
实二次映射的分岔图。显示了周期为 1、2、4 和 8 的周期点
-
轨道图和李雅普诺夫图
-
倍增图
-
逻辑斯谛映射蛛网图和时间演化 a=3.2
指数变换 参数轴
-
标准水平轴
-
变换后的水平轴以显示倍周期级联
-
3 个窗口,具有非线性,即对数 x 轴刻度
-
动画的蛛网图
-
动画的连接散点图
-
- 由于 数值误差,同一个方程的不同实现可能会给出不同的轨迹。例如:
r*x*(1-x)
和r*x - r*x*x
- 对初始条件的敏感性:“初始条件的微小差异会导致系统长期行为的巨大差异。这种属性有时被称为‘蝴蝶效应’。”[13]
映射类型
帐篷映射的轨道
-
双精度计算和数值误差
-
提高精度,无误差
名称
逻辑斯谛映射[16][17] 由一个递推关系(差分方程)定义
其中
- 是一个给定的常数参数
- 是给定的初始项
- 是由该关系确定的后续项
不要与
- 微分方程(给出连续版本)混淆
Bash 代码 [18] Khan Academy 的 Javascript 代码 [19] MATLAB 代码
r_values = (2:0.0002:4)';
iterations_per_value = 10;
y = zeros(length(r_values), iterations_per_value);
y0 = 0.5;
y(:,1) = r_values.*y0*(1-y0);
for i = 1:iterations_per_value-1
y(:,i+1) = r_values.*y(:,i).*(1-y(:,i));
end
plot(r_values, y, '.', 'MarkerSize', 1);
grid on;
另见 Lasin [20]
Maxima CAS 代码 [21]
/* Logistic diagram by Mario Rodriguez Riotorto using Maxima CAS draw packag */ pts:[]; for r:2.5 while r <= 4.0 step 0.001 do /* min r = 1 */ (x: 0.25, for k:1 thru 1000 do x: r * x * (1-x), /* to remove points from image compute and do not draw it */ for k:1 thru 500 do (x: r * x * (1-x), /* compute and draw it */ pts: cons([r,x], pts))); /* save points to draw it later, re=r, im=x */ load(draw); draw2d( terminal = 'png, file_name = "v", dimensions = [1900,1300], title = "Bifurcation diagram, x[i+1] = r*x[i]*(1 - x[i])", point_type = filled_circle, point_size = 0.2, color = black, points(pts));
显式解
[edit | edit source]当 r=4 时,该系统对第 n 次迭代有显式解 :[22]
精度
[edit | edit source]混沌状态下的数值精度 :"必须指定的精度位数约为迭代次数的 0.6 倍。因此,为了确定 is x10 000,我们需要约 6000 位数字。"
"因此,在混沌状态下,不可能预测 xn 在非常大的 n 的值。" [23]
更好的图像
[edit | edit source]"横轴是 r 参数,纵轴是 x 变量。该图像是通过形成一个 1601 x 1001 数组创建的,该数组表示 r 和 x 的 0.001 增量。使用 x=0.25 的起始值,并将映射迭代 1000 次以稳定 x 值。然后计算了每个 r 值的 100,000 个 x 值,并且对于每个 x 值,图像中相应的 (x,r) 像素加 1。然后将每一列(对应于特定 r 值)中的所有值乘以该列中非零像素的数量,以使强度均匀。将超过 250,000 的值设置为 250,000,然后将整个图像归一化为 0-255。最后,将 r 值低于 3.57 的像素变暗以提高可见度。"
另见
- 来自 learner.org 的提示 [24]
"The "problem" with pretty much all fractal-type systems, is, that, what happens at the beginning of an actually infinite iterational scheme, is often not descriptive of the long-time limit behaviour. And that's happening with the perturbed Lyapunov exponent from Mario Markus' algorithm as well. If I recall correctly, he states in his 90's article something like "let the x-value settle in". It's similar to the statement "for sufficiently large N" in math papers or in general with convergent series. The actual value of how many skipping iterations one performs, is, however, (at least afaik) just a guess till you're satisfied with the quality of the image. In my images, I could not get rid of those artifacts in full, one example being the UFO image, where vasyan did a great job removing those spots: vasyan's: https://fractalforums.org/index.php?action=gallery;sa=view;id=2388 my version (with spots): https://fractalforums.org/index.php?action=gallery;sa=view;id=1960" marcm200[25]
李雅普诺夫指数
[edit | edit source]- Matlab 中的代码 [26]
- G. Pastor, M. Romera 和 F. Montoya,“一维二次映射中李雅普诺夫指数的修正”,Physica D,107 (1997),17-22。预印本
不变测度
[edit | edit source]状态空间中的不变测度或概率密度 [27]
YouTube 上的视频 [28]
实二次映射
[edit | edit source]Chip Ross 提供的精彩图像 [29]
对于 ,MATLAB 中的代码可以写成
c = (0:0.001:2)';
iterations_per_value = 100;
y = zeros(length(c), iterations_per_value);
y0 = 0;
y(:,1) = y0.^2 - c;
for i = 1:iterations_per_value-1
y(:,i+1) = y(:,i).^2 - c;
end
plot(c, y, '.', 'MarkerSize', 1, 'MarkerEdgeColor', 'black');
用于绘制实二次映射的 Maxima CAS 代码 :
/* based on the code by by Mario Rodriguez Riotorto */ pts:[]; for c:-2.0 while c <= 0.25 step 0.001 do (x: 0.0, for k:1 thru 1000 do x: x * x+c, /* to remove points from image compute and do not draw it */ for k:1 thru 500 do (x: x * x+c, /* compute and draw it */ pts: cons([c,x], pts))); /* save points to draw it later, re=r, im=x */ load(draw); draw2d( terminal = 'svg, file_name = "b", dimensions = [1900,1300], title = "Bifurcation diagram, x[i+1] = x[i]*x[i] +c", point_type = filled_circle, point_size = 0.2, color = black, points(pts));
李雅普诺夫指数
[edit | edit source]program lapunow;
{ program draws bifurcation diagram y[n+1]=y[n]*y[n]+x,} { blue}
{ x: -2 < x < 0.25 }
{ y: -2 < y < 2 }
{ and Lyapunov exponet for each x { white}
uses crt,graph,
{ modul niestandardowy }
bmpM, {screenCopy}
Grafm;
var xe,xemax,xe0,yemax,i1,i2:integer;
yer,y,x,w,dx,lap:real;
const xmin=-2; { wspolczynnik funkcji fx(y) }
xmax=0.25;
ymax=2;
ymin=-2;
i1max=100; { liczba iteracji }
i2max=20;
lapmax=10;
lapmin=-10;
function wielomian2st(y,x:real) :real;
begin
wielomian2st:=y*y+x;
end; { wielomian2st }
procedure wstep;
begin
opengraf;
randomize; { przygotowanie generatora liczb losowych }
xemax:=getmaxx; { liczba pixeli }
yemax:=getmaxy;
w:=(yemax+1)/(ymax-ymin);
dx:=(xmax-xmin)/(xemax+1);
end;
begin {cialo}
wstep;
for xe:=xemax downTo 0 do
begin {xe}
x:=xmin+xe*dx; { liniowe skalowanie x=a*xe+b }
i1:=0;
i2:=0;
lap:=0;
y:=random; { losowy wybor y0 : 0<y0<1 }
while (abs(y)<ymax) and (i1<i1max)
do
begin {while i1}
y:=wielomian2st(y,x);
i1:=i1+1;
lap:=lap+ln(abs(2*y)+0.1);
if keypressed then halt;
end; {while i1}
while (i2<i2max) and (abs(y)<ymax)
do
begin {while i2}
y:=wielomian2st(y,x);
yer:=(y-ymin)*w; { skalowanie }
putpixel(xe,yemax-round(yer),blue); { diagram bifurkacyjny }
i2:=i2+1;
lap:=lap+ln(abs(2*y)+0.1);
if keypressed then halt;
end; {while i2}
lap:=lap/(i1max+i2max);
yer:=(lap-lapmin)*(yemax+1)/(lapmax-lapmin);
putpixel(xe,yemax-round(yer),white); { wsp Lapunowa }
putpixel(xe,yemax-round(-ymin*w),red); { y=0 }
putpixel(xe,yemax-round((1-ymin)*w),green); { y=1}
end; {xe}
{..... os 0Y .......................................................}
setcolor(red);
xe0:=round((0-Xmin)/dx); {xe0= xe : x=0 }
line(xe0,0,xe0,yemax);
SetColor(red);
OutTextXY(XeMax-50,yemax-round((0-ymin)*w)+10,'y=0 ');
SetColor(blue);
OutTextXY(XeMax-50,yemax-round((1-ymin)*w)+10,'y=1');
{....................................................................}
screenCopy('screen',640,480);
{}
repeat until keypressed;
closegraph;
end.
{ Adam Majewski
Turbo Pascal 7.0 Borland
MS-Dos / Microsoft}
缩放
[edit | edit source]周期
[edit | edit source]点
[edit | edit source]- 米西乌雷维奇点
- 逻辑斯谛映射的米西乌雷维奇点,由 J. C. Sprott 提供。
- M. Romera、G. Pastor 和 F. Montoya,“一维二次映射中的米西乌雷维奇点”,Physica A,232 (1996),517-535
- G. Pastor、M. Romera、G. Álvarez 和 F. Montoya,“一维二次映射中的米西乌雷维奇点模式生成”,Physica A,292 (2001),207-230
- G. Pastor、M. Romera 和 F. Montoya,“关于一维二次映射中 Misiurewicz 图形的计算”,《物理学 A》,232 (1996),536-553。预印本
- 累积点
- 分岔点
- 逻辑斯谛映射的费根鲍姆缩放定律[30]
- Geogebra:费根鲍姆轨迹 作者:a.zampa
- oeis 搜索:逻辑斯谛映射
- 逻辑斯谛映射,作者:B. L. Badger
- 费根鲍姆情景中水平可见性图的分析性质,作者:Bartolo Luque、Lucas Lacasa、Fernando J. Ballesteros、Alberto Robledo
- 二次映射与移位映射拓扑共轭,作者:Gareth Roberts
- 逻辑斯谛映射计算中的数值误差,作者:J. C. Sprott
- 数字与计算机,作者:Ronald T. Kneusel,评论者:David S. Mazel,2016 年 1 月 27 日
- 混沌模型、吸引子与形式的混沌建模与模拟分析,作者:Christos H. Skiadas、Charilaos Skiadas
- 延迟逻辑斯谛映射
- 重访逻辑斯谛映射,作者:Jerzy Ombach,波兰克拉科夫
- 二次映射阶与混沌参数依赖性中的结构,作者:Brian R. Hunt 和 Edward Ott
- 周期窗口的缩放,作者:Evgeny Demidov
- 用 WebGL 实现,作者:Ricky Reusser
- 用 Julia 高精度计算费根鲍姆 alpha 常数,作者:Stuart Brorson
- 费根鲍姆树,作者:3DXM Consortium
- 杨辉三角形和逻辑斯谛映射中的幂律,作者:Carlos Velarde、Alberto Robledo
- demonstrations.wolfram : 从单参数缩放定律估计费根鲍姆常数
- Egwald 数学:非线性动力学:逻辑斯谛映射与混沌,作者:Elmer G. Wiens
- ↑ 单峰动力学 40 年:纪念 Artur Avila 赢得 Brin 奖,作者:Mikhail Lyubich
- ↑ 分岔与轨道图,作者:Chip Ross
- ↑ math.stackexchange 问题:分岔图上的线是什么?
- ↑ 一维二次映射中 Lyapunov 指数的修正,作者:Gerardo Pastor、Miguel Romera、Fausto Montoya Vitini。《非线性现象物理 D》,107(1):17 · 1997 年 8 月
- ↑ 维基百科:蛛网图
- ↑ 一维动力系统 第 3 部分:迭代,作者:Hinke Osinga
- ↑ 维基百科:直方图
- ↑ 混沌理论:对参数 R 的依赖性
- ↑ 蝙蝠国,作者:xian
- ↑ 逻辑斯谛映射的功率谱,来自 Wolfram Mathematica
- ↑ 维基百科:庞加莱映射
- ↑ physics.stackexchange 问题:庞加莱平面和逻辑斯谛映射
- ↑ 逻辑斯谛方程,作者:Didier Gonze
- ↑ May, Robert M. (1976). "Simple mathematical models with very complicated dynamics". Nature. 261 (5560): 459–467. Bibcode:1976Natur.261..459M. doi:10.1038/261459a0. hdl:10338.dmlcz/104555. PMID 934280.
- ↑ 具有非常复杂动力学的简单数学模型,作者:R May
- ↑ 逻辑斯谛映射与混沌,作者:Elmer G. Wiens
- ↑ Ausloos,Marcel,Dirickx,Michel(编):逻辑斯谛映射与通往混沌的道路
- ↑ 逻辑斯谛映射,作者:M.R. Titchener
- ↑ 可汗学院:逻辑斯谛映射
- ↑ Lasin - Matlab 代码
- ↑ 逻辑斯谛图,作者:Mario Rodriguez Riotorto,使用 Maxima CAS draw 包绘制
- ↑ 逻辑斯谛映射中的双精度误差:统计研究与动力学解释,作者:J. A. Oteo、J. Ros
- ↑ 逻辑斯谛映射,作者:A. Peter Young
- ↑ learner.org 教材
- ↑ fractalforums.org:我的 Lyapunov 分形渲染中可能出现哪些瑕疵
- ↑ 计算逻辑斯谛映射的 Lyapunov 指数 - LASIN
- ↑ 不变测度练习,作者:James P. Sethna、Christopher R. Myers
- ↑ 逻辑斯谛映射的不变测度,作者:todo314
- ↑ Chip Ross:分岔与轨道图
- ↑ 沃尔弗拉姆演示:Logistic 地图的费根鲍姆标度定律