Beruflich Dokumente
Kultur Dokumente
Indice general
8. C
odigos autom
aticos de orden y paso variable
Captulo 8
C
odigos autom
aticos de orden
y paso variable
En este captulo analizamos el problema de cambiar el paso o el orden, es
decir el metodo, para el caso de metodos Adams Bashford Moulton pensando
en implementaciones de tipo predictor corrector expresados en diferencias
regresivas.
8.1.
8.2.
i = 0, 1, . . . , k 1
(8.1)
i = k, k + 1, . . .
(8.2)
Necesitamos las diferencias regresivas de paso doble para los datos I(xn ),
I(xn 2h), . . . , I(xn 2(k 1)h). Denotemos por D I(x) = I(x) I(x 2h)
i1
y iD I(x) = i1
D I(x) D I(x 2h). Se tiene que
I(xn ) = I(xn ) I(xn h)
2 I(xn ) = I(xn ) 2I(xn h) + I(xn 2h)
luego
(2 2 )I(xn ) = I(xn ) I(xn 2h) = D I(xn ).
Es decir tenemos la siguiente identidad:
D 2 2 .
(8.3)
for j = 1 to k 2 do
begin
end
A(k 1) = 2 A(k 1)
En el caso k = 5 producira
A1
A2
A3
fn
2 fn
3 fn
j = 1 (2 2 )fn
(22 3 )fn
(23 4 )fn
j=2
(42 43 + 4 )fn (43 44 )fn
j=3
(83 124 )fn
A4
4 fn
24 fn
44 fn
84 fn
164 fn
Es decir nos transforma el vector [fn , 2 fn , 3 fn , 4 fn ] de diferencias regresivas normales en el vector [D fn , 2D fn , 3D fn , 4D fn ] de diferencias regresivas de paso doble.
De forma similar podemos deducir un procedimiento para el caso de reducir el
paso a la mitad. Ahora queremos deducir las diferencias relativas a los datos
I(xn ), I(xn h2 ), . . . , I(xn (k1)h
). Denotemos por H I(x) = I(x)I(x h2 )
2
4
i1
h
y por iH I(x) = i1
H I(x) H I(x 2 ). Obtener las D a partir de las
es el mismo proceso que obtener las a partir de las H . Es decir
2H 2H .
(8.5)
=
=
=
=
(2H 2H )I(xn )
(42H 43H + 4H )I(xn )
(83H 124H )I(xn )
164H I(xn ).
Resolviendo, obtenemos
1 4
fn
16
1 3
3
3H I(xn ) =
fn + 4 fn
(8.6)
8
32
1 2
1
5
2H I(xn ) =
fn + 3 fn + 4 fn
4
8
64
1
1 2
1 3
5 4
H I(xn ) =
fn + fn + fn +
fn .
2
8
16
128
Nuevamente un pseudo-algoritmo que implemente estos cambios viene dado
por, sea Ai A(i) = i fn , i = 1, 2, . . . , k 1
A(k 1) = 21 A(k 1)
for j = k 2 downto 1 do
begin
(8.7)
A(k 1) = 21 A(k 1)
end
4H I(xn ) =
A3
A2
A1
4 fn
3 fn
2 fn
fn
1 4
fn
2
1 4
j = 3 4 fn ( 21 3 + 18 4 )fn
1
j = 2 18 4 fn ( 41 3 + 18 4 )fn ( 21 2 + 18 3 + 16
4 )fn
1
3
5
1
5
j = 1 16
4 fn ( 18 3 + 32
4 )fn ( 14 2 + 18 3 + 64
4 )fn ( 12 + 81 2 + 16
3 + 128
4 )fn
5
8.3.
Analizamos ahora una tecnica que permite el aumento o disminucion arbitrario de la longitud de paso. Tambien es una tecnica de tipo interpolatorio.
En ella identificamos el vector de datos del polinomio de interpolacion I(x)
de grado k 1 que interpola los datos conocidos fnt , t = 0, 1, . . . , k 1 con el
vector de datos asociado al mismo polinomio I(x) que fija las k 1 primeras
derivadas en el punto xn . Sea F (xn ) definido por
F (xn ) = [fn , fn , . . . , k1 fn ]T
= [I(xn ), I(xn ), . . . , k1 I(xn )]T ,
(8.8)
(8.9)
Este vector se llama vector de Nordsieck y existe una relacion lineal entre
ambos vectores
G(xn ) = AF (xn )
(8.10)
donde la matriz A es independiente de h. De esta manera si queremos reemplazar h por h todo lo que tenemos que hacer es multiplicar las componentes
del vector G(xn ) por potencias i . Deshaciendo el cambio ponemos despues
volver a pasar al vector F con las diferencias regresivas para el nuevo paso
h. Consideremos un ejemplo con k = 5. Entonces I(x) = I(xn + rh) = P (r)
donde
1
1
p(r) = fn + rfn + r(r + 1)2 fn + r(r + 1(r + 2)3 fn
2
6
1
+ r(r + 1)(r + 2)(r + 3)4 fn .
24
Como hi I (i) (xn ) = P (i) (r)r=0 , i = 1, 2, 3, 4 se tiene
1
1
1
hI (1) (xn ) = fn + 2 fn + 3 fn + 4 fn
2
3
4
11
h2 I (2) (xn ) = 2 fn + 3 fn + 4 fn
12
3
h3 I (3) (xn ) = 3 fn + 4 fn
2
4 (4)
4
h I (xn ) = fn ,
A=
1
0
0
0
0
0
1
0
0
0
0 0
1
2
1
4
11
12
3
2
1
3
1 1
0 1
0 0
(8.11)
FD (xn ) =
1
0
0
0
0
0 0
0
0
2 1 0
0
0 4 4 1
0 0
8 12
0 0
0
16
F (xn )
(8.12)
que coincide con la expresion obtenida en 8.6. En el caso de tratar con sistemas de m ecuaciones diferenciales ordinarias en vez de solo una, todo lo visto
sigue siendo valido pero los yn , fn , i fn seran vectores de m componentes
y los vectores y matrices en 8.10 seran de dimensiones m k, con bloques I
con la matriz identidad de dimension m m en vez de 1 en la matriz A.
Existe una implementacion particular debida a Gear que utiliza el vector de
Nordsieck expresando el metodo Adams en forma clasica en vez de diferencias
regresivas y que evita el tener que invertir y multiplicar matrices. Pero no lo
estudiamos en este curso.
8.4.
T
ecnicas de coeficientes variables
yn+ = yn +
[(3 + 2)fn+ + (3 + )(1 + )fn 2 fn1 ]
6(1 + )
En el paso siguiente cuando buscamos la solucion en xn+2 usaramos la
pareja
yn+2
yn+2
h
= yn+ +
[(9 + 14)fn+ (3 + 5)(1 + )fn + 52 fn1 ]
6(1 + )
h
[5fn+2 + 8fn+ fn ]
= yn+ +
12
yn+1 = yn +
[23fn 16fn1 + 5fn2 ]
12
h
yn+1 = yn +
[5fn+1 + 8fn fn1 ]
12
8.5.
(8.16)
hk
k
h
k+1
k hk
luego h
Ek
1
k+1
(8.17)
estimacion que podemos calcular usando 8.14. Supongamos ahora que hubiesemos trabajado para ir de xn a xn+1 con metodos de ordenes k 1 y
k + 1 y pasos hk1 y hk+1 respectivamente. Entonces tendramos de formas
similar a 8.14 las relaciones
[mt]
[mt]
10
(8.18)
Ek+i
1
k+1+i
i = 1, 0, 1.
(8.19)
Elegiremos el mayor de los tres para determinar el orden y el paso con el que
seguir trabajando. Puede ocurrir que se mantenga el orden y solo se modifique
el paso. En la practica se pueden utilizar muchos heursticos para no realizar
excesivos cambios y mantenerlos si no se produce una mejora significativa.
Una t
ecnica para modificar el paso y/o el orden. Ya hemos visto varias estrategias de cambio de paso. Con respecto al cambio de orden, si los metodos
ABM estan expresados en forma de diferencias regresivas y si solo modificamos el orden de uno en uno, es decir si pasamos de orden k a orden k 1
o k + 1, entonces lo mas sencillo es lo siguiente. Al reducir en uno el orden
hay que reducir en uno el n
umero de pasos y por tanto hay que desprenderse
de una diferencia regresiva. En el caso de aumentar en uno el orden supone
aumentar el n
umero de pasos en una unidad y por tanto usar una diferencia
regresiva adicional. Lo que hacemos de en vez de a
nadir la nueva y quitar la
u
ltima, como sera manteniendo el orden, a
nadiremos la nueva manteniendo
todas las anteriores, consiguiendo as trabajar con el metodos de un orden
mas. En el caso de utilizar el vector de Nordsieck, quitaramos una derivada,
es decir la u
ltima componente del vector, o a
nadiramos una nueva derivada
estimandola por diferencias de las derivadas anteriores.
11