Diferencia entre revisiones de «Modelos de mezclas (Grupo 10)»

De MateWiki
Saltar a: navegación, buscar
Línea 120: Línea 120:
  
 
[[Archivo:COMPARACION SIN LIMPIEZA.png|800px|sinmarco|centro]]
 
[[Archivo:COMPARACION SIN LIMPIEZA.png|800px|sinmarco|centro]]
 +
 +
Como podemos apreciar en la gráfica la diferencia de aproximación entre ambos métodos es mínima, ya que de no ampliar la imagen las gráficas aparecen prácticamente superpuestas.
 +
 
=== Planteamiento del problema con la adición del tercer pantano ===
 
=== Planteamiento del problema con la adición del tercer pantano ===
  

Revisión del 17:59 5 mar 2013

1 Enunciado

1.1 Situación general

Dos pantanos A y B, con 100 [math]Hm^3[/math] de agua cada uno, que están unidos por una presa que deja pasar agua de A a B. El pantano A recibe 3 [math]Hm^3/día[/math] de agua limpia proveniente de ríos y el B 1.5 [math]Hm^3/día[/math]. Para mantener el nivel de los pantanos estable la presa de A a B deja pasar una media de 3 [math]Hm^3/día[/math] mientras que la presa al final de B desaloja 4.5 [math]Hm^3/día[/math]. Se produce un vertido tóxico en el pantano A que deja 20 toneladas de un cierto contaminante. Supongamos que se dan las siguientes hipótesis::

  • El contaminante está disuelto de forma homogénea en el agua de los pantanos.
  • Al entrar o salir agua en un pantano, ésta se mezcla con el agua del pantano de forma inmediata creando una mezcla homogénea.
  • La variación de contaminante en un lago es la diferencia entre el contaminante que entra y sale en el lago, es decir si denotamos por [math] x_A (t) [/math] la cantidad de contaminante en el lago A, se tiene:: [math] \frac{dx_A}{dt} = velocidad de entrada – velocidad de salida[/math]

centro


1.2 Situaciones posteriores

1.2.1 Adición de un tercer pantano

Se añade un tercer pantano que denominamos C. Éste se une al pantano B mediante una segunda presa que soltará 6 [math]Hm^3/día[/math] recibiendo 1.5 [math]Hm^3/día[/math] de agua limpia de ríos.

centro


1.2.2 Activación de un plan de limpieza

El plan de limpieza consiste en bombear 1 [math]Hm^3/día[/math] de agua del pantano B al A ajustando las cantidades de agua que dejan pasar las presas para mantener estables los niveles de los pantanos.

centro

2 Primer Apartado

Partiendo de que el plan de limpieza aún no se ha activado, denominamos [math] x_A [/math] y [math] x_B [/math] a las cantidades de contaminante de los pantanos A y B respectivamente, en un instante determinado. Del pantano A sabemos que la velocidad de entrada del contaminante es cero, ya que sólo entra agua limpia, mientras que la de salida la podemos expresar como la concentración de contaminante por la velocidad de salida. Por otro lado, del pantano B sabemos que la velocidad de entrada del contaminante coincide con la velocidad de salida del pantano A, y que la velocidad de salida se expresa como el producto de la concentración de contaminante en el pantano B por la velocidad de salida del mismo. Así mismo, se obtiene un sistema cuya resolución corresponde a un problema de valor inicial, en el que se tiene en cuenta que la concentracion inicial de contaminante en el pantano A es 20 y en el pantano B, cero.


2.1 Resolución del problema de valor inicial

centro

2.2 Método de Euler

%Sistema 1 aproximado por el método de Euler
t0=0; tN=100;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-3/100 0;3/100 -4.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
x=x+h*A*x;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
X1=20*exp(-3*t/100);
X2=40*(exp(-3*t/100)-exp(-4.5*t/100));
subplot(1,2,1)
hold on
plot(t,x1,'xg')
plot(t,x2,'-*')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2)
hold on
plot(t,X1,'--g')
plot(t,X2,'--')
xlabel('Cantidad de contaminante real')
hold off


centro

2.3 Método de Runge-Kutta

%Resolución del sistema 2 por el método Runge kutta
t0=0; tN=50;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-3/100 0;3/100 -4.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
k1=A*x;
k2=A*(x+1/2*k1*h);
k3=A*(x+1/2*k2*h);
k4=A*(x+k3*h);
x=x+(h*(k1+2*k2+2*k3+k4))/6;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
X1=20*exp(-3*t/100);
X2=40*(exp(-3*t/100)-exp(-4.5*t/100));
subplot(1,2,1);
hold on
plot(t,x1,'xg')
plot(t,x2,'-*')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2);
hold on
plot(t,X1,'--g')
plot(t,X2,'--')
xlabel('Cantidad de contaminante real')
hold off


