You are on page 1of 17

Facultad de Ingeniera | Universidad de Buenos Aires

2do. Cuatrimestre | 2015

75.12 | Anlisis Numrico I


95.10 | Modelacin Numrica
95.13 | Mtodos Matemticos y Numricos
Trabajo Prctico #2
Modelo Parablico para la Pluma de Contaminacin en un Ro

Grupo N

19

Manuel Kronhaus

Fecha

91749

Correcciones

Calificacin Final

Docente

Docente

Fecha

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Introduccin
En el presente trabajo se analiz la pluma de contaminacin dejada por la descarga de aguas
negras desde un emisario al lecho de un rio.
Se tomaron datos representativos del rio Paran de las Palmas y la distribucin espacial del
contaminante se hall resolviendo la siguiente ecuacin diferencial:

: "concentracin media vertical del contaminante"


: "velocidad media de la corriente"
: "difusividad lateral"

: "tasa de decaimiento"
La difusividad lateral se calcul con la siguiente expresin:
=

"

: "profundidad"

: "coeficiente de difusividad lateral"


": "factor de friccin"

La zona en estudio es un tramo relativamente recto de rio, representado como un rectngulo de largo
2 kilmetros y ancho 300 metros. Los valores de los parmetros se detallan a continuacin:
= 10 &
= 0.8

" = 0.04

&
)

= 0.1

= 0.3

1
,-.

= 10

01
2

(concentracin

en la desembocadura del emisario)

Planteo del problema


Para resolver la ecuacin diferencial se discretiz el rio y se aplic a cada nodo el mtodo de Crank
Nicolson (w = 0.5), un mtodo de diferencias finitas usado para la resolucin de ecuaciones en
derivadas parciales, junto con la condicin inicial del emisario y los valores de frontera.
Condicin inicial
30, 5 = 6 /
0

= 50 &
50 &

Pgina 1 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Condiciones de borde
3 , 05 =

3 , 3005 = 0

Estas condiciones implican que para los nodos i = 1 e i = n de cada paso se imponga la siguiente
igualdad:
9,:;<

9,:;<

9;<,:;<

9?<,:;<

=.>. - = 1

=.>. - = @

Siendo n la cantidad de nodos en direccin transversal de la discretizacin.


A travs de la ecuacin de Crank Nicolson y las condiciones de borde se lleg al sistema de
ecuaciones lineales a resolver, hallndose la matriz A del sistema A = B.

Figura 1 Discretizacin implcita de Crank - Nicolson (en azul incgnitas).

9,:;<

9,:

DE F

9?<,:

2 9,: H

9;<,:

I H 31 E5 F

9?<,:;<

9,:;<

9;<,:;<

IJ

Separando de un lado las incgnitas y del otro lado los valores de la concentraciones en el paso
anterior, se obtiene la forma genrica de la matriz A y el vector b, respectivamente.

2
31 E5L 9,:;<
31 E5

2
E 9?<,: H F
E I 9,: H
E 9;<,:

31 E5

9?<,:;<

H K

Pgina 2 de 16

9;<,:;<

9,:

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Representando en forma matricial el lado izquierdo de la igualdad e incluyendo la condicin de borde:


1

O
N
N
N
N
N
N
N
N
N
N

2
K H

U
T O
T N
2

0
T N
K H
0

31 E5
31 E5L

31 E5
0

T N
TN
2
T N
K H
0
0

31 E5
31 E5L
31 E5

T N
T N

T N
2
31 E5 K H
31 E5L
31 E5T

M
M
S
VWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWY
0
1
1
31 E5

31 E5L

31 E5

<,:;<

,:;<

