Diferencia entre revisiones de «Reacciones complejas GRUPO 1A»

De MateWiki
Saltar a: navegación, buscar
(Gráfica RK4 con h=0.1)
(Resolución numérica por Euler y Runge-Kutta cuando k2=5 y h=0.3)
 
(No se muestran 23 ediciones intermedias del mismo usuario)
Línea 294: Línea 294:
 
   
 
   
 
   
 
   
===Resolución e interpretación del sistema por Euler y Runge-Kutta con k2=5===
+
===Resolución e interpretación del sistema por Euler y Runge-Kutta con k<sub>2</sub>=5 y h = 0.1===
=== Resolución numérica por Trapecio cuando k2=5  y h=0.1 ===
+
 
{{matlab|codigo=
 
{{matlab|codigo=
%Sistema de ecuaciones no lineal por Trapecio y RK4
+
%Sistema de ecuaciones por Euler y RK4
 
%Datos del problema  
 
%Datos del problema  
 
T0=0;
 
T0=0;
Línea 333: Línea 332:
 
%RK 4
 
%RK 4
 
z=zeros(2,length(T));
 
z=zeros(2,length(T));
z(:,1)=Y0;%Inicializamos
+
z(:,1)=Y0;
  
 
for i=1:length(T)-1
 
for i=1:length(T)-1
Línea 374: Línea 373:
 
}}
 
}}
  
===Gráfica por el metodo de Euler con h=0.1===
+
====Gráfica por el metodo de Euler con h=0.1====
 
[[Archivo:Figura31234.jpg|centro|600px]]
 
[[Archivo:Figura31234.jpg|centro|600px]]
  
===Gráfica RK4 con h=0.1===
+
====Gráfica RK4 con h=0.1====
 
[[Archivo:Figura21234.jpg|centro|600px]]
 
[[Archivo:Figura21234.jpg|centro|600px]]
  
===Gráfica comparativa con h=0.1===
+
====Gráfica comparativa con h=0.1====
 
[[Archivo:Figura1234.jpg|centro|600px]]
 
[[Archivo:Figura1234.jpg|centro|600px]]
  
Línea 386: Línea 385:
 
  Se observa como el compuesto C comienza con gran velocidad. En el momento en que empieza a haber C se  generara D, que como tiene una velocidad de creación aún mayor, en cuanto pasa un poco de tiempo el compuesto D termina por hacer desaparecer al C y el compuesto D sigue formandose hasta alcanzar el equilibrio. Tambien se observa (ambos métodos) que en los primeros instantes el compuesto C se empieza a formar, mientras que el D no hasta que que pasa un tiempo debido a un error de los métodos. En conclusión vemos como se van formando ambos compuestos teniendo una mayor velocidad D
 
  Se observa como el compuesto C comienza con gran velocidad. En el momento en que empieza a haber C se  generara D, que como tiene una velocidad de creación aún mayor, en cuanto pasa un poco de tiempo el compuesto D termina por hacer desaparecer al C y el compuesto D sigue formandose hasta alcanzar el equilibrio. Tambien se observa (ambos métodos) que en los primeros instantes el compuesto C se empieza a formar, mientras que el D no hasta que que pasa un tiempo debido a un error de los métodos. En conclusión vemos como se van formando ambos compuestos teniendo una mayor velocidad D
  
=== Resolución numérica por Trapecio cuando k2=5  y h=0.3 ===
+
=== Resolución numérica por Euler y Runge-Kutta cuando k<sub>2</sub> = 5  y h = 0.3 ===
 
{{matlab|codigo=
 
{{matlab|codigo=
%Sistema de ecuaciones no lineal por Trapecio y RK4
+
%Sistema de ecuaciones por Euler y RK4
 
%Datos del problema  
 
%Datos del problema  
 
T0=0;
 
T0=0;
Línea 423: Línea 422:
 
%RK 4
 
%RK 4
 
z=zeros(2,length(T));
 
z=zeros(2,length(T));
z(:,1)=Y0;%Inicializamos
+
z(:,1)=Y0;
  
 
for i=1:length(T)-1
 
for i=1:length(T)-1
Línea 465: Línea 464:
 
}}
 
}}
  
