Diferencia entre revisiones de «Reacciones complejas GRUPO 1A»
(→Resolución numérica por Trapecio y RK4 cuando k2=1/5) |
(→Resolución numérica por Euler y Runge-Kutta cuando k2=5 y h=0.3) |
||
| (No se muestran 15 ediciones intermedias del mismo usuario) | |||
| Línea 294: | Línea 294: | ||
| − | ===Resolución e interpretación del sistema por Euler y Runge-Kutta con | + | ===Resolución e interpretación del sistema por Euler y Runge-Kutta con k<sub>2</sub>=5 y h = 0.1=== |
| − | + | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| − | %Sistema de ecuaciones | + | %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; | + | 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 | + | === 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 | + | %Sistema de ecuaciones por Euler y RK4 |
%Datos del problema | %Datos del problema | ||
T0=0; | T0=0; | ||
| Línea 465: | Línea 464: | ||
}} | }} | ||
| − | ===Gráfica por el | + | ====Gráfica por el metodo de Euler con h=0.3==== |
[[Archivo:Marialaloca3.jpg|centro|600px]] | [[Archivo:Marialaloca3.jpg|centro|600px]] | ||
| − | ===Gráfica de RK4 con h=0.3=== | + | ====Gráfica de RK4 con h=0.3==== |
[[Archivo:Marialaloca2.jpg|centro|600px]] | [[Archivo:Marialaloca2.jpg|centro|600px]] | ||
| − | ===Gráfica comparativa con h=0.3=== | + | ====Gráfica comparativa con h=0.3==== |
[[Archivo:Marialaloca1.jpg|centro|600px]] | [[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 | + | === Resolución numérica por Euler y RK4 cuando k2=1/5 === |
{{matlab|codigo= | {{matlab|codigo= | ||
| − | %Sistema de ecuaciones | + | %Sistema de ecuaciones por Euler y RK4 |
%Datos del problema | %Datos del problema | ||
t0=0; | t0=0; | ||
| Línea 495: | Línea 494: | ||
%EULER | %EULER | ||
y=zeros(2,length(t)); | y=zeros(2,length(t)); | ||
| − | y(:,1)=y0; | + | 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 556: | Línea 555: | ||
}} | }} | ||
| − | ===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 | |
Contenido
- 1 Introducción
- 2 Interpretación de las constantes y PVI para calcular la concentración de C
- 3 Proceso reversible
- 4 Resolución por el método de Euler
- 5 Resolución del PVI por el método de Euler cuando t→∞
- 6 Resolución del PVI por el Método del Trapecio y por Runge Kutta de cuarto orden
- 7 Reacción consecutiva
- 8 Reacción consecutiva: obtención de la ecuación diferencial y PVI
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
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→∞)
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
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
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
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
8.1.2 Gráfica RK4 con h=0.1
8.1.3 Gráfica comparativa con h=0.1
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
8.2.2 Gráfica de RK4 con h=0.3
8.2.3 Gráfica comparativa con h=0.3
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
8.3.2 Gráfica RK-4
8.3.3 Gráfico comparativo
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.