Z,:;<
[,:;<

9,:;<

\?<,:;<
\,:;<

U
T
T
T
T
T
T
T
T
S

De manera anloga con el lado derecho:


0

E
O

N
N 0
N
N
N 0
N
N
N

2
F

2
F

U O
T N
T N
T N
TN
T N
T N
T N
T
E N

2
E F
E I
0

M
VWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWY
0
0
0 S M

<,:
,:

Z,:
[,:

9,:

\?<,:
\,:

As, el sistema de ecuaciones lineales a resolver para cada paso j ser:


___`
A _______`
^;< = ] ^

Discretizacin y resolucin del problema


Se discretiz el rio con un paso transversal y longitudinal de 5 metros, ya que se comprob a base
de prueba y error que este paso es el que mejores resultados arroja.
Se resolvi el sistema hasta 1000 metros aguas abajo del emisario con distintos mtodos de
resolucin de S.E.L.
Para el mtodo iterativo se tom como criterio de corte que el error relativo entre iteraciones sea
menor o igual a 10-4.

Resultados

Eliminacin Gaussiana:

Pgina 3 de 16

U
T
T
T
T
T
T
T
T
S

Modelacin Numrica 95.10

T.P. Nro. 2

Factorizacin de Doolittle

Pgina 4 de 16

Grupo Nro. 19

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Mtodo de Gauss-Seidel

Factorizacin de Cholesky
Una de las condiciones necesarias para realizar la factorizacin de Cholesky de una matriz es que
esa matriz sea definida positiva. Como la matriz de nuestro problema no es simtrica no se puede
realizar dicha factorizacin.

Comparacin de resultados
Para lograr una comparacin ms clara de los resultados obtenidos con los distintos mtodos se
grafic las concentraciones para distintos cortes transversales (50 m, 100 m, 250 m y 500 m aguas
debajo de la descarga). Se observ que los resultados obtenidos con los mtodos directos coinciden
en un 100% mientras que los resultados obtenidos con el mtodo iterativo de Gauss-Seidel difieren
de los otros dos. Esta diferencia se hace ms pronunciada en zonas alejadas del emisario, esto se
debe a que las concentraciones all son menores y los errores de redondeo presentes en los
mtodos directos son mayores.

Pgina 5 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Corte a 50 m

Pgina 6 de 16

Grupo Nro. 19

Modelacin Numrica 95.10

T.P. Nro. 2

Corte a 100 m

Pgina 7 de 16

Grupo Nro. 19

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Corte a 250 m

Corte a 500 m

Costo computacional
Se evalu el costo computacional de cada mtodo hallndose la cantidad de operaciones realizadas
y el tiempo en que tarda para dar los resultados.
La cantidad de operaciones en los mtodos directos se aproxim con la siguiente formula:
2
3
7
a)bac9defgh = F @Z H @ @I &
3
2
6

Siendo n y m la cantidad de nodos transversales y laterales, respectivamente.

Pgina 8 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

En el mtodo indirecto, la cantidad de operaciones est dada por la suma de todas las iteraciones en
cada paso.

Mtodo
Eliminacin Gaussiana
Factorizacin de Doolittle
Gauss-Seidel

Tiempo [seg]
0.018815
0.057109
0.363802

Cantidad de operaciones
31523031
31523031
1005
Tabla 1 Costo Computacional.

Se observa que el costo computacional en el mtodo indirecto es mucho menor que en los directos.

Distancia mnima del emisario a la costa


Para hallar esta distancia se decidi bajar la discretizacin a 2 metros para lograr una mayor
precisin.
Se fue acercando hacia la costa la desembocadura del emisario hasta encontrar la distancia mnima
en donde las concentraciones del contaminante sobre la costa no superen los 0.5 mg/l.
Se encontr que la distancia crtica es de 20 metros.

Distancia al emisario en donde la pluma es insignificante


Para este inciso se baj la discretizacin en x a 1 metro para una mayor precisin en el resultado.
Se cre un algoritmo que para cada paso en x halle la mxima concentracin del contaminante. Si
esa concentracin es menor o igual a 0.005 mg/l el algoritmo para y da como resultado la distancia
pedida.
Se encontr que a unos 833 metros del emisario la pluma de contaminacin resulta ser
insignificante.

Ensayos de sensibilidad de parmetros


Se resolvi el problema con el mtodo de Gauss-Seidel haciendo variar distintos parmetros para
analizar su influencia en los resultados. En cada caso se compararon tres valores, el original del
problema, uno menor y otro mayor.

