Diferencia entre revisiones de «Reacciones complejas GRUPO 1A»

De MateWiki
Saltar a: navegación, buscar
Línea 59: Línea 59:
  
  
 +
===Código en Matlab===
  
 +
{{matlab|codigo=
 +
%Euler
 +
clear all
 +
%Datos enunciado
 +
a0=3;
 +
b0=1;
 +
t0=0;
 +
tN=2;
 +
y0=0;
 +
h=0.1;
 +
k1=1;
 +
%Número subintervalos
 +
N=round((tN-t0)/h);
 +
%Variable independiente t
 +
t=t0:h:tN;
 +
%Vector y
 +
y=zeros(1,N+1);
 +
y(1)=y0;
 +
%bucle
 +
for i=1:N
 +
    y(i+1)=y(i)+h*k1*(a0-y(i))*(b0-y(i));
 +
end
 +
%Gráfica
 +
hold on
 +
plot(t,y,'linewidth', 3);
 +
plot(t,(a0-y),'y','linewidth',3);
 +
plot(t,(b0-y),'m','linewidth',3);
 +
legend('C','A','B');
 +
xlabel('tiempo(segundos)');
 +
ylabel('concentracion[mol/l]');
 +
hold off
  
 +
}}
  
  

Revisión del 13:37 28 abr 2016

Trabajo realizado por estudiantes
Título Reacciones complejas Grupo 1A
Asignatura Ecuaciones Diferenciales
Curso Curso 2015-16
Autores Pablo Medina Higueras

Jesús Caballero Pozo

Jaime Delage Ramírez

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


1 Introducción

Se considera una reacción química irreversible en una solución bien mezclada. Supondremos que la reacción ocurre para un volumen y temperatura constantes. Al inicio se encuentran 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,

                                                  A + B → C

Supondremos que se 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.


2 Interpretación de las constantes y PVI para calcular la concentración de C

En primer lugar, interpretaremos las constantes y variables de la siguiente ecuación diferencial,esta ecuación diferencial será la de la ley de masas:

                                         y'(t) = k1(a0 − y(t))(b0 − y(t)), siendo t>0 

donde:

  y'(t) = Representa la velocidad de la reacción química, es decir, la velocidad con  que se produce C.
  k1 = Constante de proporcionalidad.  
  a0 = Concentración inicial de A.
  y(t) = Evolución de la concentración de  C a lo largo del tiempo.
  b0 = Concentración inicial de B.

Es conveniente mencionar que la concentración de A respecto al tiempo será de a0 - y(t), y para B será de b0 - y(t), tal y como nos indica el enunciado, tomaremos el tiempo como mayor que 0: t>0.

Además, sabemos que para t = 0, la concentración de C será nula, por lo que: y(t = 0) = 0.

Con todo lo deducido anteriormente, llegamos a la conclusión que estamos ante un Problema de Valor Inicial (PVI) o de Cauchy:

                                       y'(t) = k1(a0 − y(t))(b0 − y(t)), siendo t>0 
                                                            y(0) = 0 

Ahora procederemos a ver si nuestro problema tiene solución única o no, a través del Teorema de existencia y Unicidad. Observamos que la función f(t,y) = y'(t) es continua en el intervalo (I = (0,∞) ∩ B(0,0),r>0), por lo que admite al menos una solución. Por otro lado, observamos la derivada parcial:

                                                           ∂f/∂y=k(2y-a-b) 

y vemos que no hay problemas de continuidad, porque la derivada parcial nos resulta un polinomio, así que podremos afirmar que tiene una única solución.





3 Resolución por el método de Euler

Ahora, resolveremos el problema de valor inicial con el método de Euler de primer orden (método explícito). Del enunciado, sabemos que f(t,y)=k1(a0-y(t))(b0-y(t)) , por lo tanto aplicamos la fórmula del método de Euler:

yn+1 = yn + h * f(tn, yn)

Cuando despejamos, obtenemos : yn+1 = yn + h * k1(a0-y(t))(b0-y(t))

Según los datos del enunciado, tenemos que:

  • a0=3[mol/L]
  • b0=1[mol/L]
  • k1=1[mol/s]
  • h=0.1(salto)
  • t=[0,2] (segundos)


3.1 Código en Matlab

%Euler
clear all
%Datos enunciado
a0=3;
b0=1;
t0=0;
tN=2;
y0=0;
h=0.1;
k1=1;
%Número subintervalos
N=round((tN-t0)/h);
%Variable independiente t
t=t0:h:tN;
%Vector y
y=zeros(1,N+1);
y(1)=y0;
%bucle
for i=1:N
    y(i+1)=y(i)+h*k1*(a0-y(i))*(b0-y(i));
end
%Gráfica
hold on
plot(t,y,'linewidth', 3);
plot(t,(a0-y),'y','linewidth',3);
plot(t,(b0-y),'m','linewidth',3);
legend('C','A','B');
xlabel('tiempo(segundos)');
ylabel('concentracion[mol/l]');
hold off