You are on page 1of 6

Ecuaciones en Derivadas Parciales

Juan Cruz Mattan


Mtodos numricos
Instituto Balseiro
Universidad Nacional de Cuyo
2017

Se plante un sistema de ecuaciones lineales para la resolucin de la ecuacin de calor de Laplace en dos
dimensiones. Se utiliz el mtodo de Gauss-Seidel para encontrar dicha solucin y se analizaron distintos criterios
de parada para el mismo, concluyendo que el mejor criterio es el del residuo.

1. Introduccin
Un problema de especial inters en distintas reas de la fsica e ingeniera es el de resolver ecuaciones
diferenciales. En ciertos casos la complejidad de las mismas es tal que no es posible hallar su solucin analtica.
Ejemplos de esto son las ecuaciones de Navier-Stokes, Euler, entre otras. Para estos casos la nica alternativa
posible es tratar de encontrar una solucin aproximada utilizando mtodos numricos para resolver el problema.
En este trabajo se implementar el mtodo de diferencias finitas [1] para resolver la ecuacin diferencial
de Laplace, que describe el comportamiento de la temperatura sobre una placa rectangular. En particular se
analizar el siguiente problema:
2 2

T2 + T2 = 0 en = [0, 2]x[0, ]




x y

T (0, y) = 0
T (2, y) = y( y) (1)





T (x, 0) = 0


T (x, ) = 0

La estrategia para este tipo de problemas es discretizar el dominio, en este caso se dividi el dominio de x
en Nx + 1 subintervalos y el de y en Ny + 1. De esta manera se obtienen los puntos xi e yj , y para simplificar
an mas el problema se fij Ny = (Nx 1)/2 obteniendo intervalos de igual longitud para x e y.
Si se define un nodo como la posicin Ti,j = T (xi , yj ) dentro del dominio y partiendo de la ecuacin para
diferencias centradas de segundo orden podemos plantear la siguiente ecuacin:

Ti1,j + Ti+1,j + Ti,j1 + Ti,j+1 4Ti,j = 0 (2)


para un nodo Ti,j .
Teniendo en cuenta las condiciones de borde del problema podemos plantear una ecuacin para cada nodo
interno. Planteando este sistema de ecuaciones de forma matricial queda escrito como:

AT = b (3)
en donde T = (T1,1 , T1,2 , ..., T1,Ny , ..., TNx ,Ny )T , b tiene en cuenta las condiciones de borde y A es una matriz de
la forma:

D Id 0 0
Id D Id 0

..
A= 0 Id D . (4)
. .. ..
.. . . Id
0 0 Id D

1
en donde Id es la matriz identidad de orden Ny y D es

4 1 0 0
1 4 1 0

..
D= 0 1 4 .
(5)
. .. ..
.. . . 1
0 0 1 4

Para resolver el sistema de ecuaciones se utiliz el mtodo de Gauss-Seidel y se analizaron tres criterios
para la convergencia del mismo. Teniendo en cuenta que el mtodo es iterativo se analiz en un primer caso la
diferencia entre dos iteraciones sucesivas:

T (n) T (n1)
, (6)
Nx Ny
en un segundo caso el residuo:
b AT (n)
(7)
Nx Ny
y finalmente la diferencia entre la solucin numrica y la solucin analtica:

T (n) Texacto

. (8)
Nx Ny

2. Resultados y discusin
Se implement el mtodo de diferencias finitas para resolver el problema detallado en la Seccin 1 en el
software de clculo numrico Octave. Para poder caracterizar los distintos criterios de parada para el mtodo
de Gauss-Seidel se resolvi el problema utilizando dos discretizaciones distintas, una con Nx = 19 y otra con
Nx = 39.
En la Figura 1 se muestra la distribucin de temperaturas obtenidas utilizando Nx = 39, como se puede ver
es compatible con la solucin esperada.

Figura 1: Distribucin de temperaturas obtenidas discretizando el dominio en Nx Ny = 741 nodos.

En las Figura 2 y 3 se muestra el valor de los distintos criterios de parada en funcin de la cantidad de
iteraciones realizadas para las distintas discretizaciones. Como se puede ver la diferencia entre dos iteraciones
sucesivas y el residuo tienden a disminuir su magnitud conforme aumenta el numero de iteraciones. Esto es
de esperar debido a que para este caso, el mtodo de Gauss-Seidel converge a la solucin del sistema AT = b
ya que A es dominante. Sin embargo el error absoluto cometido solo converge a cero cuando la cantidad de
puntos discretizados tiende a infinito, es decir hay un error debido a la discretizacin que va a ser imposible de

2
Figura 2: Error segn el criterio de parada en funcin del numero de iteraciones del metodo de Gauss-Seidel al
resolver el problema discretizando el dominio en Nx Ny = 171 nodos.

Figura 3: Error segn el criterio de parada en funcin del numero de iteraciones del metodo de Gauss-Seidel al
resolver el problema discretizando el dominio en Nx Ny = 741 nodos.