===Gráfica por el metodode Euler con h=0.3====
+
====Gráfica por el metodo de Euler con h=0.3====
[[Archivo:Ecuaciones5b.jpg|centro|600px]]
+
[[Archivo:Marialaloca3.jpg|centro|600px]]
===Gráfica de RK4 con h=0.3====
+
 
[[Archivo:Ecuaciones5a.jpg|centro|600px]]
+
====Gráfica de RK4 con h=0.3====
===Gráfica comparativa con h=0.3====
+
[[Archivo:Marialaloca2.jpg|centro|600px]]
[[Archivo:Ecuaciones50.31.jpg|centro|600px]]
+
 
 +
====Gráfica comparativa con h=0.3====
 +
[[Archivo:Marialaloca1.jpg|centro|600px]]
  
 
Para h=0.3 observamos que la gráfica se desequilibra y deducimos de ello que es mejor utilizar intervalos pequeños en este caso 0.1 ya que como hemos visto con 0.3 hace que la gráfica se empiece a separar de la solución real
 
Para h=0.3 observamos que la gráfica se desequilibra y deducimos de ello que es mejor utilizar intervalos pequeños en este caso 0.1 ya que como hemos visto con 0.3 hace que la gráfica se empiece a separar de la solución real
  
=== Resolución numérica por Trapecio y RK4 cuando k2=1/5 ===
+
=== Resolución numérica por Euler  y RK4 cuando k2=1/5 ===
 
{{matlab|codigo=
 
{{matlab|codigo=
%Sistema de ecuaciones no lineal por Trapecio y RK4
+
%Sistema de ecuaciones por Euler y RK4
 
%Datos del problema  
 
%Datos del problema  
 
t0=0;  
 
t0=0;  
Línea 493: Línea 494:
 
%EULER  
 
%EULER  
 
y=zeros(2,length(t));
 
y=zeros(2,length(t));
y(:,1)=y0; %Inicialización
+
y(:,1)=y0;  
 
for i=1:length(t)-1
 
for i=1:length(t)-1
 
   y(:,i+1) =y(:,i)+h*[k1*((a0-(y(1,i)))*(b0-(y(1,i))));k2*(y(1,i)-y(2,i))];
 
   y(:,i+1) =y(:,i)+h*[k1*((a0-(y(1,i)))*(b0-(y(1,i))));k2*(y(1,i)-y(2,i))];
Línea 512: Línea 513:
 
%RK4   
 
%RK4   
 
z=zeros(2,length(t));
 
z=zeros(2,length(t));
z(:,1)=y0;%Inicializamos
+
z(:,1)=y0;
  
 
for i=1:length(t)-1
 
for i=1:length(t)-1
Línea 553: Línea 554:
 
hold off
 
hold off
 
}}
 
}}
===Gráfica por el método de Euler===
+
 
 +
====Gráfica por el método de Euler====
 
[[Archivo:Ecuacones3.jpg|centro|600px]]
 
[[Archivo:Ecuacones3.jpg|centro|600px]]
===Gráfica RK-4===
+
====Gráfica RK-4====
 
[[Archivo:Ecuaciones2.jpg|centro|600px]]
 
[[Archivo:Ecuaciones2.jpg|centro|600px]]
===Gráfico comparativo===
+
====Gráfico comparativo====
 
[[Archivo:Ecuaciones1.jpg|centro|600px]]
 
[[Archivo:Ecuaciones1.jpg|centro|600px]]
  

Revisión actual del 17:20 3 may 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 Proceso reversible

