Diferencia entre revisiones de «Reacciones con Autocatálisis (A5)»

De MateWiki
Saltar a: navegación, buscar
(Apartado 7)
(Apartado 7)
Línea 202: Línea 202:
 
}}
 
}}
  
 +
== Apartado 6 ==
 +
h=0.01
 +
{{matlab|codigo=
 +
%h=0.01
 +
t0=0;
 +
tf=200;
 +
h=0.01;
 +
N=(tf-t0)/h;
 +
t=t0:h:tf;
 +
A0=5;
 +
X0=5*(10^-4);
 +
Y0=10^(-5);
 +
B0=0;
 +
 +
A=zeros(1,N+1);
 +
X=zeros(1,N+1);
 +
Y=zeros(1,N+1);
 +
B=zeros(1,N+1);
 +
 +
A(1)=A0;
 +
X(1)=X0;
 +
Y(1)=Y0;
 +
B(1)=B0;
 +
 +
 +
K1=0.1; K2=K1; K3=K1/2;
 +
 +
for i=1:N
 +
X(i+1)=X(i)+h*(K1*A(i)*X(i)-K2*X(i)*Y(i));
 +
Y(i+1)=Y(i)+h*(K2*X(i)*Y(i)-K3*Y(i));
 +
B(i+1)=B(i)+K3*Y(i);
 +
A(i+1)= A(i)+h*(-K1*A(i)*X(i));
 +
end
 +
 +
hold on
 +
plot(t,A,'*r');
 +
plot(t,X,'*g');
 +
plot(t,Y,'*y');
 +
plot(t,B,'*');
 +
hold off
 +
 +
xlabel('Tiempo (s)','FontSize', 11);
 +
ylabel('Concentración (mol/L)','FontSize', 11);
 +
title('Concentración - Tiempo (Euler)','FontName','Berlin sans FB','FontSize', 20);
 +
legend('Concentración de A','Concentración de X', 'Concentración de Y', 'Concentración de B', 'location','best')
 +
}}
 +
h=0.001
 +
{{matlab|codigo=
 +
%h=0.001
 +
t0=0;
 +
tf=200;
 +
h=0.001;
 +
N=(tf-t0)/h;
 +
t=t0:h:tf;
 +
A0=5;
 +
X0=5*(10^-4);
 +
Y0=10^(-5);
 +
B0=0;
 +
 +
A=zeros(1,N+1);
 +
X=zeros(1,N+1);
 +
Y=zeros(1,N+1);
 +
B=zeros(1,N+1);
 +
 +
A(1)=A0;
 +
X(1)=X0;
 +
Y(1)=Y0;
 +
B(1)=B0;
 +
 +
 +
K1=0.1; K2=K1; K3=K1/2;
 +
 +
for i=1:N
 +
X(i+1)=X(i)+h*(K1*A(i)*X(i)-K2*X(i)*Y(i));
 +
Y(i+1)=Y(i)+h*(K2*X(i)*Y(i)-K3*Y(i));
 +
B(i+1)=B(i)+K3*Y(i);
 +
A(i+1)= A(i)+h*(-K1*A(i)*X(i));
 +
end
 +
 +
hold on
 +
plot(t,A,'*r');
 +
plot(t,X,'*g');
 +
plot(t,Y,'*y');
 +
plot(t,B,'*');
 +
hold off
 +
 +
xlabel('Tiempo (s)','FontSize', 11);
 +
ylabel('Concentración (mol/L)','FontSize', 11);
 +
title('Concentración - Tiempo (Euler)','FontName','Berlin sans FB','FontSize', 20);
 +
legend('Concentración de A','Concentración de X', 'Concentración de Y', 'Concentración de B', 'location','best')
 +
}}
 
== Apartado 7 ==
 
== Apartado 7 ==
  

Revisión del 00:04 26 feb 2015

Trabajo realizado por estudiantes
Título Reacciones con Autocatálisis. Grupo 5A
Asignatura Ecuaciones Diferenciales
Curso Curso 2014-15
Autores Javier Blanco Villarroel
Marta Cavero Guillén
Alba Bringas Gil
Irene Bendala Sugrañes
Paula Botella Andreu
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


Gráfica que relaciona la concentración y el tiempo hecha mediante el método de Euler.
%Ejercicio 2.2 Euler
t0=0
tn=10
n=100
h=(tn-t0)/n;
t=t0:h:tn;

y0=1
y=zeros(1,n+1);
y(1)=y0;
yy=y0;

k=1

x0=0.01
x=zeros(1,n+1);
x(1)=x0;
xx=x0;