Velocidad media del rio


Para la velocidad media, se tomaron el valor mximo de velocidad del rio Paran de 5 km/h y
un valor mnimo de 1.8 km/h. Para comparar los resultados, se grafic la evolucin de las
concentraciones mximas a lo largo del recorrido de la pluma. Los resultados para los
distintos valores de U no presentaron demasiada diferencia, demostrando as que no se
comete demasiado error al tomar como constante la velocidad de escurrimiento.

Pgina 9 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Constante de decaimiento
Se procedi de manera anloga a la velocidad con la constante de decaimiento . Se
observ una pequea variacin en las concentraciones mximas para = 10 1/da.

Pgina 10 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Coeficiente de difusividad lateral


Se evalu la evolucin transversal de la concentracin del contaminante a 100 metros de la
descarga del emisario para tres valores de eT. Se observ una gran variacin entre los
resultados obtenidos para una pequea variacin en el valor del parmetro.

Pgina 11 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Conclusiones Generales
La resolucin de una pluma de contaminacin en un rio nos permiti evaluar los distintos mtodos
de resolucin de sistema de ecuaciones lineales y al mismo tiempo conocer las caractersticas de un
problema comn en la ingeniera sanitaria, como lo es el transporte y tratamiento de las aguas
residuales.
Con respecto a los mtodos de resolucin del problema, se concluy que el mtodo indirecto de
Gauss-Seidel es el mejor debido a su poco gasto computacional y error en los resultados.
Se pudo verificar el correcto funcionamiento del emisario al no presentarse grandes concentraciones
de contaminante cerca de la orilla habitable y al lograr una rpida difusin longitudinal del
contaminante.
De los parmetros que influyen en la concentracin del contaminante se encontr mediante un
ensayo de sensibilidad que la difusividad lateral es el que ms influye en los resultados finales,
siendo ste el parmetro a modificar en un futuro si se requiere modificar la dispersin de las
concentraciones.

Pgina 12 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

Anexos: Cdigos
1. Creacin del S.E.L.

clear all
%Datos
h = 10; U = 1.4; e_T = 0.8; f = 0.04; k = 0.1/86400;
C_0 = 10; w = 0.5;
D_T = f*e_T*U*h;
largo = 1000;
ancho = 300;
Delta_x = 5;
Delta_y = 5;
n = ancho/Delta_y + 1;
m = largo/Delta_x + 1;
%Matriz A
for i = 1:n
for j = 1:n
if i ==1 && j ==1 ||i==n && j== n
A(i,j) = 1;
elseif i == 1 && j ==2 || i == n && j == n-1
A(i,j) = -1;
elseif i>= 2 && i<= n-1
A(i,i-1) = -D_T*(1-w)/(Delta_y)^2;
A(i,i) = 2*D_T*(1-w)/(Delta_y)^2 + U/Delta_x;
A(i,i+1) = -D_T*(1-w)/(Delta_y)^2;
end
end
end
%Matriz B
for i = 1:n
if i>= 2 && i<= n-1
B(i,i-1) = D_T*w/(Delta_y)^2;
B(i,i) = U/Delta_x - 2*D_T*w/(Delta_y)^2 - k;
B(i,i+1) = D_T*w/(Delta_y)^2;
else
B(i,i) = 0;
end
end
save('A','A');
save('B','B');save('Delta_x','Delta_x');save('Delta_y','Delta_y');
save('n','n');save('m','m');save('largo','largo');save('ancho','ancho')

2. Eliminacin Gaussiana

clear all
load('B.mat'); load('A.mat');
load('Delta_x.mat'); load('m.mat')
load ('largo.mat'); load('ancho.mat')
load('Delta_y.mat'); load('n.mat');

Pgina 13 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