Hasta ahora hemos supuesto que la reacción era irreversible, tal y como nos indicaba el enunciado, esto significaba que A y B se juntaban para formar C. Ahora nos pide ver cómo cambiaría la ecuación diferencial si el proceso fuera reversible; que sea reversible, quiere decirnos que además de que A y B se junten para formar C, también tendremos C descomponiéndose para formar A y B, por lo que la ecuación diferencial se vería afectada por este cambio. Necesitaremos una nueva constante de velocidad de reacción (k2) dado que suponemos que se sigue satisfaciendo la ley de masas. Este nuevo término disminuirá la cantidad de producto, por lo tanto el término aparecerá restando en nuestra ecuación.

Por lo que la ecuación diferencial quedará de la siguiente manera:

                                         y'(t) = k1(a0 − y(t))(b0 − y(t)) - k2 * y(t) 


4 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)


4.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,'b','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


4.2 Gráfica método de Euler

centro

Como se puede observar, la concentración de C aumenta en la proporción que disminuyen los reactivos A y B, como es lógico. También se puede observar que la velocidad disminuye en el tiempo hasta ser 0 cuando se agota el reactivo limitante, B.


5 Resolución del PVI por el método de Euler cuando t→∞

Una vez hecho el método de Euler de primer orden para un intervalo de 2 segundos, es fácil observar que las concentraciones convergen y presuponemos que se mantendrán constantes, pero hay que comprobarlo para el límite t→∞. Es suficiente con realizar el mismo programa que el anterior pero modificando el tiempo hasta un valor suficientemente alto, comparable a para ver que se mantienen constantes las concentraciones, tomaremos 15 segundos debido a que la reacción es muy rápida. Esto se debe a que la velocidad de la reacción se anula cuando se acaba el contenido del reactivo limitante, que en este caso es B.

5.1 Código en Matlab

%Euler
clear all
%Datos enunciado
a0=3;
b0=1;
t0=0;
tN=15;
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,'b','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


5.2 Gráfica método de Euler (t→∞)

centro

Tal y como habíamos pensado, las concentraciones tienden a A=2 mol/l; B=0 mol/l; C=1 mol/l. Esto se debe a que el compuesto B es el limitante de la reacción, por lo cuál cuando se acaba, el resto de concentraciones se mantienen constantes.

6 Resolución del PVI por el Método del Trapecio y por Runge Kutta de cuarto orden

Una vez que hemos obtenido el PVI por el Método de Euler, queremos obtener el PVI por el método del Trapecio y por Runge Kutta, hay que tener en cuenta que vamos a utilizar los mismos datos que para el método de Euler, por lo que:

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

6.1 Método del Trapecio

Hay que tener en cuenta que el método del trapecio es un método implícito, a diferencia del método de Euler que era un método explícito. Como siempre partimos de: f(t,y)=k1(a0-y(t))(b0-y(t)) , y tendremos que aplicar la fórmula del trapecio:

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

El código de Matlab para el método del trapecio es el siguiente:

6.1.1 Código en Matlab

%Trapecio
clear all
%Datos del problema
t0=0; %Instante inicial
tN=2; %Instante final
h=0.1; %Tamaño de paso
k1=1; %valor de la constante específica de la velocidad de reacción
y0=0;
a0=3; %Concentración inicial de A
b0=1; %Concentración inicial de B
%Discretización
N=round((tN-t0)/h);
%Creamos el vector t
t=t0:h:tN;
%Preparación del vector solución y defino primer valor
y=zeros(1,N+1);
y(1)=y0;
%Aplicación del esquema numérico
for i=1:N
y(i+1)=(-h)\((-2*h-1)+sqrt((((2*h)+1)^2)-2*h*(y(i)+(h/2)*(6-(4*y(i))+(y(i)^2)))));
end
%grafico
hold on
plot(t,y,'b','linewidth',2);
a=3.-y;
b=1.-y;
plot(t,(a0-y),'y','linewidth',2);
plot(t,(b0-y),'m','linewidth',2);
legend('C','A','B')
xlabel('tiempo(s)');
ylabel('concentracion[mol/l]');
hold off


