Diferencia entre revisiones de «Reacciones complejas - Grupo 16 A»

De MateWiki
Saltar a: navegación, buscar
 
(No se muestran 36 ediciones intermedias de 2 usuarios)
Línea 297: Línea 297:
 
Sabemos que es un problema de valor inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.
 
Sabemos que es un problema de valor inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.
  
==Resolución numérica cuando k<sub>2</sub>=5 [Apartado 7]==
+
==Resolución numérica del sistema [Apartado 7]==
===Método de Euler===
+
===Método de Euler y runge kutta===
  
 
{{matlab|codigo=
 
{{matlab|codigo=
t0=0; tn=10;
+
t0=0;
 +
tn=10;
 
h=0.1;
 
h=0.1;
 
N=(tn-t0)/h;
 
N=(tn-t0)/h;
 
t=t0:h:tn;
 
t=t0:h:tn;
y=zeros(1,N+1);  
+
y=zeros(1,N+1);
 +
yk=zeros(1,N+1);
 
z=zeros(1,N+1);
 
z=zeros(1,N+1);
 +
zk=zeros(1,N+1);
 
y(1)=0;
 
y(1)=0;
 
z(1)=0;
 
z(1)=0;
k1=1;k2=5;a=3;b=1;c=0;
+
k1=1;
 +
k2=1/5;
 +
a=3;
 +
b=1;
 
for n=1:N
 
for n=1:N
 +
    %euler
 
     y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));
 
     y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));
     z(n+1)=z(n)+h*k2*(c+y(n)-z(n));
+
     z(n+1)=z(n)+h*k2*(y(n)-z(n));
end
+
     %runge kutta
%concentraciones
+
A=a-y;
+
B=b-y;
+
C=y-z;
+
D=z;
+
hold on
+
plot(t,A,'b')
+
plot(t,B,'g')
+
plot(t,C,'r')
+
plot(t,D,'k')
+
legend('A','B','C','D')
+
hold off
+
}}
+
 
+
[[Archivo:Ap7 1fig.jpg|marco|izquierda]]
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
===Metodo de Runge Kutta===
+
 
+
{{matlab|codigo=
+
t0=0; tn=10;
+
h=0.1;
+
N=(tn-t0)/h;
+
t=t0:h:tn;
+
yk=zeros(1,N+1);
+
zk=zeros(1,N+1);
+
y(1)=0;
+
z(1)=0;
+
k1=1;k2=5;a=3;b=1;c=0;
+
for n=1:N
+
     %runge kutta  
+
 
     kc1=k1*(a-yk(n))*(b-yk(n));
 
     kc1=k1*(a-yk(n))*(b-yk(n));
 
     kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);
 
     kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);
Línea 392: Línea 331:
 
     kz4=k2*(yk(n)-zk(n)-h*kz3);
 
     kz4=k2*(yk(n)-zk(n)-h*kz3);
 
     zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);
 
     zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);
 +
   
 
end
 
end
%concentraciones
+
C=y-z;
A=a-y;
+
B=b-y;  
+
 
Ck=yk-zk;
 
Ck=yk-zk;
 +
D=z;
 
Dk=zk;
 
Dk=zk;
 
hold on
 
hold on
plot(t,A,'b')
+
plot(t,C,'r')
plot(t,B,'g')
+
plot(t,Ck,'b')
plot(t,Ck,'r')
+
plot(t,D,'r')
plot(t,Dk,'k')
+
plot(t,Dk,'b')
legend('A','B','C','D')
+
legend('euler','runge kutta')
hold off
+
%calculo del la concentración de C máxima
 +
n=1
 +
while Ck(n+1)>Ck(n)&Ck(n+2)>Ck(n+1)
 +
    n=n+1;
 +
end
 +
techo=Ck(n)
 +
tiempo=t(n)
 +
 
 
}}
 
}}
  
[[Archivo:Ap7 2fig.jpg|marco|izquierda]]
+
'''Con k2=5 representamos las concentraciones de C y D'''
  
 +
[[Archivo:Ap7_5.jpg|marco|izquierda]]
  
  
Línea 447: Línea 394:
  
  
GRAFICAS K=1/5 Y k=5
 
