You are on page 1of 41

UNIVERSIDAD NACIONAL

“HERMILIO VALDIZAN”- HUANUCO
FACULTAD DE
CURSO MÉTODOS
: INGENIERIA NUMÉRICOS
CIVIL Y ARQUITECTURA

PROFESORA : Jaimes Reátegui,
Sumaya

INTEGRANTES : Domínguez
Muños, Jhon H.
Mendoza Santiago,
Brigner
Salvador Salazar, Owner
H
SOLUCIONES NUMÉRICAS PARA LAS ECUACIONES
DIFERENCIALES PARCIALES

CUERPO ISOTROPICO
Si la conductividad térmica en cada uno de los puntos es independiente
de la dirección del flujo de calor a través del punto.
En un punto la Tº se obtiene resolviendo la siguiente ecuación

donde k, c y p son funciones de (x, y, z) y representan, respectiva­mente,
la conductividad térmica, el calor específico y la densidad del cuerpo en
el punto (x, y, z).
Cuando k, c y p son constantes, a esta ecuación se le denomina
ecuación simple tridimensional del calor, y se expresa como

Si la frontera del cuerpo es relativamente simple, la solución de esta
ecuación se obtiene usando la serie de Fourier. En la general si k, c y
no son constantes o cuando la frontera es irregular, la solución se
obtiene mediante métodos de aproximación.
 consideraremos la ecuación diferencial parcial
elíptica denominada ecuación de Poisson:
 
0
 En esta ecuación suponemos que la función f
describe los datos del problema en una región
plana R cuya frontera denotamos con S. Este
tipo de ecuaciones aparece de manera natural
en el estudio de diversos problemas físicos
dependientes del tiempo; por ejemplo la
distribución de calor para estado estable en una
región plana, la energía potencial de un punto en
un plano sobre el que operan fuerzas
gravitacionales y los problemas bidimencionales
del estado estable que incluyen fluidos
incompresibles.
 Si la temperaturadentro de la region está
determinada por su distribución en la frontera
de la región, a las restricciones se les llama
condiciones de frontera de Dirichlet. Éstas
están dadas por
 u(x,y) = g(x, y),

 para toda (x, y) en S, o sea, la frontera de la
región R. Véase la Fig.
 

y
S (x,y):la temperatura se
mantiene
R constante a g(x,y)
grados

x
 Este método permite el cálculo de la derivada
de orden r de señales discretas, a partir de la
determinación de las diferencias centrales
existentes entre datos consecutivos, la cual
viene dada de forma general mediante:
 Para el cálculo de la derivada de cualquier
orden se sustituye r en la ecuación anterior
por el orden de la derivada de interes,
obteniéndose para las derivadas de primer,
segundo, tercer y cuarto orden las siguientes
expresiones que corresponden a los valores
de r=1; r=2; r=3 y r=4 respectivamente.
 En la forma de diferencias, esto da como
resultado el método de las diferencias
centrales con un error local de truncamiento
del orden ;

  h 2   h
2

2    + 1 w i,j ­ (w i+1,j  w i­1,j )­   (w i,j+1  w i,j­1 ) = ­h2f (xi , y j )
  k    k
 Los métodos de Gauss y Cholesky hacen
parte de los métodos directos o finitos. Al
cabo de un número finito de operaciones,
en ausencia de errores de redondeo, se
obtiene x* solución del sistema Ax = b.
 El método de Gauss-Seidel hace parte de
los métodos llamados indirectos o
Iterativos. En nellos se comienza con x0 =
(x0 ; x0 ;…; x0 ), una aproximación inicial
1 2

de la solución. A partir de x0 se construye
una nueva aproximación de la solución, x1
= (x1 ; x1 ;…; x1 ). A partir de x se
1 2 n 1

construye x2 (aquí el superíndice indica la
iteración y no indica una potencia).
 Asi sucesivamente se construye una
sucesión de vectores {XK}, con el objetivo,
no siempre garantizado, de que
 
 Generalmente los métodos indirectos son una
