跳转到内容

分形/实数迭代/r 次迭代

来自维基教科书,开放的书籍,开放的世界

动力学

  • 实解析单峰动力学[1]


图表类型

[编辑 | 编辑源代码]

二维图表

[编辑 | 编辑源代码]
  • 参数是水平轴上的变量
    • 分岔图 : P-曲线(=周期点)与参数的关系[2]
    • 轨道图 : 临界轨道的点与参数的关系
    • 骨架图(临界曲线 = q-曲线)[3]
    • 李雅普诺夫图 : 李雅普诺夫指数与参数的关系[4]
    • 倍增图 : 周期轨道的倍增因子与参数的关系
  • 常数参数图
    • 蛛网图或 Verhulst 图 [5] = 图形迭代
    • 迭代与时间图[6] = 连接的散点图 = 时间序列
    • 不变密度图、直方图,[7] 轨道的分布,[8] 频率分布 [9] = 功率谱 [10]
    • 庞加莱图[11][12]


指数变换 参数轴


三维图表

[编辑 | 编辑源代码]
  • 由于 数值误差,同一个方程的不同实现可能会给出不同的轨迹。例如:r*x*(1-x)r*x - r*x*x
  • 对初始条件的敏感性:“初始条件的微小差异会导致系统长期行为的巨大差异。这种属性有时被称为‘蝴蝶效应’。”[13]


映射类型


帐篷映射

[编辑 | 编辑源代码]

帐篷映射的轨道

逻辑斯谛映射

[编辑 | 编辑源代码]

名称 

  • 逻辑斯谛映射 [14]: [15]
  • 逻辑斯谛方程
  • 逻辑斯谛差分方程
  • 离散动力系统

逻辑斯谛映射[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]
逻辑斯谛映射的分岔图

为了显示更多细节,请使用 提示,由 用户:PAR 提供。

"横轴是 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]

不变测度

[edit | edit source]

状态空间中的不变测度或概率密度 [27]

YouTube 上的视频 [28]

实二次映射

[edit | edit source]
李雅普诺夫指数 - 图像和 Maxima CAS 代码

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]

自相似性、缩放和重整化

[编辑 | 编辑源代码]
  • 逻辑斯谛映射的费根鲍姆缩放定律[30]


另请参阅

[编辑 | 编辑源代码]


参考文献

[编辑 | 编辑源代码]
  1. 单峰动力学 40 年:纪念 Artur Avila 赢得 Brin 奖,作者:Mikhail Lyubich
  2. 分岔与轨道图,作者:Chip Ross
  3. math.stackexchange 问题:分岔图上的线是什么?
  4. 一维二次映射中 Lyapunov 指数的修正,作者:Gerardo Pastor、Miguel Romera、Fausto Montoya Vitini。《非线性现象物理 D》,107(1):17 · 1997 年 8 月
  5. 维基百科:蛛网图
  6. 一维动力系统 第 3 部分:迭代,作者:Hinke Osinga
  7. 维基百科:直方图
  8. 混沌理论:对参数 R 的依赖性
  9. 蝙蝠国,作者:xian
  10. 逻辑斯谛映射的功率谱,来自 Wolfram Mathematica
  11. 维基百科:庞加莱映射
  12. physics.stackexchange 问题:庞加莱平面和逻辑斯谛映射
  13. 逻辑斯谛方程,作者:Didier Gonze
  14. 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.
  15. 具有非常复杂动力学的简单数学模型,作者:R May
  16. 逻辑斯谛映射与混沌,作者:Elmer G. Wiens
  17. Ausloos,Marcel,Dirickx,Michel(编):逻辑斯谛映射与通往混沌的道路
  18. 逻辑斯谛映射,作者:M.R. Titchener
  19. 可汗学院:逻辑斯谛映射
  20. Lasin - Matlab 代码
  21. 逻辑斯谛图,作者:Mario Rodriguez Riotorto,使用 Maxima CAS draw 包绘制
  22. 逻辑斯谛映射中的双精度误差:统计研究与动力学解释,作者:J. A. Oteo、J. Ros
  23. 逻辑斯谛映射,作者:A. Peter Young
  24. learner.org 教材
  25. fractalforums.org:我的 Lyapunov 分形渲染中可能出现哪些瑕疵
  26. 计算逻辑斯谛映射的 Lyapunov 指数 - LASIN
  27. 不变测度练习,作者:James P. Sethna、Christopher R. Myers
  28. 逻辑斯谛映射的不变测度,作者:todo314
  29. Chip Ross:分岔与轨道图
  30. 沃尔弗拉姆演示:Logistic 地图的费根鲍姆标度定律
华夏公益教科书