se observa como la maxima concentracion de C en k2=1/5 es mucho mayor puesto que la segunda reacción es mas lenta y tarda mas en transformar C en D.
 
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:
 
  
Para k2=5  [C]max=0.275  en t=0.21
 
  
para k2=1/5  [C]max=0.789 en t=1.1
 
  
===Cuando el paso es 0.3===
 
  
[[Archivo:Ap7 33fig.jpg|marco|izquierda]]
 
  
 +
'''con k2=1/5'''
 +
se observa como la maxima concentracion de C en k2=1/5 es mucho mayor puesto que la segunda reacción es mas lenta y tarda mas en transformar C en D.
 +
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:
  
 +
Para k2=5  [C]max=0.275  en t=0.21
  
 +
para k2=1/5  [C]max=0.789 en t=1.1
 +
[[Archivo:Ap7_15.jpg|marco|izquierda]]
  
  
Línea 467: Línea 413:
  
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
==Resolución numérica cuando k<sub>2</sub>=1/5 [Apartado 8]==
 
===Método de Euler===
 
 
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]
 
  
  
Línea 540: Línea 451:
  
  
 +
===Cuando el paso es 0.3===
 +
Con h=0.3 se observa que el método de euler aproxima muy mal la solucion real debido a que la derivada tiene valores muy altos cuando t es pequeño, por contra el método de Runge Kutta aproxima mejor ya que es un método de orden 4, aun así h es demasiado grande como para decir que es una buena aproximacion.
  
===Metodo de Runge Kutta===
 
  
[[Archivo:Ap8 2fig.jpg|marco|izquierda]]
+
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]

Revisión actual del 21:56 6 mar 2015

Trabajo realizado por estudiantes
Título Reacciones complejas. (Grupo 16-A)
Asignatura Ecuaciones Diferenciales
Curso Curso 2014-15
Autores

Arévalo Lecanda, Javier

Buitrago Peña, Marcos

Chamizo Carmona, Javier

La Porta, Nicoletta

Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

1 Introducción

En este articulo vamos estudiar un ejercicio de modelización en el cual consideramos una reacción química irreversible en una solución bien mezclada. La reacción en cuestión es en una reacción bimolecular que consiste en que una molécula de A y una de B se juntan para crear una de C.

 A + B → C

Para nuestro ejercicio, supondremos varias cosas:

  • La reacción ocurre para un volumen constante.
  • La reacción ocurre para una temperatura constante.
  • La reacción satisface la ley de acción de masas que establece que la velocidad de reacción es proporcional al producto de las concentraciones de los reactivos (A y B)

2 Problema de Valor Inicial (PVI) [Apartado 1]

Lo primero que debemos hacer para resolver este problema es pasar el fenómeno químico a un problema de valor inicial. Para eso usamos la ley de acción de masas.

En esta ecuación tendremos varias constantes

  • k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).
  • a0: concentración inicial de A.
  • b0: concentración inicial de B.

Además de estas constantes tendremos también las variables:

  • y(t): Esta variable nos da la cantidad de producto C que se formaen el tiempo, como el volumen es constante coincide con la concentración de C a lo largo de t.
  • y'(t): Es la derivada de y(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce C, es decir, la velocidad de la reacción química.

Tenemos también que mencionar la concentración de A respecto al tiempo que sera (a0−y(t)) y la de B que sera (b0−y(t)). Para nuestra ecuación tomaremos el tiempo como estrictamente mayor que 0: t>0.

Podemos entonces decir de acuerdo con la ley e acción de masas que:

                       y′(t)=k1(a0−y(t))(b0−y(t))

Además es evidente que:

                       y(t=0)=0    y  t>0

por lo que se trata de un PVI. Análisis de la solución y'(t) se trata de un polinomio de orden 2 con raíces iguales a "a0" y "b0" lo que tiene lógica por que la reacción termina cuando se acaba uno de los reactivos, ésta función es continua en todo t>0 por ser un polinomio y su derivada y(t) también por ser un polinomio de orden uno.

Podemos asegurar que tiene solución única puesto que f(t,y), es decir, y'(t) es continua en t=0 aunque necesitemos un t<0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.