6.1.2 Gráfica del Método del Trapecio

centro

Vemos que esta gráfica es prácticamente igual a la del método de Euler, pero sabemos que esta gráfica nos da una aproximación mayor.

6.2 Método de Runge Kutta

El método de Runge Kutta, de cuarto orden, al contrario del método del Trapecio, se trata de un método explícito, igual que el de Euler, por lo que no es necesario hacer ninguna manipulación al esquema numérico, por lo que procederemos directamente. El código Matlab utilizado para el método de Runge-Kutta es el siguiente:

6.2.1 Código en Matlab

%RUNGEKUTTA
clear all
%Datos del problema
t0=0; %Instante inicial
tN=2; %Instante final
h=0.1; %Tamaño de paso
k1=1; %valor de la constante específica de la velocidad de reacción 
y0=0;
a0=3; %Concentración inicial de A
b0=1; %Concentración inicial de B
%Discretización
N=round((tN-t0)/h);
%Creamos el vector t
t=t0:h:tN;
%Preparación del vector solución y defino primer valor
y=zeros(1,N+1);
y(1)=y0;
%Aplicación del esquema numérico
for i=1:N
K1=k1*(a0-y(i))*(b0-y(i));
K2=k1*(a0-(y(i)+(h/2)*K1))*(b0-(y(i)+(h/2)*K1));
K3=k1*(a0-(y(i)+(h/2)*K2))*(b0-(y(i)+(h/2)*K2));
K4=k1*(a0-(y(i)+h*K3))*(b0-(y(i)+h*K3));
y(i+1)=y(i)+(h/6)*(K1+2*K2+2*K3+K4);
end
%grafico
hold on
plot(t,y,'b','linewidth',2);
a=3.-y;
b=1.-y;
plot(t,(a0-y),'y','linewidth',2);
plot(t,(b0-y),'m','linewidth',2);
legend('C','A','B')
xlabel('tiempo(s)');
ylabel('concentracion[mol/l]');
hold off


6.2.2 Gráfica del Método de RUNGE KUTTA

centro

Una vez que hemos obtenido las tres gráficas de los métodos de Euler, Trapecio y Runge-Kutta, podemos observar que todos tienen una gran similitud, pero el método de Euler, se separará más de los demás debido a que es un método de orden 1 y su precisión es más reducida que el resto. Los otros dos métodos serán más similares entre ellos puesto que tienen un mayor orden que el de Euler, el método del trapecio es de segundo orden y el de Runge-Kutta es de cuarto orden, por lo que el método que tendrá una mayor precisión será el de Runge-Kutta, gracias a su orden.


7 Reacción consecutiva

Ahora, suponemos que hay una reacción consecutiva de la siguiente forma:

                  A + B → C → D

Esta reacción, al igual que la reacción anterior, se puede expresar en forma de problema de valor inicial. Para ello, según explica el enunciado, usaremos de nuevo la ley de acción de masas, pero esta vez lo haremos dos veces consecutivas, una para de pasar de A y B a C, y otra para pasar de C a D. Al imponerse la ley de acción de masas, suponemos que la velocidad con la que se forma compuesto C es directamente proporcional a las concentraciones de los compuestos A y B, y de igual forma la de formación de D lo es a la concentración de C que se ha formado.

El problema de valor inicial es un sistema de dos ecuaciones en el que la primera muestra la producción de C y la segunda muestra la producción de D, que está relacionada con la cantidad de producto C en función del tiempo. Los valores en t=0 son las concentraciones iniciales de los productos, es decir, nulos. El sistema sería el siguiente:

  y'1(t) =k1(a0-y(t))(b0-y(t))
  y'2(t) =k2(y1(t)-y2(t))