centro


2.4 Comparación del método de Euler con el Runge-Kutta

centro

Como podemos apreciar en la gráfica la diferencia de aproximación entre ambos métodos es mínima, ya que de no ampliar la imagen las gráficas aparecen prácticamente superpuestas.

2.5 Planteamiento del problema con la adición del tercer pantano

Partiendo de los dos pantanos anteriores, incorporamos un tercero, tal y como se describe en el planteamiento inicial del documento. En este caso el objetivo será describir como varía el sistema de ecuaciones al unir el pantano C. Para ello partimos de las dos ecuaciones que obtuvimos anteriormente y planteamos una tercera. Respecto al pantano C sabemos que la concentración inicial de contaminante es cero, la velocidad de entrada del contaminante, que coincide con la velocidad de salida del pantano B, y la velocidad de salida de C la expresamos como el producto de la concentración del pantano C por la velocidad con que desaloja. Con esto obtenemos un sistema de tres ecuaciones con tres incógnitas.

centro

3 Segundo Apartado

En este apartado se activa el plan de limpieza descrito anteriormente. Resolvemos el nuevo sistema de ecuaciones por el método de Euler y el de Runge-Kutta.


centro

3.1 Método de Euler

t0=0; tN=100;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-4/100 0;4/100 -5.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
x=x+h*A*x;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
s=sqrt(73);
X1=(10/s)*exp(-19*t/400).*((s+3)*exp(s*t/400)+(s-3)*exp(-s*t/400));
Xprima=(10/s)*exp(-19*t/400).*(((-19+s)/400)*(s+3)*exp(s*t/400)+((-19-s)/400)*(s-3)*exp(-s*t/400));
X2=100*Xprima+4*X1;
subplot(1,2,1)
hold on
plot(t,x1,'xr')
plot(t,x2,'-*k')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2)
hold on
plot(t,X1,'--r')
plot(t,X2,'--k')
xlabel('Cantidad de contaminante real')
hold off


centro

3.2 Método Runge-Kutta

t0=0; tN=50;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-4/100 0;4/100 -5.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
k1=A*x;
k2=A*(x+1/2*k1*h);
k3=A*(x+1/2*k2*h);
k4=A*(x+k3*h);
x=x+h/6*(k1+2*k2+2*k3+k4);
x1(n+1)=x(1);
x2(n+1)=x(2);
end
s=sqrt(73);
X1=(10/s)*exp(-19*t/400).*((s+3)*exp(s*t/400)+(s-3)*exp(-s*t/400));
Xprima=(10/s)*exp(-19*t/400).*(((-19+s)/400)*(s+3)*exp(s*t/400)+((-19-s)/400)*(s-3)*exp(-s*t/400));
X2=100*Xprima+4*X1;
subplot(1,2,1);
hold on
plot(t,x1,'xr')
plot(t,x2,'-*k')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2);
hold on
plot(t,X1,'--r')
plot(t,X2,'--k')
xlabel('Cantidad de contaminante real')
hold off


centro


4 Comparación del método de Euler con el de Runge-Kutta

centro

Como podemos apreciar en la gráfica la diferencia de aproximación entre ambos métodos es mínima, ya que de no ampliar la imagen las gráficas aparecen prácticamente superpuestas.

5 Contaminante inicial desconocido

En este apartado desconocemos la cantidad de contaminante inicial, pero sabemos que tras unos días se redujo el contaminante a solo una tonelada en A y dos en B según los datos del enunciado. Se pide estimar la cantidad de contaminante que se vertió inicialmente. Procedemos a la estimación mediante el método de Euler, pero para los datos que se ofrecen la solución no es posible, pues ambas funciones, la del contaminate en A y la del contaminante en B, se van al infinito.

Para solucionar este problema hemos procedido a cambiar el dato numérico del contaminante en B por el más próximo posible a él que si permita solución, 1.9, obteniendo así el siguiente programa y la gráfica que se presenta a continuación:

t0=0; tN=-210;
x0=[1 1.9]';
N=500; h=(tN-t0)/N;
A=[-3/100 0;3/100 -4.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
x=x+h*A*x;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
hold on
plot(t,x1,'-xg')
plot(t,x2,'--*')
hold off


centro


Una vez que tenemos la gráfica, para estimar el contaminante inicial y el tiempo que ha pasado hasta tener los datos acutales, trazamos una línea horizontal a la altura del 0 hasta que corte con la función de B, pues en el momento del vertido en A, en el pantano B la cantidad de contaminante es 0. En el punto de corte en B marcamos una perpendicular hasta que corte a A y en ese punto estará la cantidad de contaminante vertido. Para terminar reflejamos en el eje de abcisas el momento de corte con A y así saber hace cuántos días fue el vertido. Gráficamente:

centro