3 Ecuación diferencial si el proceso es reversible [Apartado 2]

Hasta ahora hemos supuesto que el proceso no era reversible, esto significa que A y B se juntaban para crear C. Si ahora suponemos que el proceso es reversible, ademas de A y B juntándose para crear C también tendremos C descomponiéndose para formar A y B. La ecuación diferencial se veria afectada por este cambio.

Tendríamos que añadir nuevos parámetros:

  • k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.
  • c0: Esta constante es la que determina la concentración inicial de C.

Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.

 y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))

4 PVI con el método Euler [Apartado 3]

Vamos ahora a resolver el problema de valor inicial numéricamente con el método de Euler, de aquí en adelante tomaremos la reacción como irreversible.

Primero damos valores a nuestros parametros según el enunciado del trabajo:

  • a0=3 mol/l
  • b0=1 mol/l
  • k1=1 mol/s
  • h=0.1
  • t: [0,2]

Nuestro codigo sera:

a0=3; b0=1; %Concentraciones iniciales de A y B
t0=0; tf=2; %Tiempos iniciales y finales
y0=0; %Tomamos la concentracion de C inicial como 0
k1=1; 
h=0.1; %Paso
N=(tf-t0)/h;
t=t0:h:tf; 
y=zeros(1,N+1);
yy=y0;
for n=1:N
    yy=yy+h*(k1*(a0-yy)*(b0-yy));
    y(n+1)=yy;
end
A=a0-y; %Concentracion de A
B=b0-y; %Concentracion de B
hold on
plot(t,y,'r')
plot(t,A,'b')
plot(t,B,'g')
legend('C','A','B')
hold off


La gráfica obtenida es:

izquierda




















En este gráfico tenemos: la concentración de A en azul, la concentración de B en verde y la concentración de C en rojo. Se puede apreciar fácilmente lo que ocurre en la reacción, las concentraciones de A y de B disminuyen en el tiempo a la misma velocidad en la que la concentración de C crece. Podemos también observar que el limitante en esta reaccion es el B.

5 Resolución numérica cuando t→∞ [Apartado 4]

Como no podemos operar con t=∞ debemos parar el programa cuando la velocidad de reacción sea cercana a cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante, pero como la velocidad es directamente proporcional a esa concentración ésta nunca llegará a ser cero sino que tiende hacia él, supondremos que la reacción ha llegado a su fin cuando llegue al entorno de 1/10000 pero podrían ser menores. El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando) Nuestro codigo sera:

a0=3; b0=1; %Concentraciones iniciales de A y B
t0=0;  %Tiempos iniciales y finales
y0=0; %Tomamos la concentracion de C inicial como 0
k1=1; 
h=0.1; %Paso 
yy=y0;
n=1;
y(1)=y0;
t(1)=t0;
v(1)=k1*a0*b0; %velocidad inicial
while v>0.0001
    yy=yy+h*k1*(a0-yy)*(b0-yy);
    y(n+1)=yy;
    t(n+1)=t(n)+h;
    v(n)=k1*(a0-yy)*(b0-yy)
    n=n+1;
end
A=a0-y; %Concentracion de A
B=b0-y; %Concentracion de B
hold on
plot(t,y,'r')
plot(t,A,'b')
plot(t,B,'g')
legend('C','B','A')
hold off


izquierda




















se observa como las concentraciones tienen como asintota las raices del polinomio lo cual es totalmente lógico dado que la velocidad de la reacción es directamente proporcional a su concentración en ese momento, el reactivo limitante se empieza a extinguirse y en consecuencia la velocidad también, llegando en ningún caso a la concentración nula(pero sí aparentemente).

6 Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]

6.1 Método del trapecio

En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.

t0=0; tn=5;
h=0.1;
N=(tn-t0)/h;
t=t0:h:tn;
k=1; a=3; b=1;
yt=zeros(1,N+1);
yt(1)=0;
yy=yt(1);
for n=1:N
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); 
   yt(n+1)=yy;
