洛伦茨吸引子

洛伦茨吸引子（Lorenz attractor）是洛伦茨振子（Lorenz oscillator）的长期行为对应的分形结构，以爱德华·诺顿·洛伦茨（Edward Norton Lorenz）的姓氏命名。洛伦茨振子是能产生混沌流的三维动力系统，又稱作勞侖次系統（Lorenz system），其一組混沌解稱作洛伦茨吸引子，以其双纽线形状而著称。映射展示出动力系统（三维系统的三个变量）的状态是如何以一种复杂且不重复的模式，随时间的推移而演变的。 洛伦茨吸引子及其导出的方程组是由爱德华·诺顿·洛伦茨於1963年发表，最初是发表在《大气科学杂志》（Journal of the Atmospheric Sciences）杂志的论文《Deterministic Nonperiodic Flow》中提出的，是由大气方程中出现的对流卷方程简化得到的。 这一洛伦茨模型不只对非线性数学有重要性，对於气候和天气预报来说也有着重要的含义。行星和恒星大气可能会表现出多种不同的准周期状态，这些准周期状态虽然是完全确定的，但却容易发生突变，看起来似乎是随机变化的，而模型对此现象有明确的表述。 从技术角度看来，洛伦茨振子具有非線性、三维性和确定性。2001年，沃里克·塔克尔（Warwick Tucker）证明出在一组确定的参数下，系统会表现出混沌行为，显示出人们今天所知的奇异吸引子。这样的奇异吸引子是豪斯多夫维数在2与3之间的分形。彼得·格拉斯伯格（Peter Grassberger）已於1983年估算出豪斯多夫维数为2.06 ± 0.01，而关联维数（英语：correlation dimension）为2.05 ± 0.01。 此系统也会出现在单模激光和发电机的简化模型中。除此之外，闭环对流、水轮转动等物理模型也有此系统的应用。 洛伦茨方程是基於纳维－斯托克斯方程、连续性方程和热传导方程简化得出，最初的形式为： ∂ v → ∂ t + ( v → ∇ ) v → = − ∇ p ρ + ν ∇ 2 v → + g → {\displaystyle {\frac {\partial {\vec {v}}}{\partial t}}+\left({\vec {v}}\nabla \right){\vec {v}}=-{\frac {\nabla p}{\rho }}+\nu \nabla ^{2}{\vec {v}}+{\vec {g}}} ∂ ρ ∂ t + ∇ ⋅ ( ρ v → ) = 0 {\displaystyle {\frac {\partial \rho }{\partial t}}+\nabla \cdot \left(\rho {\vec {v}}\right)=0} ∂ T ∂ t + ∇ ⋅ ( T v → ) = χ ∇ 2 T {\displaystyle {\frac {\partial T}{\partial t}}+\nabla \cdot \left(T{\vec {v}}\right)=\chi \nabla ^{2}T} ρ = ρ 0 ( 1 − γ ( T − T 0 ) ) {\displaystyle \rho =\rho _{0}\left(1-\gamma \left(T-T_{0}\right)\right)} v → {\displaystyle {\vec {v}}} 是流速， T {\displaystyle T} 是流体温度， T 0 {\displaystyle T_{0}} 是上限温度（也可以写成 T 0 + Δ T {\displaystyle T_{0}+\Delta T} ）， ρ {\displaystyle \rho } 是密度， p {\displaystyle p} 是压强， g → {\displaystyle {\vec {g}}} 是重力， γ {\displaystyle \gamma } 、 χ {\displaystyle \chi } 、 ν {\displaystyle \nu } 依次是热膨胀系数、热扩散率和动黏滯係數。 简化後的形式称为洛伦茨方程，是决定洛伦茨振子状态的方程为一组常微分方程： d x d t = σ ( y − x ) {\displaystyle {\frac {dx}{dt}}=\sigma (y-x)} d y d t = x ( ρ − z ) − y {\displaystyle {\frac {dy}{dt}}=x(\rho -z)-y} d z d t = x y − β z {\displaystyle {\frac {dz}{dt}}=xy-\beta z} 含时间参数的形式： { d x ( t ) d t = σ ( y ( t ) − x ( t ) ) d y ( t ) d t = ρ x ( t ) − y ( t ) − x ( t ) z ( t ) d z ( t ) d t = x ( t ) y ( t ) − β z ( t ) {\displaystyle {\begin{cases}{\frac {\mathrm {d} x(t)}{\mathrm {d} t}}=\sigma {\bigl (}y(t)-x(t){\bigr )}\\{\frac {\mathrm {d} y(t)}{\mathrm {d} t}}=\rho \,x(t)-y(t)-x(t)\,z(t)\\{\frac {\mathrm {d} z(t)}{\mathrm {d} t}}=x(t)\,y(t)-\beta \,z(t)\end{cases}}} σ {\displaystyle \sigma } 称为普兰特尔数 ， ρ {\displaystyle \rho } 称为瑞利数。所有的 σ {\displaystyle \sigma } ， ρ {\displaystyle \rho } ， β {\displaystyle \beta } > 0，但通常 σ {\displaystyle \sigma } = 10， β {\displaystyle \beta } = 8/3， ρ {\displaystyle \rho } 不定。若 ρ < 1 {\displaystyle \rho <1} ，则吸引子为原点，没有任何其他稳定点。1≤ρ<13.927时，螺线轨迹接近两点（这相当於存在阻尼振子），两点的位置由下列式子决定：   x = ± b ( ρ − 1 ) {\displaystyle ~x=\pm {\sqrt {b(\rho -1)}}} 、   y = ± b ( ρ − 1 ) {\displaystyle ~y=\pm {\sqrt {b(\rho -1)}}} 、   z = ρ − 1 {\displaystyle ~z=\rho -1} 。系统在 ρ {\displaystyle \rho } = 28时表现出混沌特性，但 ρ {\displaystyle \rho } 为其他值时会显示出具纽结的周期轨道。例如，当 ρ = 99.96 {\displaystyle \rho =99.96} 时，图像变为一个T(3,2)环面纽结。 下面是GNU Octave模拟洛伦茨吸引子的源代码： ## Lorenz Attractor equations solved by ODE Solve ## x' = sigma*(y-x) ## y' = x*(rho - z) - y ## z' = x*y - beta*z function dx = lorenzatt(X) rho = 28; sigma = 10; beta = 8/3; dx = zeros(3,1); dx(1) = sigma*(X(2) - X(1)); dx(2) = X(1)*(rho - X(3)) - X(2); dx(3) = X(1)*X(2) - beta*X(3); return end ## Using LSODE to solve the ODE system. clear all close all lsode_options("absolute tolerance",1e-3) lsode_options("relative tolerance",1e-4) t = linspace(0,25,1e3); X0 = [0,1,1.05]; [X,T,MSG]=lsode(@lorenzatt,X0,t); T MSG plot3(X(:,1),X(:,2),X(:,3)) view(45,45) #include <graphics.h> #include <conio.h> void main() { double x = 3.051522, y = 1.582542, z = 15.62388, x1, y1, z1; double dt = 0.0001; int a = 5, b = 15, c = 1; int gd=DETECT, gm; initgraph(&gd, &gm, "C:\\BORLANDC\\BGI"); do { x1 = x + a*(-x+y)*dt; y1 = y + (b*x-y-z*x)*dt; z1 = z + (-c*z+x*y)*dt; x = x1; y = y1; z = z1; putpixel((int)(19.3*(y - x*0.292893) + 320), (int)(-11*(z + x*0.292893) + 392), 9); } while (!kbhit()); closegraph(); } Program Lorenz; Uses CRT, Graph; Const x: Real = 3.051522; y: Real = 1.582542; z: Real = 15.62388; dt = 0.0001; a = 5; b = 15; c = 1; Var gd, gm: Integer; x1, y1, z1: Real; Begin gd:=Detect; InitGraph(gd, gm, 'c:\bp\bgi'); While not KeyPressed Do Begin x1 := x + a*(-x+y)*dt; y1 := y + (b*x-y-z*x)*dt; z1 := z + (-c*z+x*y)*dt; x := x1; y := y1; z := z1; PutPixel(Round(19.3*(y - x*0.292893) + 320), Round(-11*(z + x*0.292893) + 392), 9); End; CloseGraph; ReadKey; End. program LorenzSystem real,parameter::sigma=10 real,parameter::r=28 real,parameter::b=2.666666 real,parameter::dt=.01 integer,parameter::n=1000 real x,y,z open(1,file='result.txt',form='formatted',status='replace',action='write') x=10.;y=10.;z=10. do i=1,n,1 x1=x+sigma*(y-x)*dt y1=y+(r*x-x*z-y)*dt z1=z+(x*y-b*z)*dt x=x1 y=y1 z=z1 write(1,*)x,y,z enddo print *,'Done' close(1) end program LorenzSystem DIM x, y, z, dt, x1, y1, z1 AS SINGLE DIM a, b, c AS INTEGER x = 3.051522: y = 1.582542: z = 15.62388: dt = 0.0001 a = 5: b = 15: c = 1 SCREEN 12 PRINT "Press Esc to quit" WHILE INKEY$ <> CHR$(27) x1 = x + a * (-x + y) * dt y1 = y + (b * x - y - z * x) * dt z1 = z + (-c * z + x * y) * dt x = x1 y = y1 z = z1 PSET ((19.3 * (y - x * .292893) + 300), (-11 * (z + x * .292893) + 360)), 9 WEND END 維基教科書中的相關電子教程：Lorenz 吸引子 混沌映射列表 Takens定理 曼德布洛特集合 （英文）Haken, H. Analogy between higher instabilities in fluids and lasers. Physics Letters A. 1975, 53 (1): 77–78. doi:10.1016/0375-9601(75)90353-9.  （英文）Knobloch, Edgar. Chaos in the segmented disc dynamo. Physics Letters A. 1981, 82 (9): 439–440. doi:10.1016/0375-9601(81)90274-7.  （英文）Jonas Bergman, Knots in the Lorentz Equation[永久失效連結], 学士毕业论文, Uppsala University 2004. （英文）Frøyland, J., Alfsen, K. H. Lyapunov-exponent spectra for the Lorenz model. Phys. Rev. A. 1984, 29: 2928–2931. doi:10.1103/PhysRevA.29.2928.  （英文）P. Grassberger and I. Procaccia. Measuring the strangeness of strange attractors. Physica D. 1983, 9: 189–208 [2022-01-08]. doi:10.1016/0167-2789(83)90298-1. （原始内容存档于2016-02-17）.  （英文）Lorenz, E. N. Deterministic nonperiodic flow. J. Atmos. Sci. 1963, 20: 130–141. doi:10.1175/1520-0469(1963)020<0130:DNF>2.0.CO;2.  （英文）Strogatz, Steven H. Nonlinear Systems and Chaos. Perseus publishing. 1994.  （英文）Tucker, W. A Rigorous ODE Solver and Smale's 14th Problem. Found. Comp. Math. 2002, 2: 53–117 [2010-02-26]. （原始内容存档于2019-12-28）.  维基共享资源上的相关多媒体资源：洛伦茨吸引子 （英文）埃里克·韦斯坦因. 洛伦茨吸引子. MathWorld.  （英文）洛伦茨吸引子 （页面存档备份，存于互联网档案馆），作者为Wolfram Demonstrations Project的Rob Morris （英文）洛伦茨吸引子，planetmath.org （英文）用於绘出洛伦茨吸引子或处理类似情况的源代码 （页面存档备份，存于互联网档案馆），使用ANSI C及gnuplot实现 （英文）《同步混沌与私人通信》，由MIT林肯实验室的Steven Strogatz与Kevin Cuomo讲解电子电路中洛伦茨吸引子的实现 （英文）洛伦茨吸引子交互式动画 （页面存档备份，存于互联网档案馆）（需Adobe Shockwave插件） （英文）Levitated.net：计算艺术与设计 （页面存档备份，存于互联网档案馆） （英文）3D Attractors：三维方式显示和研究洛伦茨吸引子Mac程序 （英文）3D VRML Lorenz attractor（需VRML浏览器插件） （英文）J语言实现洛伦茨吸引子演示的短文 （页面存档备份，存于互联网档案馆） - 见J语言 （英文）非线性模拟的Java小程序 （页面存档备份，存于互联网档案馆）（选择预设“Lorenz attractor”），作者Viktor Bachraty，编写语言Jython （英文）模拟电子技术中洛伦茨吸引子的实现 （简体中文）混沌蝴蝶——洛伦兹吸引子 （页面存档备份，存于互联网档案馆）