Está en la página 1de 61

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales

Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3


Matemticas de EspecialidadIngeniera Elctrica

Resolucin numrica de

Ecuaciones en Derivadas Parciales

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_solucin_ecuaciones_derivadas_parciales_2016.pdf

1/61

2/61

ndice


Introduccin a las EDP

Resolucin de ecuaciones parablicas




Por diferencias adelantadas

Por diferencias atrasadas

El mtodo de Crank-Nicolson

Resolucin de ecuaciones hiperblicas

Resolucin de ecuaciones elpticas

Mtodo de las diferencias finitas

Mtodo de los Elementos Finitos

Resolucin de EDP no lineales

Ecuaciones en Derivadas Parciales

3/61

Una ecuacin en derivadas parciales de orden n es una ecuacin


matemtica en la que aparece una funcin desconocida, que depende de al
menos dos variables independientes, junto a algunas de sus derivadas
parciales hasta orden n respecto a dichas variables.


Una ecuacin en derivadas parciales de la funcin u.x1; :::xn/ tiene la forma


general
2u
2u
@u
@
@
@u
F .x1; : : : ; xn; u; @x ; : : : ; @x ; @x @x ; @x @x ; : : :/ D 0.
n
1
1 1
1 2

F es lineal en u y sus derivadas si


F .u C w/ D F .u/ C F .w/
y
F .ku/ D k  F .u/:

Las EDP se emplean en la formulacin de modelos matemticos de procesos y


fenmenos de la fsica y otras ciencias que suelen estar distribuidos en el espacio
y el tiempo.

Se modelizan de esta forma la propagacin del sonido o del calor, la


electrosttica, la electrodinmica, la dinmica de fluidos, la elasticidad, la
mecnica cuntica, las emisiones de contaminantes, los fenmenos
meteorolgicos, la valoracin de opciones y derivados financieros y muchos
otros.

Una solucin de una EDP es una funcin que resuelve la ecuacin, o que la
convierte en una identidad cuando se sustituye en la ecuacin.

Excepto en casos de geometra sencilla, las ecuaciones en derivadas parciales son


muy difciles de resolver analticamente. Numricamente se pueden resolver
problemas de geometra complicada y cercana a la de los problemas reales.

4/61

Dada una funcin u.x; y/, en las EDP es muy comn significar las derivadas
parciales empleando subndices (notacin tensorial). Esto es:
ux D

@u
.x; y/
@x

uxy

@2 u
@
D
.x; y/ D
@y @x
@y

uxx

@2 u
D 2 .x; y/:
@x


@u
.x; y/
@x

Si la funcin u es continua en un cierto dominio y tiene derivadas parciales


continuas hasta orden 2, por el teorema1 de Schwarz se sabe que uxy D uyx :

En la fsica matemtica se usa el operador nabla, que en coordenadas


cartesianas se escribe como r D .@x ; @y ; @z / para las derivadas espaciales, y
con un punto, u,
P para las derivadas que involucran el tiempo.
1

Por Karl Hermann Amandus Schwarz, Prusia 1843-Alemania 1921.

5/61

6/61

Ejemplos de EDP


Una EDP lineal de primer orden:


ux .x; y/ uy .x; y/ C 2u.x; y/ D ux
2

C uy

2

uy C 2u D 6.
D 0.

Una EDP no lineal de primer orden: ux

Una EDP no lineal de segundo orden: u  uxy C ux D y.

Algunas EDP lineales de segundo orden:


Ec. de Laplace

uxx .x; y/ C uyy .x; y/ D 0:

Ec. del calor

u t .t; x/

uxx .t; x/ D 0:

Ec. de ondas

u t t .t; x/

uxx .t; x/ D 0:

En este recorrido por las EDP nos limitaremos a estudiar la resolucin numrica
de las de segundo orden con dos variables independientes, con esta forma

7/61

Auxx C Buxy C C uyy C F ux ; uy ; u; x; y D 0:




Esta ecuacin, en un punto dado .x; y/, puede ser:


si B 2

4AC D 0:

Hiperblica si B 2

4AC > 0:

si B 2

4AC < 0:

Parablica
Elptica


La diferencia prctica de estos tipos de ecuaciones es que las parablicas e


hiperblicas estn definidas en un intervalo o regin abierto. Para resolverlas se
imponen condiciones de contorno a una variable en general al tiempo en la
frontera de uno de sus extremos y se parte de l.

Las elpticas tienen condiciones de contorno en toda la frontera de esa regin.

8/61

Resolucin de ecuaciones parablicas




La ecuacin del calor general


u t D Duxx
representa la temperatura, x, mediada a lo largo de una barra homognea
unidimensional. Modeliza cmo se propaga el calor de una zona de alta
temperatura a las dems de un dominio.

Sus variables independientes son x y t.

La constante D > 0 se denomina coeficiente de difusin y representa la


difusividad trmica del material de la barra.

9/61

La ecuacin tiene infinitas soluciones por lo que se necesitan condiciones


adicionales para definir una particular.

En un intervalo finito, el problema formulado en toda su dimensin es este:


8

u t D Duxx

< u.x; 0/ D f .x/

u.a; t/ D l.t/

: u.b; t/ D r.t/





para todo a  x  b; t  0
para todo a  x  b
para todo t  0
para todo t  0:

La funcin f .x/ define la distribucin de temperaturas en la barra al


comienzo del tiempo de estudio en el intervalo a; b.
l.t/ y r.t /, para t  0, la temperatura en los extremos de la barra.
La constante D es la que gobierna la velocidad de transferencia del calor.

Resolucin por diferencias adelantadas


la EDP en 0; T generando una malla de las variables
independientes y considerando slo los nudos de la misma.

 Se basa en discretizar
8 Partial Differential Equations

t
T

x
a

Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known

Los puntos
slidos son conocidos: definen las condiciones iniciales y de
initial and boundary conditions. The open circles represent unknown values that must be
determined.
contorno;
los puntos huecos los que calcular el procedimiento.


its approximation
at (xse
M en
and uno
N be discreto
the total number
of steps
in the xfinito
and t de
El problema
continuo
as
con un
nmero
i , tconvierte
j ) by wij . Let
directions,
and let ho=no
(b lineales.
a)/M and k = T /N be the step sizes in the x and t directions.
ecuaciones
lineales,
The discretization formulas from Chapter 5 can be used to approximate derivatives in

10/61

11/61

Sea u.xi ; tj / la solucin exacta en .xi ; tj / y wij la aproximada. Denominemos


como M y N el nmero total de intervalos o pasos en x y en t.

Sean h D .b

La aproximacin de segunda derivada centrada respecto de x es