buena opción cuando la matriz es muy grande y
dispersa o rala (sparse), es decir, cuando el
numero de elementos no nulos es pequeño
comparado con n2, numero total de elementos de
A. En estos casos se debe utilizar una estructura
de datos adecuada que permita almacenar
únicamente los elementos no nulos.
 En cada iteración del método de Gauss-Seidel,
hay n sub iteraciones. En la primera sub iteración
se modifica únicamente x1. Las demás
coordenadas x2, x3, ..., xn no se modifican. El
calculo de x1 se hace de tal manera que se
satisfaga la primera ecuación.
 En la segunda sub iteración se modifica
únicamente x2. Las demás coordenadas
x1, x3, ..., xn no se modifican. El calculo de
x2 se hace de tal manera que se satisfaga
la segunda ecuación.

 Así sucesivamente, en la n-esima sub
iteración se modifica únicamente xn. las
demás coordenadas x1, x2, ..., xn-1 no se
modifican. El calculo de xn se hace de tal
manera que se satisfaga la n-esima
ecuación.
 Laecuación diferencial parcial elíptica
que estudiaremos es la ecuación de
Poisson:2
 u(x,y)  2
u(x,y)
 u(x,y) =
2
+ = f(x,y) ; en (x,y)  R y
x 2
y 2

 
 U(x, y) = g(x, y); para (x,y) S, donde:
R= (x,y)
a < x < b, c < y < d

Y S denota la frontera de R. Para este
análisis, suponemos que tanto f como g
son continuas en sus dominios y que se
garantiza una solución única.
 El método usado es una adaptación de la técnica de
diferencias para problemas con valor de frontera. El
primer paso h = ( b – a ) / n y k = ( d – c ) / m. La
división del intervalo [ a , b ] en n partes iguales de
ancho h, y del intervalo [ c , d ] en m partes iguales
de ancho k (xdai ,y j )como resultado una cuadricula en el

rectángulo R al trazar líneas verticales y horizontales
a través de los puntos con coordenadas , donde

ym = d
. . .
.
.
.
.

. . .
. . . xi = a + ih, para cada i = 0, 1, 2, 3, . . . , n,
y2
. . . yi = c + jk, para cada j = 0, 1, 2, 3, . . . , m.
y1
. . .
y0 = c

x 0= a x1 x2 x3 x4 x n= b
 Las líneas son líneas de cuadrícula, y sus
intersecciones son los puntos de red de la
cuadrícula. En cada punto de red del interior de
la cuadrícula con i = 1, 2, …, n-1 y con j = 1,
2, …, m-1, utilizando la serie de Taylor en la
variable x alrededor de Xi para generar la
fórmula de las diferencias centrales:
 2u(x i , y j ) u(x i + 1, y j ) ­ 2*u(x i , y j ) + u(x i ­ 1, y j ) h2  4 u
= ­ ( i , y j ),
x 2 h2 12 x 4
Donde i  (x i ­ 1, x i +1 )
 También usamos la serie de Taylor en la
variable y alrededor de Yi para generar la
fórmula de las diferencias centrales:

 2u(xi , y j ) u(xi , y j+1 ) ­ 2*u(xi , y j ) + u(xi , y j ­ 1 ) h2  4 u
= ­ ( xi ,  j ),
x 2
k2 12 y 4

Donde i  ( y i ­ 1, yi +1 )
El uso de estas fórmulas nos permite expresar
la ecuación de Poisson en los puntos como:
(x i ,y j )

u(xi+1, y j )­2*u(xi , y j )+u(xi­1, y j ) u(xi , y j+1 )­2*u(xi , y j )+u(xi , y j­1 ) h2  4 u h2  4 u
+ = f(xi ,y j )+ ( i , y j )+ ( xi ,  j )
h2 k2 12 x 4 12 y 4

Para toda i = 1, 2, … , n-1 y j = 1, 2, …, m-1 y
las condiciones de frontera como:

