GNU Octave/Chaos w atraktorze Lorentza
Z Wikibooks, biblioteki wolnych podręczników.
[edytuj] Chaos w atraktorze Lorentza
Rozwiązać klasyczny układ równań Lorentza, opisujący uproszczony model pogody:
gdzie σ = 10, r = 8 / 3, b = 28
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 [0,300] w 30 krokach, każdy na kolejnym odcinku o długości 10. 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.
