GNU Octave/Chaos w atraktorze Lorentza
Chaos w atraktorze Lorentza
edytujRozwiązać klasyczny układ równań Lorentza, opisujący uproszczony model pogody:
gdzie , ,
Zdefiniujmy funkcję:
function y=lorentz(x)
global sigma;
global r;
global b;
y(1)=sigma*(x(2)-x(1));
y(2)=r*x(1)-x(2)-x(1)*x(3);
y(3)=x(1)*x(2)-b*x(3);
endfunction;
Zadajmy parametry:
global sigma;
global r;
global b;
sigma=10
b=8/3
r=28
Rysujemy ewolucję układu na odcinku w 30 krokach, każdy na kolejnym odcinku o długości . Punktem początkowym jest punkt końcowy w poprzedniego kroku. Polecenie hold on wyświetla to, co jest narysowane do tej pory. W ten sposób możemy obserwować ewolucję układu Lorentza. Polecenie hold off kończy rysowanie.
x0=[0 1 0]';
for (i=0:30)
t=[i*10:0.01:(i+1)*10];
z=lsode("lorentz", x0, t);
plot(z(:,1),z(:,2));
x0=z(length(z),:)';
hold on
endfor;
hold off
Obserwujemy, że rozwiązanie nie stabilizuje się, zachowuje się "chaotycznie", wciąż kręci się w atraktorze wpadając to do lewego skrzydła to do prawego.