Diferencia entre revisiones de «Reacciones complejas - Grupo 1 A»
(→Apartado 7) |
(→Apartado 7) |
||
| Línea 240: | Línea 240: | ||
t0=0; | t0=0; | ||
tn=10; | tn=10; | ||
| − | h=0. | + | h=0.01; |
N=(tn-t0)/h; | N=(tn-t0)/h; | ||
t=t0:h:tn; | t=t0:h:tn; | ||
| Línea 280: | Línea 280: | ||
| − | [[Archivo:Grupoa1 runge0. | + | [[Archivo:Grupoa1 runge0.01k5.png|marco|centro|Gráfica de las dos concentraciones A y B, el producto y la concentración D originada a partir de C. Utilizando el método de Euler]] |
| + | |||
| + | [[Archivo:Grupoa1 runge0.01k5.png|marco|centro|Gráfica de las dos concentraciones A y B, el producto y la concentración D originada a partir de C. Utilizando el método de Euler]] | ||
| + | |||
| + | |||
| + | {{matlab|codigo= | ||
| + | %C como reactivo y D como producto | ||
| + | t0=0; | ||
| + | tn=10; | ||
| + | h=0.01; | ||
| + | N=(tn-t0)/h; | ||
| + | t=t0:h:tn; | ||
| + | y1=zeros(1,N+1); | ||
| + | yd=zeros(1,N+1); | ||
| + | k1=1; | ||
| + | k2=1/5; | ||
| + | a=3; | ||
| + | b=1; | ||
| + | for n=1:N | ||
| + | |||
| + | %runge kutta | ||
| + | kc1=k1*(a-y1(n))*(b-y1(n)); | ||
| + | kc2=k1*(a-y1(n)-h/2*kc1)*(b-y1(n)-h/2*kc1); | ||
| + | kc3=k1*(a-y1(n)-h/2*kc2)*(b-y1(n)-h/2*kc2); | ||
| + | kc4=k1*(a-y1(n)-h*kc3)*(b-y1(n)-h*kc3); | ||
| + | y1(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4); | ||
| + | kd1=k2*(y1(n)-yd(n)); | ||
| + | kd2=k2*(y1(n)-yd(n)-h/2*kd1); | ||
| + | kd3=k2*(y1(n)-yd(n)-h/2*kd2); | ||
| + | kd4=k2*(y1(n)-yd(n)-h*kd3); | ||
| + | yd(n+1)=yd(n)+(h/6)*(kd1+2*kd2+2*kd3+kd4); | ||
| + | |||
| + | end | ||
| + | %concentraciones | ||
| + | ya=3.-y1; | ||
| + | yb=1.-y1; | ||
| + | yc=y1-yd; | ||
| + | |||
| + | hold on | ||
| + | |||
| + | plot(t,yc,'b','linewidth',2) | ||
| + | plot(t,ya,'g','linewidth',2) | ||
| + | plot(t,yb,'r','linewidth',2) | ||
| + | plot(t,yd,'k','linewidth',2) | ||
| + | legend('Concentracion de C','Concentracion de A','Concentracion de B','Concentracion de D','Location','best'); | ||
| + | hold off | ||
| + | }} | ||
| + | |||
| + | |||
| + | [[Archivo:Grupoa1 runge0.01k5.png|marco|centro|Gráfica de las dos concentraciones A y B, el producto y la concentración D originada a partir de C. Utilizando el método de Euler]] | ||
| + | |||
| + | [[Archivo:Grupoa1 runge0.01k5.png|marco|centro|Gráfica de las dos concentraciones A y B, el producto y la concentración D originada a partir de C. Utilizando el método de Euler]] | ||
=Apartado 8= | =Apartado 8= | ||
Revisión del 21:00 4 mar 2015
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Reacciones complejas. Grupo 1A |
| Asignatura | Ecuaciones Diferenciales |
| Curso | Curso 2014-15 |
| Autores | María Ramírez
Ignacio Posada Antonio López-Mateos Pablo Bueno |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
1 Introducción
El problema que vamos a tratar es un problema que aborda el tema de Reacciones Complejas. Para ello consideramos, según el enunciado dado, una reacción química irreversible en una solución bien mezclada. Tal y como se nos indica inicialmente en los datos del problema, suponemos también que dicha reacción dada ocurre a un volumen y temperatura constantes. La reacción química con la que trabajaremos responde a la estructura que a continuación se presenta:
A + B → C
Ésta nos indica que tenemos inicialmente dos reactivos A y B que van formando un producto C en lo que se conoce como una reacción bimolecular, es decir, una molécula de A y una de B producen una de C, tal y como expresamos en el esquema de la reacción.
Otro dato también a suponer es que dicha reacción química satisface la Ley de Acción de Masas, ley que establece que la velocidad de reacción es proporcional al producto de las concentraciones de los reactivos.
Una vez conocidos todos estos datos sobre nuestro problema, nos disponemos a ir resolviéndolo respondiendo a las preguntas que se nos han planteado y que a continuación en los siguientes apartados desarrollaremos.
2 Explicar PVI y definir por qué tiene solución única
3 ¿Qué sucedería si el proceso fuese reversible?
4 Resolución Numérica por el Método de Euler
Ahora, nos disponemos a resolver numéricamente el problema de valor inicial descrito en el apartado anterior, suponiendo a0 = 3 mol/l, b0 = 1 mol/l y k1 = 1 mol/s. Utilizaremos, en este caso, el Método de Euler como método numérico para la resolución del problema, eligiendo un paso h = 0.1 en los primeros 2 segundos. El código Matlab resultante tras la aplicación numérica de este método a nuestro problema de valor inicial es el siguiente:
%PVI por Euler con una h = 0.1
clear all
%condiciones dadas
y0 = 0;
t0 = 0;
tN = 2;
h = 0.1;
k = 1;
%calculamos N
N = (tN - t0)/h;
%definimos la variable t
t = linspace(t0,tN,N+1);
%funcion y
y = zeros(1,N+1);
y(1)= y0;
%solucion obtenida
for i=1:N
y(i+1)=y(i)+ h*(k*(3 - y(i))*(1 - y(i)));
end
%Concentracion de los reactivos
ya = zeros(1,N+1);
yb = zeros(1,N+1);
ya = 3.- y;
yb = 1.- y;
%solucion grafica
hold on
plot(t,y,'linewidth',2)
plot(t,ya,'g','linewidth',2)
plot(t,yb,'r','linewidth',2)
legend('Concentracion de C','Concentracion de A','Concentracion de B','Location','best');
hold off
Una vez establecido dicho código Matlab, dibujamos en una misma gráfica tanto las concentraciones de los dos reactivos como la del producto, en función de su evolución en el tiempo, quedando las mismas de la siguiente manera:
5 Cuando t tiende a infinito
6 Resolucion por trapecio y runge kutta
6.1 Trapecio
%PVI por Trapecio con una h = 0.1
clear all
%condiciones dadas
y0 = 0;
t0 = 0;
tN = 2;
h = 0.1;
k = 1;
a = 3;
b = 1;
%calculamos N
N = (tN - t0)/h;
%definimos la variable t
t = linspace(t0,tN,N+1);
%funcion y
y = zeros(1,N+1);
y(1)= y0;
%solucion obtenida
for i=1:N
%Definimos tres variables para reducir la ecuación
Q = 1 + (h*k*(a+b))/2;
W = -(h*k)/2;
E = -y(i)- h*k*(1/2)*((a - y(i))*(b - y(i)) + a*b);
y(i+1)=(-Q + sqrt(Q^2- (4*W*E)))/(2*W);
end
%Concentracion de los reactivos
ya = zeros(1,N+1);
yb = zeros(1,N+1);
ya = 3.- y;
yb = 1.- y;
%solucion grafica
hold on
plot(t,y,'linewidth',2)
plot(t,ya,'g','linewidth',2)
plot(t,yb,'r','linewidth',2)
legend('Concentracion de C','Concentracion de A','Concentracion de B','Location','best');
hold off
6.2 Runge Kutta
%PVI por Runge Kutta orden 4 con una h = 0.1
clear all
%condiciones dadas
y0 = 0;
t0 = 0;
tN = 2;
h = 0.1;
k = 1;
a = 3;
b = 1;
%calculamos N
N = (tN - t0)/h;
%definimos la variable t
t = linspace(t0,tN,N+1);
%funcion y
y = zeros(1,N+1);
y(1)= y0;
%solucion obtenida
for i=1:N
K1 = k*(a - y(i))*(b - y(i));
K2 = k*(a-(y(i)+K1*h/2))*(b - (y(i)+K1*h/2));
K3 = k*(a-(y(i)+K2*h/2))*(b - (y(i)+K2*h/2));
K4 = k*(a-(y(i)+(K3*h)))*(b - (y(i)+K3*h));
y(i+1)= y(i) + h/6*(K1+(2*K2)+(2*K3)+K4);
end
%Concentracion de los reactivos
ya = zeros(1,N+1);
yb = zeros(1,N+1);
ya = 3.- y;
yb = 1.- y;
%solucion grafica
hold on
plot(t,y,'linewidth',2)
plot(t,ya,'g','linewidth',2)
plot(t,yb,'r','linewidth',2)
legend('Concentracion de C','Concentracion de A','Concentracion de B','Location','best');
hold off
7 Apartado 6
%Establecemos los valores iniciales
t0=0;
tN=10;
y0=0;
k1=1;
a=3;
b=1;
k2=1/5;
%Discretizamos
h=0.1;
N=(tN-t0)/h;
t=t0:h:tN;
%Creamos el vector y, donde almacenaremos las soluciones
y1=zeros(1,N+1);
yd=zeros(1,N+1);
y1(1)=y0;
yd(1)=y0;
yy1=y0;
yyd=y0;
%Utilizamos el 'for' para crear los vectores solución
for n=1:N
yy1=yy1+h*(k1*(a-yy1)*(b-yy1)-k2*(yy1-yy2));
yyd=yyd+h*(k2*(y1(n)-yyd));
y1(n+1)=yy1;
yd(n+1)=yyd;
end
%Definimos las variables de las concentraciones para dibujarlas
ya=3.-y1;
yb=1.-y1;
yc=y1-yd;
hold on
plot(t,yc,'b','linewidth',2)
plot(t,ya,'g','linewidth',2)
plot(t,yb,'r','linewidth',2)
plot(t,yd,'k','linewidth',2)
legend('Concentracion de C','Concentracion de A','Concentracion de B','Concentracion de D','Location','best');
hold off
8 Apartado 7
%C como reactivo y D como producto
t0=0;
tn=10;
h=0.01;
N=(tn-t0)/h;
t=t0:h:tn;
y1=zeros(1,N+1);
yd=zeros(1,N+1);
k1=1;
k2=5;
a=3;
b=1;
for n=1:N
%runge kutta
kc1=k1*(a-y1(n))*(b-y1(n));
kc2=k1*(a-y1(n)-h/2*kc1)*(b-y1(n)-h/2*kc1);
kc3=k1*(a-y1(n)-h/2*kc2)*(b-y1(n)-h/2*kc2);
kc4=k1*(a-y1(n)-h*kc3)*(b-y1(n)-h*kc3);
y1(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);
kd1=k2*(y1(n)-yd(n));
kd2=k2*(y1(n)-yd(n)-h/2*kd1);
kd3=k2*(y1(n)-yd(n)-h/2*kd2);
kd4=k2*(y1(n)-yd(n)-h*kd3);
yd(n+1)=yd(n)+(h/6)*(kd1+2*kd2+2*kd3+kd4);
end
%concentraciones
ya=3.-y1;
yb=1.-y1;
yc=y1-yd;
hold on
plot(t,yc,'b','linewidth',2)
plot(t,ya,'g','linewidth',2)
plot(t,yb,'r','linewidth',2)
plot(t,yd,'k','linewidth',2)
legend('Concentracion de C','Concentracion de A','Concentracion de B','Concentracion de D','Location','best');
hold off
%C como reactivo y D como producto
t0=0;
tn=10;
h=0.01;
N=(tn-t0)/h;
t=t0:h:tn;
y1=zeros(1,N+1);
yd=zeros(1,N+1);
k1=1;
k2=1/5;
a=3;
b=1;
for n=1:N
%runge kutta
kc1=k1*(a-y1(n))*(b-y1(n));
kc2=k1*(a-y1(n)-h/2*kc1)*(b-y1(n)-h/2*kc1);
kc3=k1*(a-y1(n)-h/2*kc2)*(b-y1(n)-h/2*kc2);
kc4=k1*(a-y1(n)-h*kc3)*(b-y1(n)-h*kc3);
y1(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);
kd1=k2*(y1(n)-yd(n));
kd2=k2*(y1(n)-yd(n)-h/2*kd1);
kd3=k2*(y1(n)-yd(n)-h/2*kd2);
kd4=k2*(y1(n)-yd(n)-h*kd3);
yd(n+1)=yd(n)+(h/6)*(kd1+2*kd2+2*kd3+kd4);
end
%concentraciones
ya=3.-y1;
yb=1.-y1;
yc=y1-yd;
hold on
plot(t,yc,'b','linewidth',2)
plot(t,ya,'g','linewidth',2)
plot(t,yb,'r','linewidth',2)
plot(t,yd,'k','linewidth',2)
legend('Concentracion de C','Concentracion de A','Concentracion de B','Concentracion de D','Location','best');
hold off