1
uxx .x; t /  2 u.x C h; t / 2u.x; t / C u.x h; t / ;
h

2
con un error O h uxxxx .c1; t /=12 , donde x h < c1 < x C h.

La primera derivada adelantada respecto de t es



1
u t .x; t / 
u.x; t C k/ u.x; t / ;
k

a/=M y k D T =N los tamaos de paso en las direcciones x y t .

con un error O.ku t t .x; c2/=2/, donde t < c2 < t C h.

Sustituyendo estas expresiones en la ecuacin del calor en el punto .xi ; tj /,


queda


D
1
wiC1;j 2wij C wi 1;j  wi;j C1 wij ;
h2
k
con un error de truncamiento local dado por O.k/ C O.h2/.

Despejando wi;j C1 tenemos la frmula de recurrencia en el tiempo:



w
2w
C
w
wi;j C1 D wij C Dk
iC1:j
ij
i 1;j
h2
D  wi C1;j C .1

2 /wij C  wi

1:j ;

donde  D Dk= h2.




8.1 Parabolic Equations | 377


En la figura se ven los puntos de la malla que intervienen
en esta expresin.
j+1
j
i1 i i+1

12/61

Las condiciones de contorno y las iniciales dan valores a wi0; i D 0; : : : ; M y


w0j y wMj ; j D 0; : : : ; N .

En forma matricial, los valores de wi;j C1 en


mediante la frmula wj C1 D Awj C sj , o
2
1 2 
0 
"
# 6
::
w1;j C1
6  1 2  : :
::
D6
 1 2 : :
:
6 0:
:::
::: :::
wm;j C1
4 ::
0



La matriz A es m  m, donde m D N

 1

el tiempo tj C1 se determinan
3
0
#
"
#
:: 7"
: 7 w1j
w0;j
:
::
:
0 7
:
7 :: C 
wmC1;j
 5 wmj
2

1.

El vector sj indica las condiciones en la frontera (contorno) que se imponen al


problema: las temperaturas en los extremos de la barra.

Lo expuesto es un procedimiento explcito dado que se determinan nuevos


valores a partir de los previos inmediatos en el tiempo.

13/61

14/61

Si elaboramos un script de Matlab con este algoritmo para D D 1, la


funcin f .x/ D sen2.2x/ y las condiciones iniciales u.0; t / D u.1; t / D 0
para todo t, nos puede salir algo parecido a esto:
function w=heatfd(xl,xr,yb,yt,M,N)
% Ecuacin del calor por diferencias avanzadas
%
Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x)sin(2*pi*x).^2;
l=@(t)0*t;
r=@(t)0*t;
D=1;
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N;
sigma=D*k/h/h;
a=diag(1-2*sigma*ones(m,1))+diag(sigma*ones(m-1,1),1);
a=a+diag(sigma*ones(m-1,1),-1);
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h);
for j=1:n
w(:,j+1)=a*w(:,j)+sigma*[lside(j); zeros(m-2,1); rside(j)];
end
w=[lside; w; rside];
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w)
view(60,30);axis([xl xr yb yt -1 1])
end

15/61

Los dos grficos ilustran la aproximacin por diferencias adelantadas de la


ecuacin del calor para h D 0;1 y dos valores k D 0;004 y k > 0;005, es decir
>>w=heatfd(0,1,0,1,10,250) y >>w=heatfd(0,1,0,1,10,193). En este
ltimo caso el mtodo es inestable como se observa.

Se puede probar que el mtodo es estable si, para D > 0,

Dk
h2

< 12 .

16/61

Resolucin por diferencias atrasadas




La forma de trabajar anterior se puede mejorar en ciertos casos usando la


alternativa implcita: aproximacin de las derivadas mediante diferencias
atrasadas (recordemos Euler hacia atrs):
 k
1
u.x; t / u.x; t k/ C u t t .x; c0/;
ut D
k
2
donde t

k < c0 < t para aproximar u t .

La ecuacin del calor en el punto .xi ; ti / resulta


1
wij
k

wi;j

D
D 2 wi C1;j
h

2wij C wi

con un error de truncamiento local O.k/ C O.h2/.

1;j

17/61

El sistema de ecuaciones similar al anterior quedara


3
21 C 2 
0

0
:
:
  



6  1 C 2  : : :: 7 w:1j
w1;j 1
w0;j
::
::
:::
7 :: D
6 0
C

:
0

1
C
2
:
:
5 wmj
4 :
wm;j 1
wmC1;j
:
:
:
::
0

::


El programa anterior:

::
0

::

 1 C 2

function w=heatbd(xl,xr,yb,yt,M,N)
% Ecuacin del calor por diferencias avanzadas
%
Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x)sin(2*pi*x).^2;
l=@(t)0*t;
r=@(t)0*t;
D=1;
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N;
sigma=D*k/h/h;
a=diag(1+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
a=a+diag(-sigma*ones(m-1,1),-1);
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h);
for j=1:n
w(:,j+1)=a\(w(:,j)+sigma*[lside(j); zeros(m-2,1); rside(j)]);
end
w=[lside; w; rside];
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w)
view(60,30);axis([xl xr yb yt -1 1])
end

18/61

Resolviendo con este programa el problema anterior con


>>w=heatbd(0,1,0,1,10,10) se llega a la solucin de la grfica que sigue.
Obsrvese que el k que se utiliza ahora es 0;1 en vez del anterior 0;004.

0.5

-0.5

-1
0
0.2
0.4

1
0.8

0.6

0.6
0.8

0.4
1

0.2
0

El mtodo es estable para cualesquiera h y k, con D > 0.

19/61

El mtodo CrankNicolson

Este mtodo formulado en 1947 por John Crank, Reino Unido, 1916-2006, y
Phyllis Nicolson, Reino Unido, 1917-1968 es una combinacin de los dos
anteriores, explcito e implcito, con un error O.h2/ C O.k 2/.

Usa la diferencia atrasada para la derivada respecto del tiempo y una


combinacin ponderada uniformemente de derivada atrasada y adelantada para
el resto de la ecuacin. En concreto, reemplaza u t por la frmula de la
diferencia atrasada

1
wij wi;j 1
k
y uxx por la diferencia
mixta




1 wi C1;j 2wij Cwi 1;j
1 wi C1;j 1 2wi;j 1 Cwi 1;j 1
C2
:
2
h2
h2

20/61

Haciendo otra vez  D Dk= h2, la ecuacin del calor se puede reordenar as

h
2wijEquations
2wi;j 1 D  wi C1;j
al Differential

2wij C wi

1;j

C wi C1;j

2wi;j

C wi

