Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Problema de Valor Inicial
Problema de Valor Inicial
1.1.
a x b,
(1.1)
f = (f 1 , f 2 , . . . , f d )T .
problema un cierto n
umero de condiciones adicionales. Estas
son o bien condiciones de frontera, si la informacion adicional se da en dos o mas valores de
x, o condiciones iniciales, si se especifican todas las condiciones de y en un
u
nico valor de x. En este captulo nos centraremos en el caso en que se dan
condiciones iniciales, y dejaremos el caso en que se dan condiciones de frontera para mas adelante. As pues, dado = ( 1 , 2 , . . . , d )T Rd , buscamos
una solucion del problema de valor inicial (PVI) en [a, b], esto es, una funcion
y C 1 ([a, b]) que satisfaga
y 0 (x) = f (x, y(x))
para a x b,
y(a) = .
(1.2)
0 x c,
x c,
Este ejemplo muestra que hay que pedir a la funcion f algo mas que continuidad para asegurar que la solucion del problema (1.2) sea u
nica. Nosotros
pediremos una condicion de crecimiento con respecto al segundo argumento de
la funcion.
Definici
on 1.1. La funcion f : D R Rd 7 Rd satisface una condicion de
(1.3)
Rx
Rax
Restando y tomando normas, y usando que f es Lipschitz en su segunda variable se tiene que
ky(x) y(x)k ky(a) y(a)k +
Si definimos
Rx
(1.4)
x
a
(1.5)
problema (1.2) es equivalente a encontrar una funcion y C([a, b]) tal que
Z x
f (s, y(s)) ds.
(1.6)
y(x) = +
a
Las soluciones de esta ecuacion integral son puntos fijos del operador integral
T : C([a, b]) 7 C([a, b]) definido por
(T y)(x) = +
La idea para hallar un punto fijo para este operador es la misma que se utiliza para hallar puntos fijos de aplicaciones en espacios de dimension finita:
la iteracion. Definimos una sucesion de funciones {yn }
n=0 por medio de la
recurrencia
y0 (x) = ,
yn (x) = +
n = 1, 2, . . . .
(1.7)
n
X
k=1
P
kyk (x) yk1 (x)k ak y
ak < .
k=1
La acotacion
K (L(x a))k
,
L
k!
K (L(ba))k
.
L
k!
R x K (L(s a))k1
K (L(x a))k
ds
=
,
a
L
(k 1)!
L
k!
En resumen, la continuidad de f junto con la condicion de Lipschitz respecto de la segunda variable garantizan que el problema (1.2) esta bien planteado: (i) tiene solucion; (ii) es u
nica y (iii) depende de manera continua de
los datos iniciales. En lo sucesivo supondremos siempre que dicha condiciones
se cumplen. En ocasiones necesitaremos que la solucion sea mas regular. Para conseguirlo bastara con imponer mayor regularidad a la f . En efecto, es
facil ver que si, ademas de ser Lipschitz con respecto a su segunda variable,
f C p ([a, b] Rd ), entonces y C p+1 ([a, b]).
La condicion de Lipschitz se puede relajar, pidiendo tan solo que f sea
Lipschitz en D = [a, b] , con Rd . No obstante, en este caso solo
se tiene garantizado un resultado de existencia local, en alg
un intervalo [a, b],
con a < b b.
Ejemplo. Consideramos el problema
y0 = y2,
y(0) = 1.
1
,
1x
Problemas
1. Escribir la ecuacion lineal y n) + an1 y n1) + + a1 y 0 + a0 y = 0 en la
forma Y 0 = AY con Y = (y, y 0 , . . . , y n1) ) y A una matriz n n.
2. Comprobar que las siguientes funciones satisfacen una condicion de Lipschitz sobre los respectivos intervalos y hallar las constantes de Lipschitz
asociadas:
a) f (x, y) = 2yx4 ,
b) f (x, y) = e
x2
x [1, );
arctan y,
x [1, );
x (, ).
dada por
x2
f (x, y) = (x + sen y ,
+ cos y 1 )T .
2
4. Consideramos el problema de valor inicial
2
y 0 (x) = Ay(x)
donde
A=
para 0 x 2,
100
0
1
1
10
y(0) = ,
(1.8)
(a) Si l < 0 se dice que el PVI es disipativo. Demostrar que el PVI del
ejercicio anterior es disipativo.
7
1.2.
si a x b.
M
etodos num
ericos
2 (x)
1
,
1 + x2
y(0) = 0.
yn (x) = 1 +
y(0) = 1,
Z
cuya solucion es
yn (x) =
n
X
xk
k=0
k!
n = 1, 2, . . . ,
n = 0, 1, 2, . . . , N,
h = (b a)/N,
0 x 2,
y(0) = 0, y 0 (0) = 1.
2. Si f C p ([a, b] Rd ), podemos encontrar una solucion aproximada utilizando la formula de Taylor de orden p alrededor de x = a, y(x)
p
P
j=0
y (j) (a)(x a)j . Los valores de las derivadas y (j) (a) se pueden calcu-
lar derivando la EDO y usando la condicion inicial. Utilizar este procedimiento para aproximar la solucion del problema
y 0 (x) = y 2 (x), 0 x 1,
y(0) = 1,
1.3.
Primeros ejemplos
n = 0, . . . , N 1.
(1.9)
(1.10)
n = 0, . . . , N 1,
(1.11)
con Rn =
h2
2
c+h
c
g hg(c),
h2 00
h3
y (xn ) + y 000 (n ).
2
3!
h3 000
y (n ),
3!
obtenemos el metodo
h2
(fx (xn , yn ) + fy (xn , yn )f (xn , yn )).
2
del trapecio (que es mas precisa que la regla rectangular izquierda), se tiene
que
f (xn , y(xn )) + f (xn+1 , y(xn+1 ))
+ Rn .
2
Despreciando el residuo Rn , se llega a la llamada regla del trapecio,
y(xn+1 ) y(xn ) =
yn+1 = yn +
h
f (xn , yn ) + f (xn+1 , yn+1 ) .
2
(1.13)
Lh
h
kf (xn+1 , y) f (xn+1 , y)k
ky yk.
2
2
yn+1
= yn + hf (xn , yn ),
de manera que
yn+1 = yn +
El metodo resultante, que es explcito, se conoce como metodo de Euler mejorado. Requiere dos evaluaciones de funcion por paso, lo que queda a
un mas
claro si lo escribimos de la siguiente forma:
k1 = f (xn , yn ),
k2 = f (xn + h, yn + hk1 ),
yn+1 = yn + h
k1 k2
+
2
2
y(xn+1 ) y(xn ) hf
h
h
xn + , y xn +
.
2
2
13
h
h
xn + , y(xn ) + f (xn , y(xn )) .
2
2
h
h
xn + , yn + f (xn , yn ) .
2
2
h
k1
k1 = f (xn , yn ),
k 2 = f xn + , y n + h
,
2
2
yn+1 = yn + hk2 .
Metodo leap-frog (regla del punto medio). Si integramos la EDO en (xn , xn+2 )
y usamos la regla del punto medio, se tiene que
Z xn+2
f (x, y(x)) dx 2hf (xn+1 , y(xn+1 )),
y(xn+2 ) y(xn ) =
xn
lo que da lugar al metodo leap-frog, tambien conocido como regla del punto
medio,
yn+2 = yn + 2hf (xn+1 , yn+1 ),
(1.14)
Como vemos, para calcular yn+2 se utilizan dos valores anteriores, yn e yn+1 ,
y no uno solo, como en los metodos vistos hasta ahora. Diremos que es un
metodo de dos pasos. Necesitaremos por tanto dos valores de arranque, y 0 e
y1 . Para y0 tomamos un valor proximo al dato inicial, y0 y(0). El valor de
y1 se tendra que obtener por otro procedimiento, por ejemplo por el metodo
de Euler.
Tambien se puede llegar al metodo leap-frog a traves de la diferenciacion
numerica. En efecto, si en lugar de usar la formula de orden uno
y 0 (x)
y(x + h) y(x)
,
h
14
como hicimos para obtener el metodo de Euler, usamos la formula de diferencias centradas
y 0 (x)
y(x + h) y(x h)
,
2h
y(xn+2 ) y(xn )
,
2h
h
(f (xn , y(xn )) + 4f (xn+1 , y(xn+1 )) + f (xn+2 , y(xn+2 ))).
3
h
(f (xn , yn ) + 4f (xn+1 , yn+1 ) + f (xn+2 , yn+2 )),
3
u(xn ) = yn ,
es decir, pedimos que u tome un cierto dato inicial y que sea solucion de la
EDO en el punto de colocacion x = xn + c1 h. Puesto que u0 es constante,
tenemos que u0 (x) = k1 f (xn + c1 h, u(xn + c1 h)), que integrado en (xn , x)
produce
u(x) = yn + k1 (x xn ).
Si definimos yn+1 = u(xn+1 ), se tiene que yn+1 = yn + hk1 , siendo k1 solucion
de
k1 = f
h
k1
xn + , y n + h
2
2
15
tiene que
y(xn+2 ) y(xn+1 ) =
xn+2
(1.15)
xn+1
x xn+1
x xn
+ f (xn+1 , y(xn+1 ))
,
xn xn+1
xn+1 xn
de forma que
y(xn+2 ) y(xn+1 )
h
(3f (xn+1 , y(xn+1 )) f (xn , y(xn ))).
2
Llegamos al metodo
yn+2 yn+1 =
h
(3f (xn+1 , yn+1 ) f (xn , yn )),
2
polinomio de grado menor o igual que dos que interpola a f (x, y(x)) en los
nodos xn , xn+1 y xn+2 ,
(x xn+1 )(x xn+2 )
(xn xn+1 )(xn xn+2 )
(x xn )(x xn+2 )
+f (xn+1 , y(xn+1 ))
(xn+1 xn )(xn+1 xn+2 )
(x xn )(x xn+1 )
,
+f (xn+2 , y(xn+2 ))
(xn+2 xn )(xn+2 xn+1 )
llegamos a
y(xn+2 ) y(xn+1 )
h
(5f (xn+2 , y(xn+2 )) + 8f (xn+1 , y(xn+1 )) f (xn , y(xn ))),
12
y finalmente al metodo
yn+2 yn+1 =
h
(5f (xn+2 , yn+2 ) + 8f (xn+1 , yn+1 ) f (xn , yn )),
12
16
(1.16)
yn+2
= yn+1 + h2 (3f (xn+1 , yn+1 ) f (xn , yn )),
yn+2 = yn+1 +
polinomio Qn,2 de grado menor o igual que 2 que interpola a yn , yn+1 e yn+2 ,
es decir
(x xn+1 )(x xn+2 )
(x xn )(x xn+2 )
+ yn+1
(xn xn+1 )(xn xn+2 )
(xn+1 xn )(xn+1 xn+2 )
(x xn )(x xn+1 )
+yn+2
.
(xn+2 xn )(xn+2 xn+1 )
Qn,2 (x) = yn
h2
yn+1 = yn + h 2xn yn + yn (1 + 2x2n )h + 2xn yn (3 + 2x2n )
.
3
h
(f (xn , y(xn ))+4f (xn+ 1 , y(xn+ 1 )+f (xn+1 , y(xn+1 ))),
2
2
6
n+ 21
) y(xn ) +
h
f (xn , y(xn )).
2
Tampoco
k1 = f (xn , yn ),
k = f (x + h , y + h k ),
2
n
n
2
2 1
k3 = f (xn + h, yn + h(k1 + k2 ))
4. Consideramos la igualdad
y(xn+k ) y(xn+k1 ) =
xn+k
xn+k
1.4.
Convergencia
j=0
n = 0, . . . , N k,
(1.17)
(1.18)
k1
X
j=0
kyn+j yn+j k
(1.19)
0nN
si lm
N knN
Observacion. La condicion lm
max ky(xn ) yn k = 0.
N 0nk1
N 0nk1
una solucion numerica del problema. Una medida alternativa del error
cometido viene dada por max ky(x) y I (x)k . Hallar una cota para
axb
f C ([a, b] R ).
1.5.
0-estabilidad
Salvo en casos excepcionales, la verdadera solucion no satisface la recurrencia (1.17) que define el metodo numerico, sino la recurrencia mas una peque
na
perturbacion,
k
X
j=0
22
n = 0, . . . , N k. (1.20)
j=0
yn = yn + n ,
n = 0, . . . , N k,
n = 0, . . . , k 1,
j=0
k
P
j=0
0 n N k,
se verifica que
max kun vn k C
knN
max kun vn k +
0nk1
max kn n k .
0nN k
(1.21)
N
sean {un }N
n=0 y {vn }n=0 satisfaciendo
un+1 = un + hf (xn , un ; h) + hn ,
vn+1 = vn + hf (xn , vn ; h) + hn ,
n = 0, . . . N 1.
(1.22)
Restando ambas ecuaciones, tomando normas y usando la condicion de Lipschitz (1.19), se tiene que en = kun un k verifica
en+1 en + hkf (xn , un ; h) (xn , vn ; h)k + hkn n k
(1 + Lh)en + hkn n k.
0nN k
cuando h 0+ ,
y(xn+1 ) y(xn )
f (xn , y(xn )) = y 0 ( n ) y 0 (xn ).
h
1
2
(1.24)
000 n
000
y ( n )
n)
y (
h3 ,
3!
4
= y(xn ) + hy 0 (xn ) +
(1.25)
5
max ky 000 (x)k.
12 x[a,b]
La constantes que aparecen en las cotas anteriores se pueden estimar utilizando la ecuacion diferencial.
Ejemplo. Sea y la solucion de y 0 = sen (exp(y)) en [0, 1], y(0) = 0. Queremos
estimar y 00 sin conocer y. Para ello derivamos la EDO,
y 00 = cos(exp(y)) exp(y)y 0 = cos(exp(y)) exp(y) sen (exp(y)).
Para acotar el factor exponencial tenemos que tener una idea del tama
no de
y. Dado que |y 0 | 1 tenemos que |y| x 1. Concluimos que |y 00 | e.
La cotas (1.24) y (1.25) en general sobreestiman el error en muchos ordenes
de magnitud, y no se deben por tanto utilizar en la practica. Sin embargo
25
dan una informacion importante: el error del metodo de Euler es una O(h),
siempre y cuando ky(x0 ) y0 k = O(h) y el de la regla del trapecio una O(h2 ),
Definici
on 1.7. El metodo numerico (1.17) es convergente de orden p si este
es el mayor entero tal que para todo problema (1.2) con f C p (D) y Lipschitz
knN
si
0nk1
cuando h 0+ .
Con esta definicion, el metodo de Euler es convergente de orden al menos
uno y la regla del trapecio de orden al menos de orden 2. Para ver que el
metodo de Euler no es convergente de orden 2 lo aplicamos al problema
y 0 (x) = x
y(0) = 0,
x2n xn h
,
2
2
y por tanto
max ky(xn ) yn k = max kxn h/2k = bh/2.
1nN
1nN
forma parecida se prueba que la regla del trapecio no tiene orden de convergencia 3.
26
y(0) = 0,
pecio.
tomar para garantizar un error menor que 103 ? Y si se usa la regla del
trapecio?
5. Probar que la regla del trapecio no es convergente de orden 3.
27
0 x 2,
y(0) = 1,
tal que
max kun vn k C
0nN
max k
0nN 1
N
1
X
j=0
(j j )k.
1.6.
Consistencia
h0
Definici
on 1.8. Un metodo de la forma (1.17) es consistente si para todo
problema (1.2) con f continua en D y f Lipschitz con respecto a su segunda
28
h0+
j = 0
(1.26)
j=0
y ademas
k
X
jj
j=0
f (x, y(x)).
(1.27)
y(0) = 1,
Rn X
lm+
j = 0
=
h0
h
j=0
si el metodo es consistente, es decir, (1.26).
Consideramos ahora el problema general (1.2) y lo integramos numericamente en el intervalo [a, x], con x (a, b]. Si se cumple (1.26), entonces
k
Rn
1X
=
j y(xn+j ) f (xn , y(xn ), . . . , y(xn+k1 ); h)
h
h j=0
k
1X
=
j y(xn ) + jhy 0 ( n,j ) f (xn , y(xn ), . . . , y(xn+k1 ); h)
h j=0
=
k
X
j=0
k
X
j=0
RN k X
=
jj f ( N k,j , y( N k,j )) f (xN k , y(xN k ), . . . , y(xN 1 ); h)
h
j=0
k
P
jj f (x, y(x)) f (x, y(x), . . . , y(x); 0),
j=0
Usando (1.18) es facil ver que la regla del trapecio cumple estas dos condiciones;
por tanto es consistente.
Ejemplo. Consideramos el metodo
2
P
(1.29)
j = 0 y
j=0
j=0
es consistente.
Si un metodo es 0-estable y ademas = O(hp ) cuando h 0+ , entonces
Definici
on 1.10. Un metodo de la forma (1.17) es consistente de orden p si
este es el mayor entero tal que para todo problema (1.2) con f C p (D) y
cuando h 0+ .
Ejemplo. Si f C 2 , la regla del punto medio (1.14) tiene residuo
Rn = y(xn+2 ) y(xn ) 2hf (xn+1 , y(xn+1 ))
= 43 y 000 (n ) y 000 (n ) h3 ,
x2
,
2
0 x b,
y(0) = 0,
(1.30)
cuya solucion, y(x) = x3 /3!, verifica que y 000 (x) = 1, se tiene que Rn = h3 /3.
As pues, = h2 /3, y el metodo no es consistente de orden 3.
Problemas
1. Decidir si los metodos de la seccion 1.3 son consistentes y en caso afirmativo determinar el orden de consistencia.
2. Determinar que condiciones deben cumplir las constantes y para que
el metodo
yn+1 = yn + hf (xn , yn ) + hf (xn+1 , yn+1 )
sea: (i) consistente; (ii) consistente de orden al menos uno; y (iii) consistente de orden al menos dos. Es consistente de orden 3 para alguna
eleccion de y ?
31
1.7.
Criterio de la raz
Si un metodo de un paso es consistente, es 0-estable, y por tanto convergente. Sucede lo mismo con los metodos de mas de un paso? La respuesta es
que no.
Ejemplo. Consideramos el metodo (1.29). Se lo aplicamos al problema mas
simple que uno pueda imaginar,
y 0 (x) = 0,
a x b,
y(a) = 0,
0n1
Sin embargo,
max kun vn k = h2N =
2nN
ba N
2 ,
N
k
X
j j ,
j=0
1. Esta
es la raz principal, a la que se etiqueta como 1 . Las restantes races,
i , i = 2, . . . , k, son las llamadas races espurias; surgen porque decidimos
representar un sistema diferencial de primer orden por un sistema en diferencias
de orden k. Obviamente, los metodos consistentes con k = 1 no tienen races
espurias, y satisfacen por tanto la condicion de la raz.
La 0-estabilidad resulta ser equivalente a que se satisfaga la condicion de
la raz.
Teorema 1.12. Un metodo (1.17) es 0-estable si y solo si satisface la condicion
de la raz.
33
j un+j = 0.
(1.31)
j=0
knN
0nk1
knN
ba N
|| ,
N
mientras que,
max kun vn k = max h||n
0nk1
0nk1
b a k1
|| .
N
knN
hN ||N = b a N ,
mientras que
max kun vn k = max
0nk1
0nk1
ba
hn||
(k 1),
N
n
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.
34
n = 0, . . . , N k + 1,
n = 0, . . . , N k + 1.
n = 0, . . . , N k,
k1 k2 . . . 1 0
1
0
...
0
...
A=
.
0
1
..
..
... ...
...
.
.
...
n1
X
An1l F (Yl ).
l=0
n = 0, . . . , N k,
n1
X
l=0
n1
X
An1l Rl .
l=0
n = 0, 1, . . . ,
n1
X
l=0
35
0lN k
n N + hLM k
l ,
l=0
n1
P
l . Se tiene que
l=0
n = 0, . . . , N 2,
h3 3
(n n).
3!
h3 3
(n n).
3!
max ky(xn ) yn k =
2nN
h2
bh2
max kxn k =
;
3! 2nN
3!
1.8.
Teorema de equivalencia
el recproco?
Teorema 1.13 (Teorema de equivalencia). Un metodo (1.17) es convergente si y solo si es 0-estable y consistente.
37
Consideramos el problema
y 0 (x) = 0,
y(0) = 0,
0nk1
Sin embargo,
max ky(xn ) yn k = h||N =
knN
ba N
|| cuando h 0+ ,
N
Sin embargo,
max ky(xn ) yn k =
knN
hN ||N = b a N cuando h 0+ ,
y el metodo no es convergente.
Veamos ahora que convergencia consistencia. Si un metodo es conver-
produce la recurrencia
k
X
j yn+j = 0,
n = 0, . . . , N k.
j=0
38
(1.32)
0nk1
knN
y por tanto que lm+ yn = 1. As, pasando al lmite en (1.32) se llega a (1.26).
h0
Si definimos
g(x)
,
f(x, y) = f (x, y) k
P
jj
j=0
se tiene que
k
X
jj
j=0
f(x, y(x)).
a x b,
y(a) = ,
la ecuacion equivocada!.
Observacion. Las condiciones de consistencia garantizan que estamos resolviendo la ecuacion diferencial correcta, que estamos siendo consistentes con
ella.
Ejemplo. La funcion de incremento del metodo
yn+1 = yn + h(2f (xn , yn ) + 3f (xn+1 , yn+1 ))
39
1.9.
M
etodos lineales multipaso
El metodo de Euler, las reglas del trapecio, del punto medio y de Simpson,
los metodos de Adams-Bashforth y Adams-Moulton de dos pasos y la formula
BDF de dos pasos obtienen las aproximaciones yn a la solucion del problema
de valor inicial como soluciones de recurrencias de la forma
k
X
j=0
j yn+j = h
k
X
j f (xn+j , yn+j ),
j=0
n = 0, . . . , N k.
(1.33)
Los metodos que se pueden escribir de esta manera se conocen como metodos lineales de k-pasos, porque yn+k es una combinacion lineal de yn+j y
f (xn+j , yn+j ), j = 1, . . . , k.
40
f (xn , yn , . . . , yn+k1 ; h) =
+k f (xn + kh,
j=0
k1
P
j=0
(1.34)
k1
X
j=0
[]
[0]
yn+k arbitrario.
lm yn+k = yn+k .
41
(1.35)
Notese que, siempre que f sea Lipschitz con respecto a su segunda variable,
podemos forzar que se cumpla la condicion M < 1 tomando un valor de h
suficientemente peque
no. Si este fuera demasiado peque
no se debera optar
por otro metodo iterativo, como el de Newton.
Ya vimos que los coeficientes j de un metodo general (1.17) se pueden
especificar por medio de , el primer polinomio caracterstico del metodo. En
el caso de los metodos lineales multipaso se define un segundo polinomio caracterstico,
() =
k
X
j j ,
j=0
k1
P
j=0
k
P
j f (x, y) + k f
x,
j f (x, y).
k1
P
j=0
j y(x)
j=0
j = 0
j=0
k
X
j=0
j =
k
X
jj .
j=0
0 (1) = (1).
k
P
j=0
k
P
j=0
n = 0, . . . , N k.
obtenemos que
Rn = C0 y(xn ) + C1 y 0 (xn )h + + Cp+1 y (p+1) (xn )hp+1 + O(hp+2 ),
donde
C0 =
C1 =
..
.
k
X
j=0
k
X
j=0
1
Cq =
q!
j ,
j j
k
X
j=0
k
X
j ,
j=0
j j q q
k
X
j j q1
j=0
q > 1.
0 x b,
y(0) = 0,
Ejemplo. El metodo
yn+2 + yn+1 2yn =
h
(fn+2 + 8fn+1 + 3fn )
4
1 = 1,
2 = 1,
0 = 3/4,
1 = 8/4,
2 = 1/4.
h
(fn + 4fn+1 + fn+2 ).
3
h
(fn+1 + fn ).
2
= (y 0 (xn+ 1 )h +
2
h2 (2y 0 (xn+ 1 )
2
44
j = kj .
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.
Cual es el mejor orden que podemos conseguir para un metodo, para
un n
umero de pasos k dado? Puesto que un metodo lineal de k pasos viene
determinado por 2k + 1 coeficientes, y las condiciones de orden de consistencia
son relaciones lineales de estos coeficientes, 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 1.14 (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 0 (en particular si es explcito).
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.
Problemas
1. Comprobar que la funcion de incremento del metodo lineal multipaso
(1.33) satisface la condicion de Lipschitz (1.19) si f satisface una condicion de Lipschitz con respecto a su segunda variable.
45
8
(y
19 n+3
yn+1 ) yn =
6h
(f
19 n+4
+ 4fn+3 + 4fn+1 + fn ).
() =
14 4
64 3
24 2
( + 1) +
( + ) +
.
45
45
45
ser convergente.
1.10.
M
etodos de Runge-Kutta
s
P
aij kj ),
ki = f (xn + ci h, yn + h
s
P
yn+1 = yn + h bi ki .
i = 1, 2, . . . , s,
j=1
(1.36)
i=1
Cualquier metodo que se pueda escribir de esta manera es un metodo de RungeKutta de s etapas. Cada una de las evaluaciones de funcion ki es una etapa.
El metodo (1.36) se representa por medio de su tablero de Butcher:
c1
a11
a12
...
a1s
c2
..
.
a21
..
.
a22
..
.
...
...
a2s
..
.
cs
as1
as2
...
ass
b1
b2
...
bs .
Si escribimos
c = (c1 , c2 , . . . , cs )T ,
b = (b1 , b2 , . . . , bs )T ,
A = (aij ),
A
bT .
1/2
0
1.
1
1/2
1/2.
1/4
2/3
1/4
1/4
1/4
5/12
3/4,
i
X
aij kj ),
i = 1, 2, . . . , s.
j=1
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.
Ejemplo. El metodo RK-Lobatto IIIA de dos etapas, de tablero
0
1 1/2
1/2
1/2
1/2,
1/2
1.
h
yn+1 = yn + hf (xn + , Y1 ).
2
s
X
bi ki (xn , yn ; h).
(1.37)
i=1
Puesto que las etapas ki son evaluaciones de la funcion f , no es difcil convencerse de que f satisface una condicion de Lipschitz con respecto a su segunda
variable si f tambien lo hace.
Ejemplo. Para el metodo de Euler modificado,
kk1 (xn , yn ; h) k1 (xn , yn ; h)k Lkyn yn k,
kk2 (xn , yn ; h) k2 (xn , yn ; h)k
L(kyn yn k + h2 kk1 (xn , yn ; h) k1 (xn , yn ; h)k)
L(1 +
Lh
)kyn
2
yn k,
de donde se obtiene inmediatamente la condicion de Lipschitz deseada observando que en este caso f (xn , yn ; h) = k2 (xn , yn ; h).
Ejemplo. En el caso del metodo RK-Radau I de dos etapas,
0
2/3
1/3
1/3
1/4
3/4,
se tiene que
kk1 (xn , yn ; h) k1 (xn , yn ; h)k Lkyn yn k,
kk2 (xn , yn ; h) k2 (xn , yn ; h)k L(kyn yn k
+ h3 kk1 (xn , yn ; h) k1 (xn , yn ; h)k + h3 kk2 (xn , yn ; h) k2 (xn , yn ; h)k),
L(1 +
Lh
)kyn
3
f (x, y; 0) =
s
X
bi
i=1
f (x, y).
bi = 1.
(1.38)
i=1
Que condiciones sobre los coeficientes garantizan que el metodo es consistente de orden p?
Tenemos que desarrollar el residuo
Rn = y(xn+1 ) (y(xn ) + h(xn , y(xn ); h))
alrededor de xn en potencias de h. Notese que el residuo coincide con la diferencia entre la solucion teorica y la numerica,
Rn = y(xn+1 ) yn+1 ,
suponiendo que en el paso n no se cometa ning
un error, yn = y(xn ) (esta
hipotesis se conoce como hipotesis de localizacion).
As pues, lo que hay que hacer es obtener desarrollos en potencias de h
para las soluciones teorica y numerica (esta u
ltima bajo la hipotesis de localizacion). Si estos desarrollos coinciden hasta orden p, existe una constante C
51
menos p.
h2 00
h3
y (xn ) + y 000 ( n ),
2
3!
+ h2
d
P
J=1
h2 f
(xn , y(xn ))
2 x
f
(xn , y(xn ))f J (xn , y(xn ))
y J
h3 000
y ( n ).
3!
d
P
f
y J
J=1
d
P
+h
j=1
aij
P
aij kj (xn , y(xn ); h)
= ci f
x
+
c
h,
y(x
)
+
h
n
i
n
x
j=1
xn + ci h, y(xn ) + h
s
P
j=1
dkjJ
(x
,
y(x
);
h)
,
n
n
dh
s
P
j=1
s
P
i,j=1
s
P
i=1
s
P
bi ki (xn , y(xn ); h)
bi f (xn , y(xn )) + h2
i=1
bi aij
d
P
J=1
s
P
i=1
bi ci f
(xn , y(xn ))
x
f
(xn , y(xn ))f J (xn , y(xn ))
y J
52
h3 d 2 k i
(xn , y(xn ); ),
2 dh2
dependiente de n tal que ky 000 ( n )k, k ddhk2i (xn , y(xn ); )k C. Por consiguiente,
comparando ambos desarrollos concluimos que la condicion
s
X
bi = 1
(1.39)
i=1
s
X
1
bi c i = ,
2
i=1
1
bi aij = ,
2
(1.40)
si
s
P
i=1
i=1
se demuestra que las condiciones (1.40) son necesarias para tener orden de
consistencia 2.
Observacion. La condicion de consistencia coincide con la condicion de consistencia de orden 1.
El ejemplo anterior debera bastar para convencerse de que calcular condiciones de orden para un metodo de Runge-Kutta general es una tarea ardua.
As que intentamos simplificar un poco las cosas.
Cualquier problema (1.2) se puede escribir en forma autonoma a costa de
aumentar la dimension del espacio. En efecto, si definimos
!
!
!
x
a
1
y(x) =
,
=
,
f(
y (x)) =
,
y(x)
f (x, y(x))
el problema (1.2) es equivalente al problema autonomo
y0 (x) = f(
y (x)),
53
y(a) = .
Podramos entonces pensar que basta con estudiar las condiciones de orden
para problemas autonomos, lo que es un poco mas facil. Hay una dificultad:
en general un metodo de Runge-Kutta no produce la misma solucion para
un problema que para su equivalente autonomo. Sin embargo, se puede comprobar facilmente que ambas soluciones numericas coinciden si el metodo es
consistente y satisface la condicion de suma por filas
ci =
s
X
aij ,
i = 1, 2 . . . , s.
(1.41)
j=1
dp (y(xn + h))
xn +h
=
e
= exn = y(xn ).
h=0
dhp
h=0
(p)
yn+1
(p1)
k j1
h=0
h=0
=p
= (p 1)
= (p 1)(p
=
= (p 1)!
s
X
j1 =1
s
P
(p1)
b j1 k j1
(p2)
aj1 j2 k j2
j2 =1
s
P
h=0
h=0
(p3)
2)
aj1 j2 aj2 j3 k j3
h=0
j2 ,j3 =1
s
P
j2 ,j3 ,...,jp =1
(p)
yn+1
h=0
= p!
s
X
(0)
k jp
h=0
j1 ,...,jp =1
s
X
(1.42)
j1 ,...,jp =1
b1 = 1
1
,
2
b2 =
1
,
2
R, 6= 0.
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.
Teorema 1.16. Para p 5 no existe ning
un metodo de Runge-Kutta explcito
Estas limitaciones sobre el orden obtenible que hemos mencionado se conocen como barreras de Butcher. Hay mas barreras. Por ejemplo, se tiene el
siguiente teorema.
Teorema 1.17. (i) Para p 7 no existe ning
un metodo de Runge-Kutta
etapas.
Problemas
1. Demostrar que las condiciones (1.40) son necesarias para tener orden de
consistencia 2.
2. Comprobar que las soluciones numericas por un metodo de Runge-Kutta
del problema de valor inicial (1.2) y de su equivalente autonomo coinciden si el metodo es consistente y satisface la condicion de suma por
filas (1.41).
56
3. Demostrar que para que un metodo de Runge-Kutta que cumple la condicion de suma por filas tenga orden de consistencia 3 es necesario y
suficiente que, ademas de (1.39) y (1.40), cumpla
s
X
bj c2j
j=1
1
= ,
3
b Ac =
s
X
1
bj ajk ck = .
6
j,k=1
c2
c3
c3
2h
h
2h
h
h
yn+1 = yn + f (xn , yn )+3f xn + , yn + f (xn + , yn + f (xn , yn )) .
4
3
3
3
3
(i) Comprobar que la funcion de incremento satisface una condicion de
Lipschitz de la forma (1.19).
(ii) Escribir su tablero.
(iii) Determinar el orden de convergencia.
6. Dado un metodo de Runge-Kutta explcito de s etapas, definimos =
s
P
|bj |. Sea L una constante de Lipschitz para f con
max |aij |, =
1i,js
i=1
i = 1 + hL
i1
X
j=1
57
j ,
i = 1, . . . , s.
a)
2/3
1/3
1/3
1/4
3/4,
b)
1/4
2/3
1/4
1/4
1/4
5/12
3/4.
s
X
aij f (xn + cj h, Yj ),
i = 1, . . . , s,
(1.43)
n = 1, . . . , N 1.
(1.44)
k=1
yn+1 = yn + h
s
X
bi f (xn + ci h, Yi ),
i=1
58
1/3
1/3
1/3
1/4
3/4.
h yn + yn+1
yn+1 = yn + hf xn + ,
2
2
1/2
1/2
1/2
1/6
1/3
1/3
1/6
tiene orden 4.
12. Considerese el metodo cuyo tablero es
0
1
1/2
1/2
3/6
1/6
2/6
Q
(x ci ), ql (x) = q(x)/(x cl ), l = 1, . . . , . Demostrar
14. Sea q(x) =
i=1
A
bT ,
con
aij =
1.11.
ci
0
qj (x)
dx,
qj (cj )
bi =
1
0
qi (x)
dx,
qi (ci )
i, j = 1, . . . , .
Diagramas de eficiencia
10
Euler
Trapecio
1
10
error
10
10
10
10
10
10
10
10
10
10
evaluaciones de funcin
2
1
1
2
para 0 x 10
!
cuya solucion es
y = 2e
B(x) =
!
1
x
1
2 sen x
2(cos x sen x)
sen x
cos x
(1.45)
(1.46)
(1.47)
te computacional utilizamos el n
umero de evaluaciones de funcion. Cuanta
mayor precision, mas abajo estaremos en el diagrama, y cuanto mas trabajo
realicemos, mas a la derecha.
61
C(b a)p
.
Np
Llamemos fc al n
umero de evaluaciones de funcion. Usando que fc KN
obtenemos que error c (fc)p , y tomando logaritmos
log10 (error) = p log10 (fc) + c.
La pendiente de la recta es p. Esto produce una forma de obtener empri-
998 999
B(x) =
2 sen x
999(cos x sen x)
(1.48)
La solucion viene dada, tambien esta vez, por (1.47). El diagrama de eficiencia
se representa en la figura 1.2. Esta vez las cosas son muy distintas. A menos
que el n
umero de evaluaciones de funcion sea bastante alto, el metodo de
Euler funciona fatal. De hecho el error llega a superar las capacidades de
representacion del Matlab. Que demonios esta pasando? A la solucion no le
pasa nada especial. De hecho, nuestro primer ejemplo tena la misma solucion
y Euler funcionaba bastante bien.
62
300
10
Euler
Trapecio
250
10
200
10
150
error
10
100
10
50
10
10
50
10
10
10
10
evaluaciones de funcin
10
10
donde
A=
100
0
1
1
10
y(0) =
1
999
10
(1.49)
(1.50)
120
10
Euler
Trapecio
100
10
80
10
60
error
10
40
10
20
10
10
20
10
10
10
10
10
10
10
evaluaciones de funcin
log(error(h)) log(error(h0 ))
.
log h log h0
1.12.
Qu
e es un problema stiff?
i=1,...,d
d
X
j=1
|aij |,
!
1
1
A = V DV 1 , donde V =
0 999
10
y D=
100
0
1
10
donde exD =
e100x
e 10
Si V 1 y0 = (, )T , concluimos que
y(x) = v1 e100x + v2 ex/10 ,
65
x 0.
La funcion e100x decae extraordinariamente mas aprisa que ex/10 . Por tanto,
incluso para x > 0 peque
no, la contribucion de v1 es despreciable a todos los
efectos, y se tiene que y(x) v2 ex/10 .
Supongamos que tenemos dos soluciones de la ecuacion, y e y, tales que
T . Entonces
V 1 y0 = (, )T , V 1 y0 = (
, )
2 ex/10 0
y(x) y(x) = (
)v1 e100x + ( )v
cuando x .
n = 0, 1, 2, . . . .
(1 100h)n
0
n = 0, 1, . . . ,
0
(1
h n
)
10
se sigue que
n
yn = v1 (1 100h) + v2
h
1
10
n = 0, 1, . . . ,
16
14
12
10
10
15
20
25
Figura 1.4: Logaritmo de la norma eucldea kyn k de los pasos de Euler, cuando se aplica
el metodo al problema (1.49)(1.50) con h = 1/10 y condicion inicial igual al autovector
estable.
1
,
y0 =
999
(1.51)
10
h n
) .
10
todo fuera bien con el metodo de Euler. No es as. Los ordenadores reales
producen errores de redondeo y antes o despues produciran una contribucion
distinta de cero a un autovector correspondiente al autovalor 100. En cuanto
h
I A
2
h
I + A yn .
2
Se tiene que
yn =
h
I A
2
h
I+ A
2
!n
y0 ,
n = 0, 1 . . . .
que
yn = v1
Dado que
1 50h
1 + 50h
+ v2
1 50h
1 + 50h ,
1
1+
1 +
h
20
h
20
h
20
h
20
!n
n = 0, 1, . . . .
<1
para todo h > 0, deducimos que lmn yn = 0. Esto recupera el comportamiento asintotico correcto para la ecuacion (1.49)(1.50) independientemente
del tama
no de h.
En otras palabras, la regla del trapecio no requiere ninguna restriccion en el
paso para evitar la inestabilidad. Esto no quiere decir, por supuesto, que cualquier h valga. Es necesario escoger h > 0 suficientemente peque
no como para
que el error local sea razonablemente peque
no y estemos aproximando adecuadamente la verdadera solucion. Sin embargo, no hay necesidad de disminuir h
hasta un tama
no min
usculo con el fin de evitar el crecimiento incontrolado de
componentes espurias de la solucion.
La ecuacion (1.49)(1.50) es un ejemplo de problema stiff (rgido, en ingles).
En la literatura se pueden encontrar varias definiciones de este concepto, pero
quizas sea mas interesante adoptar una definicion operativa, si bien un poco
vaga.
Definici
on 1.18. Decimos que el sistema
y 0 = f (x, y),
x x0 ,
y(x0 ) = y0 ,
En nuestro ejemplo hemos visto uno de los mecanismos (de hecho, uno de
los mas frecuentes) que hacen que un problema sea stiff, 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 coeficiente de rigidez del sistema. Si dicho coeficiente es
grande, el sistema suele ser stiff. 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 stiff. Siempre que las ecuaciones modelen varios procesos con velocidades de evolucion muy distintas, el problema sera probablemente stiff. Esto sucede por ejemplo en problemas de cinetica qumica,
combustion, prediccion meteorologica, biologa y electronica. Otra fuente muy
importante de problemas stiff es el propio analisis numerico. Por ejemplo, las
ecuaciones en derivadas parciales parabolicas se aproximan con frecuencia con
sistemas de ecuaciones diferenciales ordinarias que resultan ser stiff.
Problemas
1. Consideramos un metodo de Runge-Kutta de tablero
c
A
bT .
2. Sea
A=
1
0
C .
n nn1
0
n = 0, 1, . . .
g(A) =
n=0
g (n) (0) n
A .
n!
g(xA) =
Demostrar que
g(x) xg 0 (x)
0
g(x)
C .
!
5
4
y0 =
y
2
1
para que al aplicar el metodo de Euler con h = 1 se cumpla lm yn = 0.
n
4. Probar el teorema de los crculos de Gershgorin que afirma que los autovalores de una matriz A = (aij ) pertenecen a la union de los crculos en
P
el plano complejo dados por Di = {z : |z aii | j6=i |aij |}.
5. Considerese el problema y 0 = Ay, y(0) = y0 con A M22 (R) diagonalizable en R. Demostrar que si los elementos de A son menores que
242
324
183 245
y.
x+
1.13.
x 0,
y(0) = 1,
(1.52)
solo si Re < 0.
Definici
on 1.19. El dominio de estabilidad lineal (tambien llamado region
de estabilidad absoluta) de un metodo numerico es el conjunto de todos los
n
umeros z = h con h > 0, C, tales que la solucion numerica de (1.52)
verifica que lm yn = 0.
n
n = 0, 1, . . . ,
n
1 + 12 h
yn =
,
n = 0, 1, . . . ,
1 21 h
que es una progresion geometrica. El dominio de estabilidad lineal es obviamente
D= zC:
1 + 12 z
<1 .
1 1z
2
y(0) = y0 ,
d
X
k vk (1 + hk )n ,
n = 0, 1, . . . .
k=1
k = 1, . . . , d.
Es decir, todos los productos h1 , . . . , hd deben estar en el dominio de estabilidad lineal del metodo de Euler. Esto significa 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 suficiente.
El analisis se puede extender tambien facilmente a sistemas no homogeneos,
y 0 = Ay + a.
El dominio de estabilidad lineal D es tambien importante en sistemas no
x x0 ,
y(x0 ) = y0 ,
f (xn , yn )
.
y
1 1
y,
4. Considerese el problema
y0 =
10
10
9
11
y.
1/2
1/2
1/2
1/2
y hallar la funcion de incremento correspondiente, f (xn , yn ; h), comprobando que satisface una condicion de Lipschitz con respecto a su segunda
variable para h peque
no.
6. Determinar para que valores de es A-estable el -metodo
yn+1 = yn + h(fn + (1 )fn+1 ).
7. Se dice que un metodo es Lestable si al aplicarlo a y 0 = y se cumple
yn+1 = R(h)yn con R(z) 0 cuando Re z .
comparacion con h1 .
1.14.
Selecci
on autom
atica del paso
Hasta ahora nos hemos limitado a considerar mallas uniformes. Esto presenta un inconveniente importante: si la solucion vara mucho en alguna zona
75
un (xn ) = yn .
Podemos controlar el error global a traves del error local? El siguiente resultado muestra que s.
Teorema 1.21. Sea =
0nN 1
n = 1, . . . , N.
Motivados por este teorema, queremos escribir un codigo que elija automaticamente la longitud del paso de forma que la norma del error local por
unidad de paso,
kun (xn+1 ) yn+1 k/hn ,
se ajuste a una tolerancia prescrita. Sera por tanto necesario tener una forma
de estimar esta cantidad.
Si un metodo de un paso es consistente de orden p, se puede probar facilmente que el error local es de orden p + 1. Es mas, si f C p+1 , existe una
funcion f tal que
p p + 1.
Por consiguiente,
yn+1 yn+1 = yn+1 un (xn+1 ) + un (xn+1 ) yn+1
+ O(hp+2
= f (xn , yn )hp+1
n ),
n
as que podemos estimar el error local por medio de
errorl kf (xn , yn )khp+1
k
yn+1 yn+1 k.
n
(1.53)
Una vez estimado el error se compara con TOLhn donde TOL es la tolerancia
prescrita para el error local por unidad de paso. Si errorl > TOL hn , el paso
se rechaza, y se vuelve a calcular con un nueva longitud h0n tal que
kf (xn , yn )k(h0n )p+1 = TOL h0n .
78
Dado que
TOL =
kf (xn , yn )k(h0n )p
kf (xn , yn )khpn
h0n
hn
errorl
hn
h0n
hn
= hn
TOL hn
errorl
p1
(1.54)
Para tener un buen codigo hay que poner un poco mas de cuidado. Se suele
multiplicar el segundo miembro de (1.54) por un factor de seguridad FAC,
normalmente FAC = 0,9, de forma que el errorl sea aceptable la siguiente vez
con probabilidad alta. Tampoco se suelen permitir incrementos de paso muy
grandes, con el fin de hacer el metodo mas seguro. Tambien es costumbre fijar
una longitud de paso maxima, HMAX. As, por ejemplo podemos poner
p1 !!
TOL
h
n
.
h0n = mn HMAX, hn mn FACMAX, FAC
errorl
FACMAX se suele tomar entre 1,5 y 5.
Como elegir el segundo metodo para que el coste adicional de estimar el
error no sea muy grande? Utilizamos una idea debida a Merson.
Sea un metodo de Runge-Kutta de orden p de tablero
c
A
bT .
s
X
bi k i .
i=1
A
bT
s
X
bi ki
i=1
sin coste adicional, pues las etapas ki coinciden. Esta solucion mas precisa se
puede utilizar para estimar el error cometido con el primer metodo. A un par
de metodos con estas caractersticas se le conoce como par encajado.
Ejemplo. El par encajado
0
1
yn+1
yn+1
1
2
1
2
i = 1, . . . , s.
s1
X
asi ki ) = f (xn + hn , yn + hn
s1
X
bi ki ),
i=1
i=1
donde hemos usado las condiciones de suma por filas y de consistencia para
s
s
P
P
probar que cs =
asj =
bj = 1. Por otra parte, por ser el metodo explcito,
j=1
j=1
s1
X
i=1
80
bi ki ).
yn+1
1
2
1
2
yn+1
10
Euler
Trapecio
Euler / Euler mejorado 1(2)
Euler mejorado / Euler 2(1)
10
10
10
error
10
10
10
10
10
10
10
10
10
10
10
10
evaluaciones de funcin
10
Trapecio
Euler / Euler mejorado 1(2)
Euler mejorado / Euler 2(1)
10
10
10
error
10
10
10
10
10
10
10
10
10
10
10
10
10
evaluaciones de funcin
con extrapolacion.
Problemas
1. Queremos resolver el problema de valor inicial (1.2) en el intervalo [0, 1]
con funcion del lado derecho
x2
+ cos y 1 )T ,
f (x, y) = (x + sen y ,
2
2
x [0, 2].
(b) Supongamos que calculamos numericamente la solucion correspondiente al dato inicial y(0) = 0 con un metodo que selecciona automaticamente el paso, imponiendo una tolerancia para el error local
por paso de 1010 . Debido a la precision finita del ordenador se
comete un error en el dato inicial de 1012 . De cuantas cifras decimales de la solucion nos podemos fiar?
3. Consideramos un problema de valor inicial en el que la funcion f del lado
derecho satisface la condicion de Lipschitz unilateral
< f (x, y) f (x, y), y y > lky yk22
con constante l < 0. Demostrar que
ky(xn ) yn k2 el(ba) ky(x0 ) y0 k2 + (b a),
n = 1, . . . , N,
siendo una cota para la norma eucldea del error local por unidad de
paso.
4. Calcular el termino principal del desarrollo del error local para el metodo
de Euler modificado. Cuantas evaluaciones de funcion extra tendremos
que hacer para estimar el error local calculando directamente esta cantidad?
5. Construir todos los pares encajados 1(2) con dos etapas.
6. Hallar alg
un par encajado de tipo 1(2) con tres etapas satisfaciendo a3i =
bi (propiedad FSAL) y b3 = 0.
7. Hallar todos los pares encajados 2(3) de la forma
0
1
1/2
a31
a32
b1
b2
bb1
bb2
bb3
84