Está en la página 1de 61

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales 1/61

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
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

@u @u @ 2u @ 2u
F .x1; : : : ; xn; u; @x ; : : : ; @x ; @x @x ; @x @x ; : : :/ D 0.
1 n 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 4/61

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.
 Dada una funcin u.x; y/, en las EDP es muy comn significar las derivadas 5/61

parciales empleando subndices (notacin tensorial). Esto es:


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

@2 u
uxx D 2 .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.
6/61

Ejemplos de EDP

 Una EDP lineal de primer orden:


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

2 2
 Una EDP no lineal de primer orden: ux C uy D 0.

 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 7/61

de las de segundo orden con dos variables independientes, con esta forma

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:

Parablica si B 2 4AC D 0:
Hiperblica si B 2 4AC > 0:
Elptica si B 2 4AC < 0:

 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 para todo a  x  b; t  0

< u.x; 0/ D f .x/ para todo a  x  b


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

: u.b; t/ D r.t/ 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 10/61

 Se basa en discretizar la EDP en 0; T generando una malla de las variables


8 Partial Differential Equations
independientes y considerando slo los nudos de la misma.
t

0 x
a b

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
contorno; los puntos huecos los que calcular el procedimiento.
determined.

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

 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
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 /, 12/61

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:


wi;j C1 D wij C Dk

h2
w iC1:j 2w ij C w i 1;j

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

i1 i i+1
 Las condiciones de contorno y las iniciales dan valores a wi0; i D 0; : : : ; M y 13/61

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

 En forma matricial, los valores de wi;j C1 en el tiempo tj C1 se determinan


mediante la frmula wj C1 D Awj C sj , o
2 3
1 2  0  0
:: :: 7"
6  1 2  : : : 7 w1j
" # 6 # " #
w1;j C1 w0;j
:: D6  1 2 : : : ::
: 6 0: ::: ::: :::
0 77 :: C  : :
wm;j C1 4 ::  5 wmj wmC1;j
0  0  1 2

La matriz A es m  m, donde m D N 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.
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.

Dk
 Se puede probar que el mtodo es estable si, para D > 0, 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):
1  k
ut D u.x; t / u.x; t k/ C u t t .x; c0/;
k 2
donde t k < c0 < t para aproximar u t .

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


1  D 
wij wi;j 1 D 2 wi C1;j 2wij C wi 1;j ;
k h
con un error de truncamiento local O.k/ C O.h2/.
17/61

 El sistema de ecuaciones similar al anterior quedara


21 C 2  0  0
3
: :
6  1 C 2  : : :: 7 w:1j
     
w1;j 1 w0;j
::: 7 :: D :: ::
6 0  1 C 2 0 5 wmj : C  : :
4 :
:: : :: : :: : :: wm;j 1 wmC1;j

0  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);
 El programa anterior: 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.6 0.8
0.6
0.8 0.4
0.2
1 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
2 h2
C2 h2
:
20/61

 Haciendo otra vez  D Dk= h2, la ecuacin del calor se puede reordenar as
h i
al Differential 2wi;j 1 D  wi C1;j
2wijEquations 2wij C wi 1;j C wi C1;j 1 2wi;j 1 C wi 1;j 1 ,

oorbien

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

lo que leads
which llevatoa the
la grfica
templatede nudos
shown afectados
in Figure 8.7. de esta figura.

j+1

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  0  0
3
::: ::
6  2 C 2  : 7
AD6 ::: 7;
0  2 C 2 0
4 :: ::: ::: :::
5
: 
0  0  2 C 2
y

22 2  0 0
3
::: ::
6  2 2  : 7
BD6 ::: 7:
0  2 2 0
4 :: ::: ::: :::
5
: 
0  0  2 2

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


22/61

 El programa de Matlab que implementa el mtodo es ste:


El resultado de
function w=Crank_Nicolson(xl,xr,yb,yt,M,N) >>w=Crank_Nicolson(0,1,0,1,10,10):
% 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; 1

r=@(t)0*t;
D=1;
0.5
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);
0
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); -0.5
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h);
for j=1:n -1
sides=[lside(j)+lside(j+1); zeros(m-2,1); rside(j)+rside(j+1)]; 0
w(:,j+1)=a\(b*w(:,j)+sigma*sides); 0.2
end 0.4
1
w=[lside; w; rside]; 0.6 0.8
x=(0:m+1)*h; t=(0:n)*k; 0.6
0.8 0.4
mesh(x,t,w) 0.2
1 0
view(60,30);axis([xl xr yb yt -1 1])
end 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: 24/61
8

