Diferencia entre revisiones de «Reacciones con Autocatálisis (A5)»
De MateWiki
(→Apartado 4) |
|||
| Línea 159: | Línea 159: | ||
subplot(1,2,1) | subplot(1,2,1) | ||
| − | plot(t,w,'*'); %MATLAB dibuja una | + | 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') | + | legend('Concentración de A','Concentración de B', 'location','best') |
| − | title('Euler') | + | xlabel('Tiempo (s)','FontSize', 11); |
| + | ylabel('Concentración (mol/L)','FontSize', 11); | ||
| + | title('Concentración - Tiempo (Euler)','FontName','Berlin sans FB','FontSize', 10); | ||
%Runge Kuta | %Runge Kuta | ||
| Línea 191: | Línea 193: | ||
subplot(1,2,2) | subplot(1,2,2) | ||
plot(t,z,'o') | plot(t,z,'o') | ||
| − | legend('Concentración de A','Concentración de B') | + | legend('Concentración de A','Concentración de B', 'location','best') |
| − | title('Runge-Kutta') | + | xlabel('Tiempo (s)','FontSize', 11); |
| + | ylabel('Concentración (mol/L)','FontSize', 11); | ||
| + | title('Concentración - Tiempo (Runge-Kutta)','FontName','Berlin sans FB','FontSize', 10); | ||
| + | |||
}} | }} | ||
Revisión del 12:47 25 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 | |
%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')
%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'
%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
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 Kuta
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 7
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,'*');
legend('Concentración de A','Concentración de X', 'Concentración de Y', 'Concentración de B')
hold off