En el que :

  k1,como ya dijimos anteriormente, es la constante de proporcionalidad de la primera reacción
  k2 es la constante de proporcionalidad de la segunda reacción
  y'1(t) es la velocidad de la reacción química de C
  y'2(t) es la velocidad de la reacción química de D

Dado que los valores de las concentraciones en t=0 son nulos, es decir:

  y1 (t=0) = 0
  y2 (t=0) = 0   


8 Reacción consecutiva: obtención de la ecuación diferencial y PVI

Reaccion consecutiva.jpg Las reacciones irreversibles se pueden definir como aquellas que empiezan con un reactivo inicial y producen productos o intermediarios generalmente en una sola dirección. Las reacciones consecutivas son reacciones secuenciales irreversibles


8.1 Resolución e interpretación del sistema por Euler y Runge-Kutta con k2=5 y h = 0.1

%Sistema de ecuaciones por Euler y RK4
%Datos del problema 
T0=0;
 TN=10; 
Y0=[0;0];
 k1=1;
 k2=5; 
a0=3;
 b0=1;

%Discretizamos para h=0.1
h=0.1
T=T0:h:TN;
N=round((TN-T0)/h);

%EULER
y=zeros(2,length(T));
y(:,1)=Y0;
for i=1:length(T)-1
  y(:,i+1) =y(:,i)+h*[k1*((a0-(y(1,i)))*(b0-(y(1,i))));k2*(y(1,i)-y(2,i))];
end

%Cálculamos la concentración real de C 
yC=y(1,:)-y(2,:);
%Representación Euler
figure(1)
hold on
plot(T,yC,'linewidth',2)
plot(T,y(2,:),'y','linewidth',2)
legend('Concentración de C','Concentración de D','location','best');
title('Solución mediante el método de Euler');
hold off


%RK 4
z=zeros(2,length(T));
z(:,1)=Y0;

for i=1:length(T)-1
    K1=[k1*(a0-z(1,i))*(b0-z(1,i));k2*(z(1,i)-z(2,i))];
    K2=[k1*(a0-(z(1,i)+(h/2)*K1(1)))*(b0-(z(1,i)+(h/2)*K1(1)));k2*((z(1,i)+(h/2)*K1(2))-(z(2,i)+(h/2)*K1(2)))];
    K3=[k1*(a0-(z(1,i)+(h/2)*K2(1)))*(b0-(z(1,i)+(h/2)*K2(1)));k2*((z(1,i)+(h/2)*K2(2))-(z(2,i)+(h/2)*K2(2)))];
    K4=[k1*(a0-(z(1,i)+h*K3(1)))*(b0-(z(1,i)+h*K3(1)));k2*((z(1,i)+h*K3(2))-(z(2,i)+h*K3(2)))];
    z(:,i+1)=z(:,i)+h/6*(K1+2*K2+2*K3+K4);
end

%Cálculamos  la concentración real de C  
zC=z(1,:)-z(2,:);

%Representación  RK4
figure(2)
hold on
plot(T,zC,'linewidth',2)
plot(T,z(2,:),'y','linewidth',2)
legend('Concentración de C','Concentración de D','location','best');
title('Solución mediante el método de Runge-Kutta');
hold off
%Gráfico conjunta
figure(3)
hold on
subplot(1,2,1)
hold on
plot(T,yC,'b','linewidth',2)
plot(T,zC,'y--','linewidth',1.5)
legend('Concentración de C(Euler)','Concentración de C(RK4)','location','best');
title('Gráfico comparativo para compuesto C')
hold off
subplot(1,2,2)
hold on
plot(T,y(2,:),'b','linewidth',1.5)
plot(T,z(2,:),'y--','linewidth',1.5)
legend('Concentración de D(Euler)','Concentración de D(RK4)','location','best');
title('Gráfico comparativo para compuesto D')
hold off
hold off


8.1.1 Gráfica por el metodo de Euler con h=0.1

centro

8.1.2 Gráfica RK4 con h=0.1

