For faster navigation, this Iframe is preloading the Wikiwand page for 洛伦茨吸引子.

洛伦茨吸引子

ρ=28、σ = 10、β = 8/3时的洛伦茨系统轨迹

洛伦茨吸引子(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。

此系统也会出现在单模镭射[1]发电机[2]的简化模型中。除此之外,闭环对流、水轮转动等物理模型也有此系统的应用。

洛伦茨方程

[编辑]
标出刻度的轨迹

洛伦茨方程是基于纳维-斯托克斯方程连续性方程热传导方程简化得出,最初的形式为:

是流速,是流体温度,是上限温度(也可以写成),是密度,是压强,是重力,依次是热膨胀系数热扩散率和动黏滞系数

简化后的形式称为洛伦茨方程,是决定洛伦茨振子状态的方程为一组常微分方程

含时间参数的形式:

称为普兰特尔数称为瑞利数。所有的 > 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动画展示了振子状态连续不断的演变 Portuguese Web Archive的存档,存档日期2008-03-11

瑞利数

[编辑]
不同ρ值时的洛伦茨吸引子
ρ=14, σ=10, β=8/3 (放大) ρ=13, σ=10, β=8/3 (放大)
ρ=15, σ=10, β=8/3 (放大) ρ=28, σ=10, β=8/3 (放大)
ρ值较小时,系统是稳定的,并能演变为两个定点吸引子中的一个;当ρ大于24.74时,定点变成了排斥子,会以非常复杂的方式排斥轨迹,演变时自身从不交叉。
显示不同ρ值时振子状态演变的Java动画 Portuguese Web Archive的存档,存档日期2008-03-11

源代码

[编辑]

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

参见

[编辑]

参考文献

[编辑]
  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. 
  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. 

外部链接

[编辑]
{{bottomLinkPreText}} {{bottomLinkText}}
洛伦茨吸引子
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?