u(x o , y j ) = g(x o , y j ), para cada j = 0, 1, ... ,m,
u(xn , y j ) = g(xn , y j ), para cada j = 0, 1, ... ,m,
u(xi , y 0 ) = g(x i , y 0 ), para cada i = 0, 1, ... ,n ­ 1,
u(xi , y m ) = g(xi , ym ), para cada i = 0, 1, ... ,n ­ 1.
 En la forma de diferencias, esto da como
resultado el método de las diferencias
centrales con un error local de truncamiento
del orden
o(h2 + k 2 ) ;
  h 2   h
2

2    + 1 w i,j ­ (w i+1,j  w i­1,j )­   (w i,j+1  w i,j­1 ) = ­h2f (xi , y j )
  k    k
Para toda i = 1, 2, … , n-1 y j = 1, 2, …, m-1, y

uo j = g(x o , y j ), para cada j = 0, 1, ... ,m,
un j = g(xn , y j ), para cada j = 0, 1, ... ,m,
ui0 = g(xi , y 0 ), para cada i = 0, 1, ... ,n ­ 1,
uim = g(xi , y m ), para cada i = 0, 1, ... ,n ­ 1.
 Donde w i,j aproximau(xi ,y j ) .
 La ecuación común contiene aproximaciones
u(x,y)
a en los puntos :
u(xi+1, y j ),u(xi , y j ),u(xi­1, y j ),u(xi , y j+1 ),u(xi , y j­1 )

Al reducir la parte de la cuadrícula donde
estos puntos están situados, se observa que
cada ecuación contiene aproximaciones en
una región en forma de estrella(xalrededor
i, y j ) de

d

yj + 1 X

yj X X
X

yj ­1 X

c

a xi ­ 1 xi xi + 1
b
Si utilizamos la información de las condiciones de frontera
siempre que sea conveniente en el sistema dado, es
decir, en todos los (xipuntos
, yj ) adyacentes al punto
de red de la frontera, tendremos un sistema lineal (n-
1)(m-1) por w i,j
(n-1)(m-1)u(xi cuyas
,y j ) incógnitas son las aproximaciones a
en el interior de los puntos de red.
 
El sistema lineal que contiene estas incógnitas se
expresa más eficientemente en cálculos matriciales, si
se introduce un remarcaje de los puntos interiores de la
red. Un sistema de marcaje de estos puntos consiste en
utilizar Pl = (xi , y j ) y Wl = w i,j ,

Donde l = i + (m - 1 – j)(n – 1), para toda i = 1, 2, … , n-
1 y j = 1, 2, …, m-1. Y así se marcan consecutivamente
los puntos de red de izquierda a derecha y de arriba
abajo. Por ejemplo, con n = 4 y m = 5 con el remarque
se obtiene una cuadrícula cuyos puntos se muestran en
el gráfico. Al marcar los puntos de este modo, se
garantiza que el sistema necesario para determinar
sea una matriz de banda con un ancho de banda
máximo de 2n-1.
y5

P1 P2 P3
y4
P4 P5 P6
y3

y2 P7 P8 P9

y1 P10 P11 P12

y0

xo x1 x2 x3 x4
a, b, c, d, m, n,
PROCESO X, Y, v,t,
f, g(condiciones
F, w
de frontera),
tol, N
a: Limite inferior de las abscisas
b: Limite superior de las abscisas
c: Limite inferior de las ordenadas
d: Limite superior de las ordenadas
n: Numero de particiones del intervalo [a,b]
m: Numero de particiones del intervalo [c,d]
fun1: La función general, g(x,y)
fun2: La función, f(x,y)
tol: Tolerancia para las iteraciones
N: El numero de iteraciones
w(i,j): Variable matricial que aproxima a g(x,y)
h: Equidistancia entre los nudos horizontales
k: Equidistancia entre los nudos verticales
l: Contador que asigna el número de iteraciones
norm: Variable estático o valor constante
X: Vector fila que representa a las abscisas
Y: Vector fila que representa a las ordenadas
F: Matriz que representa a los puntos de f(x,y)
G: Matriz que representa a los puntos de G(x,y)
Para el comprender mejor el programa
se ha realizado un diagrama de flujo,
mediante el cual este programa puede
ser codificado en cualquier lenguaje de
programación, facilitando así a la
persona interesada en programar este
tema.
INICIO

