洛伦茨吸引子
洛伦茨吸引子是洛伦茨振子(Lorenz oscillator)的长期行为对应的分形结构,以爱德华·诺顿·洛伦茨的姓氏命名。洛伦茨振子是能产生混沌流的三维动力系统,以其双纽线形状而著称。映射展示出动力系统(三维系统的三个变量)的状态是如何以一种复杂且不重复的模式,随时间的推移而演变的。
目录 |
[编辑] 简述
洛伦茨吸引子及其导出的方程组是由爱德华·诺顿·洛伦茨於1963年发表,最初是发表在《大气科学杂志》(Journal of the Atmospheric Sciences)杂志的论文《Deterministic Nonperiodic Flow》中提出的,是由大气方程中出现的对流卷方程简化得到的。
这一洛伦茨模型不只对非线性数学有重要性,对於气候和天气预报来说也有着重要的含义。行星和恒星大气可能会表现出多种不同的准周期状态,这些准周期状态虽然是完全确定的,但却容易发生突变,看起来似乎是随机变化的,而模型对此现象有明确的表述。
从技术角度看来,洛伦茨振子具有非線性、三维性和确定性。2001年,沃里克·塔克尔(Warwick Tucker)证明出在一组确定的参数下,系统会表现出混沌行为,显示出人们今天所知的奇异吸引子。这样的奇异吸引子是豪斯多夫维数在2与3之间的分形。彼得·格拉斯伯格(Peter Grassberger)已於1983年估算出豪斯多夫维数为2.06 ± 0.01,而关联维数为2.05 ± 0.01。
此系统也会出现在单模激光Haken, 缺乏參考資料名稱. 1975和发电机Knobloch, 缺乏參考資料名稱. 1981的简化模型中。除此之外,闭环对流、水轮转动等物理模型也有此系统的应用。
[编辑] 洛伦茨方程
洛伦茨方程是基於纳维-斯托克斯方程、热传导方程和连续性方程简化得出,最初的形式为:
——流速,
——流体温度,
——上限温度(也可以写成
),
——密度,
——压强,
——重力,
、
、
——依次为热膨胀系数、热扩散率和动黏滯係數。
简化後的形式称为洛伦茨方程,是决定洛伦茨振子状态的方程为一组常微分方程:
含时间参数的形式:
称为普兰特尔数 ,
称为瑞利数。所有的
,
,
> 0,但通常
= 10,
= 8/3,
不定。若
,则吸引子为原点,没有任何其他稳定点。1≤ρ<13.927时,螺线轨迹接近两点(这相当於存在阻尼振子),两点的位置由下列式子决定:
、
、
。系统在
= 28时表现出混沌特性,但
为其他值时会显示出具纽结的周期轨道。例如,当
时,图像变为一个T(3,2)环面纽结。
初始条件的敏感依赖性 时间t=1 (放大) 时间t=2 (放大) 时间t=3 (放大) 这三幅图是在ρ=28,σ = 10,β = 8/3的条件下生成的,展示出洛伦茨吸引子中的两条轨迹(蓝色、黄色各一)的三维演变的三个时段, 这两条轨迹的初始点只在x坐标上相差10-5。开始时,两条轨迹似乎是重合的(蓝色轨迹被黄色遮盖,因此只能看到黄色轨迹),但一段时间後,分离就变得明显了。 洛伦茨吸引子的Java动画展示了振子状态连续不断的演变
[编辑] 瑞利数
不同ρ值时的洛伦茨吸引子 ρ=14, σ=10, β=8/3 (放大) ρ=13, σ=10, β=8/3 (放大) ρ=15, σ=10, β=8/3 (放大) ρ=28, σ=10, β=8/3 (放大) ρ值较小时,系统是稳定的,并能演变为两个定点吸引子中的一个;当ρ大於24.28时,定点变成了排斥子,会以非常复杂的方式排斥轨迹,演变时自身从不交叉。 Java动画显示了不同ρ值时振子状态的演变
[编辑] 源代码
[编辑] GNU Octave
下面是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)
[编辑] Borland C
#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(); }
[编辑] Borland Pascal
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.
[编辑] Fortran
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
[编辑] QBASIC/FreeBASIC("fbc -lang qb")
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
[编辑] 参见
[编辑] 参考文献
- (英文)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. doi:10.1016/0167-2789(83)90298-1.
- (英文)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.
- (英文)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.
- (英文)Knobloch, Edgar, Chaos in the segmented disc dynamo, Physics Letters A. 1981, 82 (9): 439–440, doi:10.1016/0375-9601(81)90274-7.
- (英文)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.
[编辑] 外部链接
- (英文)Eric W. Weisstein, 洛伦茨吸引子, 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
- (英文)模拟电子技术中洛伦茨吸引子的实现
- (简体中文)混沌蝴蝶——洛伦兹吸引子














