Contents

Práctica sobre el MODELO DE LORENZ-HAKEN (1b)

Programa traducido de Mathematica a Matlab y comentado por Fernando Hueso González. Óptica cuántica (Seminarios de teoría semiclásica y simulaciones) - 4º de Grado de Física, 31 de mayo de 2011.

global s b r
syms d s b r
format compact

% Solución estacionaria (analítica)
d = 1;
P = sqrt(r-1);
F = sqrt(r-1);
solestac = [d,P,F];
% Estabilidad lineal (hasta bifurcación de Hopf rHB)
rHB=-s*(3+b+s)/(1+b-s);

a) Estabilidad lineal (condiciones iniciales próximas a la solución estacionaria)

s=3; b=1; r=5; Tfin=300;
RHB=subs(rHB)
Solestac=subs(solestac), F0=subs(F), P0=subs(P), d0=subs(d)
h=0.05; t=0:h:Tfin; %Define el paso h que utiliza Runge-Kutta
RHB =
    21
Solestac =
     1     2     2
F0 =
     2
P0 =
     2
d0 =
     1

Cambio adiabático

La primera vez que se ejecute este bloque hay que haber ejecutado antes el anterior. Después ya sólo hay que repetir este cambiando únicamente el valor de r.

r=15;
[t,solnum] = rungekut('laser',t,[F0,P0,d0]);
clc%Limpia pantalla
F0=solnum(end,1), P0=solnum(end,2), d0=solnum(end,3)

tmin=0; tmax=Tfin; nmin=find(t>=tmin,1,'first'); nmax=find(t<=tmax,1,'last');
close all
titul='Cambio adiabático';
figure('Name',titul),plot(t(nmin:nmax), solnum(nmin:nmax,1).^2);
title(titul), xlabel('t'), ylabel('F^2')
F0 =
    3.7417
P0 =
    3.7417
d0 =
    1.0000

Se observa que para obtener el método de cambio adiabático, redefinimos F0, P0 y d0 en el bloque anterior una vez se ha calculado rungekut. La idea es iterar el bloque anterior varias veces variando r poco a poco, para no saltar demasiado y salirse de la línea estacionaria. Por contra, en el próximo bloque, hard-mode excitation, haremos justo lo contrario, separarnos notablemente en condiciones iniciales de la solución estacionaria para caer en las soluciones caóticas.

b) Hard-mode excitation -> biestabilidad generalizada

s=3; b=1; r=20;
F0=0.001; P0=0.001; d0=0.001;
Tfin=500; h=0.05; t=0:h:Tfin;

[t,solnum] = rungekut('laser',t,[F0,P0,d0]);
tmin=0; tmax=Tfin; nmin=find(t>=tmin,1,'first'); nmax=find(t<=tmax,1,'last');
close all
titul='Hard-mode excitation'
figure('Name',titul),plot(t(nmin:nmax), solnum(nmin:nmax,1).^2);
axis tight, title(titul), xlabel('t'), ylabel('F^2')
titul =
Hard-mode excitation

Representación de atractores

s=3; b=1; r=26;
Solestac=subs(solestac)
Tfin=100; h=0.02; t=0:h:Tfin;
F0=15;P0=0.01;d0=1;
[t,solnum] = rungekut('laser',t,[F0,P0,d0]);

tmin=0; tmax=10; nmin=find(t>=tmin,1,'first'); nmax=find(t<=tmax,1,'last');
close all
titul='Representación de atractores 2D';
figure('Name',titul),plot(solnum(nmin:nmax,1), -solnum(nmin:nmax,3));
title(titul), xlabel('F'), ylabel('-d')

titul='Representación de atractores 3D';
figure('Name',titul),plot3(solnum(nmin:nmax,1), solnum(nmin:nmax,2),-solnum(nmin:nmax,3));
title(titul), xlabel('F'), ylabel('P'), zlabel('-d')
Solestac =
     1     5     5

Comprobación Sensibilidad a las Condiciones Iniciales

s=3; b=1; r=23;
Tfin=50; h=0.05; t2=0:h:Tfin;
[t2,solnum2] = rungekut('laser',t2,[1,1,1]);
F0=solnum2(end,1); P0=solnum2(end,2); d0=solnum2(end,3);

Tfin=100; h=0.01; t3=0:h:Tfin; t4=0:h:Tfin;
[t3,solnum3] = rungekut('laser',t3,[F0,P0,d0]);
[t4,solnum4] = rungekut('laser',t4,[F0+0.01,P0+0.01,d0]);

close all
%titul='Sensibilidad a las condiciones iniciales (s3)';
%figure('Name',titul),plot(t3, solnum3(:,1).^2);
%axis tight, title(titul), xlabel('t'), ylabel('F^2')

%titul='Sensibilidad a las condiciones iniciales (s4)';
%figure('Name',titul),plot(t4, solnum4(:,1).^2);
%axis tight, title(titul), xlabel('t'), ylabel('F^2')

titul='Sensibilidad a las condiciones iniciales (3vs4)';
figure('Name',titul),plot(t3, solnum3(:,1).^2, t4, solnum4(:,1).^2);
axis tight, title(titul), xlabel('t'), ylabel('F^2'), legend('solnum3','solnum4')

tmin=0; tmax=50; nmin=find(t3>=tmin,1,'first'); nmax=find(t3<=tmax,1,'last');

titul='Sensibilidad a las condiciones iniciales (s3^2-s4^2)';
figure('Name',titul),plot(t3(nmin:nmax), solnum3(nmin:nmax,1).^2 - solnum4(nmin:nmax,1).^2);
axis tight, title(titul), xlabel('t'), ylabel('F_3^2-F_4^2')

% titul='Sensibilidad a las condiciones iniciales 3D (s3)';
% figure('Name',titul),plot3(solnum3(:,1), solnum3(:,2),-solnum3(:,3));
% axis tight, title(titul), xlabel('F'), ylabel('P'), zlabel('-d')

% titul='Sensibilidad a las condiciones iniciales 3D (s4)';
% figure('Name',titul),plot3(solnum4(:,1), solnum4(:,2),-solnum4(:,3));
% axis tight, title(titul), xlabel('F'), ylabel('P'), zlabel('-d')

tmin=0; tmax=20; nmin=find(t3>=tmin,1,'first'); nmax=find(t3<=tmax,1,'last');
titul='Sensibilidad a las condiciones iniciales 3D (3vs4)';
figure('Name',titul),plot3(solnum3(nmin:nmax,1), solnum3(nmin:nmax,2),-solnum3(nmin:nmax,3), solnum4(nmin:nmax,1), solnum4(nmin:nmax,2),-solnum4(nmin:nmax,3));
axis tight, title(titul), xlabel('F'), ylabel('P'), zlabel('-d'), legend('solnum3','solnum4')
close all