i
1;j 1

oorbien
Dw
C+
wi C1;j
i 1;j
i C1;j =
i 1;j 1
1C
i;ji,j11
1 , 1 ,
ww
+C
(2 .2
+C
22/w
)wij ij w
wi+1,j
wi1,j
+.2
(2 2/w
2 )w
wi+1,j
i1,j

lo
que leads
llevatoa the
la grfica
nudos
afectados
which
templatede
shown
in Figure
8.7. de esta figura.
j+1
j
i1 i i+1
Figure 8.7 Mesh points for CrankNicolson Method. At each time step, the open circles
are the unknowns and the lled circles are known from the previous step.
T

21/61

Si wj D w1j ; : : : ; wmj T , el mtodo de Crank-Nicolson en forma matricial es



Awj D Bwj 1 C  sj 1 C sj ;
donde

22 C 2


6
AD6
4

2 C 2

0
::
:
0


:::


2 C 2
:::
0


:::

0
::
:

:::

:::


 2 C 2

7
7;
5

y
22

2


6
BD6
4

0
::
:
0

2

:::


El vector sj D w0j ; 0; : : : ; wmC1;j T .


2


:::
:::

0
::
:

2
0
:::
:::

0
 2 2

3
7
7:
5

22/61

El programa de Matlab que implementa el mtodo es ste:

function w=Crank_Nicolson(xl,xr,yb,yt,M,N)
% Ecuacin del calor por Crank-Nicolson
%
Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x)sin(2*pi*x).^2;
l=@(t)0*t;
r=@(t)0*t;
D=1;
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N; close all
sigma=D*k/h/h;
a=diag(2+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
a=a+diag(-sigma*ones(m-1,1),-1);
b=diag(2-2*sigma*ones(m,1))+diag(sigma*ones(m-1,1),1);
b=b+diag(sigma*ones(m-1,1),-1);
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h);
for j=1:n
sides=[lside(j)+lside(j+1); zeros(m-2,1); rside(j)+rside(j+1)];
w(:,j+1)=a\(b*w(:,j)+sigma*sides);
end
w=[lside; w; rside];
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w)
view(60,30);axis([xl xr yb yt -1 1])
end

El resultado de
>>w=Crank_Nicolson(0,1,0,1,10,10):

0.5

-0.5

-1
0
0.2
0.4

1
0.8

0.6

0.6
0.8

0.4
1

0.2
0

El mtodo es estable para cualesquiera h > 0 y k > 0,


con D > 0.

23/61

Resolucin de ecuaciones hiperblicas




La ecuacin de onda, con velocidad de onda c, es


u t t D c 2uxx
para a  x  b y t  0. Representa la evolucin en el tiempo de una onda
desde las ondas magnticas en la atmsfera del Sol hasta cmo oscila la
cuerda de un violn propagndose en la direccin x en un medio dado.

Para especificar su evolucin en el tiempo es necesario conocer la forma inicial


de la onda y su velocidad inicial en cada punto.

La funcin u.x; y/ representa, por ejemplo, la amplitud de la vibracin de la


cuerda del violin o, para una onda viajando en el aire, la presin local del aire.

Formulada en su totalidad para especificar una solucin concreta sera:


8
u t t D c 2 uxx

< u.x; 0/ D f .x/


u t .x; 0/ D g.x/

u.a; t/ D l.t/

:
u.b; t/ D r.t/

para
para
para
para

todo
todo
todo
todo

a  x  b; t  0
axb
axb
t 0

para todo t  0:

PTER 8 Partial Differential Equations

Para resolverlo se puede aplicar diferencias adelantadas a partir de esta malla:


t
T

x
a

Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known
Los puntos
son .xi ; tj /,conditions.
dondeThexiopen
D circles
a Crepresent
ih y tunknown
k, con
pasos h y k.
j D j values
initial and boundary
that must be
determined. a la solucin u.xi ; tj / se representa mediante wij .
La aproximacin

24/61

Para discretizar la ecuacin de onda u t t D c 2uxx las segundas derivadas se


reemplazan por sus aproximaciones por diferencias centradas en las direcciones t
y x, es decir

25/61

wi;j C1

2wij C wi;j
k2

c2

wi

1;j

2wij C wiC1;j
D 0:
h2

Haciendo  D ck= h, la explicitacin


de la solucin para el siguiente paso en el

tiempo es wi;j C1 D 2 2 2 wij C  2wi 1;j C  2wi C1;j wi;j 1:

Se necesita la aproximacin en dos pasos anteriores, j 1 y j ; para el primero


en el tiempo se utiliza la aproximacin de la derivada con la frmula centrada
wi;j C1 wi;j 1
u t .xi ; tj / 
2k
en la que sustituyendo el primer paso en el tiempo .xi ; t1/
wi1 wi; 1
g.xi / D u t .xi ; t0/ 
;
2k
o wi; 1  wi1 2kg.xi /:

26/61

Sustituyendo esta ltima expresin en la frmula del siguiente paso en el tiempo


para j D 0 resulta que
wi1 D 1

2
 wi0 C kg.xi / C
wi
2
2


C
w
1;0
i C1;0 ;

que es donde entra la informacin de la velocidad inicial g.x/.




Escribiendo el mtodo en forma matricial,


2
2
6
6
6
AD6
6
4

2 2
2
0
::
:
0

2
2

2 2
2
:::


2
2


:::

0
::
:

:
2 2 : :
0
:::
:::
2
2
0
 2 2 2

3
7
7
7
7:
7
5

27/61

La ecuacin de inicio es
2

3
w
00
2
2
3
2
3
3
6 0 7
w10
w11
g.x1 /
6
7
:
:
:
1
1
2
4 :: 5 D A 4 :: 5 C k 4 :: 5 C  6 ::: 7 :
6
7
2
2
4
wmo
0 5
wm1
g.xm /
wmC1;0

Las de los subsiguientes pasos, contando con las condiciones de partida,


2

3
2
3
w1;j C1
w1j
4 ::: 5 D A 4 ::: 5
wm;j C1
wmj
2

3
l.t
/
j
2
3
w1;j 1
6 0 7
6
7
4 ::: 5 C  2 6 ::: 7 :
6
7
4
5
0
wm;j 1
r.tj /

28/61

En Matlab y la solucin de la ecuacin de onda para f .x/ D sen.x/, con


c D 2 y g.x/ D l.x/ D r.x/ D 0 son estos:
El resultado de
>> w=wavefd(0,1,0,1,20,40);:

