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

De MateWiki
Saltar a: navegación, buscar
(Segundo Apartado)
(Contaminante inicial desconocido)
Línea 208: Línea 208:
 
== Contaminante inicial desconocido ==
 
== Contaminante inicial desconocido ==
  
En este apartado desconocemos la cantidad de contaminante inicial pero sabemos que tras unos días se redujo el contaminante a sólo una tonelada en A y dos en B. Se pide estimar la cantidad de contaminante que se vertió inicialmente. Procedemos a la estimación mediante el método de Euler:
+
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:  
  
 
{{matlab|codigo=
 
{{matlab|codigo=

Revisión del 17:07 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 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 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

Para estimar el contaminante inicial, trazamos una línea horizontal a la altura del 0 hasta que corte con la gráfica y obtenemos:

centro