u t t D c 2 uxx para todo a  x  b; t  0

< u.x; 0/ D f .x/ para todo axb



u t .x; 0/ D g.x/ para todo axb

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





u.b; t/ D r.t/ para todo t  0:
:

PTER 8 Partial Differential Equations


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

0 x
a b

Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known
Los puntos son .xi ; tj /,conditions.
initial and boundary
dondeThexiopen D circles
a Crepresent j D j values
ih y tunknown k, con pasos h y k.
that must be
determined. a la solucin u.xi ; tj / se representa mediante wij .
La aproximacin
 Para discretizar la ecuacin de onda u t t D c 2uxx las segundas derivadas se 25/61

reemplazan por sus aproximaciones por diferencias centradas en las direcciones t


y x, es decir
wi;j C1 2wij C wi;j 1 wi 1;j 2wij C wiC1;j
c2 D 0:
k2 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

2
 2 
wi1 D 1  wi0 C kg.xi / C wi 1;0 C wi C1;0 ;
2
que es donde entra la informacin de la velocidad inicial g.x/.

 Escribiendo el mtodo en forma matricial,


2 2 2 2 0  0
2 3
::: ::
6
6 2 2 2 2 2 : 7
7
:
AD6 2 2 2 : : 7:
6 7
0 2 0
6 :: ::: ::: ::: 7
4 : 2 5
0  0  2 2 2
2
27/61

 La ecuacin de inicio es
2 3
w00
w11 w10 g.x1 / 6 0 7
2 3 2 3 2 3
4 :: 5 D A 4 :: 5 C k 4 :: 5 C  6 ::: 7 :
: 1 : : 1 2
6 7
2 2 6 7
wm1 wmo g.xm / 4 0 5
wmC1;0

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


2 3
l.tj /
w1;j C1 w1j w1;j 1 6 0 7
2 3 2 3 2 3
4 ::: 5 D A 4 ::: 5 4 ::: 5 C  2 6 ::: 7 :
6 7
6 7
wm;j C1 wmj wm;j 1 4 0 5
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. 29/61

 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.
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.


31/61
 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.
 Un campo elctrico E es el gradiente de un potencial electrosttico u, es decir 32/61

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


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 2 Johann Peter Gustav Lejeune
contorno de Dirichlet: Dirichlet, Alemania, 1805-1859.
u.xl ; y/ D g3 .y/


: u.x ; y/ D g .y/:
r 4
400 | CHAPTER 8 Partial Differential Equations
y esta malla:
w1n w2n w3n wmn yt
yt

w12 w22 w32 wm 2 vm+1 vm+2 vm +3


w11 w21 w31 wm 1 v1 v2 v3
yb x yb
xl xr xl

Figure 8.12 Mesh for nite difference solver of Poisson equation with Dirichlet b
con M D m 1 intervalos en laconditions.
direccin horizontal
(a) Original y NwithDdouble
numbering system n subscripts.
1 en (b)vertical.
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
h2 C O.h /C
C u.x;y k/ 2u.x;y/Cu.x;yCk/
k2
C O.k 2/ D f .x; y/;
donde h D .xr 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 wi;j 1 2wi;j Cwi;j C1
h2
C k2
D f .xi ; yj /

donde xi D xl C .i 1/h y yj D yb C .j 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 vmn
yt

wm 2 vm+1 vm+2 vm +3 v2m


wm 1 v1 v2 v3 vm
x yb x
xr xl 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 36/61

ecuacin es la p, los coeficientes Apq para varios q son estos:


x y Ecuacin nmero p
i j i C .j 1/m

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

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


2 2
Ai C.j 1/m;i C.j 1/m D h2 k2
1
Ai C.j 1/m;i C1C.j 1/m D h2
1
Ai C.j 1/m;i 1C.j 1/m D h2
1
Ai C.j 1/m;i Cj m D k2
1
AiC.j 1/m;i C.j 2/m D k2
:

El trmino de la derecha del nudo .i; j / es biC.j 1/m D f .xi ; yj /.


Slo quedaran las condiciones de contorno.
 En Matlab, estructurar todo para resolver la ecuacin de Poisson con 37/61

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


u.x; 1/ D ln.x 2 C 1/
u.x; 2/ D ln.x 2 C 4/
u.0; y/ D 2 ln y
u.1; y/ D 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;
lleva a esto: 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
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

