洛倫茨吸引子

ρ=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。
此係統也會出現在單模激光和發電機的簡化模型中。除此之外，閉環對流、水輪轉動等物理模型也有此係統的應用。

**洛倫茨方程**
標出刻度的軌跡
洛倫茨方程是基於納維－斯托克斯方程、連續性方程和熱傳導方程簡化得出，最初的形式為：
 
 
 
 
是流速，是流體溫度，是上限溫度（也可以寫成），是密度，是壓強，是重力，、、依次是熱膨脹係數、熱擴散率和動黏滯係數。
簡化後的形式稱為洛倫茨方程，是決定洛倫茨振子狀態的方程為一組常微分方程：
 
 
 
含時間參數的形式：

稱為普蘭特爾數 ，稱為瑞利數。所有的，， > 0，但通常 = 10， = 8/3，不定。若，則吸引子為原點，沒有任何其他穩定點。1≤ρ

**瑞利數**

**源代碼**

**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 
#include 
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

**參見**
 混沌映射列表- Takens定理- 曼德布洛特集合

**參考文獻**
 Jonas Bergman,  Knots in the Lorentz Equationfix-attempted=yes , 學士畢業論文, Uppsala University 2004.-  doi = 10.1103/PhysRevA.29.2928 -  doi=10.1175/1520-0469(1963)0202.0.CO;2 - id= -  dead-url=no 

**外部鏈接**
 title=洛倫茨吸引子-  洛倫茨吸引子 date=20120313185415 ，作者為Wolfram Demonstrations Project的Rob Morris-  洛倫茨吸引子，planetmath.org-  用於繪出洛倫茨吸引子或處理類似情況的源代碼 date=20190514010250 ，使用ANSI C及gnuplot實現- 《 同步混沌與私人通信》，由MIT林肯實驗室的Steven Strogatz與Kevin Cuomo講解電子電路中洛倫茨吸引子的實現-  洛倫茨吸引子交互式動畫 date=20210202014921 （需Adobe Shockwave插件）-  Levitated.net：計算藝術與設計 date=20210212153418 -  3D Attractors：三維方式顯示和研究洛倫茨吸引子Mac程序-  3D VRML Lorenz attractor（需VRML瀏覽器插件）-  J語言實現洛倫茨吸引子演示的短文 date=20081016062144  - 見J語言-  非線性模擬的Java小程序 date=20190130211607 （選擇預設“Lorenz attractor”），作者Viktor Bachraty，編寫語言Jython-  模擬電子技術中洛倫茨吸引子的實現 -  混沌蝴蝶——洛倫茲吸引子 date=20201023213351