function w=wavefd(xl,xr,yb,yt,M,N)
% Ecuacin de onda por diferencias avanzadas
%
Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x) sin(pi*x); g=@(x) 0*x; l=@(t) 0*t; r=@(t) 0*t;
c=2; close all
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N;
sigma=c*k/h;
a=diag(2-2*sigma^2*ones(m,1))+diag(sigma^2*ones(m-1,1),1);
a=a+diag(sigma^2*ones(m-1,1),-1);
% Matriz A
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=0.5*a*f(xl+(1:m)*h)+k*g(xl+(1:m)*h);
% Cond. iniciales
w(:,2)=a*w(:,1)-w(:,1)+sigma^2*[lside(1); zeros(m-2,1); rside(1)];
for j=2:n
w(:,j+1)=a*w(:,j)-w(:,j-1)+sigma^2*[lside(j);zeros(m-2,1);rside(j)];
end
w=[lside; w; rside];
% + cond. contorno
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w);
% Plot 3-D
view(60,30); axis([xl xr yb yt -1 1])
end

El mtodo es inestable cuando el paso en el tiempo k


es grande con respecto al del espacio h. Es estable si
c > 0 y  D ck= h  1.

Por ejemplo, con >> w=wavefd(0,1,0,1,20,35); ocurre esto.

A la cantidad ck= h se le conoce com el nmero o condicin CFL, formulado en


1928 por los alemanes Richard Courant, 1888-1972, Kurt Friedrichs, 1901-1982
y Hans Lewy 1904-1988.

29/61

30/61

Resolucin de ecuaciones elpticas




Las ecuaciones elpticas modelizan estados estacionarios: la distribucin de


temperaturas en una regin delimitada por fuentes de calor a determinadas
temperaturas, potenciales electrostticos, gravitatorios, etc.

Si se tiene una funcin u.x; y/ que admite derivadas de segundo orden


continuas, se define el operador Laplaciana de u como
u D r ru D r 2u D uxx C uyy :

Pierre-Simon Laplace, Francia, 1749-1827.

Para una funcin continua f .x; y/, la EDP


@2u @2u
u.x; y/ D 2 C 2 D f .x; y/
@x
@y
se denomina ecuacin de Poisson.

Simon Denis Poisson, Francia, 1781-1840.

La ecuacin de Poisson con f .x; y/ D 0 se denomina Ecuacin de Laplace.


Una solucin de sta es una funcin armnica.

La ecuaciones de Laplace y Poisson estn presentes por doquier en la fsica


clsica pues sus soluciones representan la energa potencial.

31/61

Un campo elctrico E es el gradiente de un potencial electrosttico u, es decir


ED

ru:

El gradiente del campo est relacionado con la densidad de carga, , por la


ecuacin de Maxwell

rE D ;
"
donde " es la permisividad elctrica. En conjunto,


u D r ru D
;
"
ecuacin de Poisson del potencial u. En el caso de que la carga sea cero, el
potencial satisface la ecuacin de Laplace u D 0.

James Clerk Maxwell, Reino Unido, 1831-1879

32/61

33/61

Mtodo de las diferencias finitas




Para estudiarlo resolveremos la ecuacin de Poisson u D f en el rectngulo


xl ; xr  yb ; y t de un
8 plano, con las condiciones de

u.x; yb / D g1 .x/

< u.x; y / D g .x/


t

Johann Peter Gustav Lejeune


Dirichlet, Alemania, 1805-1859.

contorno de Dirichlet:
u.xl ; y/ D g3 .y/
y esta malla:

400 |

: u.x ; y/ D g .y/:
r
4
CHAPTER 8 Partial
Differential
Equations
yt

yb

w1n w2n w3n

wmn

w12 w22 w32

wm 2

w11 w21 w31

wm 1

xl

con M D m

xr

yt

vm+1 vm+2 vm +3
x yb

v1

v2

v3

xl

Figure 8.12 Mesh for nite difference solver of Poisson equation with Dirichlet b

1 intervalos en laconditions.
direccin
horizontal
y NwithDdouble
n subscripts.
1 en (b)vertical.
(a) Original
numbering system
Numbering syste
(8.39) for linear equations, with single subscripts, orders mesh points across rows.

34/61

Mediante diferencias finitas centradas, la ecuacin de Poisson u D f tiene la


forma
u.x h;y/ 2u.x;y/Cu.xCh;y/
2
C
O.h
/C
2
h
C u.x;y
donde h D .xr

k/ 2u.x;y/Cu.x;yCk/
k2

xl /=M y k D .y t

yb /=N .

En trminos de la solucin aproximada wij  u.xi ; yj /, puede escribirse


wi 1;j 2wij Cwi C1;j
h2

donde xi D xl C .i


C O.k 2/ D f .x; y/;

wi;j 1 2wi;j Cwi;j C1


k2

1/h y yj D yb C .j

D f .xi ; yj /

1/k, para 1  i  m y 1  j  n.

Las ecuaciones en los wij son lineales por lo para determinarlos hay que
construir un sistema de mn incgnitas con una matriz A mnmn.

35/61

Cada nudo de la malla tendr su correspondiente ecuacin lineal, incluidas los


que representan las condiciones de contorno.

Para establecer adecuadamente el sistema de ecuaciones hay volver a etiquetar


los nudos de forma que se evite la confusin de los dobles subndices. Se adopta
el esquema que sigue, en el que vi C.j 1/m D wij :
wmn

wm 2
wm 1
xr

vmn

yt

x yb

vm+1 vm+2 vm +3

v2m

v1

vm

xl

v2

v3

xr

nite difference solver of Poisson equation with Dirichlet boundary

Para construir el sistema Av D b, para un nudo .i; j / de la malla cuya


ecuacin es la p, los coeficientes Apq para varios q son estos:
x
i
x
i
i C1
i 1
i
j
i
j

y
j

Ecuacin nmero p
i C .j 1/m

y
j
j
j
C1
1

Coeficiente nmero q
i C .j 1/m
i C 1 C .j 1/m
i 1 C .j 1/m
i C jm
i C .j 2/m

36/61

De acuerdo con ella, en la ecuacin p, los coeficientes q, en la fila Apq de A son


1/m;i C.j 1/m

Ai C.j

1/m;i C1C.j 1/m

Ai C.j

1/m;i 1C.j 1/m

Ai C.j

1/m;i Cj m

1/m;i C.j 2/m

Ai C.j
AiC.j

El trmino de la derecha del nudo .i; j / es biC.j


Slo quedaran las condiciones de contorno.

2
h2

2
k2

1
h2
1
h2
1
k2
1
:
k2

1/m

D f .xi ; yj /.

En Matlab, estructurar todo para resolver la ecuacin de Poisson con


