Pràctica: EVOLUCIÓ D'UNA ÀREA EN UN SISTEMA 2D

Com a aplicació de la resolució numèrica d'EDOs, verificarem en un cas concret de sistema autònom 2D ,
que ve donat pel camp vectorial la propietat d'expansió/contracció d'àrees segons el signe de la divergència del camp vectorial,
El sistema expandeix àrees quan contrau àrees quan i conserva àrees si

Un sistema autònom i el seu camp vectorial

Com a exemple, considerem el sistema
que té divergència i per tant és expansiu al semiplà i contractiu al semiplà Té dos punts d'equilibri: Estudiant els seus sistemes linealitzats veiem que corresponen a un node repulsor i una sella, respectivament.
close all %tanquem figures anteriors (optatiu)
figure %nova figura
hold on
P=@(x,y) y-x.^2;
Q=@(x,y) x+y-2;
F=@(t,X) [P(X(1),X(2));Q(X(1),X(2))]; %camp vectorial
plot(-2,4,'r*') %marquem els punts equilibri
plot(1,1,'r*')
xmin=-2.5; xmax=2.5;
ymin=0; ymax=5;
axis([xmin,xmax,ymin,ymax]) %finestra a visualitzar
axis equal
delta=0.2;
[xg,yg]=meshgrid(xmin:delta:xmax,ymin:delta:ymax);
Pg=P(xg,yg);
Qg=Q(xg,yg);
quiver(xg,yg,Pg,Qg,1.8,'Color','g') %camp vectorial multiplicat per 1.8

Corbes de punts inicials i finals

Ara escollim una petita circumferència per exemple la de centre (0.8,1.4) i radi 0.2 , i escollim un temps d'integració
Parametritzem la circumferència de la manera habitual amb paràmetre Prenent cada punt de la circumferència com a condició inicial i resolent el sistema per a obtenim un punt final que, si fem variar recorrerà una corba tancada
Ull ! Cal no confondre els dos paràmetres: s (que recorre la corba de condicions inicials) i t (per a les solucions del sistema d'EDOs).
c=[0.8,1.4]; r=0.2; %centre i radi de la circumferencia
N=100; %nombre de subintervals (N+1 punts)
h=2*pi/N;
s=(0:h:2*pi)'; %valors del parametre (vector columna)
X0=[c(1)+r*cos(s),c(2)+r*sin(s)];
%parametritzacio de la circumferencia, donada per una matriu (N+1)x2
plot(X0(:,1),X0(:,2),'k') %dibuix circumferencia
opcions=odeset('AbsTol',1e-8,'RelTol',1e-8);
tf=0.75; %temps integracio
Xf=zeros(N+1,2);
%inicialitzem la matriu (N+1)x2 que ha de contenir els punts finals
for i=1:N+1
[t,X]=ode45(F,[0,tf],X0(i,:),opcions);
%integrem des de cada punt de la circumferencia, fins a temps tf
Xf(i,:)=X(end,:); %guardem el punt final, i anem omplint la matriu
if( mod(i,N/10)==0 )
plot(X(:,1),X(:,2),'m')
%dibuixem nomes 10 de les trajectories obtingudes
%(per no saturar el dibuix)
end
end
plot(Xf(:,1),Xf(:,2),'b') %dibuix de la corba de punts finals
Per apreciar-ho millor podem ampliar una mica la imatge.
axis([0.2,1.8,0.8,2.5])

Comparació de les àrees encerclades per les dues corbes

Finalment, calcularem les àrees encerclades per les corbes de punts inicials i finals i veurem que l'àrea s'ha reduït i per quin factor (recordem que la corba inicial escollida es troba a la zona de divergència negativa). Per calcular l'àrea encerclada per la corba de punts finals usarem la fórmula basada en el teorema de Green:
Com que no coneixem les funcions explícitament sinó com un rang de valors, haurem de calcular les seves derivades numèricament. Usarem fórmules centrades:
A0=pi*r^2; %area inicial (la del disc)
DXf=zeros(N+1,2); %la matriu (N+1)x2 que ha de contenir les derivades
for i=2:N
DXf(i,:)=(Xf(i+1,:)-Xf(i-1,:))/(2*h);
%derivada numerica (vectorial), usant formula centrada
end
DXf(1,:)=(Xf(2,:)-Xf(N,:))/(2*h);
DXf(N+1,:)=DXf(1,:);
%als extrems, usem que la corba es tancada
g=-Xf(:,2).*DXf(:,1)+Xf(:,1).*DXf(:,2);
%valors de la funcio (de s) a integrar per al teorema de Green
Af=trapz(s,g)/2;
%area limitada pels punts finals, calculant la integral per trapezis
factor=Af/A0
factor =
4.6377e-01
________
(c) Numerical Factory (by Pere Gutiérrez)