LEER:a,b,c,d,n,m,fun,fun1,fun2,fun
3,fun4,tol,N F=zeros(n+1,m+1);

FOR i=1: n+1
h=(b-a)/n; k=(d-c)/m;
X=zeros(1,n+1); Y=zeros(1,m+1); FOR j=1:m+1
v=zeros(1,n+1); t=zeros(1,m+1);
y=Y(j);
FOR i=1: n+1 x=X(i);
F(i,j)=eval(fun);

X(i)=a+(i-1)*h; NEXT (j)

NEXT (i) NEXT (i)

FOR j=1: m+1 w=zeros(n-1,m-1);
la=(h^2)/(k^2);
Y(i)=a+(i-1)*k; mu=2*(1+la); l=1;

NEXT (j) WHILE l<=N

FOR i=1: n+1 z=(-h^2*F(2,m)+Y(m)+la*v(2)+la*w(1,m-2)+w(2,m-1))/mu;
norm=abs(z-w(1,m-1));
x= X(i); v(i)=eval(fun4); w(1,m-1)=z;

NEXT (i) FOR i=3: n-1

FOR j=1: m+1
z=(-h^2*F(i,m)+la*v(i)+w(i-2,m-1)+w(i,m-1)+la*w(i-1,m-2))/mu;

y=Y(j); t(j)=eval(fun2)

abs(w(i-1,m-1)-z)>norm
F
NEXT (j)

V

norm=abs(w(i-1,m-1)-z);
w(i-1,m-1)=z;

NEXT (i)

A
A B

z=(-h^2*F(n,m)+t(m)+la*v(n)+w(n-2,m-1)+la*w(n-1,m-2))/mu z=(-h^2*F(n,j)+t(j)+w(n-2,j-1)+la*w(n-1,j)+la*w(n-1,j-2))/mu;

abs(w(n-1,m-1)-z)>norm
F abs(w(n-1,j-1)-z)>norm
F

V
V
norm=abs(w(n-1,m-1)-z);
w(n-1,m-1)=z; norm=abs(w(n-1,j-1)-z);
w(n-1,j-1)=z;

for j=m-1:-1:3
NEXT (j)
z=(-h^2*F(2,j)+Y(j)+la*w(1,j)+la*w(1,j-2)+w(2,j-1))/mu
z=(-h^2*F(2,2)+G(1,2)+la*G(2,1)+la*w(1,2)+w(2,1))/mu;

abs(w(1,j-1)-z)>norm
F
abs(w(1,1)-z)>norm
F

V
V
norm=abs(w(1,j-1)-z);
w(1,j-1)=z; norm=abs(w(1,1)-z);
w(1,1)=z;

FOR i=3:n-1
FOR i=3:n-1
z=(-h^2*F(i,j)+w(i-2,j-1)+la*w(i-1,j)+w(i,j-1)+la*w(i-1,j-2))/mu
z=(-h^2*F(i,2)+la*X(i)+w(i-2,1)+la*w(i-1,2)+w(i,1))/mu;

abs(w(i-1,j-1)-z)>norm
abs(w(i-1,1)-z)>norm
F
F
V
V
norm=abs(w(i-1,j-1)-z);
w(i-1,j-1)=z; norm=abs(w(i-1,1)-z);
w(i-1,1)=z;

NEXT (i) B C NEXT (i)
C

z=(-h^2*F(n,2)+t(2)+la*X(n)+w(n-2,1)+la*w(n-1,2))/mu

abs(w(n-1,j1)-z)>norm

F

V