m D n D 5 en el rectngulo 0; 1  1; 2 y con las condiciones de Dirichlet
u.x; 1/
u.x; 2/
u.0; y/
u.1; y/

lleva a esto:

D
D
D
D

ln.x 2 C 1/
ln.x 2 C 4/
2 ln y
ln.y 2 C 1//

function w=Poisson(xl,xr,yb,yt,M,N)
% Ecuacin de Poisson por diferencias finitas
%
Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x,y) 0; g1=@(x) log(x.^2+1); g2=@(x) log(x.^2+4);
g3=@(y) 2*log(y); g4=@(y) log(y.^2+1);
m=M+1; n=N+1; mn=m*n; close all
h=(xr-xl)/M; h2=h^2; k=(yt-yb)/N; k2=k^2;
x=xl+(0:M)*h; y=yb+(0:N)*k;
A=zeros(mn,mn); b=zeros(mn,1);
for i=2:m-1
for j=2:n-1
A(i+(j-1)*m,i-1+(j-1)*m)=1/h2; A(i+(j-1)*m,i+1+(j-1)*m)=1/h2;
A(i+(j-1)*m,i+(j-1)*m)=-2/h2-2/k2;
A(i+(j-1)*m,i+(j-2)*m)=1/k2; A(i+(j-1)*m,i+j*m)=1/k2;
b(i+(j-1)*m)=f(x(i),y(j));
end
end
for i=1:m
j=1; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g1(x(i));
j=n; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g2(x(i));
end
for j=2:n-1
i=1; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g3(y(j));
i=m; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g4(y(j));
end
v=A\b;
w=reshape(v(1:mn),m,n);
mesh(x,y,w)
end

37/61

38/61

Si lo utilizamos con >> w=Poisson(0,1,1,2,4,4); para el problema


propuesto, se llega a la solucin de la grfica.

1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
2
1.8

1
1.6

0.8
0.6

1.4

0.4

1.2

0.2
1

39/61

Para encontrar el potencial electrosttico en el rectngulo 0; 1  0; 1,


suponiendo que no hay carga en el interior y las siguientes condiciones de
contorno
D
D
D
D

u.x; 0/
u.x; 1/
u.0; y/
u.1; y/

sen.x/
sen.x/
0
0

cambiando en el programa anterior las funciones de partida, haciendo


>> w=Poisson_1(0,1,0,1,10,10); queda
1.2
1
0.8
0.6
0.4
0.2
0
-0.2
1
0.8

1
0.6

0.8
0.6

0.4

0.4

0.2

0.2
0

Mtodo de los elementos finitos, FEM

40/61

Ejemplo de aplicacin del MEF


ETSII-UPM

Los FEM para resolver ecuaciones diferenciales requieren estas etapas:


I. Reformulacin del problema en forma dbil o variacional.
II. Divisin del dominio de variables independientes en subdominios, llamados
elementos finitos, asociados a un espacio vectorial de dimensin finita.
III. Obtencin de la proyeccin del problema original sobre el espacio de
elementos finitos, lo que lo convierte en un sistema de ecuaciones lineales
de grandes dimensiones que se resuelve.

41/61

Los pasos anteriores permiten convertir un problema de clculo en derivadas


parciales en un problema de lgebra lineal.

La discretizacin en elementos finitos ayuda a construir un algoritmo de


proyeccin sencillo, logrando adems que la solucin por este mtodo sea
generalmente exacta en un conjunto finito de puntos. Estos puntos coinciden
usualmente con los vrtices de los elementos finitos o puntos destacados de los
mismos.

Los elementos finitos tienen formas geomtricas sencillas (tringulos,


rectngulos, tetraedros, prismas, etc.) que se unen entre s en unos puntos
llamados nodos. Dentro de cada elemento las variables dependientes se
interpolan a partir de sus valores en los nodos.

intricacies of the problem itself. For some of the exercises and in forthco
will complicate things a little bit.
In this initial section there is going to be a lot of new stuff. Take you
carefully, because we will be using this material during the entire course.

Seguiremos el principio de actuacin del mtodo2 de Galerkin aplicado a la


1.1 The physical domain
ecuacin elptica con las condiciones de Dirichlet que siguen

42/61