end
At=a-yt;
Bt=b-yt;
hold on
plot(t,yt,'r')
plot(t,At,'b')
plot(t,Bt,'g')
legend('C','A','B')
hold off


6.2 Método de Runge Kutta

En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.

t0=0; tn=5;
h=0.1;
N=(tn-t0)/h;
t=t0:h:tn;
k=1; a=3; b=1;
yk=zeros(1,N+1);
yk(1)=0;
yy=yk(1);
for n=1:N
   k1=(3-yy)*(1-yy);
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);
   k4=(3-yy-h*k3)*(1-yy-h*k3);
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); 
   yk(n+1)=yy;
end
Ak=a-yk;
Bk=b-yk;
hold on
plot(t,yk,'r')
plot(t,Ak,'b')
plot(t,Bk,'g')
legend('C','A','B')
hold off


7 Sistema de dos ecuaciones diferenciales [Apartado 6]

Ahora se presenta la siguiente reacción:

                                       A + B → C → D

Esta reacción al igual que la reacción anterior se puede pasar a un problema de valor inicial. Para eso usaremos de nuevo la ley de acción de masas. Esta vez dos veces consecutivamente, una primera vez pasando A y B a C y una segunda de C a D. En esta nueva ecuación tendremos varias constantes:

  • k1: constante de velocidad de la reacción A+B→C.
  • k2: constante de velocidad de la reacción C→D.
  • a: concentración inicial de A.
  • b: concentración inicial de B.
  • c: concentración inicial de B.

Además de estas constantes tendremos también las variables:

  • y(t): Esta variable nos da la cantidad de producto C que se forman en el tiempo, como el volumen es constante coincide con la concentración de C a lo largo de t.
  • y'(t): Es la derivada de y(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce C, es decir, la velocidad de la reacción química.
  • z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo
  • z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D

Como en la PVI anterior la concentración de A respecto al tiempo que sera (a−y(t)) y la de B que sera (b−y(t)).

Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales. por tanto las velocidades de reacción son respectivamente:

                                        y′(t)=k1(a−y(t))(b−y(t))
                                        z′(t)=k2(c+y(t)-z(t))

Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero

                                        y(0)=0
                                        z(0)=0

Sabemos que es un problema de valor inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.

8 Resolución numérica del sistema [Apartado 7]

8.1 Método de Euler y runge kutta

t0=0;
tn=10;
h=0.1;
N=(tn-t0)/h;
t=t0:h:tn;
y=zeros(1,N+1);
yk=zeros(1,N+1);
z=zeros(1,N+1);
zk=zeros(1,N+1);
y(1)=0;
z(1)=0;
k1=1;
k2=1/5;
a=3;
b=1;
for n=1:N
    %euler
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));
    z(n+1)=z(n)+h*k2*(y(n)-z(n));
    %runge kutta
    kc1=k1*(a-yk(n))*(b-yk(n));
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);
    kz1=k2*(yk(n)-zk(n));
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);
    kz4=k2*(yk(n)-zk(n)-h*kz3);
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);
    
end
C=y-z;
Ck=yk-zk;
D=z;
Dk=zk;
hold on
plot(t,C,'r')
plot(t,Ck,'b')
plot(t,D,'r')
plot(t,Dk,'b')
legend('euler','runge kutta')
%calculo del la concentración de C máxima
n=1
while Ck(n+1)>Ck(n)&Ck(n+2)>Ck(n+1)
    n=n+1;
end
techo=Ck(n)
tiempo=t(n)


Con k2=5 representamos las concentraciones de C y D

izquierda






















con k2=1/5 se observa como la maxima concentracion de C en k2=1/5 es mucho mayor puesto que la segunda reacción es mas lenta y tarda mas en transformar C en D. Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:

Para k2=5 [C]max=0.275 en t=0.21

para k2=1/5 [C]max=0.789 en t=1.1

izquierda























8.2 Cuando el paso es 0.3

Con h=0.3 se observa que el método de euler aproxima muy mal la solucion real debido a que la derivada tiene valores muy altos cuando t es pequeño, por contra el método de Runge Kutta aproxima mejor ya que es un método de orden 4, aun así h es demasiado grande como para decir que es una buena aproximacion.


izquierda