norm=abs(w(n-1,1)-z);
w(n-1,1)=z;

norm <= tol
F l==N F

V
V

IMPRIMIR X, Y, v,t, F, w,“Procedimiento terminado con éxito IMPRIMIR X, Y, v,t, F, w, ”Excedió el numero máximo de
para l” iteraciones a N”
“Procedimiento terminado sin éxito…”

l=N;

l=l+1;

END WHILE

END
CODIFICACIÓN EN MATLAB
OBSERVACIONES
El numero de particiones; h, k; deben ser mayores o iguales que 3.
El tipo de problema que se presenta es mayormente de temperaturas
de placas o semejante a ellos con consideraciones de frontera.
En el grafico que se muestra al ejecutar el programa la parte oscura
representa temperatura cero en las tronteras.
El resultado se muestra en una matriz (A) que es lo mismo que (w)
que tiene dimensiones de (n-1 x m-1),
 EJEMPLO 
Consideremos el problema de determinar la distribución
de calor en estado estable, en una placa cuadrada metálica
delgada, con las dimensiones 0.5 m por 0.5 m.
Conservamos dos fronteras adyacentes de 0º C, mientras el
calor en las otras dos fronteras aumenta linealmente de 0º
C en una esquina a 100º C en el sitio donde ambos lados se
encuentran. Si ponemos los lados con las condiciones de
frontera cero a lo largo de los ejes x y y, el problema se
expresa así:  2u(x,y)  2u(x,y)
+ =0
x 2
y 2

Para (x,y) en el dominio

R = u(x,y)
0 < x < 0.5, 0 < y < 0.5 
,

con las condiciones de frontera:
U(0,y) = 0. U(x,0) = 0, U(x,0.5) = 200x,
U(0.5,y) = 200y.
• Si n = 4
mw ­ el
=i,j4, wproblema
i+1,j ­ w i­1,j ­ wlai,j+1
tiene ­ w i,j­1 )que
cuadrícula = 0se
muestra y la ecuación de diferencias:
Para toda i = 1, 2, 3 y j = 1, 2,3.
Expresar esto en una función de los
puntos remarcados de la cuadrícula Wi = u(Pi )
inferior Pi
implica que las ecuaciones en los puntos
P1 : 4W1 ­ W2 ­ W4 = W0,3 + W1,4 ,

son: P2 : 4W2 ­ W3 ­ W1 ­ W5 = W2,4 ,
P3 : 4W3 ­ W2 ­ W6 = W4,3 + W3,4 ,
P4 : 4W4 ­ W5 ­ W1 ­ W7 = W0,2 ,
P5 : 4W5 ­ W6 ­ W4 ­ W2 ­ W8 = 0,
P6 : 4W6 ­ W5 ­ W3 ­ W9 = W4,2 ,
P7 : 4W7 ­ W8 ­ W4 = W0,1 ­ W1,0 ,
P8 : 4W8 ­ W9 ­ W7 ­ W5 = W2,0 ,
P9 : 4W9 ­ W8 ­ W6 = W3,0 ­ W4,1,
 Donde los lados derechos de las ecuaciones se
obtienen de las condiciones de frontera.

u( x , 0.5 ) = 200x
0.5

P1 P2 P3

P4 P5 P6
u( 0 , y ) = 0 u( 0.5 , y ) = 200y
P7 P8 P9

u( x , 0 ) = 0 0.5

W1,0 = W2,0 = W3,0 = W0,1 = W0,2 = W0,3 = 0
W1,4 = W4,1 = 25, W2,4 = W4,2 = 50, y W3,4 = W4,3 = 75
 Las condiciones de frontera implican que :
 4 ­1 0 ­1 0 0 0 0 0  W1   25 
     
W
 ­1 4 ­1 0 ­1 0 0 0 0   2 
 50 
 0 ­1 4 0 0 ­1 0 0 0  W   150 
   3
  
 ­1 0 0 4 ­1 0 ­1 0 0  W4   0 
 0 ­1 0 ­1 4 ­1 0 ­1 0  W =  0 
   5 
 
 0 0 ­1 0 ­1 4 0 0 ­1  W6   50 
 0  
