Quiros, F. - Cálculo Numérico II (Edos y Elementos Finitos)
Quiros, F. - Cálculo Numérico II (Edos y Elementos Finitos)
Quiros, F. - Cálculo Numérico II (Edos y Elementos Finitos)
ii
Cap
tulo 1
Metodos de un paso
1.1 Introduccion
El objetivo de esta primera parte del curso es encontrar soluciones aproximadas
para el problema de valor inicial
(
(1.1)
y = (y 1 ; y 2; : : : ; y d)T ;
= ( 1 ; 2 ; : : : ; d )T ;
f = (f 1 ; f 2 ; : : : ; f d )T :
Este problema tiene una solucion unica bajo condiciones bastante generales,
que supondremos a partir de ahora.
xn = a + nh;
n = 0; 1; 2 : : : ; N = (b a)=h:
El parametro h es la longitud del paso. De momento lo consideraremos constante, aunque conviene mencionar que gran parte de la potencia de los algoritmos modernos proviene de su capacidad de cambiar h automaticamente a
medida que se realizan los calculos.
Denotamos por yn a la aproximacion de la solucion y (xn ) de (1.1) en xn ,
yn y (xn ):
Nuestro objetivo es encontrar una forma de producir una sucesion de valores
fyng que aproxime a la solucion de (1.1) en el conjunto discreto de puntos fxng;
tal sucesion constituye una solucion numerica del problema (1.1). Los valores
yn se pueden interpolar para obtener una aproximacion de y (x) en puntos x
que no pertenezcan al conjunto xn .
Un metodo numerico sera un procedimiento para producir la sucesion de
valores aproximados fyng.
2
(1.2)
y6
Recta tangente
- ....
... r
...
6
...
.....................
...
...
...
...
... y (x)
...
...
..
-x
.
xn xn+1
h2 00
y ( n )
2
h2
= y (xn) + hf (xn ; y (xn)) + y 00 ( n ):
2
h2 00
Rn = y (xn+1 ) y (xn) hf (xn ; y (xn)) = y ( n );
2
y (xn+1 ) y (xn)
h
xn
g hg (c);
si lim ky (x0)
h!0+ 1nN
h!0+
y0 k = 0:
a.
Teorema 1.3. El metodo de Euler es convergente. Es mas, se tiene la siguiente cota para el error
a)L
a)L
1 h;
h2 00
y ( n )
2
h2
= y (xn) + hf (xn ; y (xn)) + y 00 ( n );
2
h2 00
y ( n ):
2
ke1 k
ke2 k
kenk
(1 + hL)ken 1 k + Ch2 =2
(1 + hL)n ke0 k + (1 + hL)n 1 + + (1 + hL) + 1 Ch2 =2:
..
.
kenk (1 + hL)nke0k + Ch
((1 + hL)n
2L
1) :
enhL
kenk enhLke0k + Ch
2L
1 = e(b
a)L
ke0k + Ch
e(b
2L
si 0 n N .
Ejemplo. Aplicamos el metodo de Euler al problema
y 0 (x) = g (x);
y (a) = 0;
6
a)L
Rb
a g.
=
As pues,
jy(xN )
NP1
j =0
h g (xj ):
Z
b
yN = g
a
N
X1
j =0
h g (xj ) ;
a la integral
j =0
Rb
a g.
h g (xj )
y 0 (x) = y (x);
y (0) = :
yn = (1 + h)n :
As pues,
b N
= eb ;
lim yN = lim 1 +
N !1
h!0
N
lo que prueba la convergencia del metodo de Euler directamente. Sin embargo
esta prueba no da ninguna estimacion del error.
+
1nN
y0 k = O(hp) cuando h ! 0+ :
Que un metodo sea de orden p signica que para todos los problemas razonables el error que se comete con el metodo es de ese orden. Pero puede
suceder que para algun problema concreto el metodo sea mejor.
Ejemplo. Consideramos el problema
y 0(x) = 1;
y (0) = 0;
y 0(x) = x;
y (0) = 0;
y1 = y0 + hx0 = 0;
y2 = y1 + hx1 = h2 ;
y3 = y2 + hx2 = h2 (1 + 2)
..
.
yn = h2 (1 + + (n 1)):
Es decir,
yn =
y por tanto
max ky (xn)
1nN
x2n
2
xn h
;
2
ynk = 1max
kx h=2k = bh=2;
nN n
8
1nN
(1.3)
ken+1k
1 + hL
2
1 hL
2
kenk + 1kRnhLk :
2
As pues,
ken+1k
1 + hL
2
hL
1 2
kenk + 1ChhL
2
con C =
5
max ky 000 (x)k:
12 x2[a;b]
kenk
1 + hL
2
hL
1 2
!n
Ch2
ke0k + L
1 + hL
2
hL
1 2
!n
hL )
2
1 :
concluimos que
kenk e(b
a)L=(1
hL )
2
2
ke0 k + Ch
e(b
L
a)L=(1
hL )
2
si 0 n N;
h3
h2 00
y (xn ) + y 000 (n ):
2
3!
yn+1 = yn + hf (xn ; yn ) +
h2
(f (x ; y ) + fy (xn ; yn)f (xn ; yn)):
2 x n n
kRnk Ch3;
y esperamos que el metodo sea de orden 2 (lo veremos mas adelante).
Por el mismo procedimiento podemos generar metodos de Taylor del orden
que queramos. El inconveniente es que involucran cada vez mas derivadas.
Comparemos con el metodo de Euler. Los metodos de Taylor tienen mayor
orden, luego habra que dar menos pasos. A cambio, dar un paso es computacionalmente mas caro. No solo hay que evaluar f , sino tambien sus derivadas,
lo que puede ser muy costoso, sobre todo si estas son difciles. As, si no queremos mucha precision y la funcion es complicada, Euler es preferible. Si, por
el contrario, queremos bastante precision y la funcion y sus derivadas no son
complicadas, es preferible usar un metodo de Taylor de orden mas alto. En
resumen: no hay un metodo que sea \el mejor". Cual sea el mas conveniente
depende de la ecuacion diferencial y de la precision que queramos conseguir.
12
(1.5)
(1.6)
(1.7)
ken+1k kenk + hk(xn; y(xn); y(xn+1); h) (xn; yn; yn+1; h)k + hkn k:
Para poder seguir pedimos que satisfaga la condicion de Lipschitz
(1.8)
h
k
en k +
:
ken+1k 11 + hL
hL
1 hL
A partir de esta desigualdad se tiene, repitiendo lo que hicimos para la regla
del trapecio el siguiente resultado.
Teorema 1.7. Si satisface la condicion de Lipschitz (1:8), entonces, para
hL < 1 se tiene que
ky(xn) ynk e2(b a)L=(1 hL) ky(x0) y0k + 2L e2(b a)L=(1 hL) 1 ;
donde = max0nN kn k. Por tanto, si limh!0 = 0, el metodo converge.
Si ademas = O(hp), entonces el metodo converge con orden p.
+
h!0+
(respectivamente = O(hp)):
14
Hemos probado que un metodo de un paso con satisfaciendo la condicion de Lipschitz (1.8) y consistente (consistente de orden p) es convergente
(convergente de orden p).
>Que quiere decir la consistencia? Tenemos que
y (xn + h) y (xn)
= (xn ; y (xn ); y (xn + h); h) + n :
h
Tomamos xn = a + nh = x jo, y pasamos al lmite h ! 0+ . La consistencia
resulta ser equivalente a que y 0 (x) = (x; y (x); y (x); 0), es decir, a
(x; y; y ; 0) = f (x; y ):
Esta condicion garantiza que estamos resolviendo la ecuacion diferencial correcta, que estamos siendo consistentes con ella.
Ejemplos.
k(x; y; z; h) (x; y^; z^; h)k = kf (x; y) f (x; y^)k Lky y^k;
y 000 (n ) 2
n =
h;
3!
4
as = O(h2 ) si y 2 C 3 ([a; b]), y por tanto la regla del trapecio es
convergente de orden 2.
n)
15
s
X
i=1
Ai f (i ; i )
de forma que (xn ; yn ; yn+1; h) sea una media ponderada de las pendientes
cerca de (xn ; yn ). La idea es elegir los parametros Ai , i ,
i de manera que la
funcion de incremento coincida lo mas posible con la funcion de incremento de
un metodo de Taylor.
Veamos por ejemplo como hacer esto con dos evaluaciones de la funcion y
d = 1. Parece razonable tomar (1 ;
1 ) = (xn ; yn ). Para 2 tomamos 2 = xn +
h. Una eleccion sensata para
2 consiste en estimar el valor y (2 ) avanzando
con el metodo de Euler, es decir
2 = yn + hf (xn ; yn):
Queda por tanto
A1 + A2 = 1;
A2 = 1=2;
1
2
y 6= 0 arbitrario. No tenemos un
Ejemplos.
h
h
yn+1 = yn + hf (xn + ; yn + f (xn ; yn)):
2
2
17
k1 = f (xn ; yn);
k2 = f (xn + h2 ; yn + h2 k1 );
yn+1 = yn + hk2 :
En cuanto a Euler mejorado, se puede escribir como
k1 = f (xn ; yn);
k2 = f (xn + h; yn + hk1 );
yn+1 = yn + h2 (k1 + k2 ):
Siguiendo estos ejemplos, denimos un metodo de Runge-Kutta de s etapas
para el problema (1.1) por
8
>
>
< ki
= f (xn + ci h; yn + h
>
>
: yn+1
= yn + h
s
P
j =1
s
P
j =1
aij kj );
i = 1; 2; : : : ; s
bj kj :
c1 a11 a12
c2 a21 a22
..
.. ..
. .
.
cs as1 as2
b1 b2
18
:::
:::
...
:::
...
a1s
a2s
..
.
ass
bs .
(1.9)
Ejemplos.
0
0
1
0
1=2 1=2.
Si escribimos
c = (c1 ; c2 ; : : : ; cs)T ;
b = (b1 ; b2 ; : : : ; bs )T ;
A = (aij );
A
bT .
ki = f (xn + ci h; yn + h
i
X
j =1
aij kj );
19
i = 1; 2; : : : ; s:
En vez de resolver en cada paso un sistema no lineal de dimension ds, tendremos que resolver s sistemas no acoplados de dimension d. Estos metodos se
llaman semi-implcitos. Al escribir sus tableros se omiten los ceros por encima
de la diagonal principal.
(x; y; y ; 0) =
s
X
j =1
bj f (x; y ):
bj = 1:
(1.10)
Por otra parte, puesto que las etapas ki son evaluaciones de la funcion f , no
es difcil convencerse de que satisface la condicion de Lipschitz (1.8) si f
satisface una condicion de Lipschitz en y . As pues, por el Teorema 1.7, la
condicion de consistencia (1.10) es suciente para garantizar la convergencia.
Veamos que tambien es necesaria.
y 0(x) = 1;
y (0) = 0;
20
yn+1 = yn + h
s
X
j =1
bj :
yn = nh
Por tanto
s
X
j =1
bj = xn
y (xn) yn = xn 1
s
X
j =1
s
X
j =1
bj :
!
bj ;
@f J
:
@y K @y L
= ynJ + h
>
J
>
: yn+1
= ynJ
s
P
aij f J (gj );
j =1
s
P
+h
j =1
bj
f J (g
j );
i = 1; : : : ; s;
J = 1; : : : ; d:
(1.12)
As, la unica diferencia entre las deniciones de giJ e ynJ+1 es que las constantes
aij en la primera formula pasan a ser las constantes bj en la segunda. Esta
semejanza nos permitira simplicar notablemente algunos calculos.
Si el sistema no es autonomo, pero el metodo de Runge-Kutta es consistente
y satisface la condicion de suma por las
ci =
s
X
j =1
aij ;
i = 1; 2 : : : ; s;
(1.13)
el metodo tambien se puede escribir en la forma (1.12). Para ello basta con
denir
y^n1 = xn ;
y^nJ +1 = ynJ ;
f^1 = 1;
f^J +1 = f J ;
g^i1 = xn + ci h;
s
P
g^iJ +1 = ynJ + h aij kjJ ; J = 1; : : : ; d:
j =1
s
X
bj q (f J (gj ))(q
j =1
1)
h=0 :
h=0
s
X
j =1
bj (f J (gj ))h=0
s
X
f J (gj ) (1)
j =1
d
X
K =1
s
X
j =1
(1.14)
bj f J (yn):
(1.15)
(1)
Usando la semejanza de las deniciones de giJ e ynJ+1 junto con (1.15) se tiene
que
!
s
X
j =1
=2
s
X
j;k=1
aij f J (yn);
bj ajk
d
X
K =1
(1.16)
(1.17)
d
X
K;L=1
J (g )
fKL
j
gjK (1)
23
gjL (1)
d
X
K =1
(2)
ynJ+1
(3)
h=0
=3
s
P
j;k;l=1
s
P
bj ajk ajl
d
P
J (y )f K (y )f L (y )
fKL
n
n
n
K;L=1
d
P
+6
bj ajk akl
fKJ (yn )fLK (yn)f L (yn ):
K;L
=1
j;k;l=1
(1.18)
yJ
(1)
(xn+1 )
y J (2) (x
n+1 )
y J (3) (x
n+1 )
h=0
h=0
h=0
d
P
K;L=1
d
P
K =1
d
P
K;L=1
d
P
K;L=1
d
P
K =1
J (y )f K (y )(y L )(1) (x )
fKL
n
n
n
J (y )f K (y )f L (y ) +
fKL
n
n
n
d
P
K;L=1
Comparando las derivadas de la solucion numerica y de la teorica obtenemos las condiciones de orden 3:
Orden 1:
Orden 2:
Orden 3:
s
P
bj
j =1
s
P
2
3
j;k=1
s
P
= 1;
bj ajk = 1;
j;k;l=1
bj ajk ajl = 1;
s
P
j;k;l=1
bj ajk akl = 1:
24
Orden 1:
Orden 2:
Orden 3:
s
P
bj = 1;
j =1
s
P
2
3
j =1
s
P
j =1
bj cj = 1;
bj c2j = 1;
(1.19)
6
s
P
j;k=1
bj ajk ck = 1:
como 6 bT Ac = 1.
0
0
1=3 1=3
2=3 0 2=3
1=4 0 3=4,
cumple la condicion de suma por las y las cuatro condiciones (1.19). Es por
tanto de orden 3.
rboles de Butcher
1.8 A
La continuacion del proceso anterior para obtener condiciones de orden para
ordenes mas altos esta clara desde el punto de vista teorico. Pero conduce
rapidamente a formulas muy complicadas, cuya obtencion es larga y engorrosa.
Conviene utilizar una representacion graca que simplique las cuentas: los
arboles de Butcher (1964).
Empezamos observando que en (1.18) los ndices j; k; l aparecen emparejados en ajk , ajl , . . . exactamente igual que los subndices y superndices J; K; L
25
s
X
j;k;l=1
bj ajk ajl
d
X
K;L=1
J (y )f K (y )f L (y );
fKL
n
n
n
J , yendo
encontramos la asociacion k 7! j , l 7! j , a traves de ajk , ajl y de fKL
de derecha a izquierda en los primeros y de abajo hacia arriba en el ultimo
caso. Esta asociacion se puede representar gracamente como
k
t31 =
j
En el segundo sumando
6
s
X
j;k;l=1
(1.20)
bj ajk akl
d
X
K;L=1
t32 =
(1.21)
Los grafos t31 y t32 son ejemplos de arboles etiquetados con raz.
26
i = 2; : : : ; q:
d
X
q
Y
J2 ;:::;Jq =1 i=1
ftJi (Ji ) (y ):
1
F J (t31 )(y) =
F J (t32 )(y) =
d
P
K;L=1
d
P
K;L=1
J (y )f K (y )f L (y );
fKL
m
k
d
X
J f K f M f L;
fKM
L
K;L;M =1
d
X
J f K f Lf M ;
fKL
L
K;L;M =1
J f L f Kf M;
fLK
M
son todos el mismo (basta con cambiar los nombres de losndices de sumacion).
Esto motiva la siguiente denicion.
t=
t0 =
=
j k l m
j k m l
Denicion 1.14. Sea t 2 LTq , (Aq = fj1 < < jq g). Denimos j (t) por
1
j (t) =
1
s
X
q
Y
j1 ;:::;jq =1 i=2
at(ji )ji :
Es decir, j (t) es la suma a todos los ndices del arbol menos el de la raz
de los productos de las a@ (aristas) , donde @ ( j ) = ij:
1
Ejemplo.
t=
l
m
j (t) =
Ps
k;l;m=1 ajk akl ajm .
t1 =
t2 =
t = [t1 ; t2 ]
si q = 1;
si t = [t1 ; : : : ; tr ]; q > 1:
29
Es decir,
(t) es el producto de (t) y de los ordenes de los arboles que van
apareciendo al ir quitando las races.
Ejemplo.
7!
7!
= 9
7!
2 6
1 4 1
111
X
t2LTq
F J (t)(y ):
X
t2LTq
(t)
s
X
j =1
bj j (t)F J (t)(yn):
(1.22)
s
X
j =1
bj j (t) = 1
30
(1.23)
Solo queda probar la implicacion recproca. Para ello basta con comprobar
que los diferenciales elementales de los diferentes arboles son independientes.
En efecto, dado t 2 Tq , el sistema
yj0 i =
Y
jr 2 t 1 (ji )
yjr ;
ji = 1; : : : ; q;
=
bj = 1;
t21 =
que produce la condicion de orden 2
j
s
P
j;k=1
s
X
j =1
bj cj = 1:
t31 =
t32 =
j
j
que dan lugar (usando la condicion de suma por las) a las condiciones de
orden
3
s
X
j =1
bj c2j
= 1;
s
X
j;k=1
bj ajk ck = 1:
m
t42 =
j
t43 =
k
j
m
t44 =
k
j
k
j
32
s
P
bj c3j = 1;
j =1
s
P
12
j;k=1
bj ajk c2k = 1;
s
P
bj cj ajl cl = 1;
j;l=1
s
P
24
j;k;l=1
bj ajk akl cl = 1:
s
X
bj cj ajl cl = 1=6;
j;k=1
bj ajk c2k = 0:
=
j1
d
X
0
q
Y
d
P
K =1
33
ftJi (Ji ) :
1
(y J )(q) obtenemos
1
(y J )(q+1) =
1
d
P
q
P
q
Q
ftJi (Ji )
d
P
K =1
+1
+1
LTq Aq
(t; jr )
donde
7! LTq+1
7
!
t0 ;
t0 jAq = t;
t0 (jq+1 ) = jr :
7!
jr
jr
d
P
q
Q
f(Jti0 )
Jq+1
Jr
(Ji ) f(t0 ) 1 (Jr ) f(t0 ) 1 (Jq+1 )
P
t0 2LTq+1
F J (t0 )(y ):
1
Derivadas
Gracamente
(f J (gj ))(0) = f J
(f J (gj ))(1) =
(f J (gj ))(2) =
d
P
K =1
d
P
K;L=1
+
(f J (gj ))(3) =
d
P
K =1
+
+
+
d
P
K;L=1
d
P
K;L=1
d
P
K;M =1
d
P
K =1
j
j
J
fKLM
(gj )(gjK )(1) (gjL)(1) (gjM )(1)
K;L;M =1
d
P
j
k
l
m
Ahora debera estar claro el proceso. Cada vez que diferenciamos tenemos
que:
J ; es decir, a~
(i) derivar el primer factor fK:::
nadir una nueva rama a la raz;
2 LTq
))(q 1)
d
X
K1 ;:::;Kr
u 2 LSq ;
u = [u1 ; : : : ; ur ]
X
t2LTq
(t)
s
X
j =1
(1.25)
(t)
s
P
j =1
s
P
j =1
s
P
j =1
aij j ( )F J ( )(yn )
s
P
j =1
aij
s
P
j =1
P
d
P
1)
y=yn
u 2 LSq ; K1 ;:::;Kr
u = [u1 ; : : : ; ur ]
Dado que (u1 ); : : : ; (ur ) < q , podemos aplicar la hipotesis de induccion para
obtener
q
(t1 )
(tr )
t
2
LT
t
2
LT
r
1
(
u
)
(
u
)
r
u 2 LSq ;
1
u = [u1 ; : : : ; ur ]
d
P
P
P
P
aij ajk1 k1 (t1 )
ajkr kr (tr )
fKJ 1 ;:::;Kr F K1 (t1 )
j
K1 ;:::;Kr
k1
kr
Sea u = [u1 ; : : : ; ur ]
biyeccion
F Kr (tr ):
Denimos una
(u; t1 ; : : : ; tr ) 7! t 2 LTq
de forma que
F J (t) =
d
P
k1
kr
K1 ;:::;Kr
37
p
n
m
l
7!
k
j
j
l
p
n
l
m
k
7!
k
j
p
p
m
k
q
n
j
r
l
k
7!
n
l
m
k
38
el arbol de orden p
jp
jp
t=
j3
j2
j1
bj j (t) =
1
s
X
j1 ;:::;jp =1
bj aj j aj j
1
1 2
2 3
ajp jp :
s
P
j1 =1
bj j (t) = 0 a menos
1
(t)
s
X
j1 =1
bj j (t) = 0 6= 1
1
39
>Que pasa con s = 5? Para que un metodo sea de orden 5 se tienen que
satisfacer 17 condiciones de orden. Si s = 5 tenemos solo 15 parametros libres.
Sin embargo, el sistema es no lineal, as que podra haber solucion. Pero no es
as.
s
X
i=1
bi ki :
(1.26)
40
+1
s
1
1X
(
p
+1)
max ky
(xn + th)k +
jb j max kk(p)(th)k :
(p + 1)! t2[0;1]
p! i=1 i t2[0;1] i
kRnk hp+1
hp+1 X
(t)e(t)F J (t)(yn) + O(hp+2 );
(p + 1)! t2Tp
+1
donde
e(t) = 1 (t)
s
X
j =1
bj j (t):
y 0 = y;
y (0) = ;
(1.27)
de manera que los unicos diferenciales elementales que hay que calcular son
los correspondientes a los arboles t42 y t43 ,
F J (t
42 )
d
X
K;L;M =1
J f K f Lf M ;
fKM
L
F J (t
43 )
d
X
K;L;M =1
K f Lf M :
fKJ fLM
t59 =
k
j
F J (t
59 )
d
X
K;L;M;O=1
e(t59 ) = 1 (t59 )
s
X
j =1
bj j (t59 ):
El orden del arbol lineal t59 es mayor que el numero de etapas. As pues (ver
s
P
la prueba del Teorema 1.22), bj j (t59 ) = 0 , y por tanto e(t59 ) = 1. Como
j =1
h5 5 J
( yn) + O(hp+2 ):
5!
42
(1.28)
+1
que se contenta con el termino principal del error, es tambien de poco interes
practico, pues requiere calcular varias derivadas parciales de orden superior. Y
precisamente la principal ventaja de los metodos de Runge-Kutta (comparados
con metodos de Taylor), es que no exigen calcular derivadas.
Sin embargo, necesitamos una estimacion practica para el error. Por un
lado para asegurarnos de que los tama~nos de paso hi son sucientemente
peque~nos como para tener la precision deseada en los resultados, y por otra
parte para asegurarnos de que los tama~nos de paso son sucientemente grandes
como para evitar trabajo computacional innecesario.
b a(h) =
a(h) a(2h)
+ O(hp+2):
2p+1 1
Observacion. La cantidad
2p+1 a(h)
2p+1
a(2h)
;
1
(1.29)
hp+1 X
(t)e(t)F J (t)(y ):
(p + 1)! t2Tp
+1
(1.30)
Por otra parte, si empezando en (xn ; y (xn)) damos un paso de tama~no 2h,
la aproximacion numerica resultante w satisface que
yn+2 w
+ O(hp+2):
p
2 1
44
yn+2 como
(1.32)
donde y^ es la solucion de
+1
+1
Z x
xn+1
(1.33)
Dado que g(x) > 0 para todo x xn+1 , tenemos la desigualdad g0 =g L,
que integrada en (xn+1 ; x) produce g(x) g(xn+1 )eL(x xn ) . Usando una
vez mas que ky (x) y^(x)k g(x), y pasando al lmite ! 0+ llegamos a
+1
xn+1 ) :
(1.34)
+1
+2
+1
+1
1)
= O(hp+2):
As, usando (1.29) tenemos que
(1.35)
(1.36)
0 p+1
0 p+1
h
0
p
+1
p
+1
2 (y (xn+2))(h ) 2 (y (xn))h
ERROR h
:
As,
h0 = h
es la eleccion \optima".
TOL
ERROR
p+1
(1.37)
Para tener un buen codigo hay que poner un poco mas de cuidado. Se
suele multiplicar el segundo miembro de (1.37) por un factor de seguridad
FAC, normalmente FAC = 0:9, de forma que el ERROR sea aceptable la siguiente
vez con probabilidad alta. Tampoco se suelen permitir incrementos de paso
47
muy grandes, con el n de hacer el metodo mas seguro. As, por ejemplo
podemos poner
TOL
h0 = h min FACMAX; FAC
ERROR
p+1
Si ERROR > TOL, los dos pasos se rechazan y se vuelven a repetir los calculos
con el nuevo tama~no de paso h0 .
A
bT .
c A
^bT
pero de distinto orden, p^ > p, podemos calcular
P
yn+1 = yn + h si=1 bi ki ;
P
y^n+1 = yn + h si=1 ^bi ki :
No hay que hacer nuevas evaluaciones de funcion, pues las etapas ki coinciden.
48
Rn y^n+1
yn+1 = h
s
X
i=1
(^bi
bi )ki :
(1.38)
yni +1 j;
i=1;:::;m
yn+1
y^n+1
0
1
1
4
1
2
1
6
1
4
1
2
1
6
0
4
6:
1
4
27
40
yn+1
y^n+1
1
4
189
800
214
891
214
891
533
2106
729
800
1
33
1
33
650
891
650
891
800
1053
1
78 .
yn+1 = yn + h
s 1
X
i=1
bi ki = yn + h
y se tiene que
ks = f (t + h; yn + h
s 1
X
i=1
s 1
X
i=1
asi ki;
asi ki )
k1 = f (t + h; yn+1):
Es decir, la primera etapa de cada paso coincide con la ultima del paso anterior.
Por tanto la primera etapa solo hay que calcularla en el primer paso, y desde el
punto de vista computacional es como si el metodo tuviera una etapa menos.
50
y 0 (x) = y (x);
y (0) = 1:
10
RungeKutta clsico
HIHA5(4)
DOPRI5(4)
4
10
10
error
10
10
10
12
10
14
10
16
10
10
10
Figura 1.1
10
fc
10
10
yN k Chp =
error = c fc p ;
52
C (b a)p
:
Np
10
RungeKutta clsico
HIHA5(4)
DOPRI5(4)
4
10
10
error
10
10
10
12
10
14
10
16
10
10
10
Figura 1.2
10
fc
10
10
y tomando logaritmos
log10 (error) = p log10 (fc) + c:
La pendiente de la recta es p. Esto produce una forma de obtener
empricamente el orden de convergencia, incluso para metodos de paso variable. Por ejemplo, en la graca vemos que el metodo de Runge-Kutta clasico
tiene orden 4, mientras que DOPRI5(4) y HIHA5(4) tienen orden 5.
En la Figura 1.2 representamos error frente a fc, en escalas logartmicas
para el problema conocido como Brusselator, que modela ciertas reacciones
qumicas,
y10 = 1 + y12y2 4y1 ;
y1 (0) = 1:5;
y20 = 3y1 y12 y2 ;
y2 (0) = 3;
con intervalo de integracion 0 x 20.
Notese que el orden de convergencia emprico es 4 para Runge-Kutta, 6 para
53
HIHA5(4) y 7 para DOPRI5(4). Para todos los metodos, dada una precision,
necesitamos mas trabajo para resolver el Brusselator que el problema lineal.
Para metodos de paso jo hay otra forma de obtener empricamente el
orden de convergencia. Para ello integramos la ecuacion en [a; b] con paso h y
h=2. Tenemos
error(h) = ky (xN )
yh;N k Chp ;
error(h=2) = ky (xN ) y h ;N k Chp =2p:
2
Por tanto
error(h=2)
error(h)
y concluimos que
p
log(error(h))
2p
log(error(h=2))
:
log 2
55
Cap
tulo 2
Problemas sti
y 0 = Ay; y (0) = y0 ;
con A =
100
0
(2.1)
1
10
yn+1 = (1 + hA)yn;
y por induccion que
yn = (I + hA)n y0 ;
n = 0; 1; 2; : : : :
A = V DV 1 ; donde V =
1 1
0 999
10
57
y D=
100
0
1
10
de donde se obtiene que la solucion exacta del problema viene dada por
100x
10
yn = V (I + hA)n V 1 y0 ;
y, dado que
(1 + hD)n =
se sigue que
yn = (1
(1 100h)n
0
0
(1 10h )n
100h)nv
n = 0; 1; : : : ;
+ 1
h
10
n
v2 ;
n = 0; 1; : : : :
Si h > 1=50, entonces j1 100hj > 1, y para n grande los iterados de Euler crecen en magnitud geometricamente, en contraste con el comportamiento
asintotico de la verdadera solucion.
Supongamos que escogemos una condicion inicial identica a un autovector
correspondiente al autovalor 1=10, por ejemplo
y0 =
999
10
(2.2)
16
14
log kyn k
12
10
Figura 2.1
10
15
20
25
el metodo al problema (2.1) con h = 1=10 y condicion inicial igual al autovector \estable".
yn =
h
A
2
1
h
I+ A
2
!n
y0 ;
n = 0; 1 : : : :
x x0 ;
y (x0 ) = y0 ;
Es evidente que esta no es una denicion matematica correcta; pero tampoco estamos intentando probar teoremas del tipo si un sistema es sti entonces. . . . Lo importante de este concepto es que nos debe ayudar a elegir y
dise~nar metodos numericos.
En nuestro ejemplo hemos visto uno de los mecanismos (de hecho, uno de
los mas frecuentes) que hacen que un problema sea sti, el que haya modos
con escalas y tiempos de vida muy diferentes en la solucion. Es frecuente
designar al cociente de los modulos de los autovalores de mayor y menor modulo
de un sistema lineal (en el caso de un sistema general, los autovalores de la
matriz jacobiana) como coeciente de rigidez del sistema. Si dicho coeciente
es grande, el sistema suele ser sti. No obstante, haremos notar que este
analisis lineal puede fallar al aplicarlo a un sistema no lineal.
Una gran parte de los sistemas de ecuaciones diferenciales ordinarias que
aparecen en problemas reales son sti. Siempre que las ecuaciones modelen
61
y 0 = y;
x 0;
y (0) = 1;
(2.3)
yn = (1 + h)n ;
n = 0; 1; : : : ;
1 + 12 h
yn =
1 21 h
n
n = 0; 1; : : : ;
y 0 = Ay;
y (0) = y0 ;
yn =
d
X
k=1
(1 + hk )n vk ;
n = 0; 1; : : : :
j1 + hk j < 1;
k = 1; : : : ; d:
Es decir, todos los productos h1 ; : : : ; hd deben estar en el dominio de estabilidad lineal del metodo de Euler. Esto signica en la practica que el tama~no
del paso esta determinado por aquel autovalor que sea peor desde el punto de
vista de la estabilidad.
La restriccion de que A tenga una base de autovectores se puede relajar,
ya que la forma canonica de Jordan es suciente.
63
y 0 = Ay + a.
x x0 ;
y 0 = f (x; y );
y (x0 ) = y0 ;
Jn
@f (xn ; yn)
:
@y
y 0 = yn + Jn (y
yn ):
D:
x 0;
y 0 = y;
y (0) = 1:
(2.4)
Y i = yn + h
>
>
: yn+1
Obtenemos que
8
>
>
<
s
P
aij f (xn + cj h; Yj );
j =1
s
P
yn + h bi f (xn + ci h; Yi):
i=1
Yi = yn + h
>
>
: yn+1
s
P
aij Yj ;
j =1
s
P
yn + h bi Yi :
i=1
Y = (Y1 ; : : : ; Ys)T ;
(2.5)
e = (1; 1; : : : ; 1)T :
Y = e yn + hAY;
yn+1 = yn + hbT Y:
Y = (I
hA) 1 eyn;
yn+1 = (1 + hbT (I
es decir,
hA) 1 e)yn ;
yn+1 = R(h)yn;
65
n = 0; 1; : : : ;
donde
R(z ) = 1 + zbT (I
zA) 1 e;
z 2 C:
(2.6)
La funcion R(z ) recibe el nombre de funcion de estabilidad del metodo, o tambien funcion de amplicacion.
Observese que yn = (R(h))n , as que de la denicion de
mediatamente que
D = fz 2 C : jR(z)j < 1g:
D se sigue in-
Lema 2.4. Para todo metodo de Runge-Kutta existe R 2 Ps=s tal que la solucion por dicho metodo del problema (2:4) viene dada por
yn = (R(h))n :
Es mas, si el metodo de Runge-Kutta es explcito, entonces R 2 Ps .
Prueba. Tenemos que probar que la funcion R dada por (2.6) pertenece a
Ps=s . Usamos que
(adj (I zA))T
(I zA) 1 =
:
det(I zA)
Cada componente de I zA es lineal en z . Por tanto, como cada elemento de
adj (I zA) es el determinante de una matriz (s 1) (s 1), esta en Ps 1 .
As pues,
bT (adj (I zA))T e 2 Ps 1 :
Como det(I
z2
zp
+ + + O(z p+1 ):
2!
p!
Prueba. La solucion exacta del (2.4) es y (x) = ex . Por ser el metodo
consistente de orden p tenemos que
y (h) y1 = O(hp+1);
as que
z2
zp
+ + + O(z p+1);
2!
p!
donde z = h. Usando que y1 = R(z )y0 concluimos inmediatamente el resultado.
y1 = ez + O(hp+1 ) = 1 + z +
Como consecuencia tenemos que todos los metodos de Runge-Kutta explcitos con p = s tienen como funcion de estabilidad
R(z ) = 1 + z +
z2
zs
++ :
2!
s!
67
3i
s=4
s=3
s=2
s=1
-1
3i
Figura 2.2
orden p = s.
0
2
3
1
4
1
4
1
4
1
4
5
12
3.
4
R(z ) =
1 + 13 z
:
1 32 z + 16 z 2
y por tanto a
2
1
1 + cos + 2 < 1
3
9
4
1
4
cos + 2 cos 2 +
3
3
9
2 3
1
cos + 4 :
9
36
1
1
1
2
1
2 1 + 2 cos < 2 (1 + cos 2) + 4 = 2 cos2 + 4 ;
9
3
36
3
36
que se satisface para todos los z 2 C , puesto que cos < 0 para todo z de
este tipo. El metodo es por tanto A-estable.
Esto explica por que son interesantes los metodos implcitos. Son mas
caros, pero, ademas de permitir romper las barreras de Butcher, algunos de
ellos tienen regiones de estabilidad grandes, y pueden ser convenientes a la
hora de tratar problemas sti.
Sin embargo, no todos los metodos implcitos son A-estables.
Ejemplo. Consideramos el metodo
0 0 0
2
3
1
3
3
4
1
3
1.
4
R(z ) =
1 + 23 z + 16 z 2
:
1 13 z
Lema 2.7. Sea R(z ) una funcion racional no constante. Entonces jR(z )j < 1
para todo z 2 C si y solo si todos los polos de R tienen parte real positiva y
jR(it)j 1 para todo t 2 R .
Prueba. Si jR(z )j < 1 para todo z 2 C , por continuidad jR(z )j 1 para
todo z 2 C . En particular R no puede tener polos en el semiplano cerrado
izquierdo, y jR(it)j 1 para todo t 2 R .
Para probar el recproco observamos que si los polos estan a la derecha del
eje imaginario, entonces la funcion racional R es analtica en el cerrado C .
Por tanto, al no ser R constante, jRj no puede tener un maximo en el interior,
y alcanza su maximo en la frontera. Parte de la frontera esta en el innito.
Sin embargo, por ser R una funcion racional existe el lmite (nito o innito)
limjzj!1 jR(z )j, y es igual a limt!1 jR(it)j. Por tanto, si jR(it)j 1, t 2 R ,
entonces jR(z )j < 1 para todo z 2 C .
Ejemplo. Consideramos el metodo de Gauss-Legendre de dos etapas (orden 4),
1
2
1
2
p3
p63
6
1
4
1
4p
3
6
1
2
1
4
p3
1
4
1.
2
1 + 12 z + 121 z 2
:
1 21 z + 121 z 2
p
Los polos de esta funcion, 3 i 3, estan en el semiplano abierto derecho, y
jR(it)j = 1, t 2 R , por lo que el metodo es A-estable.
R(z ) =
71
Cap
tulo 3
Diferencias nitas
en
;
u=g
en @
:
(3.1)
Teorema 3.1. Si f 2 C 0; (
) y g 2 C (
), el problema (3:1) tiene una unica
T
solucion u 2 C 2 (
) C (
).
Una herramienta fundamental en el analisis de esta ecuacion es el principio
del maximo.
T
= [a1 ; a2 ] [b1 ; b2 ]:
Se puede ajustar una red uniforme formada por los puntos de coordenadas
(xi ; yj ) = (a1 + ih; b1 + jk)
para 0 i N y 0
determinados por
j M,
h=
a2
a1
k=
b2
b1
:
N
M
Sobre los nodos de la red denimos una funcion U cuyo valor U (xi ; yj ) = Uij
es una aproximacion de la solucion u en (xi ; yj ),
Uij u(xi ; yj ):
Nuestro objetivo es encontrar una forma de generar las aproximaciones
Uij . Para ello utilizaremos formulas de diferencias nitas que aproximen las
derivadas a partir de valores de la funcion.
74
Sea f 2 C 4 ([x h; x + h]). Queremos obtener una expresion aproximada para la derivada segunda combinando valores de f en distintos puntos.
Desarrollando por Taylor en torno a x se tiene que
f (x h) = f (x) hf 0 (x) +
h3
h4
h2 00
f (x) f 000 (x) + f (4) ();
2
3!
4!
f 00 (x) =
f (x + h) 2f (x) + f (x h)
h2
h2 (4)
(f (+) + f (4) ( )):
4!
k2
h2
h2
k2
h2
k2
(3.2)
Por tanto, para un nodo interior (xi ; yj ), 0 < i < N , 0 < j < M , tenemos
Ui+1;j + 2Uij
h2
Ui
1;j
Ui;j +1 + 2Ui;j
k2
Ui;j
= fij ;
relacion que no solo involucra a Uij , sino tambien a los valores en los nodos
adyacentes, a la izquierda y a la derecha, arriba y abajo. As, para calcular la
solucion aproximada es preciso resolver un sistema lineal de (N 1) (M 1)
ecuaciones cuyas incognitas son todos los elementos de la matriz Uij , excepto
los que corresponden a los nodos de frontera, que ya se conocen.
El Laplaciano discreto reproduce algunas de las propiedades mas importantes del operador Laplaciano, por ejemplo el principio del maximo discreto.
76
Uij 1 Ui+1;j + 2 Ui
1;j
1
1
Ui;j +1 + 2 Ui;j 1 :
2
k
k
Para calcular las aproximaciones Uij tenemos que resolver el problema (3.2). >Tiene dicho problema solucion unica?
La respuesta es armativa: si hubiera dos soluciones, al aplicar el Teorema 3.3 a la diferencia de ambas se concluye que esta es trivial.
h;k!0+ i;j
Uij j = 0:
El error E = u U es solucion de
(
que es el problema (3.2) con fij = Rhk u(xi ; yj ) y gij = 0, un problema con
dato Dirichlet homogeneo.
Lema 3.4. La solucion Uij del problema (3:2) con gij = 0 satisface
a = a2
a1 ; b = b2
b1 ;
(3.3)
Prueba. Sean (c1 ; c2 ) las coordenadas del centro del rectangulo [a1 ; b1 ][a2 ; b2 ].
Consideramos la funcion auxiliar
w(x; y ) = (x c1 )2 + (y
c2 )2 ;
Uij + 14 jf j1 max
Uij
1
4
jf j1 (ximax
Uij
;yj )2@
1
4
jf j1wij
78
1
4
jf j1 (ximin
wij :
;yj )2@
c1 j
a=2
jf j1(a2 + b2 );
Uij 14 jf j1 min wij 161 jf j1(a2 + b2 );
(xi ;yj )2@
1
16
+b
jE j a 16
jRhk uj1:
Ahora bien,
numerico?
Lo primero que hay que hacer es numerar adecuadamente los valores Uij como incognitas del sistema. Es habitual utilizar el siguiente orden lexicograco,
(i1 ; j1 ) < (i2 ; j2 ) ,
8
>
>
< j1
>
>
:
79
< j2 ;
o
j1 = j2 e i1 < i2 :
los libros ya clasicos de [RM] y [MG], y los un poco mas modernos [St] y [T].
El estudio detallado de los diferentes metodos de resolucion de los sistemas
lineales dispersos a que da lugar el metodo de diferencias nitas queda fuera
del alcance del curso. En la seccion 4.9 damos abundantes referencias sobre
este tema.
81
Cap
tulo 4
Elementos nitos
4.1 Introduccion
Presentaremos el metodo de los elementos nitos estudiando un problema concreto,
(
u + u = f
en
R d ;
u=0
en @
:
Para simplicar todava mas, nos centraremos inicialmente en dimension d = 1.
Tenemos as el problema de contorno
u(a) = u(b) = 0:
(4.1)
Denicion 4.1. Sea f 2 C ([a; b]). Una solucion clasica del problema (4:1) es
una funcion u 2 C 2 ((a; b)) \ C ([a; b]) que verica (4:1) para todo x 2 [a; b].
83
>Como calcular la solucion numericamente? En este caso, como la geometra del dominio es sencilla, podemos utilizar un metodo de diferencias nitas. Por ejemplo, si consideramos el conjunto de puntos
xn = a + nh;
n = 0; 1; 2 : : : ; N = (b a)=h;
uh(x) =
con
'n (x) =
8
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
:
N
X1
n=1
un 'n (x);
x xn 1
;
xn xn 1
x 2 [xn 1 ; xn ];
xn+1 x
;
xn+1 xn
x 2 [xn ; xn+1 ];
0;
en el resto:
(4.2)
;xn ]
2 P1 ([xn 1 ; xn]); 1 n N g:
sion nita.
uh (x) =
M
X
l=1
l 'l (x);
a x b;
(4.3)
donde
1 ; : : : ;
M son constantes reales. Notese que, dado que todos los elementos de Vh satisfacen las condiciones de frontera, uh tambien lo hace.
Elegiremos los numeros
1 ; : : : ;
M de manera que uh
\lo mejor posible". >Que queremos decir con esto?
2 Vh aproxime a u
a < x < b:
Nota. Para que el defecto este bien denido necesitamos que uh 2 C 2 ((a; b)).
Por tanto pedimos en principio que 'l 2 C 2 ((a; b)) \ C ([a; b]), aunque mas
adelante rebajaremos esta hipotesis.
hdh; 'k i = 0;
k = 1; : : : ; M:
(4.4)
Estas condiciones se llaman ecuaciones de Galerkin. Tambien podemos reinterpretar lo anterior diciendo que consideramos que Vh? es el espacio de funciones
despreciables, y lo que imponemos es que el \operador de error" u?h 7! dh =
(u?h )00 u?h aplique Vh? en Vh? para que una aproximacion buena no de lugar
a un defecto grande.
Nuestro segundo principio es por tanto:
hv; wi =
Z b
a
vw:
dh =
l=1
X
'00 +
'
l l
l=1
f;
l l
Z b
a
Z b
a
f'k ;
akl l =
Z b
a
f'k ;
86
k = 1; : : : ; M;
(4.5)
donde
akl :=
Z b
a
k; l = 1; : : : ; M:
Elegir las funciones 'k de manera que sop 'k \ sop 'l = ; para la mayor
De esta forma, habremos reducido ampliamente tanto el numero de integrales a calcular, como el numero de elementos no nulos de la matriz del sis sera dispersa, con el consiguiente ahorro de memoria y de numero
tema. Esta
de operaciones para resolver el sistema.
Una eleccion excelente en este sentido sera tomar
Vh = L(f'1 ; : : : ; 'N
g);
con 'n como en (4.2). De esta forma, sop 'k \ sop 'l = ; si jk lj > 1. Pero
hay un problema: estas funciones basicas 'n no pertenecen a C 2 ((a; b)), y de
hecho, ni siquiera a C 1 ((a; b)). Aun as, desearamos poder trabajar con este
espacio, pues la matriz de coecientes sera tridiagonal.
>Que hacer? Podemos integrar por partes las ecuaciones de Galerkin (4.5),
usando que las funciones 'l se anulan en los extremos del intervalo, para obtener
M
X
l=1
Z b
a
Z b
a
f'k ;
(4.6)
donde
a^kl :=
a^kl l =
Z b
a
Z b
a
f'k ;
k = 1; : : : ; M;
k; l = 1; : : : ; M:
>Que hemos ganado? La integracion por partes elimina una derivada, as
que ya no hay que pedir que las funciones basicas tengan dos derivadas. De
hecho, incluso pedir 'l 2 C 1 ((a; b)) es excesivo. Los coecientes a^kl tienen
sentido para funciones 'l mucho mas generales, por ejemplo para funciones
derivables a trozos como las denidas en (4.2).
La integracion por partes reduce los requisitos de regularidad sobre las 'l .
Cuanto menores sean dichos requisitos, mayor sera la clase de funciones base
que podemos considerar. Esto facilitara nuestra tarea de construir funciones
base que se anulen en casi todo el intervalo. Tenemos as un nuevo principio:
Integrar por partes para reducir lo mas posible las exigencias de regula-
= fu 2
Lp (I )
: 9g 2
Lp (I )
tal que
88
Z b
a
u'0 =
Z b
a
g'
u'0 =
Z 0
x'0 +
Z 1
0
x'0 =
Z 0
'+
Z 1
0
( 1; 1). Dada
';
con
u'0 =
g';
si 1 < x < 0;
1
si 0 < x < 1:
Evidentemente g 2 Lp (I ) para todo 1 p 1. As u 2 W 1;p(I ) para todo
1 p 1, y la derivada debil de u es u0 = g . Sin embargo, la funcion
u(x) = jxj no es derivable en x = 0 en el sentido usual, y por tanto u 62 C 1 (I ).
g (x) =
89
hu; viH
= hu; v iL + hu0 ; v 0 iL :
2
y en el lmite
Z b
Z b
8' 2 Cc1 (I );
a
a
1
;p
0
Por tanto u 2 W , u = g y kun ukW ;p ! 0.
u'0 =
g'
En realidad no es completamente satisfactorio que las condiciones de contorno se satisfagan tan solo en un sentido debil. Afortunadamente, en dimension d = 1 las funciones de W 1;p(I ) son mejores de lo que cabra esperar, lo
que permitira dar sentido al valor que toman en un punto.
u(y ) =
Rx 0
y u (t) dt,
8x; y 2 I .
En general se sustituira sistematicamente u por su representante continuo; y con el n de no recargar la notacion se designara tambien por u al
representante continuo. Podemos por tanto hablar del valor de una funcion u 2
W 1;p(I ) en un punto de I . Nos estaremos reriendo al valor de su representante
continuo en dicho punto. En particular, las funciones de W01;p (I ) se pueden
caracterizar de la forma siguiente.
Teorema 4.8 (Desigualdad de Poincare). Sea I acotado. Existe una constante C , dependiente de jI j, tal que
kukW ;p C ku0kLp
1
8u 2 W01;p:
Z x
= u0
a
ku0kL ;
1
u0 '0 +
Z b
uh ' =
Z b
a
f'
8' 2 Vh:
(4.7)
Z b
a
f':
(4.8)
De hecho, por ser Cc1 (I ) denso en H01 (I ), la igualdad es cierta para cada ' 2
H01 (I ). En efecto, dada ' 2 H01 (I ), existe una sucesion f'n g de funciones
de Cc1 (I ) tal que k'n 'kH (I ) ! 0 cuando n ! 1. Para cada una de las
funciones 'n se tiene que
1
Z b
a
Z b
a
f'n :
(4.9)
jh
= jhu; 'n
'iH
i j kf kL k'n 'kL :
2
Por tanto, pasando al lmite en (4.9) obtenemos que (4.8) es cierta para
cualquier ' 2 H01 (I ).
En realidad para que (4.8) tenga sentido basta con que f
H01 (I ), lo que motiva la siguiente denicion.
2 L2(I ) y u 2
( u00 + u
f )' = 0
8' 2 Cc1 (I ):
u00 + u = f
si a < x < b:
93
Las condiciones de contorno se verican, por ser u una funcion de H01 (I ).
Sea Vh un subespacio de dimension nita de H01 (I ). Si pedimos que se satisfaga la condicion de solucion debil (4.8), pero restringiendonos a funciones uh
y ' del subespacio Vh (en lugar de considerar todo el espacio H01 ), obtenemos
(4.7), que es la llamada forma de Galerkin del metodo de elementos nitos.
Notese que para llegar a (4.7), que es equivalente a (4.6), no hemos usado para
nada el defecto dh, ni nada que nos exija una mayor regularidad para uh.
Se podra objetar que de esta forma lo que hemos obtenido es una aproximacion a una solucion debil del problema. Sabemos que la solucion clasica es
tambien solucion debil; pero, >no habra mas soluciones debiles? La respuesta
viene dada por el siguiente teorema.
v )0 '0 +
(u
Z b
a
(u v )' = 0
((u
v )0 )2 +
Z b
a
8' 2 H01:
(u v )2 = 0;
u0 '0 =
Z b
a
(f
u)'
94
8' 2 Cc1:
H 2 (I ) = fu 2 H 1 (I ) : u0 2 H 1 (I )g:
A la derivada debil de u0 , (u0 )0 se la llama derivada debil segunda de u; se
denota por u00 . En nuestro caso se tiene que u00 = u f .
Resumiendo, si f 2 L2 entonces u 2 H 2 . >Que pasa si f 2 C ([a; b])?
Tenemos entonces que u00 = u f 2 C ([a; b]), y por tanto u es solucion clasica.
Z b
a
((v 0 )2 + v 2 )
Z b
a
fv:
Teorema 4.11. (i) Si u 2 H01 es tal que J (u) J (v ) para todo v 2 H01 (I ),
entonces u es solucion debil de (4:1).
(ii) Recprocamente, si u 2 H01 (I ) es solucion debil de (4:1), entonces J (u)
J (v) para todo v 2 H01(I ).
Prueba. (i) Dada ' 2 H01 , denimos g () = J (u + '), 2 R . Se tiene
que g (0) g () para todo 2 R . Si la derivada g 0(0) existe, se tendra que
g 0 (0) = 0. Ahora bien,
g () = J (u) +
Z b
a
2
f') +
2
95
Z b
a
(('0 )2 + '2 );
(4.10)
y por tanto
g 0(0) =
Z b
a
2 b
J (u + ') = J (u) + 2 (('0)2 + '2 ) J (u) 8 2 R; ' 2 H01:
a
1
Para cualquier v 2 H0 (I ) tomamos ' = v u y = 1 y obtenemos que
J (v) J (u).
J (uh) J (vh)
8vh 2 Vh:
Sea f'1 ; : : : ; 'm g una base de Vh. Cualquier vh 2 Vh se puede escribir como
vh =
y el valor del funcional sera
m
1X
J (vh) = 2
l
k
k;l=1
Z b
a
m
X
l=1
l 'l ;
m
X
k=1
Z b
a
f'k :
Q( 1 ; : : : ; m ) =
m
X
k;l=1
k a^kl l
m
X
k=1
Z b
96
f'k ;
a^kl =
Z b
a
La condicion rQ(
1 ; : : : ;
m ) = 0 es equivalente al sistema lineal (4.6). Obtenemos las ecuaciones de Galerkin partiendo de un punto de vista distinto
(aunque equivalente). Esta forma de llegar al sistema (4.6) se conoce como
formulacion de Ritz del metodo de elementos nitos.
a(u; v ) =
Z b
a
(u0 v 0 + uv );
L(v ) =
Z b
a
fv:
a(u; v ) = L(v );
8v 2 V ;
los teoremas en el caso del problema (4.1). Eso nos lleva a introducir algunos
conceptos nuevos.
Sea V un espacio de Hilbert con producto escalar h; iV y norma correspondiente k kV . Sean a(; ) una forma bilineal sobre V V y L una forma
lineal sobre V tales que:
a(; ) es simetrica;
a(; ) es continua, es decir, existe una constante > 0 tal que
ja(u; v)j kukV kvkV
8u; v 2 V ;
8v 2 V ;
8v 2 V:
J (u) = min
J (v ) ;
v2V
donde
8v 2 V:
(4.11)
J (u) J (u + v)
8 2 R :
(4.13)
8 2 R; v 2 V:
kuk2V
8v 2 V; i = 1; 2:
a(ui ; v ) = L(v )
Restando tenemos que u1
u2 2 V satisface
a(u1
Tomando v = u1
u2 ; v ) = 0
8v 2 V:
u2 kV
es decir, u1 = u2 .
Observacion. Se puede probar la existencia de una unica solucion u 2 V del
problema (D) sin la condicion de simetra sobre a. Sin embargo, en este caso
no habra un problema de minimizacion asociado.
Observacion. Para que el problema de minimizacion (M) este bien planteado
no es necesario que V sea un espacio de Hilbert; basta con que sea un subconjunto convexo cerrado de un espacio de Hilbert. El problema (M) tendra
entonces solucion unica, aunque no sera equivalente al problema (D) (ver el
ejemplo de condiciones de Dirichlet no homogeneas mas adelante).
Ejemplo. (Condiciones de Neumann). Consideramos el problema
u0 (a) = ;
u0(b) = :
Una solucion clasica es una funcion u 2 C 2 ((a; b)) \ C 1 ([a; b]) que verica la
ecuacion y las condiciones de contorno de forma puntual. Notese que para dar
100
sentido a las condiciones de contorno hemos tenido que pedir que la funcion
sea derivable hasta la frontera.
Para escribir el problema en forma debil, multiplicamos la ecuacion por
v 2 H 1 e integramos por partes. Imponiendo las condiciones de frontera, se
tiene que
Z b
a
(u0 v 0 + uv ) =
Z b
a
fv
v (a) + v (b)
8v 2 H 1:
(4.14)
2 H 1 que
Lema 4.13. Sea u 2 W 1;p(I ) con 1 p < 1. Entonces existe una sucesion
fung en Cc1(R ) tal que unjI ! u en W 1;p(I ).
En posteriores ejemplos omitiremos este tipo de argumentos de densidad.
Queremos formular el problema en forma abstracta. Para ello tomamos
R
R
V = H 1, a(u; v ) = ab (u0 v 0 + uv ) y L(v ) = ab fv v (a) + v (b). Se puede
probar que a(; ) y L() estan en las hipotesis del Teorema 4.12; por tanto
existe una unica solucion debil del problema y ademas coincide con la funcion
u 2 H 1 que minimiza el funcional
Z
b
b
J (v) = 21 ((v0)2 + v2)
fv + v (a) + v (b):
a
a
Observese que no se exige explcitamente que la solucion satisfaga las condiciones de frontera. Las condiciones aparecen implcitamente en la forma lineal
L, y a traves de ella en el funcional de energa. En el caso de datos Dirichlet homogeneos, por el contrario, se imponen explcitamente los datos de contorno a
101
la solucion, exigiendo que esta pertenezca al espacio funcional H01 . Las condiciones de frontera que no necesitan ser impuestas explcitamente se llaman
condiciones de frontera naturales; las que s lo necesitan se llaman condiciones
de frontera esenciales.
Para nalizar el ejemplo, probaremos que una solucion debil que pertenezca
a C 2 (I ) \ C 1 (I ) es solucion clasica. Notese que la funcion esta por hipotesis
en el espacio correcto. Empezamos probando que se satisface la ecuacion para
todo x 2 I . Para ello, consideramos (4.14) para el caso particular de v 2 Cc1 (I ).
Integrando por partes se tiene que
Z b
a
( u00 + u f )v = 0:
( u00 + u f )v =
v (b):
Dado que ya hemos probado que se verica la ecuacion, se tiene que v (b) =
0, es decir, la condicion de contorno en x = b. Para probar la condicion de
contorno en x = a hay que tomar v 2 C 1 (I ) tal que v (a) = 1, v (b) = 0.
Ejemplo. (Condiciones de contorno mixtas). Consideramos el problema
u(a) = 0;
u0 (b) = :
(4.15)
La condicion Dirichlet es esencial, y tiene que aparecer en el espacio funcional. As que para obtener la formulacion debil multiplicamos la ecuacion
por v 2 H := fv 2 H 1 : v (a) = 0g. Tras integrar por partes, imponiendo las
condiciones de frontera, llegamos a
Z b
a
(u0v 0 + uv ) =
Z b
a
fv + v (b)
102
8v 2 H:
(4.16)
2H
que veri-
u0(a) ku(a) = 0;
u(b) = 0;
(4.17)
Z b
a
8v 2 H:
fv
i
i
El espacio H 1 (
) esta dotado del producto escalar
hu; viH
= hu; v iL +
2
d
X
@u
i=1
103
@v
;
@xi @xi
L2
kukH
2 !1=2
d
X
@u
2 +
:
L2
@x
2
i
L
i=1
kuk
Cc1 (
) en H 1 (
).
Rd
tr : H 1 (
) 7! L2 (@
)
tal que tr(u) coincide con uj@
cuando u es una funcion continua. De esta
forma el espacio de Sobolev H01 (
) verica que
H01 (
) = fu 2 H 1 (
) : tr(u) = 0 c.t.p. en @
g:
La continuidad del operador garantiza que
ktr(u)kL (@
) C kukH (
) :
2
ru rv + uv =
8v 2 H01(
);
fv
que es la forma debil del problema. Para aplicar el Teorema 4.12 tomamos
R
R
V = H01 (
), a(u; v ) =
ru rv y L(v ) =
fv . Veamos que se cumplen las
condiciones del teorema. En efecto, a(; ) es obviamente bilineal y simetrica.
Por otra parte,
a(u; u) = kukH (
) ;
1
0
jL(v)j =
fv
kf kL (
) kvkL (
) kf kL (
) kvkH (
)
2
105
1
0
8v 2 H01(
):
en
R d ;
en @
:
u + u = f
@u = g
@n
Multiplicamos por v 2 H 1 (recordemos que la condicion de Neumann es natural), aplicamos la formula de Green y las condiciones de contorno y obtenemos
Z
ru rv + uv =
f+
8v 2 H 1(
);
gv
que es la forma debil del problema. Para aplicar el Teorema 4.12 tomamos
R
R
R
V = H 1 (
), a(u; v ) =
ru rv y L(v ) =
fv + @
gv . La forma bilineal
a(; ) cumple las condiciones del teorema (copiar del ejemplo anterior). Para
ver la continuidad de L observamos que
jL(v)j
Z
fv +
gv :
gv
kgkL (@
) kvkL (@
) C kgkL (@
) kvkH (
)
2
8v 2 H 1(
):
u + u = f
u=g
en
R d ;
en @
:
Conside(4.18)
V = fv 2 H 1 (
) : v = g en @
g:
El conjunto V no es un espacio vectorial, pero es un subconjunto convexo
cerrado del espacio de Hilbert H 1 (
), lo que sera suciente para nuestros
106
(ru rv + uv ) =
fv
8v 2 H01(
):
(4.19)
Esto sugiere la siguiente denicion: una solucion debil del problema (4.18)
R
es una funcion u 2 V que verica (4.19). Tomando a(u; v ) =
ru rv y
R
L(v ) =
fv el problema debil se puede escribir en forma abstracta: encontrar
una funcion u 2 V que verica que
a(u; v ) = L(v )
8v 2 H01(
):
J (u) = min
J (v):
v2V
As que el problema debil es equivalente al problema de encontrar un minimizante para J en V , que es un subconjunto convexo cerrado del espacio
de Hilbert H 1 (
). Por tanto el problema de minimizacion tiene una unica
solucion. Concluimos que hay una unica solucion debil de (4.18).
107
J (uh) J (v)
8v 2 Vh:
a(uh; v ) = L(v )
8v 2 Vh:
u=
M
X
j =1
j 'j ;
(4.20)
2 Vh se puede
j 2 R :
i = 1; : : : ; M:
Teorema 4.17. Existe una unica solucion de los problemas equivalentes (Mh )
y (Dh ). Ademas se tiene la siguiente estimacion de estabilidad
kuhkV :
Prueba. A es denida positiva, y por tanto no singular, lo que prueba la
existencia y unicidad. Para probar la estimacion de estabilidad se toma v = uh
en (4.20); la coercividad de a y la continuidad de L producen
kuhk2V
= 0 se cumple
2 Vh
a(u; v ) = L(v )
8v 2 Vh;
a(u uh; v ) = 0
8v 2 Vh:
(4.21)
hu uh; via = 0
8v 2 Vh;
(4.22)
ku uhka ku vka
8v 2 Vh;
h!0 v2Vh
lim ku uhkV = 0:
h!0
110
(4.23)
Observacion. Para que el metodo converja basta con que la condicion (4.23)
se cumpla para la verdadera solucion.
Vh H 1 (
) , Vh C (
):
Para denir un espacio Vh del tipo mencionado tendremos que especicar:
4.7.1
hj = xj
xj 1 ;
j = 1; : : : ; N;
h = max hj :
1j N
1 ;xj ]
2 Pr ([xj 1; xj ]); j = 1; : : : ; N g:
'n (x) =
8
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
:
x xn 1
;
xn xn 1
x 2 [xn 1 ; xn ];
xn+1 x
;
xn+1 xn
x 2 [xn ; xn+1 ];
0;
en el resto:
'0 (x) =
8
<
:
x1 x
;
x1 x0
0;
112
n = 1; : : : ; N
x 2 [x0 ; x1 ];
en el resto:
1;
8
<
x xN 1
;
x 2 [xN 1 ; xN ];
'N (x) = xN xN 1
:
0;
en el resto:
Obviamente cualquier funcion vh 2 Sh;1 se puede escribir como
vh =
N
X
n=0
n n:
n = vh (xn ):
As pues, los N + 1 parametros mediante los cuales se describe la funcion vh
son sus valores en los N + 1 nodos; de ah el nombre de base nodal.
En el caso en que r > 1 el numero de grados de libertad es mayor que el
de nodos. Lo que se hace es a~nadir nodos intermedios (denominados nodos
fraccionarios), entre los de la particion, dados por
j
xi+j=r = xi + hi ;
i = 0; : : : ; N 1;
j = 1; : : : ; r 1:
r
De esta forma se tienen tantos nodos como grados de libertad (rN + 1), y
se pueden elegir como parametros para describir cualquier funcion de Sh;r sus
valores en los nodos. Esto denira una base, la base nodal, caracterizada
porque las funciones de la base toman el valor 1 en el nodo (fraccionario o
entero) al que estan asociadas y el valor 0 en el resto de los nodos.
Estudiemos la convergencia del metodo. Nos limitaremos al caso r = 1; es
decir, Vh = Sh;1.
Observamos que inf ku v kV ku uI kV , donde uI 2 Vh es el interpolante
v2Vh
lineal a trozos de u en los nodos x0 ; : : : ; xN de la particion. Se tiene el siguiente
resultado de aproximacion.
113
max ju0
[xj 1 ;xj ]
y por tanto
ku uI kH (I ) Ch max
ju00j:
[a;b]
1
0 (x) =
Z x
z
00 (y ) dy:
j0(x)j =
u00 (y ) dy hj max ju00 j;
x 2 [xj 1 ; xj ];
[xj 1 ;xj ]
j(z)j
1
= (xj
2
2
00
z ) (w)
18 h2j [xmax
j
u00 j:
j ;xj ]
1
ku uI kH (I ) =
1
h4 (b a)
64
N Rx
P
j
xj
j =1
+ h2 ( b
[(u uI )2 + (u0
!1=2
u0I )2 ]
1=2
Ch max
ju00j:
[a;b]
Ejemplo. Sea u la solucion (clasica) del problema (4.1) con dato f 2 C ([a; b]).
Por ser u00 = u f , y ser u 2 C ([a; b]) tenemos a posteriori que u00 2 C ([a; b]).
Por tanto tenemos convergencia de la solucion de elementos nitos a la solucion
clasica.
ku uI kL (I ) Ch2 ku00kL (I ) ;
2
y por tanto
ku uI kH (I ) Chku00kL (I ) :
1
2 Vh
ku uhkH (I ) Chku00kL (I ) :
1
4.7.2
por un dominio que s lo sea). Hacemos una triangulacion del dominio
,
t
subdividiendolo en un conjunto Th = fKj gnj =1
de triangulos Kj que satisfacen
nt
[
k=1
Kj :
h = Kmax
diam (Kj );
2T
j
que r, esto es
Sh;r = fv 2 C (
) : vjKj
2 Pr (Kj ); j = 1; : : : ; nt g:
x 1 ; : : : ; xM :
Veamos como hacerlo en el caso de funciones lineales (r = 1). En este caso los
nodos son los vertices de la triangulacion.
Empezamos por probar que las funciones de Sh;1, y en particular las funciones base, quedan completamente determinadas por sus valores nodales. Sobre el triangulo Kl las funciones v 2 Sh;1 son de la forma
vjKl (x; y ) = al + bl x + cl y:
Supongamos que el triangulo Kl en cuestion es
xl1
xl3
xl2
i = 1; 2; 3:
v=
M
X
j =1
v (xj )'j :
.....................
....... ................
................... .........
.
...
....... ................
...
... ........................
... .........
........
.
.
.
.
.
.. .
........ ....
..
..
.............
... ............
... ............
...
..............................
. .......
..
...
..
.
expresion sencilla. Como veremos mas adelante, esto es todo lo que se necesita
en la practica.
Las unicas funciones de la base nodal que no son identicamente nulas sobre
un triangulo dado son las correspondientes a los nodos del triangulo. Estas
funciones base se expresan en terminos de las funciones base para un triangulo
es el triangulo de
muy especial, el llamado elemento de referencia K0 . Este
vertices
" #
" #
" #
0
1
0
;
2 =
;
3 =
;
1 =
0
0
0
que representamos en la gura en el plano , .
-
N1 (; )
7
N2 (; ) 7
5:
N3 (; )
N (; ) = 6
4
N (; ) = 6
4
7
7:
5
El triangulo K , de vertices
"
x1 =
x1
;
y1
"
x2 =
x2
;
y2
119
"
x3 =
x3
;
y3
7! x = ( ) = x1 + [x2
x1 ; x3
x1 ];
donde, obviamente, [x2 x1 ; x3 x1 ] es la matriz cuyas columnas son los vectores x2 x1 y x3 x1 , aplicacion que expresada en funcion de sus componentes
se escribe como
" #
"
# "
# "
#" #
x
x1
x2 x1 x3 x1
=
7! x =
=
+
:
y
y1
y2 y1 y3 y1
Gracamente,
La aplicacion
x3
x2
x1
-
2
-x
'1 (x; y )
6
7
7
'(x; y ) = 6
'
(
x;
y
)
4 2
5
'3 (x; y )
de las funciones base correspondientes a nodos del triangulo K se expresa
entonces como
' = N 1;
cuando nos restringimos a dicho triangulo.
Recordando que Ni ( j ) = ij , se tiene que se puede expresar tambien en
terminos de las funciones Ni , mediante
( ) = x1 N1 ( ) + x2 N2 ( ) + x3 N3 ( ):
K,
Sea ahora r = 2; las funciones v 2 Sh;2 son cuadraticas sobre cada triangulo
Hay por tanto seis parametros; para que una funcion quede completamente
determinada sobre el triangulo habra que especicar su valor en seis puntos.
Ademas de los vertices habra que considerar otros tres nodos. Se suelen tomar
los puntos medios:
x3
x5
x6
x1
x2
x4
'(x; y ) = 6
4
'1 (x; y )
..
.
'6 (x; y )
3
7
7
5
. .......... 7
.
.
.
.
.
.
.
8 ....
... ........ . . . . ........
. .10. . ...... ...
..... . . . ....... ......5.
... ...
.4
6
2
hK = diametro de K;
K = diametro de la circunferencia inscrita en K;
h = Kmax
h :
2T K
h
En realidad no vamos a usar una triangulacion, sino una familia de triangulaciones fThg, caracterizadas por el parametro h. Supondremos que existe
una constante positiva independiente de la triangulacion Th 2 fTh g, esto es,
independiente de h, tal que
K
8K 2 Th:
hK
Esta condicion signica que no se permite que los angulos de los triangulos se
hagan arbitrariamente peque~nos; la constante es una medida del angulo mas
peque~no en cualquier K 2 Th para cualquier Th 2 fTh g.
Sean xi , i = 1; : : : ; M , los nodos de Th . Dada una funcion u 2 C (
),
denimos el interpolante lineal a trozos uI como la unica funcion de Sh;1 tal
que
u(xi ) = uI (xi )
8i = 1; : : : ; M:
Sea
H 2 (
) = fu 2 H 1 (
) :
@u
@xi
122
2 H 1(
); i = 1; : : : ; dg:
Lema 4.23. Si u 2 H 2 (
), entonces
ku uI kL (
) Ch2
2
ku0 u0I kL (
) Ch
2
!1=2
d Z
2 u 2
X
@
;
@x @x
i
j
i;j =1
!1=2
d Z
2 u 2
X
@
;
@x @x
i
j
i;j =1
y por tanto
ku uI kH (
) h C1
1
h2
C
+ 22
1=2
!1=2
d Z
2 u 2
X
@
:
@x @x
i
j
i;j =1
Se puede encontrar una prueba de este lema (con hipotesis adicionales sobre
u) en [J].
Observacion. Los experimentos numericos muestran que la estimacion da
la dependencia de correcta. Esto tiene consecuencias practicas importantes.
Cuanto menor sea , peor sera la aproximacion. Habra que intentar, por tanto,
que la triangulacion no contenga triangulos muy \delgados".
Gracias al lema se tiene convergencia de las soluciones del metodo de elementos nitos a la verdadera solucion, siempre y cuando esta tenga suciente
regularidad; concretamente se necesita que u 2 H 2 (
). Esta regularidad se
tiene para muchos problemas elpticos si el dominio
es convexo.
La frontera de
esta descompuesta en dos partes disjuntas, D y N .
La primera de ellas aparece marcada en la gura por medio de un trazo mas
grueso.
Nuestro problema modelo es el siguiente:
Dados f 2 L2 (
) y g 2 L2 (
la solucion debil del problema
8
>
>
<
>
>
:
N ),
u + u = f
u = 0;
@u
@n = g
en
;
en D ;
en N ;
(4.24)
V = fv 2 H 1 (
) : v = 0 c.t.p. en
tal que
a(u; v ) = L(v )
124
8v 2 V;
donde
a(u; v ) =
(ru rv + uv );
L(v ) =
fv +
Z
N
gv:
13
14
12
13
15
14
5
11
11
9
10
1
15
16
17
10
4
3
5
4
En esta gura hemos numerado los nodos y los triangulos; los ndices de
los triangulos estan recuadrados.
Hay un total de M = 15 nodos,
x 1 ; : : : ; xM ;
y nt = 17 triangulos,
K1 ; ; Knt :
La base nodal consta as de M funciones, 'i , i = 1; : : : ; M , que verican que
'i (xj ) = ij :
La aproximacion de elementos nitos es una funcion uh 2 Vh V ,
Vh = fv 2 C (
) : v (x) = 0 si x 2
D;
125
vjKj
2 P1 (Kj ); j = 1; : : : ; nt g;
tal que
8v 2 Vh:
a(uh; v ) = L(v )
v=
M
X
j =1
v (xj )'j :
v=
X
j 62ID
v (xj )'j ;
D,
ID = fj : xj 2
y por tanto
D
g:
As que podemos tomar como base de Vh las funciones 'i , i = 1; : : : ; M con
i 62 ID .
Denotando uj = uh(xj ) tenemos que la solucion de elementos nitos viene
dada por la solucion del sistema lineal
X
j 62ID
i 62 ID :
(4.25)
i; j 62 ID :
a('i ; 'j );
Sin embargo, como veremos mas adelante, la matriz que se puede construir de
forma sistematica y sencilla es la matriz \completa",
A = (aij );
i; j = 1; : : : ; M;
j 2 ID :
uj = 0;
(4.26)
Denotemos por D0 a la matriz diagonal M M cuyas componentes diagonales dii son 1 si i 62 ID y 0 si i 2 ID . Entonces para un vector v 2 R M , el
producto D0 v es simplemente hacer 0 las componentes de v correspondientes
a ndices de ID .
Sea uh = (u1 ; : : : ; uM )T . El sistema de ecuaciones (4.25){(4.26) se escribe
como
A0 uh = D0 b;
(4.27)
donde A0 = D0 AD0 + (I D0 ), e I es la matriz identidad de R M , esto es,
A0 es la matriz que se obtiene al hacer cero las las y las columnas de A
correspondientes a ndices de ID y a continuacion dando valor 1 a los elementos
de la diagonal principal que correspondan a columnas cuyos ndices esten en
ID .
Teniendo en cuenta todo esto, descompondremos la programacion en las
siguientes tareas:
4.8.1
elementos enteros que tiene una columna por cada triangulo, y en la columna
j -esima tres componentes que guardan los ndices de los vertices del triangulo
j -esimo.
En la triangulacion de nuestro ejemplo vemos que los ndices de los vertices
del primer triangulo son 2, 5 y 6, luego las tres componentes de la primera
columna de T seran
2 3
2
6 7
6 5 7:
4 5
6
Para el segundo triangulo los ndices de sus vertices son 2, 6 y 7, luego las tres
componentes de las dos primeras columnas de T seran
2
6
6
4
2 2
5 6
6 7
7
7:
5
4 4 3 3 3 1 1 1 1 1 1 3
9 10 10 11 12 12 13 14 15 5 2 2 7
5:
6 7 4 8 9 10 3 11 12 1 13 14 15 5 2 3 4
Hay varios aspectos que se~nalar. En cada triangulo hemos colocado los
ndices ordenados en sentido positivo (antihorario); esta ordenacion no tiene
por que coincidir con el orden creciente de los nodos. Por ejemplo, la tercera
columna de T es
2 3
2
6 7
6 7 7;
4 5
4
en vez de [2; 4; 7]T . Observese tambien que para los triangulos que tienen un
lado en la frontera, este es siempre el que corresponde al lado cuyos extremos
son el segundo y el tercer vertice. Por otra parte, no hay triangulos con dos
128
.
No todas estas convenciones son habituales. Sin embargo, si se mantienen
se pueden utilizar provechosamente para simplicar la programacion.
La segunda matriz necesaria para describir la triangulacion es una matriz
que denotamos por Z, que tiene una columna por cada nodo, y que en la
columna j -esima guarda las coordenadas x; y del nodo j -esimo. En el ejemplo
de la gura la matriz Z sera
"
Z=
x1 x2
y1 y2
x15 :
y15
5 6 8 9 ;
IN =
1 2 4 11 12 13 14 :
129
function u=mef(T,Z,ID,IN,alpha,fsm,dn)
Construcci
on de la matriz de rigidez
i = 1; : : : ; M:
Como vimos, las funciones de la base nodal, 'i , admiten una expresion
sencilla cuando nos restringimos a cada triangulo. Esto nos lleva a nuestra
primera idea basica.
a=
nt
X
j =1
aKj ;
a(u; v ) =
de manera que
(ru rv + uv ) =
aKj (u; v ) =
Z
Kj
nt
X
j =1 Kj
(ru rv + uv );
(ru rv + uv );
130
A=
nt
X
j =1
AKj
donde las matrices AKj son las matrices de las formas bilineales aKj en la base
'1 ; : : : ; 'M , y son por tanto matrices M M . Calcularemos las matrices AKj
para luego ensamblarlas para formar la matriz A.
Sobre cada triangulo Kj (de nodos xj , xj , xj ) solo hay 3 funciones base
no nulas, las correspondientes a los nodos del triangulo ('j , 'j , 'j ). Por
tanto, la matriz AKj tiene a lo sumo 32 elementos no nulos, que son los que se
encuentran en la interseccion de las las y columnas cuyos ndices corresponden
a los nodos del triangulo.
1
Los 32 elementos de la matriz AKj que pueden ser no nulos conforman una
matriz Ej dada por
2
Ej =
6
6
4
7
7:
5
2
6
E1 = 6
4
131
7
7:
5
Observacion. Los elementos de la matriz Ej no tienen por que coincidir con los
correspondientes elementos de la matriz A; si un lado [xi ; xj ] corresponde a dos
triangulos, el elemento de A correspondiente, a('i ; 'j ), recibira contribuciones
de las matrices Ej de ambos. As, en nuestro ejemplo,
N
X
j =1
15
Analogamente, si un nodo xi pertenece a varios triangulos, el elemento correspondiente a('i ; 'i ) tiene contribuciones de todos ellos.
Observacion. La matriz Ej no se calcula necesariamente con la misma ordenacion con que se suma a A. En nuestro ejemplo, en el caso del tercer triangulo
los programas de elementos nitos calcularan la matriz
2
6
6
4
3
7
7;
5
aK ('i ; 'k ) =
Z
K
i; k = 1; 2; 3:
En principio podramos calcular cada uno de estos nueve elementos por separado. Sin embargo:
132
E=
' = N 1:
Esto motiva la siguiente idea.
referencia.
'x = N x + N x ;
'y = N y + N y ;
por lo que los productos 'x 'Tx , 'y 'Ty se expresan como
'x 'Tx = x2 N NT + xx (N NT + N NT ) + x2 N NT ;
'y 'Ty = y2 N NT + y y (N NT + N NT ) + y2 N NT ;
que sumados dan
'x 'Tx + 'y 'Ty = (x2 + y2 )N NT +(xx + y y )(N NT + N NT )+(x2 + y2 )N NT :
Para calcular x; y ; x ; y observamos que son precisamente las componentes de D 1 . Recordando que
"
( ) =
x
y
"
x1
y1
"
x
+ 2
y2
133
x1 x3
y1 y3
x1
y1
#"
;
tenemos que
"
D =
x x
y y
"
x2
y2
x1 x3
y1 y3
x1
;
y1
y de aqu que
"
D 1 =
x y
x y
1
=
J
"
y3 y1
(y2 y1 )
(x3 x1 )
;
x2 x1
J = (x2
x1 )(y3
y1 ) (x3
x1 )(y2
y1 ):
S1 = K N NT ;
R
S3 = K N NT ;
0
0
tenemos que
donde
y1 )2 + (x3 x1 )2
;
jJ j
(y3 y1 )(y2 y1 ) + (x3
b = jJ j(xx + y y ) =
jJ j
(y2 y1 )2 + (x2 x1 )2
2
2
c = jJ j(x + y ) =
;
jJ j
d = jJ j:
a = jJ j(x2 + y2 ) =
(y3
x1 )(x2
x1 )
Observacion. Si se han numerado los nodos con la orientacion positiva (antihoraria), la aplicacion mantiene la orientacion, y por tanto J > 0.
Es decir, para cada triangulo K , la matriz elemental de aK (u; v ) es combinacion lineal de las mismas cuatro matrices Si , i = 1; : : : ; 4, con coecientes
a; b; c; d que dependen exclusivamente de las coordenadas x; y de los vertices
134
del triangulo K . Por tanto, para cada triangulo en una triangulacion, solo hay
que calcular los coecientes a, b, c y d, y con ellos combinar las matrices Si .
Estas matrices reciben el nombre de matrices basicas.
Las matrices basicas son
2
6
S1 = 21 6
4
2
6
S3 = 12 6
4
1
1
0
1 0
1 0
0 0
1 0
0 0
1 0
1
0
1
7
7;
5
S2 =
6
16
24
2
7
7;
5
S4 =
6
1 6
24 4
2
1
1
1
0
1
2 1 1
1 2 1
1 1 2
1
1
0
3
7
7;
5
3
7
7:
5
S12 =
Z
K0
N NT
1 0
16
6
= 4 1 0
2
0 0
1
1
0
3
7
7:
5
135
Para b utilizo
4.8.3
Construcci
on del vector de carga
b=
L('1 )
..
.
L('M )
6
6
4
7
7:
5
fv +
2
3
'1
6 . 7
6 .. 7 ;
4
5
'M
136
se tiene que
b = f h + gh ;
fh =
con
f ;
gh =
Z
N
g :
fh =
Cada uno de los vectores
j =1 Kj
Z
Kj
f :
f
tiene todas sus componentes no nulas, salvo quizas las 3 componentes que
corresponden a las 3 funciones base no nulas sobre el elemento Kj . De esta
forma, el procedimiento para calcular f h consiste en para cada triangulo Kj ,
cuyos nodos tienen ndices j1 , j2 , j3 , calcular el vector de 3 componentes
2
fKj =
Z
Kj
6
f6
4
'j
'j
'j
1
2
7
7;
5
' = N;
por lo que
fK =
Z
K
f' = jJ j
Z
K0
137
f ( ( ))N ( ) dd;
c1 ; : : : ; cs ;
y sus correspondientes pesos, que agrupamos en el vector
w = [w1 ; : : : ; ws ]T :
Con esta formula,
Z
2
6
K0
w1
32
...
ws
76
76
54
g (c1 )
..
.
g (cs )
3
7
7:
5
N = [N (c1 ); : : : ; N (cs )] = 6
4
N1 (c1 ) : : : N1 (cs)
N2 (c1 ) : : : N2 (cs)
N3 (c1 ) : : : N3 (cs)
7
7;
5
fq = 6
4
f ( (c1 ))
..
.
f ( (cs ))
3
7
7
5
fK = J
K0
N ( )f ( ( )) dd JN diag(w)fq ;
138
(4.28)
donde diag(w) es la matriz diagonal cuyos elementos diagonales son las componentes del vector w.
Los transformados de los nodos de cuadratura se calculan usando que
( ) = x1 N1 ( ) + x2 N2 ( ) + x3 N3 ( );
de donde
2
6
(ci ) = [x1 x2 x3 ] 6
4
es decir,
N1 (ci )
N2 (ci )
N3 (ci )
3
7
7;
5
1. Se calcula la matriz N .
2. Para cada triangulo Kj , j=1,. . . ,N,
(a) se transforman los nodos de cuadratura;
(b) se evalua f en los transformados de los nodos de cuadratura para
formar el vector fq ;
(c) se aproxima fKj mediante (4.28)
Usaremos la formula de cuadratura gaussiana denida por los siguientes
coecientes:
i
1
2
3
4
5
6
7
i
1/3
p
(6 + 15)=21
p
(9 2 15)=21
p
(6 + 15)=21
p
(6
15)=21
p
(9 + 2 15)=21
p
(6
15)=21
i
1/3
p
(6 + 15)=2
p
(6 + 15)=2
p
(9 2 15)=21
p
(6
15)=21
p
(6
p15)=21
(9 + 2 15)=21
139
wi
0.1125
p
(155 + 15)=2400
p
(155 + 15)=2400
p
(155 + 15)=2400
p
(155
15)=2400
p
(155
p15)=2400
(155
15)=2400
Esta formula, que se usa con frecuencia, es exacta en el triangulo de referencia K0 para polinomios de grado menor o igual que 5.
En el programa principal tendremos que incluir un conjunto de instrucciones parecido al siguiente:
M=size(Z,2); % n
umero de nodos
b=zeros(M,1); % reservo sitio para el vector de carga
% pesos de la cuadratura
w=[0.1125,...
(155+sqrt(15))/2400,(155+sqrt(15))/2400,...
(155+sqrt(15))/2400,(155-sqrt(15))/2400,...
(155-sqrt(15))/2400,(155-sqrt(15))/2400];
% matriz Nc:
Nc=[1/3,-(96+23*sqrt(15))/42,...
-(102+17*sqrt(15))/42,(6+sqrt(15))/21,...
(9+2*sqrt(15))/21,(6-sqrt(15))/21,(6-sqrt(15))/21;
1/3,(6+sqrt(15))/21,(9-2*sqrt(15))/21,(6+sqrt(15))/21,...
(6-sqrt(15))/21,(9+2*sqrt(15))/21,(6-sqrt(15))/21;
1/3,(6+sqrt(15))/2,(6+sqrt(15))/2,(9-2*sqrt(15))/21,...
(6-sqrt(15))/21,(6-sqrt(15))/21,(9+2*sqrt(15))/21];
% ensamblado del vector de carga
for j=1:size(T,2); % recorremos los tri
angulos
I=T(1:3,j); % obtenemos los nodos del tri
angulo
x=Z(1,I); % coord. x de los v
ertices
y=Z(2,I); % coord. y de los v
ertices
% calculamos el jacobiano
J= (x(2)-x(1))*(y(3)-y(1))-(x(3)-x(1))*(y(2)-y(1));
% imagenes por Psi de los nodos de cuadratura
Psicx=x*Nc; % coord. x de las im
agenes
Psicy=y*Nc; % coord. y de las im
agenes
140
% fq:
f se debe definir
Al llamar al programa principal habra que introducir como penultimo argumento el nombre del chero, que no tiene por que ser fsm, entre comillas.
Contribucion de los datos Neumann. A continuacion estudiamos la contribucion al vector de carga del termino procedente de los datos de Neumann, gh .
Escribiendo N como union de segmentos, N = l1 [ l2 [ lns , podemos
expresar g h como suma de contribuciones de los distintos segmentos,
gh =
Cada uno de los vectores
Z
N
g =
Z
lj
ns Z
X
j =1 lj
g :
g
tiene todas sus componentes nulas excepto quiza aquellas que correspondan a
los nodos xj , xj que estan sobre el segmento lj . As pues, para construir el
1
141
'
glj = g j
'j
lj
1
2
'=
'1
:
'2
( ) = x1 + (x2
se tiene que
gl =
Z
l
g' ds = kx2
x1 k
Z 1
0
x1 );
g (
( ))L( ) d;
(4.29)
L1 ( ) = 1 ;
L2 ( ) = :
w = [w1 ; : : : ; ws ]T :
Denotando por L la matriz cuyas columnas son los valores de L en cada uno
de los nodos de cuadratura cj , esto es,
y por gq el vector
g (
(c1 ))
6
7
..
7;
gq = 6
.
4
5
g (
(cs))
tenemos entonces que el vector gl se aproxima como
gl = kx2
x1 k
Z 1
0
g ( ( ))L( ) d kx2
x1 kL diag(w)gq :
(4.30)
Para calcular las transformadas
(ci ) de los nodos de cuadratura observamos que
( ) = x1 L1 ( ) + x2 L2 ( ), de donde
[
(c1 ) : : :
(cs )] = [x1 x2 ]L:
Una situacion bastante frecuente es aquella en que g es constante. En ese
caso
gl =
Z
l
g' ds = g kx2
x1 k
Z 1
0
L d = g kx2
x1 k
"
1
2
1
2
(4.31)
1. Se calcula la matriz L.
2. Para cada segmento lj , j = 1; : : : ; ns ,
(a) se transforman los nodos de cuadratura cj ;
(b) se evalua g en los transformados para formar el vector gq ;
(c) se aproxima glj mediante (4.30) (o (4.31) si g es constante).
Como regla de cuadratura usamos la de Simpson, con nodos y pesos
cj 0 1/2 1
wj 1/6 4/6 1/6
143
g se debe definir
144
4.8.4
MatLab.
% vector con los
ndices de nodos con datos Dirichlet
I=reshape(T(2:3,ID),2*length(ID),1)
% hacemos ceros las filas y columnas de A de
ndices de ID
A(I,:)=zeros(size(A(I,:))); % las filas
A(:,I)=zeros(size(A(:,I))); % las columnas
% creamos un vector que tenga unos en
ndices de ID, y ceros
% en las dem
as posiciones.
v=zeros(M,1);
v(I)=1;
% unos en la diagonal en las posiciones de los
ndices de ID
A=A+spdiags(v,0,M,M); % matriz diagonal dispersa
% ceros en las componentes de b de
ndices de ID
b(I)=0;
Au = b
es en general una tarea compleja, difcil de programar, pues hay que aprovechar
el hecho de que la matriz A es dispersa, lo que obliga a usar algoritmos especiales para ese tipo de matrices. Sin embargo, nosotros no nos tendremos que
preocupar por eso, pues el MatLab realizara la tarea por nosotros.
145
Resultados numericos
con
= (0; 1) (0; 1),
= 1, f = 2 4x y
g (x; y ) =
(x; y ) 2
;
(x; y ) 2 D ;
(x; y ) 2 N ;
u + u = f;
u(x; y ) = 0;
@u
@n = g;
D
= f(x; y ) 2 R 2 : x = 0; 0 y 1g,
y2 y
x
= @
n
D,
si x = 0; 0 < y < 1;
si y = 0 o y = 1; 0 < x < 1:
146
0.15
0.2
0.1
0.15
0.1
0.05
0.05
0
0.05
0.1
0.05
0.15
0.2
1
0.1
0.8
1
0.6
0.8
0.15
0.6
0.4
0.4
0.2
0.2
0
0.2
0.25
0.15
0.2
0.15
0.1
0.1
0.05
0.05
0
0.05
0.1
0.15
0.05
0.2
1
0.8
1
0.6
0.8
0.4
0.2
0.15
0.2
0
Figura 4.1
0.1
0.6
0.4
0.2
0.25
0.15
0.2
0.15
0.1
0.1
0.05
0.05
0
0.05
0
0.1
0.15
1
0.05
0.8
1
0.6
0.8
0.4
0.2
0.2
0
Figura 4.2
0.1
0.6
0.4
147
800
700
900
800
600
700
600
500
500
400
400
300
200
300
100
0
60
200
50
80
40
100
60
30
40
20
20
10
Figura 4.3
55
800
50
700
45
600
40
500
35
400
30
300
25
200
20
100
15
10
10
20
30
Figura 4.4
40
50
60
70
80
148
u(x) = (x);
x2
D:
Vh = fv 2 C (
) : vjKj
i 62 ID :
Los valores nodales uj con j 2 ID no son incognitas, as que los pasamos al
segundo miembro, quedando que
X
j 62ID
aij uj = bi
X
j 2ID
aij uj ;
i 62 ID :
As pues, hay dos diferencias con el caso homogeneo: (i) hay que modicar el
vector de carga, y (ii) los valores en los nodos xj , j 2 ID no son cero, sino que
vienen dados por uj = (xj ). Por lo demas el procedimiento a seguir es como
en el caso homogeneo.
MatLab. Una vez construidos la matriz de rigidez completa A, de elementos
aij = a('i ; 'j ), i; j = 1; : : : ; M y el vector de carga b, de elementos bi = L('i ),
i = 1; : : : ; M , habra que hacer lo siguiente:
150
Datos de Robin
en
R 2 ;
en R ;
en @
n R :
u + u = f
@u
@n + u = g
u=0
V = fv 2 H 1 (
) : v = 0 c.t.p. en @
n
g:
(ru rv + uv ) +
uv =
r(u; v ) =
151
uv;
fv +
R
gv:
Escribiendo
rij =
nr
X
k=1
Z
lk
uv:
Para cada segmento lk todos los valores blk ('i ; 'j ) son cero excepto quizas
aquellos que correspondan a las funciones base 'k , 'k asociadas a los nodos
xk , xk del segmento lk . As, para calcular la contribucion del segmento lk a
la matriz R solo es necesario calcular la matriz
1
Rk =
Z "
lk
'k
'k
Rk = kx2
x1 k
Z 1
0
LLT d;
152
G=[2 1
1 2]/6;
for j=1:length(IR); % recorremos los tri
angulos
I=T(2:3,IR(j)); % obtenemos los v
ertices del triangulo
x=Z(1,I); % coord. x de los v
ertices
x=Z(2,I); % coord. y de los v
ertices
% calculamos la longitud del lado
lg= sqrt((x(2)-x(1))*(x(2)-x(1))+(y(2)-y(1))*(y(2)-y(1)));
Se=lg*G; % matriz elemental
% se suma la matriz elemental a las componentes
% de A que correspondan
A(I,I)=A(I,I)+Se;
end
4.8.8
S1 = K N NT ;
R
S3 = K N NT ;
0
0
153
155
Cap
tulo 5
5.1 Introduccion
Segun hemos visto en el captulo anterior, el metodo de Euler se puede obtener
partiendo de la aproximacion de la derivada y 0(x) por el cociente incremental
y (x + h) y (x)
:
h
Esta aproximacion es de orden 1. Una idea para obtener un metodo mejor es
usar una aproximacion de la derivada mas precisa, por ejemplo, la formula de
diferencias centradas
y (x + h) y (x h)
y 0(x)
;
2h
que es una aproximacion de orden 2. Aplicandola en x = xn+1 se tiene que
y (x ) y (xn)
f (xn+1 ; y (xn+1 )) = y 0(xn+1 ) n+2
;
2h
lo que da lugar a la iteracion
y 0 (x)
(5.1)
que se conoce como metodo leap-frog. Como vemos, para calcular yn+2 se
utilizan dos valores anteriores, yn e yn+1 , y no uno solo, como en los metodos
del captulo anterior. Diremos que es un metodo de dos pasos.
Este metodo se puede obtener tambien a partir de una formula de cuadratura. Para ello observamos que
y (xn+2 ) y (xn) =
Z xn+2
xn
y 0(x) dx;
(5.2)
y usamos la regla del punto medio para aproximar la integral, obteniendo que
h
y (xn+2) y (xn) (y 0 (xn ) + 4y 0(xn+1 ) + y 0(xn+2 )):
3
Esta aproximacion conduce al metodo numerico,
h
yn+2 yn = (f (xn ; yn) + 4f (xn+1 ; yn+1) + f (xn+2 ; yn+2));
3
conocido como regla de Simpson, que tambien es un metodo de dos pasos.
Tanto la regla del punto medio como la regla de Simpson son metodos lineales de dos pasos. En general, un metodo lineal de k-pasos obtiene las aproximaciones yn a la solucion del problema de valor inicial (1.1) como solucion de
la recurrencia
k
X
j =0
j yn+j = h
k
X
j =0
j f (xn+j ; yn+j );
n = 0; : : : ; N
k:
k = 1;
j0j + j0j 6= 0:
158
(5.3)
yn+2
yn+1
yn = hf (xn ; yn):
( ) =
k
X
j =0
j j ;
( ) =
k
X
j =0
j j ;
g=
k 1
X
j =0
(5.4)
yn[0]+k arbitrario:
(5.5)
= yn+k :
Notese que siempre que f sea Lipschitz podemos forzar que se cumpla la condicion M < 1 tomando un valor de h sucientemente peque~no. Si este fuera
inaceptable se debera optar por otro metodo iterativo, como el de Newton.
Los metodos lineales multipaso presentan una dicultad computacional.
Para aplicarlos es necesario disponer de los k valores de arranque y0 ; : : : ; yk 1,
y sin embargo el problema de valor inicial (1.1) solo proporciona y0 . Si k
2 habra que obtener los k 1 valores de arranque restantes por algun otro
procedimiento, como puede ser por desarrollo de Taylor, utilizando un metodo
de Runge-Kutta, etc. Estos valores de arranque no coinciden por tanto en
general con los valores de la solucion teorica; tendran un cierto error, y no hay
por que esperar que un metodo converja si no son sucientemente precisos.
Como ahora hay k valores de arranque, tenemos que modicar la denicion
de convergencia que se introdujo en el captulo anterior.
Denicion 5.1. Un metodo lineal de k pasos se dice convergente (respectivamente convergente de orden p) si para todo problema (1:1) con solucion
sucientemente regular se tiene que
lim max ky (xn) ynk = 0;
h!0+ knN
si lim max
h!0+ 0nk 1
ky(xn) ynk = 0;
(respectivamente
max ky (xn ) yn k = O(hp);
knN
si max
0nk 1
160
cuando h ! 0+ ).
Observacion. La condicion lim max ky (xn) yn k = 0 sobre los valores de
h!0 0nk 1
arranque es equivalente a pedir que lim yn = y (x0 ) para n = 0; : : : ; k 1.
+
h!0+
>Que condiciones deben satisfacer los coecientes de un metodo lineal multipaso (5.3) para que este converja? Si converge, >con que orden lo hace?
Intentaremos responder a estas preguntas en las siguientes secciones.
5.2 Consistencia
Queremos proceder como lo hacamos en el caso de los metodos de un paso.
La situacion ideal sera que la solucion y del problema de valor inicial (1.1)
satisciese las ecuaciones del metodo (5.3), pero en general esto no sera as, y
habra un residuo o error de truncacion
Rn =
=
k
P
(j y (xn+j )
hj f (xn+j ; y (xn+j ))
(j y (xn+j )
hj y 0(xn+j ));
j =0
k
P
j =0
n = 0; : : : ; N
k;
0nN k
obtenemos que
C0 =
C1 =
..
.
k
X
j =0
k
X
j =0
1
Cq =
q!
j ;
j j
k
X
j =0
k
X
j =0
j j q
j ;
k
X
j =0
j j q
q > 1:
yn+2 + yn+1
h
2yn = (fn+2 + 8fn+1 + 3fn)
4
0 = 2; 1 = 1; 2 = 1;
1
2
1
2
1
2
j = k j ;
j = k j :
Es facil comprobar, desarrollando alrededor del punto medio, que los metodos
simetricos tienen orden par. As pues, si un metodo es simetrico solo sera
necesario considerar las condiciones de orden impar, pues las de orden par se
cumplen necesariamente.
El siguiente teorema, que caracteriza el orden en terminos de los polinomios
caractersticos puede resultar util.
163
(ew ) w (ew ) =
=
=
Por tanto,
k
P
j ejw
j =0
k
X
j =0
1
X
q=0
j
1
q!
! 1 corresponde a w ! 0.
k
P
j ejw
j =0
1 q q!
X
jw
q=0
k
X
j =0
1jp+2):
q!
j j q wq
k
X
j =0
1
X
(q
q=1
1 q q
X
jw
q=0
1)!
Desarrollando
q!
k
X
j =0
j j q
wq :
1) + O((
para ! 1;
1)2 )
se concluye el resultado.
Ejemplo. Consideramos el llamado metodo de Adams-Bashforth de dos pasos,
h
yn+2 yn+1 = (3fn+1 fn ):
2
Al aplicar el teorema convendra expresar las cosas en terminos de la variable
= 1. Tenemos que
y 0(x) = 0;
y (0) = 1;
j yn+j = 0;
n = 0; : : : ; N
k:
(5.6)
k
X
j =0
j = 0;
o lo que es lo mismo, C0 = 0.
Para ver que C1 tambien es cero consideramos el problema
y 0(x) = 1;
y (0) = 0;
j yn+j = h
k
X
j =0
j ;
que es una ecuacion en diferencias no homogenea. Es facil ver que una solucion
de esta ecuacion es la sucesion yn = nhM , n = 0; 1; : : : , donde
k
P
M=
j =0
k
P
j =0
165
jj
k
P
j =0
jj =
6 0, de manera
que M esta bien denido.) Si tomamos como valores de arranque yi (h) = ihM ,
i = 0; : : : ; k 1, entonces el metodo producira la sucesion yn = nhM = xn M .
Por tanto,
y (xn) yn = xn xn M = xn (1 M );
y para que haya convergencia se tiene que tener que M = 1, es decir
k
X
j =0
j =
k
X
j =0
jj ;
o lo que es lo mismo, C1 = 0.
Observacion. En terminos del primer y segundo polinomio caracterstico la
condicion de consistencia de orden al menos 1 se escribe
0 (1) = (1):
(1) = 0;
5.3 0-estabilidad
La consistencia de orden 1 es necesaria para la convergencia. >Es tambien
suciente? Veamos que no con un ejemplo.
Consideramos el metodo
yn+2 + yn+1
2yn = h(5fn+1
2fn );
yn+2 + yn+1
166
2yn = 0:
yn = c1 + c2 ( 2)n :
Consideramos la solucion
yn = h( 2)n :
Observese que
y0 = h ! 0 = y (x0); y1 = 2h ! 0 = y (x0 )
Sin embargo,
cuando h ! 0+ :
ky(xN ) yN k = h2N = b N a 2N ! 1:
satisfaciendo para 0 n N
k
P
j =0
k
P
j =0
j un+j
j vn+j
se tiene que
max kun
vn k = O
knN
k
P
j =0
k
P
j =0
j f (xn+j ; un+j ) = hn ;
j f (xn+j ; vn+j ) = h
n ;
max
0j k 1
kuj vj k + 0max
kj
j k :
j N k
Teorema 5.6. Si un metodo lineal multipaso es consistente de orden p y 0estable, entonces es convergente de orden p.
Prueba. Por un lado tenemos que
k
X
j =0
j yn+j = h
k
X
j =0
j f (xn+j ; yn+j );
j y (xn+j ) = h
k
X
j =0
knN
yn k = O
max
0j k 1
ky(xj ) yj k + 0max
knk
nN k
knN
si max
0j k 1
ky(xj ) yj k = O(hp);
j un+j = 0:
(5.7)
kj N
vn k C max
0j k 1
kuj vj k:
p
p p
kuN vN k = hN j jN = b a N ! 1;
mientras que
max
0j k 1
kuj vj k = 0max
j k 1
p
b a
hj j j p (k
j
1);
y el metodo no es 0-estable.
Veamos ahora que si el metodo cumple la condicion de la raz, entonces es
0-estable. Damos la prueba (que se puede omitir en una primera lectura) en
el caso escalar. El caso vectorial es analogo.
La idea es escribir el metodo como metodo de un paso. Para ello denotamos
Yn = (yn+k 1; : : : ; yn)T ;
P
F (Yn ) = ( kj=0 j fn+j ; 0; : : : ; 0)T ;
n = 0; : : : ; N
n = 0; : : : ; N
k + 1;
k + 1:
=
k
X
j =0
j f (xn+j ; yn+j )
=
k 1
X
j =0
k 1
X
j =0
j yn+j ;
n = 0; : : : ; N
k;
k
1
0
..
.
0
6
6
6
=6
6
6
6
4
k
0
1
...
:::
:::
:::
...
...
0
0
0
...
..
.
0
3
7
7
7
7
7:
7
7
5
Yn =
An Y
0+h
n 1
X
l=0
An
1 l F (Y ):
l
n ; 0; : : : ; 0)T ;
Rn = (n
n = 0; : : : ; N
k;
Un
Vn =
An (U
V0 ) + h
n 1
X
l=0
An 1 l (F (Ul )
F (Vl )) + h
n 1
X
l=0
An
1 lR
l:
kAnk M;
n = 0; 1; : : : ;
n 1
X
l=0
siendo B es una cota de los modulos de los j , desigualdad que se puede escribir
como
n A + hLMB
171
n 1
X
l=0
l ;
= A + hLMB
nP1
l=0
n+1
l . Se tiene que
n
= hLMBn hLMB n ;
n
(1 + hLMB )n
e(n
1)hLMB (A +
kU0 V0 k);
y de aqu la 0-estabilidad.
Para que las potencias de A esten todas acotadas es necesario y suciente
que las races del polinomio sean de modulo menor que la unidad, y aquellas
que sean de modulo 1 sean simples, es decir, que se cumpla el criterio de la
raz. Para ver esto no hay mas que observar que los autovalores de A son las
races de .
Finalmente nos preguntamos si es cierto el recproco del Teorema 5.6.
y 0 = 0;
y (0) = 0;
h n ,
172
de arranque yn = h n, n = 0; : : : ; k
0; : : : ; k 1. Sin embargo,
1; por tanto yn
ky(xN ) yN k = hj jN = b N a j jN ! 1
0 = y (0), n =
cuando h ! 0+ ;
y el metodo no es convergente.
(ii) Supongamos que existe tal que j j = 1, ( ) = 0 = 0 ( ). La sucesion
p
yn = hn n , n = 0; 1; : : : , es solucion de la ecuacion en diferencias y tiene
p
condiciones de arranque yn = hn n , n = 0; : : : ; k 1; por tanto yn ! 0 =
y (0), n = 0; : : : ; k 1. Sin embargo,
p
p p
ky(xN ) yN k = hN j jN = b a N ! 1
cuando h ! 0+ ;
y el metodo no es convergente.
>Cual es el mejor orden que podemos conseguir para un metodo, para un
numero de pasos k dado? Puesto que un metodo lineal de k pasos viene determinado por 2k + 1 coecientes, y las condiciones de orden de consistencia son
relaciones lineales de estos coecientes, existen metodos lineales de k pasos con
orden de consistencia p = 2k; reciben el nombre de maximales. Sin embargo
no sirven para nada, puesto que no son convergentes.
Teorema 5.10 (Primera barrera de Dahlquist (1956)). El orden de convergencia p de un metodo lineal de k pasos 0-estable satisface:
p k + 2 si k es par;
p k + 1 si k es impar;
p k si k =k 0 (en particular si es explcito).
La prueba se puede encontrar en [HNW].
Veremos en el proximo captulo que los metodos con p = k + 2, llamados
optimales, tampoco funcionan bien en la practica. As pues, el mejor orden que
se puede alcanzar con un metodo de k pasos que sirva para algo es p = k + 1.
173
174
Bibliografa
[A1]
[CO1] Carey, G.F.; Oden, J.T. (1983), Finite elements: A Second Course.
Volume II, Prentice Hall, New Jersey.
[CO2] Carey, G.F.; Oden, J.T. (1984), Finite elements: Computational Aspects. Volume III, Prentice Hall, New Jersey.
[CO3] Carey, G.F.; Oden, J.T. (1986), Finite elements: Fluid Mechanics.
Volume VI, Prentice Hall, New Jersey.
[C]
Ciarlet, P.G. (1978), The Finite Element Method for Elliptic Problems,
North-Holland, Amsterdam.
[CB] Conte, S.D.; de Boor, C. (1981), Elementary Numerical Analysis. An
algorithmic approach (3rd ed.), McGraw-Hill, Singapore.
[CM] Crouzeix, M.; Mignot, A.L. (1986), Exercises d'analyse numerique des
equations dierentielles, Masson, Paris.
[DB] Dahlquist, G.; Bjork,
A. (1974), Numerical Methods, Prentice Hall,
Englewood Clis, NJ.
[Da] Datta, B.N. (1995), Numerical Linear Algebra and Applications,
Brooks/Cole, Pacic Grove CA, USA.
[DV] Dekker, K.; Verwer, J.G. (1984), Stability of Runge-Kutta Methods for
Sti Nonlinear Dierential Equations, North-Holland, Amsterdam.
[DER] Du, I.S.; Erisman, A.M.; Reid, J.K. (1986), Direct Methods for Sparse
Matrices, Oxford University Press, Oxford.
[F]
Fletcher, R. (1987), Practical Methods of Optimization (2nd ed.), Wiley, London.
[G]
Gear, C.W. (1971), Numerical Initial Value Problems in Ordinary Differential Equations, Prentice-Hall, Englewood Clis, NJ.
[GL] George, A.; Liu, J.W.-H. (1981), Computer Solution of Large Sparse
Positive Denite Systems, Prentice-Hall, Englewood Clis, NJ.
[GT] Gilbarg, D.; Trudinger, N.S. (1983), Elliptic Partial Dierential Equations of the Second Order (2a ed.), Springer-Verlag.
[Go] Goldstine, H.H. (1977), A History of Numerical Analysis, SpringerVerlag, Berlin.
176
[GV]
Golub, G.H.; Van Loan, C.F. (1996) Matrix Computations (3rd ed.),
John Hopkins U. Press, Baltimore.
[H]
Hackbusch, W. (1992), Elliptic Dierential Equations: Theory and
Numerical Treatment, Springer-Verlag, Berlin.
[H2] Hackbusch, W. (1985), Multigrid Methods and Applications, SpringerVerlag, Berlin.
[HY] Hageman, L.A.; Young, D.M. (1981), Applied Iterative Methods, Academic Press, New York.
[HNW] Hairer, E.; Nrsett, S.P.; Wanner, G. (1991), Solving Ordinary Differential Equations I: Nonsti Problems (2nd ed.), Springer-Verlag,
Berlin.
[HW] Hairer, E.; Wanner, G. (1991), Solving Ordinary Dierential Equations II: Sti Problems and Dierential-algebraic Equations, SpringerVerlag, Berlin.
[HH] Hammerlin, G.; Homan, K.-H. (1991), Numerical Mathematics,
Springer-Verlag, Berlin.
[He] Henrici, P. (1962), Discrete Variable Methods in Ordinary Dierential
Equations, Wiley, New York.
[Heu] Heun, K. (1900), Neue Methode zur approximativen Integration der
Dierentialgleichungen einer unabhangigen Veranderlichen, Z. Math.
Phys. 45, 23{38.
[I]
Iserles, A. (1996), A First Course in the Numerical Analysis of Differential Equations, Cambridge University Press, Cambridge.
[IK]
Isaacson, E.; Keller, H.B. (1966), Analysis of Numerical Methods, John
Wiley & Sons, New York.
[J]
Johnson, C. (1987), Numerical Solution of Partial Dierential Equations by the Finite Element Method, Cambridge University Press,
Cambridge.
[JR] Johnson, L.W.; Riess, R.D. (1982), Numerical Analysis, Addison Wesley, London.
177
[K]
Kelley, C.T. (1995), Iterative Methods for Linear an Nonlinear Equations, SIAM, Philadelphia.
[KC] Kincaid, D.; Cheney, W. (1996), Numerical Analysis, Brooks/Cole,
Pacic Grove CA, USA.
[Ku] Kutta, W. (1901), Beitrag zur naherungsweisen Integration totaler Differentialgleichungen, Z. Math. Phys. 46, 435{453.
[L]
Lambert, J.D. (1991), Numerical Methods for Ordinary Dierential
Systems, Wiley, London.
[MF] Mathews, J.H.; Fink, K.D. (2000), Metodos Numericos con Matlab,
Prentice Hall, Madrid.
[MG] Mitchell, A.R.; Griths, D.F. (1980), The Finite Dierence Method
in Partial Dierential Equations, Wiley, London.
[MW] Mitchell, A.R.; Wait, R. (1977), The Finite Element Method in Partial
Dierential Equations, Wiley, London.
[M]
Moreno Gonzalez, C. (1999), Calculo Numerico II, Universidad Nacional de Educacion a Distancia, Madrid.
[N]
Nevanlinna, O. (1993), Convergence of Iterations for Linear Equations, Birkhauser, Basel.
[OC1] Oden, J.T.; Carey, G.F. (1983), Finite elements: Mathematical Aspects. Volume IV, Prentice Hall, New Jersey.
[OC2] Oden, J.T.; Carey, G.F. (1984), Finite elements: Special Problems in
Solid Mechanics. Volume V, Prentice Hall, New Jersey.
[OR] Ortega, J.M.; Rheinholdt, W.C. (1970), Iterative Solution of Nonlinear
Equations in Several Variables, Academic Press, New York.
[P]
Peral, I. (1995), Primer Curso de Ecuaciones en Derivadas Parciales,
Addison-Wesley/U. Autonoma de Madrid, Madrid.
[Pi]
Pironneau, O. (1989), Finite Element Methods for Fluids, John Wiley
& Sons, Chichester.
[Po]
Pozrikidis, C. (1988), Numerical Computation in Science and Engineering, Oxford University Press, Oxford.
178
[QV]
[RT]
[RM]
[R]
[S]
[SC]
[SG]
[Sc]
[Sc2]
[Si]
[Ste]
[SB]
[Str]
[SF]
[St]
[T]
[TB]
[V]
[W]
[Z]
[ZM]
Strikwerda, J.C. (1989), Finite Dierence Schemes and Partial Differential Equations, Brooks/Cole Publishing, Pacic Grove, CA.
Thomas, J.W. (1995), Numerical Partial Dierential Equations, Springer-Verlag, Berlin.
Trefethen, L.N., Bau, D. III (1997), Numerical Linear Algebra, SIAM,
Philadelphia.
Varga, R.S. (1962), Matrix Iterative Analysis, Prentice-Hall, Englewood Clis, NJ.
Wesseling, P. (1992), An Introduction to Multigrid Methods, Wiley,
Chichester.
Zienkiewicz, O.C. (1977), The nite Element Method (3rd ed.),
McGraw-Hill, London.
Zienkiewicz, O.C.; Morgan, K. (1983), Finite Elements and Approximation, John Wiley & Sons, New York.
180