<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Arevalo</id>
		<title>MateWiki - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Arevalo"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Arevalo"/>
		<updated>2026-05-02T07:13:06Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28582</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28582"/>
				<updated>2015-03-06T17:35:37Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5 representamos las concentraciones de C y D'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28578</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28578"/>
				<updated>2015-03-06T17:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Cuando el paso es 0.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28575</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28575"/>
				<updated>2015-03-06T17:32:46Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución numérica cuando k2=1/5 [Apartado 8] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28574</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28574"/>
				<updated>2015-03-06T17:32:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28560</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28560"/>
				<updated>2015-03-06T17:24:14Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Cuando el paso es 0.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28558</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28558"/>
				<updated>2015-03-06T17:20:14Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28557</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28557"/>
				<updated>2015-03-06T17:19:51Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28552</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28552"/>
				<updated>2015-03-06T17:18:45Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28548</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28548"/>
				<updated>2015-03-06T17:18:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del la concentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28543</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28543"/>
				<updated>2015-03-06T17:15:44Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
[[Archivo:A16runge1.png|marco|izquierda]]&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
[[Archivo:A16runge.png|marco|izquierda]]&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28541</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28541"/>
				<updated>2015-03-06T17:15:04Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
[[Archivo:A16runge1.jpg|marco|izquierda]]&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
[[Archivo:A16runge.jpg|marco|izquierda]]&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:A16runge1.png&amp;diff=28538</id>
		<title>Archivo:A16runge1.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:A16runge1.png&amp;diff=28538"/>
				<updated>2015-03-06T17:14:38Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28533</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28533"/>
				<updated>2015-03-06T17:11:49Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Con k2=5'''&lt;br /&gt;
&lt;br /&gt;
'''con k2=1/5'''&lt;br /&gt;
[[Archivo:A16runge.jpg|marco|izquierda]]&lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28528</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28528"/>
				<updated>2015-03-06T17:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:A16runge.png|miniaturadeimagen]]&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28515</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28515"/>
				<updated>2015-03-06T17:06:11Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:A16euler.png|miniaturadeimagen]]&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:A16runge.png&amp;diff=28509</id>
		<title>Archivo:A16runge.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:A16runge.png&amp;diff=28509"/>
				<updated>2015-03-06T17:04:15Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28492</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28492"/>
				<updated>2015-03-06T16:58:50Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[&lt;br /&gt;
[[A16reaccionessistema.png|miniaturadeimagen]]&lt;br /&gt;
|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28487</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28487"/>
				<updated>2015-03-06T16:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[&lt;br /&gt;
[[https://mat.caminos.upm.es/w/images/7/7a/A16reaccionessistema.png|miniaturadeimagen]]&lt;br /&gt;
|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28479</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28479"/>
				<updated>2015-03-06T16:55:20Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[&lt;br /&gt;
[[Archivo:Imagen|miniaturadeimagen]]&lt;br /&gt;
|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:A16reaccionessistema.png&amp;diff=28477</id>
		<title>Archivo:A16reaccionessistema.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:A16reaccionessistema.png&amp;diff=28477"/>
				<updated>2015-03-06T16:54:49Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28469</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28469"/>
				<updated>2015-03-06T16:50:09Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler y runge kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=1/5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'b')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'b')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
%calculo del laconcentración de C máxima&lt;br /&gt;
n=1&lt;br /&gt;
while Ck(n+1)&amp;gt;Ck(n)&amp;amp;Ck(n+2)&amp;gt;Ck(n+1)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
techo=Ck(n)&lt;br /&gt;
tiempo=t(n)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 1fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28462</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28462"/>
				<updated>2015-03-06T16:48:00Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución numérica cuando k2=5  [Apartado 7] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica del sistema  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;k2=5;a=3;b=1;c=0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
A=a-y; &lt;br /&gt;
B=b-y; &lt;br /&gt;
C=y-z;&lt;br /&gt;
D=z;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,D,'k')&lt;br /&gt;
legend('A','B','C','D')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 1fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28427</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28427"/>
				<updated>2015-03-06T16:40:18Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Metodo de Runge Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;k2=5;a=3;b=1;c=0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
A=a-y; &lt;br /&gt;
B=b-y; &lt;br /&gt;
C=y-z;&lt;br /&gt;
D=z;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,D,'k')&lt;br /&gt;
legend('A','B','C','D')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 1fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28414</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28414"/>
				<updated>2015-03-06T16:38:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Metodo de Runge Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;k2=5;a=3;b=1;c=0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
A=a-y; &lt;br /&gt;
B=b-y; &lt;br /&gt;
C=y-z;&lt;br /&gt;
D=z;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,D,'k')&lt;br /&gt;
legend('A','B','C','D')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 1fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;k2=5;a=3;b=1;c=0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
A=a-y; &lt;br /&gt;
B=b-y; &lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
plot(t,Ck,'r')&lt;br /&gt;
plot(t,Dk,'k')&lt;br /&gt;
legend('A','B','C','D')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28411</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=28411"/>
				<updated>2015-03-06T16:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Euler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap5fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio=== &lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método del trapecio.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yy=yt(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   yy=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yy-0.5*h*(6-4*yy+yy^2))))/(-h); &lt;br /&gt;
   yt(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
At=a-yt;&lt;br /&gt;
Bt=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yt,'r')&lt;br /&gt;
plot(t,At,'b')&lt;br /&gt;
plot(t,Bt,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando el método de Runge Kutta.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
k=1; a=3; b=1;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
yy=yk(1);&lt;br /&gt;
for n=1:N&lt;br /&gt;
   k1=(3-yy)*(1-yy);&lt;br /&gt;
   k2=(3-yy-0.5*h*k1)*(1-yy-0.5*h*k1);&lt;br /&gt;
   k3=(3-yy-0.5*h*k2)*(1-yy-0.5*h*k2);&lt;br /&gt;
   k4=(3-yy-h*k3)*(1-yy-h*k3);&lt;br /&gt;
   yy=yy+(h/6)*(k1+2*k2+2*k3+k4); &lt;br /&gt;
   yk(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
Ak=a-yk;&lt;br /&gt;
Bk=b-yk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,yk,'r')&lt;br /&gt;
plot(t,Ak,'b')&lt;br /&gt;
plot(t,Bk,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
En esta nueva ecuación tendremos varias constantes:&lt;br /&gt;
* k1: constante de velocidad de la reacción A+B→C.&lt;br /&gt;
* k2: constante de velocidad de la reacción C→D.&lt;br /&gt;
* a: concentración inicial de A.&lt;br /&gt;
* b: concentración inicial de B.&lt;br /&gt;
* c: concentración inicial de B.&lt;br /&gt;
&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* z(t): Esta variable nos da la cantidad de producto D que se forman en el tiempo&lt;br /&gt;
* z'(t): Es la derivada de z(t) respecto al tiempo ó lo que es lo mismo la velocidad con que se produce D&lt;br /&gt;
&lt;br /&gt;
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)). &lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a, b, c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler y runge kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;k2=5;a=3;b=1;c=0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
A=a-y; &lt;br /&gt;
B=b-y; &lt;br /&gt;
C=y-z;&lt;br /&gt;
D=z;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,D,'k')&lt;br /&gt;
legend('A','B','C','D')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 1fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0; tn=10;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;k2=5;a=3;b=1;c=0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
A=a-y; &lt;br /&gt;
B=b-y; &lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
plot(t,Ck,'r')&lt;br /&gt;
plot(t,Dk,'k')&lt;br /&gt;
legend('A','B','C','D')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
===Cuando el paso es 0.3===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap7 333fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 1fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8 2fig.jpg|marco|izquierda]]&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27160</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27160"/>
				<updated>2015-03-05T22:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Metodo de Runge Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICA&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.3;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
%euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
GRAFICA CON H=0.3&lt;br /&gt;
&lt;br /&gt;
Se observa que las derivadas son muy grandes y la tangente a la solución real(método de Euler) aproxima muy mal la solución con ese paso tan ancho, el método de Runge kutta por contra aproxima bastante mejor ya que es de orden 4.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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.&lt;br /&gt;
Nuestro programa nos dice la concentración máxima de C y el instante n que se produce:&lt;br /&gt;
&lt;br /&gt;
Para k2=5  [C]max=0.275  en t=0.21&lt;br /&gt;
&lt;br /&gt;
para k2=1/5  [C]max=0.789 en t=1.1&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27115</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27115"/>
				<updated>2015-03-05T22:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución numérica cuando k2=5  [Apartado 7] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICA&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.3;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
%euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
GRAFICA CON H=0.3&lt;br /&gt;
&lt;br /&gt;
Se observa que las derivadas son muy grandes y la tangente a la solución real(método de Euler) aproxima muy mal la solución con ese paso tan ancho, el método de Runge kutta por contra aproxima bastante mejor ya que es de orden 4.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
GRAFICAS K=1/5 Y k=5 &lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27089</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27089"/>
				<updated>2015-03-05T22:21:56Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICA&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.3;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
%euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
GRAFICA CON H=0.3&lt;br /&gt;
&lt;br /&gt;
Se observa que las derivadas son muy grandes y la tangente a la solución real(método de Euler) aproxima muy mal la solución con ese paso tan ancho, el método de Runge kutta por contra aproxima bastante mejor ya que es de orden 4.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27067</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27067"/>
				<updated>2015-03-05T22:12:36Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICA&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
%euler&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27060</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=27060"/>
				<updated>2015-03-05T22:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución numérica cuando t→∞ [Apartado 4] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRAFICA&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25171</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25171"/>
				<updated>2015-03-04T15:51:18Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Problema de Valor Inicial (PVI) [Apartado 1] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: constante de velocidad de la reacción, generalmente depende de la temperatura(aquí es constante por que T es constante).&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Además de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25170</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25170"/>
				<updated>2015-03-04T15:49:34Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Problema de Valor Inicial (PVI) [Apartado 1] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
Análisis de la solución&lt;br /&gt;
y'(t) se trata de un polinomio de orden 2 con raíces iguales a &amp;quot;a0&amp;quot; y &amp;quot;b0&amp;quot; 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&amp;gt;0 por ser un polinomio y su derivada y''(t) también por ser un polinomio de orden uno.&lt;br /&gt;
&lt;br /&gt;
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&amp;lt;0 (físicamente no tiene sentido) para cumplir estrictamente el teorema de existencia y unicidad de la solución.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25167</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25167"/>
				<updated>2015-03-04T15:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Problema de Valor Inicial (PVI) [Apartado 1] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: concentración inicial de A.&lt;br /&gt;
* b0: concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir de acuerdo con la ley e acción de masas que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
Además es evidente que:&lt;br /&gt;
                        &amp;lt;big&amp;gt;y(t=0)=0    y  t&amp;gt;0&amp;lt;/big&amp;gt;&lt;br /&gt;
por lo que se trata de un PVI.&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25166</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=25166"/>
				<updated>2015-03-04T15:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Problema de Valor Inicial (PVI) [Apartado 1] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24717</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24717"/>
				<updated>2015-03-03T19:36:57Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
                                        &amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y como y(t), z(t) designan la cantidad que se forma de producto en el instante cero&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                         &amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); &lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(c+y(n)-z(n));&lt;br /&gt;
    %runge kutta &lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
%concentraciones&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24716</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24716"/>
				<updated>2015-03-03T19:23:41Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método del trapecio y de Runge Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
En éste apartado se aproxima numéricamente a la solución real utilizando los métodos de euler, del trapecio y de Runge kutta.&lt;br /&gt;
Dichas soluciones quedan grabadas en tres vectores distintos y, yt e yk respectivamente.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24715</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24715"/>
				<updated>2015-03-03T19:21:08Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución numérica cuando t→∞ [Apartado 4] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
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.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24714</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24714"/>
				<updated>2015-03-03T19:08:20Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método del trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24713</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24713"/>
				<updated>2015-03-03T19:08:06Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Runge Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método del trapecio y de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24712</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24712"/>
				<updated>2015-03-03T19:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Método de Runge Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1); %euler&lt;br /&gt;
yk=zeros(1,N+1);%trapecio&lt;br /&gt;
yt=zeros(1,N+1);%Runge kutta&lt;br /&gt;
y(1)=0;&lt;br /&gt;
yt(1)=0;&lt;br /&gt;
yk(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24424</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24424"/>
				<updated>2015-03-02T15:08:23Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24423</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24423"/>
				<updated>2015-03-02T15:07:26Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
clear all&lt;br /&gt;
%cambiando la constante de velocidad k2&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24422</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24422"/>
				<updated>2015-03-02T15:07:08Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
clear all&lt;br /&gt;
%cambiando la constante de velocidad k2&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24421</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24421"/>
				<updated>2015-03-02T15:06:48Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
clear all&lt;br /&gt;
%cambiando la constante de velocidad k2&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24420</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24420"/>
				<updated>2015-03-02T15:05:47Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&amp;lt;big&amp;gt;y′(t)=k1(a−y(t))(b−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;z′(t)=k2(c+y(t)-z(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;y(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;z(0)=0&amp;lt;/big&amp;gt;&lt;br /&gt;
Sabemos que es un problema de inicial con solución y que se puede resolver en cascada puesto que la segunda función no aparece en la primera.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
clear all&lt;br /&gt;
%cambiando la constante de velocidad k2&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24416</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24416"/>
				<updated>2015-03-02T14:56:38Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&amp;lt;big&amp;gt;A + B → C → D&amp;lt;/big&amp;gt;&lt;br /&gt;
Son dos reacciones consecutivas con k1 y k2 como constantes de velocidad y a,b,c como concentraciones iniciales.&lt;br /&gt;
por tanto las velocidades de reacción son respectivamente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
subplot(2,2,3)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
clear all&lt;br /&gt;
%cambiando la constante de velocidad k2&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24415</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24415"/>
				<updated>2015-03-02T14:53:57Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Sistema de dos ecuaciones diferenciales [Apartado 6] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
Ahora se presenta la siguiente reacción:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%en el caso de una segunda reacción con C como reactivo y D como producto&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
z=zeros(1,N+1);&lt;br /&gt;
zk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
z(1)=0;&lt;br /&gt;
k1=1;&lt;br /&gt;
k2=5;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k1*(a-y(n))*(b-y(n)));&lt;br /&gt;
    z(n+1)=z(n)+h*k2*(y(n)-z(n));&lt;br /&gt;
    %runge kutta&lt;br /&gt;
    kc1=k1*(a-yk(n))*(b-yk(n));&lt;br /&gt;
    kc2=k1*(a-yk(n)-0.5*h*kc1)*(b-yk(n)-0.5*h*kc1);&lt;br /&gt;
    kc3=k1*(a-yk(n)-0.5*h*kc2)*(b-yk(n)-0.5*h*kc2);&lt;br /&gt;
    kc4=k1*(a-yk(n)-h*kc3)*(b-yk(n)-h*kc3);&lt;br /&gt;
    yk(n+1)=yk(n)+(h/6)*(kc1+2*kc2+2*kc3+kc4);&lt;br /&gt;
    kz1=k2*(yk(n)-zk(n));&lt;br /&gt;
    kz2=k2*(yk(n)-zk(n)-0.5*h*kz1);&lt;br /&gt;
    kz3=k2*(yk(n)-zk(n)-0.5*h*kz2);&lt;br /&gt;
    kz4=k2*(yk(n)-zk(n)-h*kz3);&lt;br /&gt;
    zk(n+1)=zk(n)+(h/6)*(kz1+2*kz2+2*kz3+kz4);&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
C=y-z;&lt;br /&gt;
Ck=yk-zk;&lt;br /&gt;
D=z;&lt;br /&gt;
Dk=zk;&lt;br /&gt;
subplot(2,2,3)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,C,'r')&lt;br /&gt;
plot(t,Ck,'g')&lt;br /&gt;
plot(t,D,'r')&lt;br /&gt;
plot(t,Dk,'g')&lt;br /&gt;
legend('euler','runge kutta')&lt;br /&gt;
clear all&lt;br /&gt;
%cambiando la constante de velocidad k2&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=10;&lt;br /&gt;
h=0.03;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24413</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24413"/>
				<updated>2015-03-02T14:51:12Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
t0=0;&lt;br /&gt;
tn=5;&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=(tn-t0)/h;&lt;br /&gt;
t=t0:h:tn;&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yt=zeros(1,N+1);&lt;br /&gt;
yk=zeros(1,N+1);&lt;br /&gt;
y(1)=0;&lt;br /&gt;
k=1;&lt;br /&gt;
a=3;&lt;br /&gt;
b=1;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    y(n+1)=y(n)+h*(k*(a-y(n))*(b-y(n))); %euler&lt;br /&gt;
    yk(n+1)=(-2*h-1+sqrt((2*h+1)^2-4*(-0.5*h)*(-yk(n)-0.5*h*(6-4*yk(n)+yk(n)^2))))/(-h); %trapecio&lt;br /&gt;
    k1=(3-yt(n))*(1-yt(n));&lt;br /&gt;
    k2=(3-yt(n)-0.5*h*k1)*(1-yt(n)-0.5*h*k1);&lt;br /&gt;
    k3=(3-yt(n)-0.5*h*k2)*(1-yt(n)-0.5*h*k2);&lt;br /&gt;
    k4=(3-yt(n)-h*k3)*(1-yt(n)-h*k3);&lt;br /&gt;
    yt(n+1)=yt(n)+(h/6)*(k1+2*k2+2*k3+k4);%runge kutta&lt;br /&gt;
end&lt;br /&gt;
A=a-yk;&lt;br /&gt;
B=b-yk;&lt;br /&gt;
A1=a-y;&lt;br /&gt;
B1=b-y;&lt;br /&gt;
A2=a-yt;&lt;br /&gt;
B2=b-yt;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'g')&lt;br /&gt;
plot(t,yt,'b')&lt;br /&gt;
plot(t,A1,'r')&lt;br /&gt;
plot(t,B1,'r')&lt;br /&gt;
plot(t,yk,'g')&lt;br /&gt;
plot(t,A2,'b')&lt;br /&gt;
plot(t,B2,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('euler','trapecio','runge kutta')&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24410</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24410"/>
				<updated>2015-03-02T14:42:50Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución numérica cuando t→∞ [Apartado 4] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0 %velocidad inicial&lt;br /&gt;
while v&amp;gt;0.0001&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24409</id>
		<title>Reacciones complejas - Grupo 16 A</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_complejas_-_Grupo_16_A&amp;diff=24409"/>
				<updated>2015-03-02T13:45:27Z</updated>
		
		<summary type="html">&lt;p&gt;Arevalo: /* Resolución numérica cuando t→∞ [Apartado 4] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{ TrabajoED |  Reacciones complejas. (Grupo 16-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Arévalo Lecanda, Javier&lt;br /&gt;
&lt;br /&gt;
Buitrago Peña, Marcos&lt;br /&gt;
&lt;br /&gt;
Chamizo Carmona, Javier&lt;br /&gt;
&lt;br /&gt;
La Porta, Nicoletta &lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]]&lt;br /&gt;
 [[Categoría:ED14/15]]&lt;br /&gt;
 [[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
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.&lt;br /&gt;
  &amp;lt;big&amp;gt;A + B → C&amp;lt;/big&amp;gt;&lt;br /&gt;
Para nuestro ejercicio, supondremos varias cosas:&lt;br /&gt;
* La reacción ocurre para un volumen constante.&lt;br /&gt;
* La reacción ocurre para una temperatura constante.&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
==Problema de Valor Inicial (PVI) [Apartado 1]==&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
En esta ecuación tendremos varias constantes&lt;br /&gt;
* k1: Esta contante es la que nos da la proporcionalidad de la reacción.&lt;br /&gt;
* a0: Esta constante es la que determina la concentración inicial de A.&lt;br /&gt;
* b0: Esta constante es la que determina la concentración inicial de B.&lt;br /&gt;
Ademas de estas constantes tendremos también las variables:&lt;br /&gt;
* y(t): Esta variable nos da la concentración de C respecto al tiempo.&lt;br /&gt;
* y'(t): Es la derivada de y(t) respecto al tiempo.&lt;br /&gt;
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&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces deducir que la ecuación sera:&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ecuación diferencial si el proceso es reversible [Apartado 2]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tendríamos que añadir nuevos parámetros:&lt;br /&gt;
* k2: Ademas de tener k1, necesitaremos también conocer k2 que es la proporcionalidad de la reacción reversible.&lt;br /&gt;
* c0: Esta constante es la que determina la concentración inicial de C.&lt;br /&gt;
&lt;br /&gt;
Ahora solo tendríamos que reescribir la ecuación diferencial anterior restando le la descomposición de C en A y B.&lt;br /&gt;
  &amp;lt;big&amp;gt;y′(t)=k1(a0−y(t))(b0−y(t))−k2(c1+y(t))&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PVI con el método Euler [Apartado 3]==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Primero damos valores a nuestros parametros según el enunciado del trabajo:&lt;br /&gt;
* a0=3 mol/l&lt;br /&gt;
* b0=1 mol/l&lt;br /&gt;
* k1=1 mol/s&lt;br /&gt;
* h=0.1&lt;br /&gt;
* t: [0,2]&lt;br /&gt;
&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0; tf=2; %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf; &lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
for n=1:N&lt;br /&gt;
    yy=yy+h*(k1*(a0-yy)*(b0-yy));&lt;br /&gt;
    y(n+1)=yy;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','A','B')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida es:&lt;br /&gt;
[[Archivo:Ap3_2fig.jpg|marco|izquierda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando t→∞ [Apartado 4]==&lt;br /&gt;
Como no podemos operar con t=∞ debemos para el programa cuando el valor de las concentraciones se vuelva constante y la velocidad de reacción sea cero, como nuestra reaccíon es irreversible ésta terminará en el momento en que se acabe el reactivo limitante.&lt;br /&gt;
El siguiente programa funciona hasta que la velocidad es cero(momento en el que nos deja de interesar seguir operando)&lt;br /&gt;
Nuestro codigo sera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a0=3; b0=1; %Concentraciones iniciales de A y B&lt;br /&gt;
t0=0;  %Tiempos iniciales y finales&lt;br /&gt;
y0=0; %Tomamos la concentracion de C inicial como 0&lt;br /&gt;
k1=1; &lt;br /&gt;
h=0.1; %Paso &lt;br /&gt;
yy=y0;&lt;br /&gt;
n=1;&lt;br /&gt;
y(1)=y0&lt;br /&gt;
t(1)=t0;&lt;br /&gt;
v(1)=k1*a0*b0; %velocidad inicial&lt;br /&gt;
while v&amp;gt;0&lt;br /&gt;
    yy=yy+h*k1*(a0-yy)*(b0-yy);&lt;br /&gt;
    t(n+1)=t(n)+h;&lt;br /&gt;
    v(n)=k1*(a0-yy)*(b0-yy)&lt;br /&gt;
    n=n+1;&lt;br /&gt;
end&lt;br /&gt;
A=a0-y; %Concentracion de A&lt;br /&gt;
B=b0-y; %Concentracion de B&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'r')&lt;br /&gt;
plot(t,A,'b')&lt;br /&gt;
plot(t,B,'g')&lt;br /&gt;
legend('C','B','A')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Resolución por los métodos del trapecio y de Runge Kutta [Apartado 5]==&lt;br /&gt;
===Método del trapecio===&lt;br /&gt;
===Método de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sistema de dos ecuaciones diferenciales [Apartado 6]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=5  [Apartado 7]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resolución numérica cuando k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;=1/5 [Apartado 8]==&lt;br /&gt;
===Método de Euler===&lt;br /&gt;
===Metodo de Runge Kutta===&lt;/div&gt;</summary>
		<author><name>Arevalo</name></author>	</entry>

	</feed>