0.8

0.6

0.4

0.2

0
2
1.8 1
1.6 0.8
1.4 0.6
0.4
1.2
0.2
1 0
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
u.x; 0/ D sen.x/
u.x; 1/ D sen.x/
u.0; y/ D 0
u.1; y/ D 0
cambiando en el programa anterior las funciones de partida, haciendo
>> w=Poisson_1(0,1,0,1,10,10); queda

1.2

0.8

0.6

0.4

0.2

-0.2
1
0.8 1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
0 0
40/61

Mtodo de los elementos finitos, FEM


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

 Seguiremos el principio de actuacin del mtodo2 de Galerkin aplicado a la carefully, because we will be using this material during the entire course.
42/61
1.1 The physical domain
ecuacin elptica con las condiciones de Dirichlet que siguen 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 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 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

por una borde o frontera S, continua por tramos de Dirichlet y Neumann. is a closed polygonal curve . (There is not much difference if we suppo

 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
o

u C ru p dx dy D f p dx dy;
R 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,
@u
Z
vu D v dS ru  rv:
R S @n R

La derivada direccional es @u


@n
D ru  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


 


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

@u
Z

p dS ru  rp dx dy C rup dx dy D f p dx dy: (1)
S @n R R R

3
La funcin v se denomina de prueba.
45/61

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


dbil por
XP
w.x; y/ D vq q .x; y/
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),
para cada p en L20.R/,
R 
@u

S dSp @nru  r dx dy C
R p ru dx dy D
R pf  dx dy
R p

P P
s ! s ! s
X X
vq rq  rp dx dy C r vq q p dx dy D f p dx dy
R qD1 R qD1 R
46/61

Factorizando las constantes vq ,


 P  PP  
P


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

P
i !
Z
vq rq  rp dx dy rq p dx dy D f p dx dy;
R R 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


s s
apq D rq  rp dx dy rq p dx dy
R R

y
s
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 ?
will reuse the M N grid from the previous section, shown in Figure 8.16(a), where
47/61

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 .

w1n w2n w3n wmn w1n w2n w 3n wmn


yt yt

w12 w22 w32 wm2 wm2


w11 w21 w31 wm1 wm1
yb yb
xl xr 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


m X
X n
w.xi ; yj / D 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
N y/
.x; N donde
x dx dy y dx dy
xN D R ; yN D R :
R 1 dx dy R 1 dx dy
Si R es un tringulo de vrtices .x1; y1/, .x2; y2/ y .x3; y3/ su baricentro es
x1 C x2 C x3 y1 C y2 C y3
xN D ; yN D :
3 3

 Tendremos en cuenta que el valor medio de una funcin lineal L.x; y/ en una
regin
N y/,
plana R es L.x; N el valor en el baricentro. En otras palabras,
R L.x; y/ dx dy D L.x;N y/
N  rea.R/.
50/61
 El desarrollo en serie de Taylor de una funcin de dos variables dice que
@f @f
f .x; y/ D f .x;
N y/
N C @x
N y/.x
.x; N N C
x/ @y
N y/.y
.x; N N
y/
2 2

CO .x N ; .x
x/ N
x/.y N .y
y/; N
y/
N 2 ; .x N 2 :

D L.x; y/ C O .x x/ N
x/.y N .y
y/; y/

 En consecuencia,5

N 2 ; .x N 2 dx dy

f .x; y/ dx dy D L.x; y/ dx dy C O .x x/ N
x/.y N .y
y/; y/
R R R

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


N y/ N C O.h4 /;
N y/

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

 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 51/61

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 " #
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
T 2jd j
.x1 x3 /.x2 x3 / .y1 y3 /.y2 y3 /

d/ r1  r2 dx dy D
T 2jd j

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 T

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

N y/
donde .x; N es el baricentro de T y h D dime.T /.
 Para obtener A, consideremos el .xi ; yj / en el interior en Equations
8.3 Elliptic esta figura
| 411 hexagonal
52/61

(xi,y j+1) (xi+1,y j+1)

5
(xi 1,y j ) 6 4 (xi+1,y j )
1 3
(xi 1,y j 1) 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,
de seis tringulos. Lavalue
takes the funcin B-spline
1 at the center, iC.j
and is zero outside of thesees
1/m
triangles. y toma el valor 1 en el
six lineal

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
de dos integrales,2hkque + cero fuera
+ + esos+ seis tringulos.
= .
2hk de2hk
(8.54)
2hk 2hk 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 2 h y verticales
1 k. La primera integral,
B1 = (xi h, yj k)