The first thing we have to describe is the geometry (the physical setting
You have a sketch of it in Figure 1.1.

SD
SN

u.x; y/ C r.x; y/u.x; y/ D f .x; y/ dentro de la regin o dominio R


u.x; y/ D g.x; y/ sobre la frontera o borde S

donde la solucin, u.x; y/, se define sobre una regin R en un plano limitado
por una borde o frontera S, continua por tramos de Dirichlet y Neumann.

Figure 1.1: The domain and the Dirichlet and Neumann bou

We are thus given a polygon in the plane R2 . We call this polygon


is a closed polygonal curve . (There is not much difference if we suppo
3

La idea es, a partir de un espacio vectorial de funciones integrables al cuadrado


en la regin R, espacio de Lebesgue, que volvemos a definir como




L2.R/D funciones .x; y/ enR .x; y/2 dx dy existe y es finita ;


R

minimizar el cuadrado del error de la ecuacin elptica forzando a que el residuo


u.x; y/ C r.x; y/u.x; y/ f .x; y/ sea ortogonal a un subespacio de L2 .R/.
2

Por Boris Grigoryevich Galerkin, Rusia 1871-1945, aunque descubierto por Walther Ritz, Suiza, 1878-1909.

43/61

Designaremos mediante L20.R/ el subespacio de L2.R/ de las funciones que son


cero en el borde o frontera S de la regin R.

Si las funciones 1.x; y/; 2.x; y/; : : : ; P .x; y/ son una base del subespacio
L2.R/, la condicin de ortogonalidad tiene esta forma


u C ru f p dx dy D 0
R

u C ru p dx dy D
R

f p dx dy;
R

para cada 1  p  P . A esta forma se le denomina forma dbil de la ecuacin


elptica.

44/61

La primera identidad de Green

George Green, Reino Unido 1793-1841

dice que si R es una regin, con frontera S continua a trozos, u y v funciones


continuas3 y n el vector unitario normal hacia afuera a lo largo de la frontera,

Z
@u
ru  rv:
vu D v dS
@n
S
R
R



La derivada direccional es @u
D
ru

n
;
n
x y , donde .nx ; ny / es el vector
@n
unitario normal hacia afuera en la frontera S de R.

La identidad de Green aplicada a la forma dbil es


@u
p dS
@n
S

La funcin v se denomina de prueba.




u C ru p dx dy D R f p dx dy

rup dx dy D
f p dx dy:

ru  rp dx dy C
R

(1)

45/61

La idea fundamental de los elementos finitos es aproximar u en la forma


dbil por
P
X
vq q .x; y/
w.x; y/ D
qD1

y despus determinar las constantes vq .




Supongamos para ello que p pertenece a L20.R/, es decir, p .S / D 0. Con la


aproximacin por w.x; y/ en el resultado de aplicar la identidad de Green (1),
R




dS
ru  r dx dy C
ru dx dy D
f  dx dy
para cada p en L20.R/,
S

P
X

s
R

qD1

@u
p @n

vq rq  rp dx dy C

P
X
qD1

vq q p dx dy D

f p dx dy
R

46/61

Factorizando las constantes vq ,


P
i

 P
P
R

qD1

rq  rp dx dy

vq




PP

vq rq  rp dx dy C R r
qD1 vq q p dx dy D Rf p dx dy

rq p dx dy

Z
D

f p dx dy;
R

qD1

que es una ecuacin lineal para cada p en las incgnitas v1; : : : ; vP .




En forma matricial ser Av D b. Los coeficientes de la fila p de A y b son


apq D

rq  rp dx dy

rq p dx dy
R

y
bp D

f p dx dy
R

functions of x, y that live on triangles in the plane. For concreteness, let the region R
rectangle, and form a triangulation with nodes (x , yj ) chosen from a rectangular grid.
 Qu funciones explcitas se pueden elegir para losi elementos
finitos p ?
47/61
will reuse the M N grid from the previous section, shown in Figure 8.16(a),
where
set m = M + 1 and n = N + 1. As before, we will denote the grid step size in the x an
directions as h and k, respectively. Figure 8.16(b) shows the triangulation of the rectang
 Utilizaremos B-splines lineales4 por tramos basadas en tringulos en un plano.
region that we will use.

Aqu se ve una triangularizacin de la regin R rectangular mallada M  N .

yt

yb

w1n w2n w3n

wmn

w12 w22 w32

wm2

w11 w21 w31

wm1

xl

xr

yt

w1n w2n w 3n

wmn

wm2
wm1

yb
xl

xr

Figure 8.16 Finite element solver of elliptic equation with Dirichlet boundary conditions.
(a) Mesh is same as used for nite difference solver. (b) A possible triangulation of the region. Ea

Esta triangularizacin .m D M C 1; n D N C 1/ da lugar a P D mn funciones


interior point is a vertex of six different triangles.
lineales for tramos, p , cada una de las cuales toma el valor 1 en un punto de la
malla y 0 en los mn 1 restantes.
4

Recordemos, las B-splines (basis splines) son curvas hechas con trozos polinmicos de grado p .

48/61

Usando la numeracin introducida al presentar esta malla, las 1; : : : ; mn se


determinan mediante la igualdad iC.j 1/m.xi ; yj / D 1 y
iC.j 1/m.xi 0 ; yj 0 / D 0 para los dems puntos de la malla .xi 0 ; yj 0 /, si son
lineales en los tringulos.

Cada p .x; y/ es derivable, excepto en los bordes o aristas de los tringulos, por
lo que son funciones de L2.R/ integrables de Riemann.

Se cumple adems para las aproximaciones que


w.xi ; yj / D

m X
n
X

viC.j

1/m i C.j 1/n .xi ; yj /

D vi C.j

1/m ;

i D1 j D1

para i D 1; : : : ; m, j D 1; : : : ; ; n. Es decir, en cada punto .xi ; yj / la


aproximacin w de la solucin correcta u ser la que se obtenga al resolver
Av D b.

49/61

Para completar la exposicin del procedimiento FEM queda el clculo de los


coeficientes de la matriz A y del trmino independiente b.

Para ello, si definimos el baricentro de una regin del plano como el punto
.x;
N y/
N donde

y dx dy
x
dx
dy
; yN D R
:
xN D R
1
dx
dy
1
dx
dy
R
R
Si R es un tringulo de vrtices .x1; y1/, .x2; y2/ y .x3; y3/ su baricentro es
xN D

x1 C x2 C x3
;
3

yN D

y1 C y2 C y3
:
3

Tendremos en cuenta que el valor medio de una funcin lineal L.x; y/ en una
regin
plana R es L.x;
N y/,
N el valor en el baricentro. En otras palabras,

N y/
N  rea.R/.
R L.x; y/ dx dy D L.x;

El desarrollo en serie de Taylor de una funcin de dos variables dice que


f .x; y/ D f .x;
N y/
N C
CO .x

@f
.x;
N y/.x
N
@x
2

x/
N ; .x

D L.x; y/ C O .x


x/
N C
x/.y
N

@f
.x;
N y/.y
N
@y

y/;
N .y

y/
N

y/
N

2

x/
N 2 ; .x

x/.y
N

y/;
N .y


y/
N 2 :

O .x

x/
N 2 ; .x

x/.y
N

y/;
N .y

En consecuencia,5

f .x; y/ dx dy D
R

L.x; y/ dx dy C
R


y/
N 2 dx dy

Drea.R/  L.x;
N y/
N C O.h4 / D rea.R/  f .x;
N y/
N C O.h4 /;

donde h es el dimetro de R, la distancia ms grande entre dos puntos de R.




50/61

Por otro lado, si .x; y/ es una funcin lineal en el tringulo T de vrtices


.x1; y1/, .x2; y2/ y .x3; y3/, que cumple que .x1; y1/ D 1, .x2; y2/ D 0 y
.x3; y3/ D 0, entonces .x;
N y/
N D 1=3.
5

Regla del punto medio en dos dimensiones.

Si 1.x; y/ y 2.x; y/ son dos funciones lineales en ese mismo tringulo, que
cumplen que 1.x1; y1/ D 1, 1.x2; y2/ D 0, 1.x3; y3/ D 0, 2.x1; y1/ D 0,
2.x2; y2/ D 1 y 2.x3; y3/ D 0 y f .x; y/ es una funcin continua y derivable
dos veces, con
"
#

51/61

1 1 1
d D det x1 x2 x3
y1 y2 y3

entonces
a/ el tringulo T tiene un rea igual a jd j=2

b/ r1 .x; y/ D y2 d y3 ; x3 d x2

.x2 x3 /2 C .y2 y3 /2
c/
r1  r1 dx dy D
2jd j
T

.x1 x3 /.x2 x3 / .y1 y3 /.y2 y3 /


d/
r1  r2 dx dy D
2jd j
T

4
e/
f 1 2 dx dy D f .x;
N y/jd
N j=18 C O.h / D
f 12 dx dy
T

f 1 dx dy D f .x;
N y/jd
N j=6 C O.h4 /;

f/
T

donde .x;
N y/
N es el baricentro de T y h D dime.T /.

8.3 Elliptic
| 411 hexagonal
Para obtener A, consideremos el .xi ; yj / en el interior
en Equations
esta figura

52/61

(xi,y j+1)

(xi 1,y j )

1
(xi 1,y j 1)

(xi+1,y j+1)

5
4

(xi+1,y j )

3
2

(xi ,y j 1)

8.17 Detail of the (i, j) interior point from Figure 8.16(b). Each interior point (xi , yj )
que no est enFigure
la frontera
S del rectngulo mallado considerado. Est rodeado
is surrounded by six triangles, numbered as shown. The B-spline function i+(j1)m is linear,
takes the
1 at the center,
and is zero
outside of thesees
six lineal
triangles. y toma el valor 1 en el
de seis tringulos.
Lavalue
funcin
B-spline
iC.j
1/m
centro y 0 fuera de esos tringulos.

The triangles have horizontal and vertical sides h and k, respectively. For the rst integral,
summing from triangle 1 to triangle 6, respectively, we can use Lemma 8.10(c) to sum the
six contributions

Como p D q D i 2C .j2 1/m


el coeficiente
Ai C.j 1/m;iC.j
1/m est compuesto
k
h
h2 + k 2
k2
h2
h2 + k 2
2(h2 + k 2 )
+ son
+ cero fuera
+
+ esos
+ seis tringulos.
=
.
(8.54)
de dos integrales,2hkque
2hk
2hk
2hk de2hk
2hk
hk
For the second integral of (8.51), we use Lemma 8.10(e). Again, the integrals are zero except
for the six triangles shown. The barycenters of the six triangles are

Los 6 tringulos tienen lados horizontales


k. La primera integral,
2 h y verticales
1

B1 = (xi h, yj k)
2
2
2
h
Ck
2
2
2
2
2
2
2
2
3 Ck
3k
h
h
Ck
k
C 2hk
C 1h 2hk
C22hk
C 2hk
C h 2hk
D
. Los
desde el tringulo 1 al 6, es 2hk
hk
baricentros de los seis

2
B2 = (xi
k) 13 k 
B1 Dh,xyi j
3 h; yj
3
1 3
2
B2 D xi
3 h; yj
3k
1
B3 1D xi C 13 h;1yj
h,
y
k)
B
=
(x
+

tringulos 3son i B4 3D xi jC 23 h;3yj C 331kk


B5 2D xi C 13 h;1yj C 32 k
1
1
B6 Dh,xyi j +
B4 = (xi +
j C 3k :
3 h; yk)
3
3

La segunda integral es

53/61

.hk=18/ r.B1 / C r.B2 / C r.B3 / C r.B4 / C r.B5 / C r.B6 /

por lo que sumando las dos se tiene que



AiC.j

1/m;iC.j 1/m

2 h2 Ck 2
hk

hk
r.B1 / C r.B2 / C r.B3 / C r.B4 / C r.B5 / C r.B6 /:
18

De la misma forma,
Ai C.j

1/m;i 1C.j 1/m

k
h

Ai C.j

1/m;i 1C.j 2/m


hk 
r.B
/
C
r.B
/
1
2
18

1/m;i C.j 2/m

h
k


hk 
r.B
/
C
r.B
/
2
3
18

1/m;i C1C.j 1/m

k
h


hk 
r.B
/
C
r.B
/
3
4
18


hk 
r.B
/
C
r.B
/
4
5
18

k
h

Ai C.j
Ai C.j

AiC.j

1/m;i C1Cj m

Ai C.j

1/m;i Cj m


hk 
r.B
/
C
r.B
/
6
1
18


hk 
r.B5 / C r.B6 /
18

54/61

Para calcular los coeficientes de b se procede de forma similar resultando que,


para p D i C .j 1/m,
bi C.j

1/m


hk 
f .B1 / C f .B2 / C f .B3 / C f .B4 / C f .B5 / C f .B6 / :
6

Para los elementos finitos en la frontera, i C.j 1/m no pertenece a L20.R/ por lo
que se usan Ai C.j 1/m;iC.j 1/m D 1 y bi C.j 1/m D g.xi ; yj / para garantizar la
condicin de Dirichlet vi C.j 1/m D g.xi ; yj / en el punto frontera .xi ; yj /.

55/61

En Matlab para la ecuacin de Poisson se consigue esto:


function w=Poisson_FEM_1(xl,xr,yb,yt,M,N)
% Ecuacin de Poisson por Elementos Finitos
%
Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x,y) 0; r=@(x,y) 0; g1=@(x) log(x.^2+1); g2=@(x) log(x.^2+4); g3=@(y) 2*log(y); g4=@(y) log(y.^2+1);
m=M+1; n=N+1; mn=m*n; close all
h=(xr-xl)/M; h2=h^2; k=(yt-yb)/N; k2=k^2; hk=h*k;
x=xl+(0:M)*h; y=yb+(0:N)*k;
% valores para la mesh
A=zeros(mn,mn); b=zeros(mn,1);
for i=2:m-1
% puntos del interior
for j=2:n-1
rsum=r(x(i)-2*h/3,y(j)-k/3)+r(x(i)-h/3,y(j)-2*k/3)+r(x(i)+h/3,y(j)-k/3);
rsum=rsum+r(x(i)+2*h/3,y(j)+k/3)+r(x(i)+h/3,y(j)+2*k/3)+r(x(i)-h/3,y(j)+k/3);
A(i+(j-1)*m,i+(j-1)*m)=2*(h2+k2)/(hk)-hk*rsum/18;
A(i+(j-1)*m,i-1+(j-1)*m)=-k/h-hk*(r(x(i)-h/3,y(j)+k/3)+r(x(i)-2*h/3,y(j)-k/3))/18;
A(i+(j-1)*m,i-1+(j-2)*m)=-hk*(r(x(i)-2*h/3,y(j)-k/3)+r(x(i)-h/3,y(j)-2*k/3))/18;
A(i+(j-1)*m,i+(j-2)*m)=-k/h-hk*(r(x(i)-h/3,y(j)-2*k/3)+r(x(i)+h/3,y(j)-k/3))/18;
A(i+(j-1)*m,i+1+(j-1)*m)=-k/h-hk*(r(x(i)+h/3,y(j)-k/3)+r(x(i)+2*h/3,y(j)+k/3))/18;
A(i+(j-1)*m,i+1+j*m)=-hk*(r(x(i)+2*h/3,y(j)+k/3)+r(x(i)+h/3,y(j)+2*k/3))/18;
A(i+(j-1)*m,i+j*m)=-k/h-hk*(r(x(i)+h/3,y(j)+2*k/3)+r(x(i)-h/3,y(j)+k/3))/18;
fsum=f(x(i)-2*h/3,y(j)-k/3)+f(x(i)-h/3,y(j)-2*k/3)+f(x(i)+h/3,y(j)-k/3);
fsum=fsum+f(x(i)+2*h/3,y(j)+k/3)+f(x(i)+h/3,y(j)+2*k/3)+f(x(i)-h/3,y(j)+k/3);
b(i+(j-1)*m)=-h*k*fsum/6;
end
end
for i=1:m
j=1; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g1(x(i));
j=n; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g2(x(i));
end
for j=2:n-1
i=1; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g3(y(j));
i=m; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g4(y(j));
end
v=A\b;
w=reshape(v(1:mn),m,n);
mesh(x,y,w)
end

Si lo utilizamos con >> w=Poisson_FEM_1(0,1,1,2,4,4); se llega a


2

1.5

0.5

0
2
1
0.8

1.5

0.6
0.4
1

0.2
0

Con >> w=Poisson_FEM_1(0,1,1,2,20,20);


2

1.5

0.5

0
2
1
0.8

1.5

0.6
0.4
1

0.2
0

56/61

57/61

Resolucin de EDP no lineales




Utilizaremos la estrategia del mtodo de las diferencias atrasadas.

La aplicaremos a una tpica ecuacin no lineal en derivadas parciales,


u t C uux D Duxx ;

conocida como ecuacin de Burgers.

Johannes Martinus Burgers, Paises Bajos,


1895-1981

Est presente en mecnica de fluidos, flujo de trfico, acstica, etc.


Si D > 0, modeliza fluidos viscosos; si D D 0, fluidos invscidos o sin
viscosidad.

58/61

APTER 8 Partial Differential Equations

Utilizaremos una discretizacin como la de la ecuacin del calor.


t
T

x
a

Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known
and boundary
conditions.
open circles
unknown values
that must y
be de contorno
Los puntosinitial
slidos
son los
queThedefinen
lasrepresent
condiciones
iniciales
determined.
(conocidos); los huecos, los que calcular el mtodo.

its approximation at (xi , tj ) by wij . Let M and N be the total number of steps in the x and t
 Si wij es directions,
and let h = (bde
a)/M
and k = T en
/N be
in the x anddiferencias
t directions.
la aproximacin
la solucin
.xthei ; step
tj /,sizes
aplicando
The discretization formulas from Chapter 5 can be used to approximate derivatives in
atrasadas the
a xuand
en los applying
otros trminos
de u t Cformula
uux DforDu
se tiene
i yt centradas
directions. For example,
the centered-difference
the xx
second
derivative to the x variable yields

wij wi;j 1
wiC1;j wi 1;j 
D
C
w
D
w
2w
C
w
ij
i C1;j
ij
i 1;j :
1 2h
k
h2
uxx (x, t) 2 (u(x + h, t) 2u(x, t) + u(x h, t)),
(8.4)
h
with error h2 uxxxx (c1 , t)/12; and the forward-difference formula for the rst derivative

que

59/61

Reordenando,
h
wij C 2h
wij wi C1;j

wi

1;j

 wi C1;j

2wij C wi

1;j

wi;j

D 0;

donde  D Dk= h2.




Al ser una ecuacin no lineal en w, se resolver por Newton-Raphson.

Si se hace zi D wij , en la etapa de tiempo j se trata de resolver la ecuaciones


en las variables z1; : : : ; zm


k
zi ziC1 zi 1
 ziC1 2zi C zi 1
wi;j 1 D 0;
Fi .z1; : : : ; zm/ D zi C 2h
para i D 1; : : : ; m. El trmino wi;j

se conoce de la etapa anterior.

La primera y la ltima de estas ecuaciones se reemplazan por las condiciones de


contorno apropiadas. As, para el caso de la ecuacin de Burgers con
condiciones de Dirichlet
8
< ut C uux D Duxx

60/61

u.x; 0/ D f .x/ para xl  x  xr


u.xl ; t / D l.t / para todo t  0
u.xr ; t / D r.t / para todo t  0;

F .z ; : : : ; z / D z

las ecuaciones 1 y m son F 1.z1; : : : ; zm/ D z1


m 1
m
m


l.tj / D 0
r.tj / D 0:

Para aplicar Newton-Raphson la Jacobiana del sistema,


2
6 
6
6
6
6
6
J .z/D6
6
6
6
6
4

1
kz2
2h

0
1C2 C k.z32h z1 /


kz3
2h

J .z/ D @F
,
@z

es
3

2
 C kz
2h

1C2 C k.z42h z2 /
::
:

3
 C kz
2h
::
:

kzm
2h

::
1

1C2 C k.zm 2hzm


0

La frmula de recurrencia zkC1 D zk

J .zk / 1 F .zk /

2/

m
 C kz2h

7
7
7
7
7
7
7
7
7
17
7
5

Ejemplo Resolvamos la ecuacin de Burgers

El cdigo que lo hace es:

Con

u t C uux D Duxx

< u.x; 0/ D 2D  sen.x/ para 0  x  1


C cos.x/

u.0;
t
/
D
0
para todo t  0

: u.1; t / D 0 para todo t  0:

function w=Burgers(xl,xr,tb,te,M,N)
% Ecuacin de Burges; diferencias atrasadas; In [xl,xr], tiempo[tb,te], M, N
alfa=5; beta=4; D=0.05;
f=@(x) 2*D*beta*pi*sin(pi*x)./(alfa+beta*cos(pi*x));
l=@(t) 0*t; r=@(t) 0*t;
m=M+1; n=N; close all
h=(xr-xl)/M; k=(te-tb)/N; sigma=D*k/h/h;
w(:,1)=f(xl+(0:M)*h); w1=w;
for j=1:n
for it=1:4
DF1=diag(1+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
DF1=DF1+diag(-sigma*ones(m-1,1),-1);
DF2=diag([0;k*w1(2:m-1)/(2*h)],1)-diag([k*w1(2:m-1)/(2*h);0],-1);
DF=DF1+DF2;
F=-w(:,j)+(DF1+DF2/2)*w1;
DF(1,:)=[1 zeros(1,m-1)]; DF(m,:)=[zeros(1,m-1) 1];
F(1)=w1(1)-l(j); F(m)=w1(m)-r(j);
w1=w1-DF\F;
% Newton-Raphson
end
w(:,j+1)=w1;
end
x=xl+(0:M)*h; t=tb+(0:n)*k; mesh(x,t,w)
end

>> w=Burgers(0,1,0,2,250,250);

se obtiene

61/61