1. 225
10.3 Ecuaciones diferenciales parciales de tipo elíptico
Este tipo de ecuaciones se caracteriza porque su dominio es una región cerrada. Para aplicar
el método de diferencias finitas usaremos un ejemplo particular para posteriormente interpretar
los resultados obtenidos.
Ejemplo. Resolver la ecuación de difusión en dos dimensiones:
u(x,y):
2 2
2 2
u u
0
x y
∂ ∂
+ =
∂ ∂
Suponer que u es una función que depende de x, y, en donde u representa valores de
temperatura, x, y representan posición.
Esta ecuación se puede asociar al flujo de calor en una placa muy delgada aislada
transversalmente y sometida en los bordes a alguna condición. La solución representa la
distribución final de temperaturas en la placa en cada punto (x, y)
Ta, Tb, Tc, Td son valores de temperatura, suponer constantes, de alguna fuente de calor
aplicada en cada borde de la placa. L1, L2 son las dimensiones de la placa.
Estas condiciones se pueden expresar simbólicamente en un sistema de coordenadas X-Y:
u=u(x,y), 0 ≤ x ≤ L1, 0 ≤ y ≤ L2
u(0, y) = Ta, 0 < y < L2
u(L1, y) = Tb, 0 < y < L2
u(x, 0) = Tc, 0 < x < L1
u(x, L2) = Td, 0 < x < L1
Para aplicar el método de diferencias finitas, debe discretizarse el dominio de u
u(xi, yj) = ui,j ; i = 0, 1, ..., n; j = 0, 1, 2, ..., m
El método de diferencias finitas permitirá encontrar u en estos puntos.
Para el ejemplo supondremos los siguientes datos, en las unidades que correspondan
Ta = 60
Tb = 40
Tc = 50
Td = 80
L1 = 2
L2 = 1.5
Supondremos además que ∆x = 0.5, ∆y = 0.5
Con esta información describimos el dominio de u mediante una malla con puntos en dos
dimensiones en la cual el eje horizontal representa la posición xi mientras que el eje vertical
representa yj. En esta malla se representan los datos en los bordes y los puntos interiores que
deben ser calculados
2. 226
10.3.1 Un esquema de diferencias finitas implícito
Elegimos las siguientes aproximaciones de diferencias finitas para sustituir las derivadas de la
ecuación diferencial
2
i,j i 1,j i,j i 1,j 2
2 2
u u 2u u
O( x)
x ( x)
+ −∂ − +
= + ∆
∂ ∆
2
i,j i,j 1 i,j i,j 1 2
2 2
u u 2u u
O( y)
y ( y)
+ −∂ − +
= + ∆
∂ ∆
i 1,j i,j i 1,j
2
u 2u u
( x)
+ −− +
∆
+ O(∆x)
2
+
i,j 1 i,j i,j 1
2
u 2u u
( y)
+ −− +
∆
+ O(∆y)
2
= 0
Se obtiene la ecuación de diferencias
i 1,j i,j i 1,j
2
u 2u u
( x)
+ −− +
∆
+
i,j 1 i,j i,j 1
2
u 2u u
( y)
+ −− +
∆
= 0
Cuyo error de truncamiento es E = O(∆x)
2
+ O(∆y)
2
Para que esta sustitución sea consistente, ∆x debe ser muy cercano a ∆y en magnitud.
Es conveniente analizar los puntos incluidos en la ecuación de diferencias. Para esto
consideramos un segmento de la malla y marcamos los puntos de la ecuación.
Los puntos marcados conforman un rombo. Este rombo describe los puntos incluidos en la
ecuación de diferencias y puede colocarse en cualquier lugar de la malla asignando a i, j los
valores apropiados.
Por ejemplo, si i=1, j=1, la ecuación de
diferencias se aplica al extremo inferior
izquierdo de la malla.
Se puede observar que la ecuación de
diferencias contiene tres puntos
desconocidos
3. 227
Si se aplica a todos los puntos interiores: i = 1, 2, 3 con j = 1, 2 se obtendrá un sistema de
seis ecuaciones lineales con los seis puntos desconocidos cuyos valores se pueden determinar
resolviendo el sistema. Por lo tanto, la ecuación de diferencias proporciona un método
implícito para obtener la solución. Una simplificación adicional se obtiene haciendo ∆x = ∆y
i 1,j i,j i 1,j
2
u 2u u
( x)
+ −− +
∆
+
i,j 1 i,j i,j 1
2
u 2u u
( y)
+ −− +
∆
= 0
Forma final de la ecuación de diferencias:
i 1,j i 1,j i,j 1 i,j 1 i,ju u u u 4u 0− + − ++ + + − =, i = 1, 2, 3; j = 1, 2
Esta ecuación se aplica para en la malla para generar el sistema de ecuaciones lineales
j = 1, i = 1: 60 + 50 + u2,1 + u1,2 - 4u1,1 = 0 ⇒ -4u1,1 + u2,1 + u1,2 = -110
i = 2: 50 + u1,1 + u3,1 + u2,2 - 4u2,1 = 0 ⇒ u1,1 - 4u2,1 + u3,1 + u2,2 = -50
i = 3: 50 + 40 + u3,2 + u2,1 - 4u3,1 = 0 ⇒ u2,1 - 4u3,1 + u3,2 = -90
j = 2, i = 1: 60 + 80 + u1,1 + u2,2 - 4u1,2 = 0 ⇒ u1,1 - 4u1,2 + u2,2 = -140
i = 2: 80 + u1,2 + u2,1 + u3,2 - 4u2,2 = 0 ⇒ u2,1 + u1,2 - 4u2,2 + u3,2 = -80
i = 3: 80 + 40 + u2,2 + u3,1 - 4u3,2 = 0 ⇒ u3,1 + u2,2 -4u3,2 = -120
Se tiene el sistema lineal
1,1
2,2
3,2
1,2
2,2
3,2
u4 1 0 1 0 0 110
u1 4 1 0 1 0 50
u0 1 4 0 0 1 90
u1 0 0 4 1 0 140
u0 1 0 1 4 1 80
u0 0 1 0 1 4 120
− −
− −
− −
=
− −
− −
− −
Cuya solución es
1,1
2,1
3,1
1,2
2,2
3,2
u 57.9917
u 56.1491
u 51.3251
u 65.8178
u 65.2795
u 59.1511
=
Se ha usado un método directo para resolver el sistema cuya forma es diagonal dominante, por
lo que también se podrían usar métodos iterativos cuya convergencia es segura.
4. 228
10.3.2 Instrumentación computacional
La siguiente instrumentación en MATLAB está diseñada para resolver una ecuación diferencial
parcial elíptica con condiciones constantes en los bordes. Se supondrá además que ∆x = ∆y
Al aplicar la ecuación de diferencias en los puntos de la malla, cada ecuación tiene no más de
cuatro componentes y tiene una forma adecuada para instrumentar un método iterativo para
obtener la solución.
Ecuación de diferencias
i 1,j i 1,j i,j 1 i,j 1 i,ju u u u 4u 0− + − ++ + + − =, i = 1, 2, 3, … ; j = 1, 2, 3, …
Fórmula iterativa
(k 1) (k) (k) (k) (k)
i,j i 1,j i 1,j i,j 1 i,j 1
1
u (u u u u )
4
+
− + − += + + + , k=0, 1, 2, ...
En la siguiente instrumentación se ha usado el método de Gauss-Seidel para calcular la
solución partiendo de una matriz con los valores iniciales iguales al promedio de los valores de
los bordes.
% Programa para resolver una EDP Elíptica
% con condiciones constantes en los bordes
Ta=60;Tb=60;Tc=50;Td=70; % Bordes izquierdo, derecho, abajo, arriba
n=10; % Puntos interiores en dirección horizontal (X)
m=10; % Puntos interiores en dirección vertical (Y)
miter=100; % Máximo de iteraciones
e=0.001; % Error de truncamiento relativo requerido 0.1%
clear u;
for i=1:n+2
u(i,1)=Tc;
u(i,m+2)=Td;
end
for j=1:m+2
u(1,j)=Ta;
u(n+2,j)=Tb;
end
p=0.25*(Ta+Tb+Tc+Td); %valor inicial es el promedio de los bordes
for i=2:n-1
for j=2:m-1
u(i,j)=p;
end
end
k=0; %conteo de iteraciones
conv=0; %señal de convergencia
while k<miter & conv==0
k=k+1;
t=u;
for i=2:n+1
for j=2:m+1
u(i,j)=0.25*(u(i-1,j)+u(i+1,j)+u(i,j+1)+u(i,j-1));
end
end
if norm((u-t),inf)/norm(u,inf)<e
conv=1;
end
end
if conv==1
disp(u); % Muestra la solución final en la malla
disp(k); % Cantidad de iteraciones realizadas
[x,y]=meshgrid(1:m+2, 1:n+2); % Malla para el grafico en tres dimensiones
surf(x,y,u) % Grafico en tres dimensiones
colormap copper % Color
6. 230
Con el editor de gráficos se puede además rotarlo y observarlo desde diferentes perspectivas
Vista superior. Los valores mas claros representan mayor temperatura