0 0 ­1 0 ­1 4 ­1 0  W7 
 0 
   
 0 0 0 0 ­1 0 ­1 4 ­1  W   0 
   8 
 
 0 0 0 0 0 ­1 0 ­1 4  W   25 
 9 

W1 W2, W,9 …
En la tabla se muestran los valores de
, obtenidos al aplicar a esta matriz el método de
Gauss-Seidel.
1 2 3 4 5 6 7 8 9
i
Wi 18.75 37.50 56.25 12.50 25.00 37.5 6.25 12.50 18.75
0

Las respuestas anteriores son exactas porque la
verdadera solución: 
U( x , y ) = 400xy
ECUACIONES DIFERENCIALES PARCIALES ELIPTICAS

Ingrese la cota menor de las abscisas(a):
0
Ingrese la cota mayor de las abscisas(b):
.5
Ingrese la cota menor de las ordenadas(c):
0
Ingrese la cota mayor de las ordenadas(d):
.5
Ingrese el numero de particiones de[a,b](n):
4
Ingrese el numero de particiones de[c,d](m):
4
Ingrese f(x,y):
0
Ingrese g(a,y):
0
Ingrese g(b,y):
200*y
Ingrese g(x,c):
0
Ingrese g(x,d):
200*x
Ingrese la tolerancia:
.0001
Ingrese el número máximo de iteraciones:
50
X=

0 0.1250 0.2500 0.3750 0.5000

Y=

0 0.1250 0.2500 0.3750 0.5000

v=

0 25 50 75 100

t=

0 25 50 75 100

F=

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

w=

6.3973 12.6695 18.9062
12.6695 25.1248 37.5803
18.9062 37.5802 56.2901

Excedió el numero máximo de iteraciones a N= 50.000
Procedimiento terminado sin éxito...
EJEMPLO 2
ECUACIONES DIFERENCIALES PARCIALES ELIPTICAS

Ingrese la cota menor de las abscisas(a):
0
Ingrese la cota mayor de las abscisas(b):
2
Ingrese la cota menor de las ordenadas(c):
0
Ingrese la cota mayor de las ordenadas(d):
1
Ingrese el numero de particiones de[a,b](n):
5
Ingrese el numero de particiones de[c,d](m):
6
Ingrese f(x,y):
x*exp(y)
Ingrese g(a,y):
0
Ingrese g(b,y):
2*exp(y)
Ingrese g(x,c):
x
Ingrese g(x,d):
exp(x)
Ingrese la tolerancia:
.0000000001
Ingrese el número máximo de iteraciones:
60
X=

0 0.4000 0.8000 1.2000 1.6000 2.0000

Y=

0 0.1667 0.3333 0.5000 0.6667 0.8333 1.0000

v=

1.0000 1.4918 2.2255 3.3201 4.9530 7.3891

t=

2.0000 2.3627 2.7912 3.2974 3.8955 4.6020 5.4366

F=

0 0 0 0 0 0 0
0.4000 0.4725 0.5582 0.6595 0.7791 0.9204 1.0873
0.8000 0.9451 1.1165 1.3190 1.5582 1.8408 2.1746
1.2000 1.4176 1.6747 1.9785 2.3373 2.7612 3.2619
1.6000 1.8902 2.2330 2.6380 3.1164 3.6816 4.3493
2.0000 2.3627 2.7912 3.2974 3.8955 4.6020 5.4366

w=

0.5546 0.7276 0.9078 1.1034 1.3002
0.9752 1.1819 1.4165 1.6744 1.9438
1.4312 1.7129 2.0457 2.4289 2.8583
1.9121 2.2914 2.7464 3.3171 4.0316

Excedió el numero máximo de iteraciones a N= 60.000
Procedimiento terminado sin éxito...
>>