centro

8.1.3 Gráfica comparativa con h=0.1

centro

Comentarios de las graficas

Se observa como el compuesto C comienza con gran velocidad. En el momento en que empieza a haber C se  generara D, que como tiene una velocidad de creación aún mayor, en cuanto pasa un poco de tiempo el compuesto D termina por hacer desaparecer al C y el compuesto D sigue formandose hasta alcanzar el equilibrio. Tambien se observa (ambos métodos) que en los primeros instantes el compuesto C se empieza a formar, mientras que el D no hasta que que pasa un tiempo debido a un error de los métodos. En conclusión vemos como se van formando ambos compuestos teniendo una mayor velocidad D

8.2 Resolución numérica por Euler y Runge-Kutta cuando k2 = 5 y h = 0.3

%Sistema de ecuaciones por Euler y RK4
%Datos del problema 
T0=0;
 TN=10; 
Y0=[0;0];
 k1=1;
 k2=5; 
a0=3;
 b0=1;

%Discretizamos para h=0.3
h=0.3
T=T0:h:TN;
N=round((TN-T0)/h);

%EULER
y=zeros(2,length(T));
y(:,1)=Y0;
for i=1:length(T)-1
  y(:,i+1) =y(:,i)+h*[k1*((a0-(y(1,i)))*(b0-(y(1,i))));k2*(y(1,i)-y(2,i))];
end

%Cálculamos la concentración real de C 
yC=y(1,:)-y(2,:);
%Representación Euler
figure(1)
hold on
plot(T,yC,'linewidth',2)
plot(T,y(2,:),'y','linewidth',2)
legend('Concentración de C','Concentración de D','location','best');
title('Solución mediante el método de Euler');
hold off

%RK 4
z=zeros(2,length(T));
z(:,1)=Y0;

for i=1:length(T)-1
    K1=[k1*(a0-z(1,i))*(b0-z(1,i));k2*(z(1,i)-z(2,i))];
    K2=[k1*(a0-(z(1,i)+(h/2)*K1(1)))*(b0-(z(1,i)+(h/2)*K1(1)));k2*((z(1,i)+(h/2)*K1(2))-(z(2,i)+(h/2)*K1(2)))];
    K3=[k1*(a0-(z(1,i)+(h/2)*K2(1)))*(b0-(z(1,i)+(h/2)*K2(1)));k2*((z(1,i)+(h/2)*K2(2))-(z(2,i)+(h/2)*K2(2)))];
    K4=[k1*(a0-(z(1,i)+h*K3(1)))*(b0-(z(1,i)+h*K3(1)));k2*((z(1,i)+h*K3(2))-(z(2,i)+h*K3(2)))];
    z(:,i+1)=z(:,i)+h/6*(K1+2*K2+2*K3+K4);
end

%Cálculamos  la concentración real de C  
zC=z(1,:)-z(2,:);

%Representación  RK4
figure(2)
hold on
plot(T,zC,'linewidth',2)
plot(T,z(2,:),'y','linewidth',2)
legend('Concentración de C','Concentración de D','location','best');
title('Solución mediante el método de Runge-Kutta');
hold off

%Gráfico conjunta
figure(3)
hold on
subplot(1,2,1)
hold on
plot(T,yC,'b','linewidth',2)
plot(T,zC,'y--','linewidth',1.5)
legend('Concentración de C(Euler)','Concentración de C(RK4)','location','best');
title('Gráfico comparativo para compuesto C')
hold off
subplot(1,2,2)
hold on
plot(T,y(2,:),'b','linewidth',1.5)
plot(T,z(2,:),'y--','linewidth',1.5)
legend('Concentración de D(Euler)','Concentración de D(RK4)','location','best');
title('Gráfico comparativo para compuesto D')
hold off
hold off


8.2.1 Gráfica por el metodo de Euler con h=0.3

centro

8.2.2 Gráfica de RK4 con h=0.3