3
mejorar al aumentar las iteraciones. Como se puede ver en las Figuras 2 y 3 el error absoluto es menor cuando
la discretizacin es mas grande.
Teniendo en cuenta que no siempre se cuenta con la solucin analtica de un problema, el mejor criterio
para juzgar el error cometido es el del residuo ya que si la convergencia es muy lenta, la diferencia entre dos
iteraciones sucesivas puede ser muy pequea y pero no el error cometido.
Teniendo en cuenta que el problema a resolver numricamente consiste en encontrar la solucin a un sistema
de ecuaciones se podra pensar en resolver el sistema mediante algn otro mtodo, como por ejemplo el de
factorizacin LU. Analizando el problema podemos ver que la matriz A es dominante y tiene la mayora de
sus elementos nulos, facilitando los clculos del mtodo de Gauss-Seidel. Al realizar la descomposicin LU la
cantidad de elementos no nulos en las matrices L y U es mayor que en A, aumentando el tiempo de clculo.
Adems el mtodo LU depende del orden de A, y esta a su vez depende del ordenamiento del vector de incognitas
T , en este caso Nx es mayor que Ny por lo que el ordenamiento es el correcto.

3. Conclusin
Utilizando el mtodo de diferencias finitas centradas de segundo orden se hall la distribucin estacionaria de
temperaturas sobre una placa rectangular. Se estudi la convergencia del mtodo de Gauss-Seidel a la solucin
exacta utilizando distintas discretizaciones. Como resultado se obtuvo un error mnimo para cada discretizacin
que depende del numero de nodos del sistema a resolver y no de la cantidad de iteraciones realizadas al resolver
el sistema. Se concluye que para los casos en donde no se conoce la solucin analtica del problema el criterio
del residuo es el mas recomendado para determinar la convergencia.

Referencias
[1] Richard L.Burden. Numerical Analysis. Brooks Cole, 9 edition, 2000.

4
Apndice
A. Cdigo en lenguaje Octave utilizado
1 clear all;
2 kMax=1500;
3 Nx=19;
4 Ny=(Nx-1)/2;
5 n=Nx*Ny;
6

7 solucionNumerica = zeros(Ny+2,Nx+2);
8 solucionExacta = zeros(Ny+2,Nx+2);
9 XExacto = zeros(n,1);
10

11 %solucion exacta
12 for xi=1:Nx
13 x=(2*pi*(xi))/(Nx+1);
14 for yi=1:Ny
15 y=(pi*(yi))/(Ny+1);
16 for nn = 0:10
17 auxN1=exp((2*nn+1)*(x-2*pi));
18 auxN2=(1-exp(-2*(2*nn+1)*x));
19 auxN3=sin((2*nn+1)*y);
20 auxD1=(1-exp(-2*(2*nn+1)*2*pi));
21 auxD2=(2*nn+1)^3;
22 XExacto((xi-1)*Ny+yi) += auxN1*auxN2*auxN3/(auxD1*auxD2);
23 end
24 XExacto((xi-1)*Ny+yi)*=8/pi;
25 end
26 end
27

28 %armo la matriz A
29 v = ones(n-1,1);
30 for k = 1:n-1
31 if int16(k/Ny) == k/Ny
32 v(k) = 0;
33 end
34 end
35

36 S1 = sparse([1:n],[1:n],-4,n,n);
37 S2 = sparse([1:n-1],[2:n],v,n,n);
38 S3 = sparse([2:n],[1:n-1],v,n,n);
39 S4 = sparse([1:n-Ny],[Ny+1:n],1,n,n);
40 S5 = sparse([Ny+1:n],[1:n-Ny],1,n,n);
41 A = S1+S2+S3+S4+S5;
42

43 %vector de cond iniciales


44 b=zeros(n,1);
45 for j=1:Ny
46 yj = pi*j/(Ny+1);
47 b(n-Ny+j)=-yj*(pi-yj);
48 solucionNumerica(1+j,Nx+2)=yj*(pi-yj);
49 solucionExacta(1+j,Nx+2)=yj*(pi-yj);
50 end

5
51

52 %gauss seidel
53 X = zeros(length(b),1);
54 D = diag(diag(A));
55 B = (full(A)-D);
56 T = sparse(-inv(D)*B);
57 c = sparse(inv(D)*b);
58

59 errorNorma=zeros(kMax,1);
60 errorResiduo=zeros(kMax,1);
61 errorExacto=zeros(kMax,1);
62 itMax=zeros(kMax,1);
63

64 l=1;
65 for k = [1:kMax]
66

67 Xn= T*X+c;
68 errorNorma(l)=norm(Xn-X)/n;
69 X= Xn;
70

71 errorResiduo(l)=norm(b-A*X)/n;
72 errorExacto(l)=norm(X-XExacto)/n;
73 itMax(l)=k;
74 l++;
75 end
76

77 l=1;
78 for j=2:(Nx+1)
79 for i = 2:(Ny+1)
80 solucionNumerica(i,j) = X(l);
81 solucionExacta(i,j) = XExacto(l);
82 l++;
83 end
84 end
85

86 data=[itMax errorNorma errorResiduo errorExacto];


87

88 save data.dat data


89 save solucionnumerica.dat solucionNumerica
90 save solucionexacta.dat solucionExacta

You might also like