2 2
k 2
h2 3 Ck
2 2 3k 2 2 2
Ck 2 2 h Ck
desde el tringulo 1 al 6, es 2hk C 2hk C 1h 2hk C22hk h
C 2hk C h 2hk D hk
. Los
B2 = (xi
B1 Dh,xyi j
2 k) 13 k 
3 h; yj
3
B2 D xi 1 3 2
3 h; yj 3k
B3 1D xi C 13 h;1yj 1
baricentros de los seis tringulos 3son i B4 3D xi jC 23 h;3yj C 331kk
B = (x + h, y k)
B5 2D xi C 13 h;1yj C 32 k
B4 = (xi +
B6 Dh,xyi j +
1
3 h; yk)
1
j C 3k :
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



2 h2 Ck 2 hk
AiC.j 1/m;iC.j 1/m D hk 18
r.B1 / C r.B2 / C r.B3 / C r.B4 / C r.B5 / C r.B6 /:

 De la misma forma,
k hk  
Ai C.j 1/m;i 1C.j 1/m D h 18
r.B 6 / C r.B1 /
hk  
Ai C.j 1/m;i 1C.j 2/m D 18
r.B1 / C r.B2 /
h hk  
Ai C.j 1/m;i C.j 2/m D k 18
r.B 2 / C r.B3 /
k hk  
Ai C.j 1/m;i C1C.j 1/m D h 18
r.B 3 / C r.B4 /
hk  
AiC.j 1/m;i C1Cj m D 18
r.B4 / C r.B5 /
k hk  
Ai C.j 1/m;i Cj m D h 18
r.B5 / C r.B6 /
54/61

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


para p D i C .j 1/m,
hk  
bi C.j 1/m D 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 56/61

1.5

0.5

0
2
1
0.8
1.5 0.6
0.4
0.2
1 0

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

1.5

0.5

0
2
1
0.8
1.5 0.6
0.4
0.2
1 0
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 ;

Johannes Martinus Burgers, Paises Bajos,


conocida como ecuacin de Burgers. 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

0 x
a b

Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known
Los puntosinitial
slidos son los
and boundary queThedefinen
conditions. lasrepresent
open circles condiciones iniciales
unknown values that must y
be de contorno
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,
la aproximacin
and let h = (bde la solucin
a)/M and k = T en
/N be.xthei ; step
tj /,sizes
aplicando
in the x anddiferencias
t directions.
The discretization formulas from Chapter 5 can be used to approximate derivatives in
a xuand
atrasadas the i yt centradas en los applying
directions. For example, otros trminos de u t Cformula
the centered-difference uux DforDuthe xx se tiene
second que
derivative to the x variable yields
wij wi;j 1 wiC1;j wi 1;j  D

k
C w ij 1 2h D h2
w i C1;j 2w ij C w i 1;j :
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
59/61

 Reordenando,
h
 
wij C 2h wij wi C1;j wi 1;j  wi C1;j 2wij C wi 1;j wi;j 1 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
 
Fi .z1; : : : ; zm/ D zi C 2h zi ziC1 zi 1  ziC1 2zi C zi 1 wi;j 1 D 0;

para i D 1; : : : ; m. El trmino wi;j 1 se conoce de la etapa anterior.


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

contorno apropiadas. As, para el caso de la ecuacin de Burgers con


condiciones de Dirichlet
8
< ut C uux D Duxx
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 l.tj / D 0
las ecuaciones 1 y m son F 1.z1; : : : ; zm/ D z1 r.tj / D 0:
m 1 m m

 Para aplicar Newton-Raphson la Jacobiana del sistema, J .z/ D @F


@z
, es
2 3
1 0
6 
6
kz2
2h
1C2 C k.z32h z1 /  C kz
2h
2 7
7
6 7
kz3
1C2 C k.z42h z2 /  C kz
6 7
3
6  2h 2h
7
J .z/D6
6 7
:: :: :: 7
6
6 : : : 7
7
6
6  kzm
2h
1
1C2 C k.zm 2hzm 2/
 C kz2h
m 17
7
4 5
0 1

La frmula de recurrencia zkC1 D zk J .zk / 1 F .zk /


8
u t C uux D Duxx

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

 Ejemplo Resolvamos la ecuacin de Burgers u.0; t / D 0
C cos.x/
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);
 El cdigo que lo hace es: 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

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

También podría gustarte