C_0 = 10;
% Triangulizacin (matriz U)
for i=2:n
U(1,:) = A(1,:);
multi(1,1) = 0;
multi(i,i-1) = A(i,i-1)/U(i-1,i-1);
U(i,:) = A(i,:) - multi(i,i-1)*U(i-1,:);
end
%Condicin inicial
for i=1:n
if i == 50/Delta_y + 1
C_Gauss(i,1) = C_0;
else
C_Gauss(i,1) = 0;
end
end
tic
%Sustitucin inversa
for j = 1:m-1
b(:,j) = B*C_Gauss(:,j);
for i = 1:n
if i==1
si(i,j) = b(1,j);
else
si(i,j) = b(i,j) - multi(i,i-1)*si(i-1,j);
end
end
C_Gauss(n,j+1) = si(n,j)/U(n,n);

for q = 1:n-1
suma = 0;
for k = 1:n
suma = suma + U(n-q,k)*C_Gauss(k,j+1);
end
C_Gauss(n-q,j+1) = (si(n-q,j) - suma)/U(n-q,n-q);
end
end
toc
Costo = (2/3*n^3 + 3/2*n^2 - 7/6*n)*m;
save('U','U');save('multi','multi');save('C_Gauss','C_Gauss')
X = 0:Delta_x:largo;
Y = 0:Delta_y:ancho;
surf(X,Y,C_Gauss)

3. Factorizacin de Doolittle

clear all
load('A.mat');load('B.mat');load('U.mat');load('multi.mat');

Pgina 14 de 16

Grupo Nro. 19

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

load('Delta_x.mat');load('Delta_y.mat');load('n.mat');load('m.mat');
load('ancho.mat');load('largo.mat');
C_0 = 10;
for j = 1:n
for i = 1:n
if i==j
L(i,i) = 1;
elseif i>= j+1
L(i,j) = multi(i,j);
end
end
end
for i=1:n
if i == 50/Delta_y + 1
C_Doolittle(i,1) = C_0;
else
C_Doolittle(i,1) = 0;
end
end
tic
for j=1:m-1
b(:,j) = B*C_Doolittle(:,j);
for i = 1:n
suma = 0;
for k =1:i-1
suma = suma + L(i,k)*y(k,j);
end
y(i,j) = b(i,j) - suma;
end
C_Doolittle(n,j+1) = y(n,j)/U(n,n);
for i = 1:n-1
suma = 0;
for k = n-i+1:n
suma = suma + U(n-i,k)*C_Doolittle(k,j+1);
end
C_Doolittle(n-i,j+1) = (y(n-i,j) - suma)/U(n-i,n-i);
end
end
toc
save('C_Doolittle','C_Doolittle')
X = 0:Delta_x:largo;
Y = 0:Delta_y:ancho;
surf(X,Y,C_Doolittle)

4. Mtodo de Gauss-Seidel

clear all
load('A.mat');load('B.mat');
load('Delta_x.mat');load('Delta_y.mat');load('n.mat');load('m.mat');

Pgina 15 de 16

Modelacin Numrica 95.10

T.P. Nro. 2

Grupo Nro. 19

load('ancho.mat');load('largo.mat')
C_0 = 10;
tolerancia = 0.0001;
d = 50;
for i=1:n
if i == d/Delta_y + 1
C_GS1(i,1) = C_0;
else
C_GS1(i,1) = 0;
end
end
tic
for j = 1:m-1
b(:,j) = B*C_GS1(:,j);
for k = 1:1000
GS(n,1) = 0;
for i=1:n
suma1 = 0;
suma2 = 0;
for q = 1:i-1
suma1 = suma1 + A(i,q)*GS(q,k+1);
end
for q = i+1:n
suma2 = suma2 + A(i,q)*GS(q,k);
end
GS(i,k+1) = (b(i,j) - suma1 - suma2)/A(i,i);
end
error = norm(GS(:,k+1) - GS(:,k),inf)/norm(GS(:,k+1),inf);
if error <= tolerancia
break
end
C_GS1(:,j+1) = GS(:,k);
end
end
toc
Costo = k*m;
save('C_GS1','C_GS1')
X = 0:Delta_x:largo;
Y = 0:Delta_y:ancho;
surf(X,Y,C_GS1)

Pgina 16 de 16

You might also like