centro

8.2.3 Gráfica comparativa con h=0.3

centro

Para h=0.3 observamos que la gráfica se desequilibra y deducimos de ello que es mejor utilizar intervalos pequeños en este caso 0.1 ya que como hemos visto con 0.3 hace que la gráfica se empiece a separar de la solución real

8.3 Resolución numérica por Euler y RK4 cuando k2=1/5

%Sistema de ecuaciones por Euler y RK4
%Datos del problema 
t0=0; 
tN=10;
 y0=[0;0];
 k1=1;
 k2=1/5; 
a0=3;
 b0=1;

%Discretización 
h=0.1; 
t=t0:h:tN;
N=round((tN-t0)/h); 

%EULER 
y=zeros(2,length(t));
y(:,1)=y0; 
for i=1:length(t)-1
  y(:,i+1) =y(:,i)+h*[k1*((a0-(y(1,i)))*(b0-(y(1,i))));k2*(y(1,i)-y(2,i))];
end

%Cálculamos  la concentración real de C 
yC=y(1,:)-y(2,:);

%Representación (Euler)
figure(1)
hold on
plot(t,yC,'linewidth',2)
plot(t,y(2,:),'y','linewidth',2)
legend('Concentración de C','Concentración de D','location','best');
title('Solución mediante el método de Euler');
hold off

%RK4  
z=zeros(2,length(t));
z(:,1)=y0;

for i=1:length(t)-1
    K1=[k1*(a0-z(1,i))*(b0-z(1,i));k2*(z(1,i)-z(2,i))];
    K2=[k1*(a0-(z(1,i)+(h/2)*K1(1)))*(b0-(z(1,i)+(h/2)*K1(1)));k2*((z(1,i)+(h/2)*K1(2))-(z(2,i)+(h/2)*K1(2)))];
    K3=[k1*(a0-(z(1,i)+(h/2)*K2(1)))*(b0-(z(1,i)+(h/2)*K2(1)));k2*((z(1,i)+(h/2)*K2(2))-(z(2,i)+(h/2)*K2(2)))];
    K4=[k1*(a0-(z(1,i)+h*K3(1)))*(b0-(z(1,i)+h*K3(1)));k2*((z(1,i)+h*K3(2))-(z(2,i)+h*K3(2)))];
    z(:,i+1)=z(:,i)+h/6*(K1+2*K2+2*K3+K4);
end

%Cálculamos  la concentración real de C 
zC=z(1,:)-z(2,:);

%Representación De  (RK4)
figure(2)
hold on
plot(t,zC,'linewidth',2)
plot(t,z(2,:),'y','linewidth',2)
legend('Concentración de C','Concentración de D','location','best');
title('Solución mediante el método de Runge-Kutta');
hold off

%Gráfico conjunto
figure(3)
hold on
subplot(1,2,1)
hold on
plot(t,yC,'b','linewidth',1.5)
plot(t,zC,'y--','linewidth',1.5)
legend('Concentración de C(Euler)','Concentración de C(RK4)','location','best');
title('Gráfico comparativo para compuesto C')
hold off
subplot(1,2,2)
hold on
plot(t,y(2,:),'b','linewidth',1.5)
plot(t,z(2,:),'y--','linewidth',1.5)
legend('Concentración de D(Euler)','Concentración de D(RK4)','location','best');
title('Gráfico comparativo para compuesto D')
hold off
hold off


8.3.1 Gráfica por el método de Euler

centro

8.3.2 Gráfica RK-4

centro

8.3.3 Gráfico comparativo

centro

En estos graficos podemos apreciar que la segunda reacción es más lenta que la primera y como la curva de la concentración de D tarda más en formarse y por tanto en alcanzar a C, es decir, el reactivo C tarda más en acabarse a diferencia del apartado anterior. Con R-K obtenemos una aproximación mayor y un error bastante menor que el obtenido mediante el método de Euler.