for i=1:n
   yy=yy+h*(-k*xx.*yy);
   xx=xx+h*k*(xx.*yy);
   y(i+1)=yy;
   x(i+1)=xx;
   end

plot(t,y,'g','linewidth',2) 
title('Concentración - Tiempo','FontName','Berlin sans FB','FontSize', 20);
xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
legend('Concentración de B','Concentración de A','location','east')


Gráfica que relaciona la concentración y el tiempo hecha mediante el método del trapecio.
%Ejercicio 2.3 trapecio
t0=0
tn=10
n=100
h=(tn-t0)/n;
t=t0:h:tn;

y0=1
y=zeros(1,n+1);
y(1)=y0;
yy=y0;

k=1

x0=0.01;
x=zeros(1,n+1);
x(1)=x0;
xx=x0;

for i=1:n
   yy=(((2*yy)/(-k*h))+xx.*yy)/((-2/(k*h))+(-k*xx));
   xx=(((2*xx)/(k*h))+xx.*yy)/((2/(k*h))-(k*yy));
   y(i+1)=yy;
   x(i+1)=xx;
   end

plot(t,x,'k','linewidth',2)
hold on
plot(t,y,'c','linewidth',2) 

title('Concentración - Tiempo (Trapecio)','FontName','Berlin sans FB','FontSize', 20);
xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
legend('Concentración de B','Concentración de A','location','best'


Gráfica que relaciona la concentración y el tiempo hecha mediante el método de Runge-Kutta.
%Ejercicio 2.3 Runge Kutta
t0=0
tn=10
n=100
h=(tn-t0)/n;
t=t0:h:tn;

y0=1
y=zeros(1,n+1);
y(1)=y0;
yy=y0;

k=1

x0=0.01
x=zeros(1,n+1);
x(1)=x0;
xx=x0;

for i =1:n

 k1A=(-k*xx.*yy);
 k1B=(k*xx.*yy);
 y1=yy+h*k1A/2;
 x1=xx+h*k1B/2
 
 k2A=(-k*x1.*y1);
 k2B=(k*x1.*y1);
 y2=yy+h*k2A/2;
 x2=xx+h*k2B/2;
 
 k3A=(-k*x2.*y2);
 k3B=(k*x2.*y2);
 y3=yy+h*k3A/2;
 x3=xx+h*k3B/2;
 
 k4A=(-k*x3.*y3);
 k4B=(k*x3.*y3);
 
 yy=yy+((h/6)*(k1A+2*k2A+2*k3A+k4A));
 xx=xx+((h/6)*(k1B+2*k2B+2*k3B+k4B));
 y(i+1)=yy;
 x(i+1)=xx;
 end

figure(1)   
plot(t,x,'y','linewidth',2)
hold on
plot(t,y,'m','linewidth',2) 

title('Concentración - Tiempo (Runge-Kutta)','FontName','Berlin sans FB','FontSize', 20);
xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
legend('Concentración de B','Concentración de A','location','best')


Línea con sangría

1 Apartado 4

Gráfica que relaciona relaciona la variación de la concentración de los dos compuestos de la mezcla con el tiempo.


t0=0; tf=10;
w0=[1;0.01];
h=0.1; N=(tf-t0)/h;
t=t0:h:tf;
w=zeros(2,N+1); %las filas es el número de  incógnitas en el sistema
w(:,1)=w0;
ww=w0;

%Euler

for n=1:N
    
    F=[-1*ww(1)*ww(2);1*ww(1)*ww(2)];
    
    ww=ww+h*F;
    w(:,n+1)=ww;
end

subplot(1,2,1)
plot(t,w,'*'); %MATLAB dibuja una grágica para cada columna, NO poner color para que nos ponga cada una de un colo
legend('Concentración de A','Concentración de B', 'location','best')
xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
title('Concentración - Tiempo (Euler)','FontName','Berlin sans FB','FontSize', 10);

%Runge Kutta

z0=[1;0.01]; %para volver a empezar
z=zeros(2,N+1); %las filas es el número de  incógnitas en el sistema
z(:,1)=z0;
zz=z0;

for n=1:N
    
    F=[-1*zz(1)*zz(2);1*zz(1)*zz(2)];
     
    k1=F;
    
    z1=F+(1/2)*k1*h;
    k2=z1;
    
    z2=F+(1/2)*k2*h;
    k3=z2;
    
    z3=F+k3*h;
    k4=z3;
    
    zz=zz+(h/6)*(k1+2*k2+2*k3+k4);
    z(:,n+1)=zz;

end

subplot(1,2,2)
plot(t,z,'o')
legend('Concentración de A','Concentración de B', 'location','best')
xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
title('Concentración - Tiempo (Runge-Kutta)','FontName','Berlin sans FB','FontSize', 10);


2 Apartado 6

h=0.01

%h=0.01
t0=0; 
tf=200;
h=0.01; 
N=(tf-t0)/h;
t=t0:h:tf;
A0=5; 
X0=5*(10^-4); 
Y0=10^(-5); 
B0=0;

A=zeros(1,N+1); 
X=zeros(1,N+1);
Y=zeros(1,N+1);
B=zeros(1,N+1);

A(1)=A0; 
X(1)=X0; 
Y(1)=Y0; 
B(1)=B0;


K1=0.1; K2=K1; K3=K1/2;

for i=1:N
X(i+1)=X(i)+h*(K1*A(i)*X(i)-K2*X(i)*Y(i));
Y(i+1)=Y(i)+h*(K2*X(i)*Y(i)-K3*Y(i));
B(i+1)=B(i)+K3*Y(i);
A(i+1)= A(i)+h*(-K1*A(i)*X(i));
end

hold on
plot(t,A,'*r'); 
plot(t,X,'*g');
plot(t,Y,'*y');
plot(t,B,'*');
hold off

xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
title('Concentración - Tiempo (Euler)','FontName','Berlin sans FB','FontSize', 20);
legend('Concentración de A','Concentración de X', 'Concentración de Y', 'Concentración de B', 'location','best')

h=0.001

%h=0.001
t0=0; 
tf=200;
h=0.001; 
N=(tf-t0)/h;
t=t0:h:tf;
A0=5; 
X0=5*(10^-4); 
Y0=10^(-5); 
B0=0;

A=zeros(1,N+1); 
X=zeros(1,N+1);
Y=zeros(1,N+1);
B=zeros(1,N+1);

A(1)=A0; 
X(1)=X0; 
Y(1)=Y0; 
B(1)=B0;


K1=0.1; K2=K1; K3=K1/2;

for i=1:N
X(i+1)=X(i)+h*(K1*A(i)*X(i)-K2*X(i)*Y(i));
Y(i+1)=Y(i)+h*(K2*X(i)*Y(i)-K3*Y(i));
B(i+1)=B(i)+K3*Y(i);
A(i+1)= A(i)+h*(-K1*A(i)*X(i));
end

hold on
plot(t,A,'*r'); 
plot(t,X,'*g');
plot(t,Y,'*y');
plot(t,B,'*');
hold off

xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
title('Concentración - Tiempo (Euler)','FontName','Berlin sans FB','FontSize', 20);
legend('Concentración de A','Concentración de X', 'Concentración de Y', 'Concentración de B', 'location','best')

3 Apartado 7

Gráfica que relaciona relaciona la variación de la concentración de los cuatro compuestos de la mezcla con el tiempo.


t0=0; tf=200;
h=0.01; N=(tf-t0)/h;
t=t0:h:tf;

A0=5; X0=5*(10^-4); Y0=10^(-5); B0=0;

A=zeros(1,N+1); 
X=zeros(1,N+1);
Y=zeros(1,N+1);
B=zeros(1,N+1);

A(1)=A0; X(1)=X0; Y(1)=Y0; B(1)=B0;
aa=A0; xx=X0; yy=Y0; bb=B0;

K1=0.1; K2=K1; K3=K1/2;

for n=1:N
    
   K1A=-K1*aa*xx;
   K2A=K1A+K1A*h;
   
   K1X=K1*aa*xx-K2*xx*yy;
   K2X=K1X+K1X*h;
   
   K1Y=K2*xx*yy-K3*yy;
   K2Y=K1Y+K1Y*h;
   
   K1B=K3*yy;
   K2B=K1B+K1B*h;
    
    
   aa=aa+0.5*h*(K1A+K2A);
   xx=xx+0.5*h*(K1X+K2X);
   yy=yy+0.5*h*(K1Y+K2Y);
   bb=bb+0.5*h*(K1B+K2B);
   
   A(n+1)=aa;
   X(n+1)=xx;
   Y(n+1)=yy;
   B(n+1)=bb;

end


plot(t,A,'*r'); 
hold on
plot(t,X,'*g');
plot(t,Y,'*y');
plot(t,B,'*');
hold off

xlabel('Tiempo (s)','FontSize', 11);
ylabel('Concentración (mol/L)','FontSize', 11);
title('Concentración - Tiempo (Heun)','FontName','Berlin sans FB','FontSize', 20);
legend('Concentración de A','Concentración de X', 'Concentración de Y', 'Concentración de B', 'location','best')