Академический Документы
Профессиональный Документы
Культура Документы
#
Captulo
Nmeros y Errores
Interrogantes centrales del captulo
gonoer l preseni de errores en ulquier proedimiento de lulo nuE mrioF gonoer mo se representn los nmeros en un mquin y los errores de redondeo que onllev est representinF eprender deidir entre uno y otro mtodo numrio pr resolver un mismo prolem tendiendo l estilidd del mtodo y l ondiioE nmiento del prolemF
"
!
glulr utilizndo ritmtis de punto (jo y )otnte on un nmero pequeo de dgitos midiendo los errores solutos y reltivos que produe el redondeoF inontrr lterntivs estles lulos inestlesF
in est unidd vmos nlizr los distintos tipos de errores que se produen en los lulos numriosF resentremos los sistems de numerin y l ritmti que utilizn ls mquiE ns F wediremos omo se propgn los errores de redondeoF D por ltimoD estudiremos los oneptos de estilidd de un lgoritmo y ondiionmiento de un prolemF
Nmeros y su representinF
irroresF
Nmero de ondiinF
1.1.
Introduccin
Ejemplo 1.1.1
i hemos
clculo simblicoD
ero si hemos los lulos on ls representiones numris de en un luldorD l relidd puede que se distintD y el resultdo de l operin no oinid extmente on l representin de en nuestr luldorF u ourre on el resultdo en tu luldorc
Ejemplo 1.1.2
@iA 2 3
rod relizr l siguientes operiones en vuestrs luldors utilizndo ls representiones numris de ls soluiones
@iiA Ans 0.6666666667 u ourre on el resultdo en tu luldorc rue hor on @iA 2 3 @iiA Ans 0.666666666666666 u ourre hor on el resultdo en tu luldorc
Ejemplo 1.1.3
@iA 1050 1040
Nmeros y Errores
@ivA (1019 + 1) 1019 u ourre on los resultdos en tu luldorc gulquier proedimiento numrio dee onsiderr el ontrol de errores pr medir mo fetn l resultdo
is muy importnte que en d prolem numrio hgmos un seguimiento de los errores ometidos on el (n de poder estimr el grdo de proximin de l soluin que proporionF
1.1.1.
ry diferentes fuentesGtipos de error que pueden fetr l soluin numri de un proE lemX irrores en los dtos de entrdX @iA irrores en l mediin de los dtos iniilesD que pueden ser letorios y entones hen neesrio udir tnis estdstis o de ontrol de liddD y errores sisteE mtios de proedimiento que hy que desurir y susnrF irrores de redondeo en los dtos y en el luloX @iA vos produidos l introduir los dtos en ls mquins de luloF in ells los nmeros tienen un representin (nitF istos errores son sNisefviF @iiA vos produidos l her lulos en ls mquinsF ytr vez homos on l (nitud de l representin de los nmerosF istos errores tmin son sNisefviD unque son issfvi y veesD es posile esquivrlos sustituyendo los lulos por otros equivlentes @y iremos viendo moAF irrores de trunmiento en el mtodoX gomo l resoluin numri de un prolem onsiste en otener un proximin numE ri de l soluin extF iempre deemos sumir este error de proximinD que reie el nomre de error de trunmientoF irrores de inestilidd y ontrolF e trt de nlizr mo fetn los errores en los dtos de entrd o en los lulos l
solucin nal. Si un mtodo permite que pequeos errores en los datos de entrada o en los clulos
in est unidd nlizremos lgunos lulos que pueden ser us de inestilidd y propondremos lulos lterntivosF in lguns osionesD l inestilidd de un mtodo no proviene de los lulos sino que es intrnse l mtodoD es deir l modelo empledo pr resolver un prolemF in estos sos se die que el mtodoD o el prolemD est ml ondiiondoF r evitr est situin es neesrio nlizr el prolem rel e intentr sustituir el modelo o el mtodo numrio empledoF min en l uniddD veremos omo unti(r @medir on nmerosA el ondiionmiento de un prolem pr poder predeir mtodos ml ondiiondos y proponer su sustituin por otrosF
1.1.2.
Ejemplos
No i Si los resultados son aproximdos gl de los dos vlores se proxim ms l verdE dero vlor de l expresinc el (nlizr l unidd deis tener l respuestF
Ejemplo 1.1.5
gonsideremos el sistem de euiones
x + y=2 x +1.00001y = 2.
iste sistem perturdo tiene omo soluin x = 2 e y = 0F
evitar que pequeos errores en los datos iniciales se conviertan en errores grandes en
meros y Errores
Nmeros y su representacin
1.2.
e l vist del ejemplo IFIFR D podemos her un primer (rminX v ritmti on l que lul un ordendor o un luldor no es l que hemos prendido en el olegio y en los ursos de lger @gruposD nillosD uerposD lgersD etFFFAF gon nuestr luldor hemos onsttdo que (a b) puede ser distinto de (a2 b2 )/(a + b)F
La mayora de los procesadores que realizan los clculos en un ordenador trabajan con nme-
mismos, al representar los nmeros en el sistema decimal (con las cifrs 0, 1,. . . ,9) utilizamos
Nosotros
secuencias nitas de dgitos. Es decir, a la hora de trabajar con representaciones de nmeros en una mquina slo lo podemos hacer con una cantidad nita de ellos. Vamos a poder trabajar con extitud
undo trjemos on nmeros enteros que puedn ser representdos en l mquinD y tmin @undo el proesdor est espeilmente progrmdo2 A on lgunos
nmeros racionales. Pero, a la hora de representar nmeros reales cmo nmeros de mquina siempre tendremos que utilizar aproximiones
1.2.1.
Nmeros enteros
b
por un suesin (nit
Para representar enteros, usualmente utilizamos el sistema de numeracin decimal (en base 10) que es un sistema posicional en el que cada nmero viene expresdo de dgitos (cifras del 0 al 9) cuyos valores dependen de la posicin que ocupan Pon ejemplo
Proposicin 1.2.1 Elegida una base natural b N, b 2, cualquier nmero entero positivo p
admite una nica representacin en la forma
p = an bn + an1 bn1 + + a1 b1 + a0
con Se utiliza la representacin:
aj N, 0 aj (b 1)
y se llama
gul es el lgoritmo3 pr enontrr l representin en se b de un nmero enteroc ise lgoritmo pror l proposiin nteriorF
Ejercicio 1.2.1
hesrie los lgoritmos pr psr de l representin en se P @inrioA de un nmero entero sus representiones en ls ses R y 8 (octal). hesrie tmin los reiproos que psen de ls representiones en ls ses R y 8 a binario.
2 3
el Este es el caso para algunos nmeros en la calculadora Casio fx-991ES. Revisad el manual. algoritmo: Sucesin nita de instrucciones claras y precisas, especicando cuales son los
ujo (la sucesin) de instrucciones, las condiciones de parada y los datos de salida.
datos de entrada,
1.2.1.2.
Como hemos dicho la mayora de los procesadores que realizan los clculos en un ordenador
trabajan con nmeros que se escriben en dgitos @itsAF in ellos se utiliz el primer dgito pr selr el signo del nmeroF @byteA 8 bits (short) 16 bits (int) 32 bits (large) 64 bits
gules son el myor y el menor entero @intA de un mquin c u errores puede produir l ritmti de l mquin l trjr on enteros @intAc espX vos lulos on nmeros enteros se pueden her de form extF il nio error que podemos tener l operr on ellos es que el resultdo no quep en los registros utilizdos pr gurdrloF in estos sos otendremos Errores por Desbordamiento (Overflow)F
Por cierto, cmo se suman o se multiplican dos nmeros en base 2?, por supuesto que con las tablas de sumar o multiplicar correspondientes, descrbelas!
Ejercicio 1.2.2
u otl @se
1.2.2.
Nmeros reales
Tambin decamos en la introduccin que cuando el procesador est especialmente programado, podemos representar algunos nmeros racionales como pares de nmeros enteros. Pero desde el punto de vista numrico, esto no es muy operativoX
nmeros rionles otdos pueden venir representdos medinte friones de nmeros enteros muy grndesF
As, que para representar nmeros racionales o reales en una mquina siempre tendreAqu el heho de (jr el tmo de los registros que hn de oupr los nmeros en l mquinD
nos nuni l priin de errores de aproximin o redondeo, errores que no podremos evitar. Por esta razn debemos aprender a controlarlos en el sentido de prever su efecto en un proceso numrico conociendo como se transmiten en los distintos pasos del mismo.
b N, b 2,
1 1 1 x = an bn + + a1 b1 + a0 + a1 + a2 2 + + an n + . . . b b b
meros y Errores
aj N, 0 aj (b 1)
y
9
an > 0.
con
Se utiliza la representacin:
y se llama
x = an an1 . . . a1 a0 , a1 a2 . . . an . . .(b) x
en base
b.
Cul es el lgoritmo pr enontrr un representin de punto (jo en se b de un nmero relc is ni est representinc espX i exepto pr nmeros rionles de l form x = bk nF
Ejemplo 1.2.3
@iA
17 3
= 5.6666 . . .(10)
@iiA 1(10) = .99999 . . .(10) = .111111 . . .(2) @iiiA .1(10) = .0001 1001 1001 . . .(2)
En base 10 el nmero .1 es decimal exto @tiene un ntidd (nit de dgitos no nulosA mientrs que en base 2 ese mismo nmero tiene una representacin digital peridica mixt @on in(nitos dgitos no nulos que se van repitiendo de forma peridica). (iv)
= 3.141592....
A l hor de trjr en un mquinD tenemos que (jr el tmo de los registros usr
pr gurdr los nmerosF isto se trdue inmeditmente en un limitin en el nmero de dgitos que podemos utilizar
Ejemplo 1.2.4
Supongamos que trabajamos con una mquina que utiliza nmeros escritos en
Consideremos los nmerosX x = 0.00001D y = 0.1D z = 10000F Vmos simulr omo podrmos operr on ellos utilizndo l mquinF
x yX
uponemos que dentro de l mquin se puede relizr el produto exto p = x y = 0.000001F
Para multiplicar
Como este nmero tiene 7 dgitos, para guardarlo en un registro de la mquina, vamos a
aproximrlo por el nmero ms prximo de entre los de l mquina, es decir, de entre los
0.00000.
xy
Y si multiplicamos por
0 = (x y ) z = x (y z ) = 0.01
)otnteF
10 1.2.2.2.
Proposicin 1.2.5 Elegida una base natural b N, b 2, cualquier nmero real x = 0 admite
una representacin en la forma
x = b
con Se utiliza la representacin:
an
1 bn
y
=+
si
es positivo, y
si
es negativo,
aj N, 0 aj (b 1)
a1 > 0.
b.
1 n=1 an bn
Ejemplo 1.2.6
(i) (ii) (iii) (iv)
relc is ni est representinc espX iD exepto pr nmeros rionles de l form x = que para cada n existe un k > n tl que ak = b 1
17 3
1(10) = 20 .111111 . . .(2) = .111111 . . . E 0(2) .1(10) = .0001 1001 1001 . . .(2) = 23 .1 1001 1001 . . .(2) = .1 1001 1001 . . . E 3(2) = 3.141592... = .314151592...(10)
yservd que l hor de gurdr ls representiones de nmeros en om )otnte no es neesrio dejr sitio pr l om @el puntoA porque siempre est en l mism posiinF i trjmos on representiones inris tmpoo es neesrio dejr ningn sitio pr a1 que forzosmente slo puede tomr el vlor I @es distinto de ero y menor que PAF Volvmos l prolem plntedo en el ejemplo IFPFR y vemos que operndo on los nmeros en om )otnte no se produen los mismos errores en el luloF
Ejemplo 1.2.7
Para multiplicar x y X ehor dentro de l mquin se puede relizr el produto exto p = x y = .1E 5F i multiplimos por z D tendremos (x y ) z = .1E 1F i hemos lo mismo on y z D otenemos y z = y z = .1E 4F Y si multiplicamos por x volvemos a obtener x (y z ) = .1E 1.
Consideremos los nmerosX x = 0.00001 = .1E 4D y = .1E 0D z = 10000 = .1E 5F Vmos simulr omo podrmos operr on ellos utilizndo l mquinF
meros y Errores
11
1.2.2.3.
En la actualidad la mayora de los procesadores que realizan los clculos en un ordenador trabajan con nmeros reales que se representan en coma )otnte en nmeroF @floatA QP its @doubleA TR its il snstitute registros de QP o TR dgitos @itsAF in ellos se utiliz el primer dgito pr selr el signo del
un protocolo de
representacin de nmeros reales en los ordenadores que vienen observando desde entonces los fabricantes de los procesadores donde los ordenadores realizan las operaciones. En el libro de
furden y pires P]
Ejercicio 1.2.3
1.3.
Errores
Si el nmero real
Denicin 1.3.1
er =
ea |p |
|pp | |p | .
e l hor de expresr el error reltivo hemos utilizdo dos unti(iones porque no siempre estremos en disposiin de onoer el vlor exto de un nmero unque si que podmos onoer proximiones y estimiones del error soluto ometidoF tilizndo l desiguldd tringulrD |p| |p | |p p |F rsldndo est otin l de(niin de er se otiene l otinX
er
he l mism formD omo |p | |p| |p p |D
er . 1 er
tmin se tiene l otin
AsD
pr vlores pe ueos de
prximos @
er e e r
1AF
er er
er . 1 er
@respetivmente de
er A
los vlores de
er
er
estn muy
No siempre (por no decir casi nunca) tendremos conocimiento exto del vlor
p .
Por eso, ser ms fcil obtener estimaciones del valor de
er
er F rel p
o
y s
er
a partir de
ea
er .
12
p = p + e = p ea
Si tenemos una acotacin de
y tmin
p ea p p + ea .
ea , ea < ,
p < p < p + .
tilizndo el error reltivoD si tenemos un otin de er D er < D entones podemos segurr que ea = |p |er < |p |D y
p |p | < p < p + |p |.
in generlD podemos esriirX
p = p + e = p (1 er )
y tmin
p = p(1 er ).
Ejercicio 1.3.1
@iA (ii)
a.bcE 7
(iii)
Calcula el error relativo que se comete cuando el nmero 1.503 aparece redondeado a 1.5. Calcula los errores absoluto y relativo cuando el nmero .abcE 7 aparece escrito como
upn
que en un lulo pree el nmero HFHHHI undo de preer el HF u frmul utilizrs pr lulr el error reltivoc tilizndo es frmul qu vlor otienesc
hetermin el myor intervlo en el que dee estr p pr proximr p = error reltivo de lo sumo 106 F
@ivA
2 on un
1.4.
dgitos en la
en coma otante utilizando esta base y los referidos dgitos para la mantisa y el exponente. A estos nmeros los llamaremos nmeros de mquina de en el exponente en base
dgitos en la mantisa y
dgitos
b.
@lvo que expresemos lo ontrrioD no nos vmos preoupr muho por el exponenteD que es entero y slo puede produir errores de desordmientoA
1.4.0.4. Redondeo
Por redondeo vamos a entender el proceso de introducir un nmero
en una mquina ,
meros y Errores
Sean
13
b 2 aj
un nmero natural,
por:
t N t > 0,
x R \ {0}
x = bN
j =1
1 = .a1 a2 . . . EN(b) , bj
+ primeros dgitos y x
x y x+ a x.
bN
t 1 j =1 aj bj
1 bt
. Los nmeros
Vamos a denir el nmero redondeado de x con t dgitos en la mantisa como el nmero real
f lt (x) = x . x+ t
si si
|x x | <
|x x |
|x x+ | 2 |x x+ | 2
= 0.5bN t = 0.5bN t
f l(x).
yservd que si b es pr @por ejemplo si b = 2 o b = 10AD entones |x x | < b F slo si at1 < 2 Podis leer sore otros tipos de redondeo en uinidECheney QX @iA edondeo por pridd @oud to even AD redondeo equidistriuido @iiA edondeo por trunmientoF
|x x+ | 2
siD y
x R \ {0}.
(i) (ii)
Entonces
Sean
b2
un nmero natural,
t N t > 0,
f lt (x) = bN
t 1 j =1 aj bj
= .a1 a2 . . . at EN(b) ,
con
N N N + 1.
|x x | <
(1)
x x+
x x
14
Ejercicio 1.4.1
@iA
(ii) En una mquina de nmeros escritos en coma )otnte on se IHAD ul es el mximo error reltivo posilec
13
p=0
b,
siempre que
el error relativo
Cuando
|p p | .5 bm+1 . |p| m
cifras signicativas.
aproxima a
con
Ejemplo 1.4.5
Se
e = .27182818284590452353602874713527...E 1
No siempre sucede esto. Por ejemplo, sea x = .1E 0 y app(x) = .9999E 0, en este caso
|x app(x)| = .1E 3. |x|
A, trabaja en base 2 con mantisa de 22 bits y otra, B, trabaja en base 16 con 6 dgitos de precision (24 bits). Cul de ls dos es ms preisc
Ejercicio 1.4.2
Una calculadora,
1.4.0.5.
espX ry muhos er del eroD muy poos en el D y su(ientes lrededor de los nmeros rzonles @FID ID I0, ...).
Si
b),
f l(1 + e) > 1.
f l(1 + e)
es el nmero
eM
tal
meros y Errores
in dole preisin @siiiEUSRA el psilon de l m uin es del orden de
15
1 252
1016 F
in
mquina.
q que e esperr en l As, a la hora de preguntar si dos nmeros de mquina estn prximos deemos de tener en uent no pedir que el error reltivo se menor que el psilon de l mquinD porque en ese so estremos pidiendo que sen idntiosF
il psilon de l m uin nos indi l mxim preisin reltiv
1.5.
henotemos por ulquier de ls operiones +, , , /. i x e y son dos nmeros de mquin on t dgitos en la mantisa, en general x y no tiene porque ser un nmero de mquina con t dgitos en la mantisa:
Por ejemplo, supongamos que trabajamos en una mquina de 6 dgitos en la mantisa y que
x y := f l(x + y ) = .760001E 1.
Cmo se multiplican dos nmeros de mquina? Cmo afectan los errores de redondeo en Cmo se suman dos nmeros de mquina del mismo signo? Cmo afectan los errores de
Ahor que semos omo se deen relizr ls operiones dentro de nuestr luldorD es
Utilizamos la calculadora
Ejemplo 1.5.1
18817 10864 3 =
1 . 18817 + 10864 3
riimos los lulosDoteniendo dos vlores distintos y nos preguntmos ul de los dos er el ms preisoF
3 = 1.732050808(1 ered )
Casio fx-991ES: presenta 10 dgitos en pantalla, presupondremos que es una mquina de nmeros de 10
dgitos en la mantisa.
16
@ivA @vA
10864
e1 = (10864 ered ) ered .54E 6D e1 es un estimin 10864 3F x1 = 18817 (10864 f l( 3)) = 2.65718E 5 x = 18817 (10864 3) = 18817 18816.9997 e1
x1
aproxim
he form nlog podemos esriir @ixA d = 18817 (10864 f l( 3)) = 37633.99997D y 18817 + (10864 3) = 37633.99997 e1 F @xA x2 = 1 (18817 (10864 f l( 3))) = 2.657171708E 5 @xiA 1/(18817 + (10864 f l( 3))) = 2.657171708E 5(1 ered2 ) @xiiA ered2 .5E (10) @xiiiA
x = 1/(18817 + (10864
1 18817 (10864 f l( 3)) 3)) = 18817 (10864 f l( 3)) 18817 + (10864 3) 37633.99997 = (2.657171708E 5)(1 ered2 ) 37633.99997 e1 (.54E 6) ) (2.657171708E 5) (1 + 37633.99997 (.54E 6) 2.657171708E 5 (1 .1435E 10)
con los 10 dgitos de
@xivA
precisin.
|x x 2 | |x 2 |
M una mquina de nmeros de base b y k dgitos en la mantisa. Sean M en cuyas representaciones coinciden el exponente y los p primeros dgitos de las mantisas. Entonces el nmero x y a lo ms tiene en su mantisa, k p dgitos signicativos. Se pierden p dgitos de precisin. x>y>0
Proposicin 1.5.2
Ejercicio 1.5.1
aproximr
ros en una mquina de cuatro dgitos de precisin (base 10), mide el error relativo cometido al
pq
f l(p) f l(q )F
f l(p) f l(q )F
Ejercicio 1.5.2
las races
Utilizando aritmtica de cuatro dgitos (base 10), encuentra aproximaciones a de la ecuacin de segundo grado
x2
(x x1 )(x x2 )F
x2 200x + 1 == 0.
meros y Errores
Clculos estables e inestables
que un proceso numrico, o una operacin, es
17
1.6.
inestable
cuando
pequeos errores en los datos de entrada, o errores de redondeo en alguna de las etapas el proceso, producen errores grandes en los datos de salida
Un mismo algoritmo puede ser estable para algunos datos iniciales e inestable para otros.
z = 1.
en
x = 1.209
y en
x = 3.1D
trjndo on
x (y = 1.208/x) (z = 1 y ),
x (u = x 1.208) (z = u/x).
La
divisin
La suma de dos nmeros de mquina es estable cuando los dos nmeros tienen el
mismo signo, y puede ser inestable cuando los dos nmeros tienen signo distinto.
La
resta
muy prximosD y es estle undo los dos nmeros tienen distinto signo @en este so es un sum de nmeros del mismo signoAF
Ejercicio 1.6.2
ex
para valores grandes de
ex 1
x (x > 250)?
1.6.1.
Propagacin de errores
Si las operaciones son estables, lo menos que podemos esperar es que si en cada operacin efectuamos un redondeo del orden de
18
Proposicin 1.6.2
Sean
xi 0,
t-dgitos
en la mantisa). Sean
Sn = x0 + x1 + + xn = Sn1 + xn ,
Entonces:
donde
eM = .5bt+1
Sea
tal que
neM <
1 3 . Utilizando el binomio de
1 + (0.5)neM (1 + eM )n 1 + (1.5)neM .
-dgitos en la mantisa). Sean
Entonces:
donde
eM = .5bt+1
Ejercicio 1.6.5
(i) paa0 ; zaI; para (kaID
disponemos
hst nD A
paan ;
para (ka@nEIAD papBx Si
hst
0,
Cak ;
es una cota del error relativo al hacer las operaciones aritmticas y no consideramos los
menos erroresc
Ejercicio 1.6.6
rz los ejeriios
U y IH de l hoj de prolems IF
meros y Errores
Propagacin de Errores en Procesos Iterativos
19
1.6.2.
xn
xn
depender
Normalmente, en los procesos iterativos esperamos que xn sea una sucesin convergente hacia
la solucin de un problema
x.
xn
es una buena
xF
in generlD l ondiin de prd viene dd en trminos de los errores solutos o reltivos pidiendo que :
o que
Normalmente,
prec > 0
ecuacin o sistema de ecuaciones que modelizan el problema que se est intentando resolver. Por
F (x) == 0, podemos agregar a la condicin de parada que |F (xn )| < prec. eordemos que si x = 0 slo podemos usar errores absolutos, Y que si xn es convergente evaluacin de n es inestable porque xn y xn1 pueden estar muy prximos.
ejemplo si
la
Denicin 1.6.3
Supongamos que
xn
xn
que va acumulando
xn x.
Al
xn x f n
si
x = 0,
lineal,
cuando existe
C >0
tal
en Cne0 , n.
(ii) Se dice que la propagacin de errores en la iteracin es de tipo exponencial cuando existen
C>1
M >0
tal que
en M C n e0 , n.
(iii) A veces encontraremos ejemplos en los que
en Kn!e0 , n. (K > 0constante) En estos casos, si recordamos la frmula de Stirling (n! 2n errores es de tipo exponencial con cualquier constante C > 1.
n n ), la propagacin de e
Admitiremos que un proceso iterativo con propagacin de error lineal va a ser estable si no requiere demasiadas iteraciones para pararse.
Debemos de establecer nmeros mximos de iteraciones para evitar problemas de acumulacin de errores que desvirten la solucin aproximada propuesta.
Los procesos iterativos con propagacin de errores exponencial van a ser muy inestables.
20
yservd los dos ejemplos siguientes que muestrn dos proesos itertivos lgo perversosF in
la practica 2 os propongo un ejemplo ms pr
que lo nliisF
n
Ejemplo 1.6.4
y n = n!
yn = nyn1 xn .
i evlumos los PI primeros trminos de est iterin omenzndo en
double
x0 = 1
obtenemos:
y0 = e 1D
y0 =1.71828 y1 =0.718282 y2 =0.436564 y3 =0.309691 y4 =0.238764 y5 =0.193819 y6 =0.162916 y7 =0.140415 y8 =0.123323 y9 =0.109911 y10 =0.0991122
u ourric
y11 =0.090234 y12 =0.0828081 y13 =0.0765057 y14 =0.0710802 y15 =0.066203 y16 =0.0592478 y17 =0.00721318 y18 =0.870163 y19 =17.5331 y20 =351.662 y21 =7385.9
i denotamos
yn = n yn1
1,
M (3/e)n
1
si n 3AF
e en la mquin
Ejemplo 1.6.5
e e xn = 0 xn ex dx. emos que 0 xn e 0 xn dx = n+1 0. sntegrndo por prtes se tiene que xn viene dd por l frmul de reurreni linelX
xn = e nxn1 ,
omenzndo on x0 = e 1F zonndo omo en el ejemplo preedenteD si xn = e
x2 5 8.2E 8
0F xn en
double
el ordendor!
meros y Errores
Condicionamiento de un problema
21
1.7.
Los
manera informal para indicar la sensibilidad de la solucin del problema con respecto a pequeos errores relativos en los datos de entradaF Una posibilidad para hacer este tipo de apreciaciones es intentar cuanticar a priori esta sensibilidad, utilizando para ello un modelo apropiado del problema.
1.7.1.
Este es el caso en el que el algoritmo consiste simplemente en dado un nmero de entrada, evaluar Si adems
como dato
f (x)
f :RR
el dato de entrada, y
x=x+h
una perturbacin de
En la salida obtenemos
f (x + h)
en lugar de
f (x).
0<t<1
y pr
pequeo,
|f (x + th)| |f (x)|F
Denicin 1.7.1
con
f (x) = 0.
El nmero de condicin de f
Sea
f : [a, b] R una funcin derivable con derivada continua. y sea x [a, b] en x se dene por la frmula nc(f, x) := |f (x)||x| |f (x)|
y en
f (x)
Cuando el nmero de condicin es pequeo, o menor que una cota razonable, pequeos errores en
f (x)
condicin son muy grandes o tienden a innito cerca de un valor de cerca de este valor.
22
Ejemplo 1.7.2
(i)
x:
f (x)
son
1 ) 1 x2 | x|
nc(log(x), x) =
evaluacin es inestable.
est lejos de
la evaluacin de
log(x)
esta cerca de
x=1
esta
1.7.2.
Este es el caso en el que el algoritmo consiste simplemente en dado un vector dato de entrada, evaluar varias variables. Si adems
f (x)
f :
Rn
x Rn
como
condicionamiento del algoritmo como sigue: (Para simplicar las expresiones vamos a utilizar el caso
n = 3A
Se x = (x0, y0, z0) el dto de entrdD y x = x + h = (x0 + hx, y0, z0) un perturin
en l primer oorden de x omo dto de entrdF in l slid otenemos f (x + h) en lugr de f (x)F
5
Sea de una variable
f (x, y, x) una funcin de tres variables reales con valores en R, si fy0 ,z0 (x) es derivable en x0 , se dene la derivada parcial f (x0 , y0 , z0 ) = fy0 ,z0 (x0 ) x
(y0 , z0 )
jo, la funcin
De forma anloga se denen las derivadas parciales de Si existen todas las derivadas parciales en de que
en
x0
derivando la funcin de una variable que resulta al jar el resto de las coordenadas.
x0
es diferenciable en
x0
en el sentido
f (x) f (x0 )
Nmeros y Errores
23
0 < t1 < 1
y pr
hx
pequeo,
Como antes, esta ltima estimacin slo depende de ejeutr el lgoritmo de evluinF
y de
De l mism form se pueden otener estimiones de ls rzones entre los errores reltivos
undo se vn perturndo de form independiente d un de ls oordendsF
Denicin 1.7.3
Sea
continuas continua. y
|f (x)|
, i = 1, 2, ..., n f (x)
y en
Cuando todos los nmeros de condicin son pequeo, o menores que una cota razonable, pequeos errores en x se propagan a pequeos errores en f (x) y el algoritmo es estable. Pero si alguno de los nmeros de condicin es muy grande o tiende a innito cerca de un valor de x el algoritmo ser inestable cerca de este valor.
Ejemplo 1.7.4 Vamos
y = 1.5 0.2
a estimar el error mximo de y nlizremos l estilidd de y
en
undo
x = 2 0.3
f (x,y ) x
= 2xy
f (x,y ) y
= x2 D
e
|f (x, y ) f (2, 1.5)| |f (x, y ) f (2, y )| + |f (2, y ) f (2, 1.5)| f (2, 1.5 + t(y 1.5)) f (2 + t(x 2), y ) (x 2)| + | (y 1.5)| =| x y 7.28 |x 2| + 5.29 |y 1.5| 7.18 0.3 + 5.29 0.2 = 3.212
24
f (2, 1.5) = 6 est otdo por QFPIP @ el error reltivo est otdo
nc(f, (x, y ), 2) :=
|f (x, y )| x
x2 y = 1. x2 y
al evaluar
(x, y )F
Observad tambin que los nmeros de condicin en este caso son independientes del vector
f (x, y ).
1.7.3.
Aplicaciones lineales
gundo estudiemos los sistems de euiones lineles Ax = b @A mtriz nnD onsiderremos distints norms pr ls mtries A y veremos que el nmero nc(A) = A A1 servir omo
nmero de condicin del sistema en el sentido de que mide la razn entre el error cometido en los datos iniciales del sistema
Hn =
1 i+j1
1in 1j n
que preen de form nturl en justes funiones por polinomios de grdo nD estn muy ml ondiionds nc(Hn ) e3.5n F
1.7.4.
Races de Polinomios
r = algR(p) de p(x) (p(r) = 0). upongmos dems que r es una raz simple de p, eFdF p (r) = 0F i se pertur el polinomio p de entrdD tomndo un proximin p(x) = p(x) + q (x)D donde q (x) es otro polinomio, y se aplica el algoritmo encontraremos una raz r + h = algR(p)F i suponemos que h es pequeo, h2 , h3 , ... seran mucho mas pequeos que h y podramos despreciarlas frente h. As, utilizando el desarrollo de Taylor de p, como p(r ) = 0, podemos
ciona una raz modelizar
Denotemos por p(x) un polinomio y supongmos que algR(p) es un lgoritmo que proporE
. As
Nmeros y Errores
25
q (r ) p (r )
de
algunos mtodos de aproximacin de races de polinomios, constataremos los hechos que ahora vamos a pronosticar en base al modelo propuesto ms
Los
rriF
polinomios de Wilkinson son los polinomios mnicos con races simples en los enteros
Consideremos la perturbacin de
i algR20
Observad que una pequea perturbacin () en el coeciente de x20 se multiplica por 109 al
intentar aproximar la raz
mal condicionados para la busqueda de races grandes. Como ejercicio, podis jugar con este polinomio y el modelo propuesto para estimar los errores que resultan al utilizar algoritmos
r = 15
r = 10F
algR15
algR10
1.8.
o o
wquins ideles F
Bibliografa
[1]
A.
A
Labor - Univ.
homsonEverningD wexioD
seromerinD
gheneyD
Anlisis numricoD
idF eddisonEWesley
Captulo
Algoritmos e Iteraciones
Interrogantes centrales del captulo
$ $
' '
Conocer la estructura general de los algoritmos y establecer criterios para compararlos. Aproximar soluciones de ecuaciones no lineales f (x) == 0. con mtodos elementales: Mtodo de la biseccin. Mtodos de Regula-Falsi y Newton. Conocer y analizar las iteraciones de punto jo. Analizar la convergencia y el error en los mtodos iterativos. Acelerar la convergencia de una sucesin.
& & % %
' '
$ $
Ser capaz de describir algoritmos sencillos y, en particular, los algoritmos correspondientes a los distintos mtodos del captulo. Saber implementar en el ordenador los programas de los mtodos del captulo. Conocer el enunciado y la demostracin del teorema del punto jo de Banach as como condiciones sucientes que garanticen sus hiptesis. Aplicar los programas construidos de forma efectiva en la localizacin y aproximacin nmerica de races de algunas ecuaciones no lineales. Analizar la convergencia de las aproximaciones proporcionadas por los distintos mtodos y la conveniencia de utilizar uno u otro mtodo numrico.
& & % %
En la unidad anterior hemos trabajado con algunos algoritmos de una forma ms o menos informal. Para escribir los algoritmos de forma que se puedan implementar fcilmente en un ordenador debemos ser ms precisos, considerar siempre que tienen que construirse sobre una estructura clara y ordenada.
28
En este captulo describiremos la forma general de los algoritmos, cmo se evalan y cmo medir su complejidad para poder compararlos. Prestaremos especial atencin a los algoritmos iterativos y al orden de su convergencia. Trabajaremos con algunos algoritmos elementales de resolucin de ecuaciones, estudiaremos el teorema del punto jo de Banach y el algoritmo de Aitken para acelerar la convergencia de sucesiones.
2.1.
Introduccin
Algunos autores aseguran que la palabra algoritmo proviene del nombre del matemtico persa Abu Jafar Mohamemed ibn Musa al-Khowarizmi, que trabajo en Bagdad alrededor del ao 840. Aunque si acudimos al diccionario de la Real Academia Espaola encontramos la siguiente denicin que se corresponde con nuestras intenciones: algoritmo: (Quiz del lat. tardo algobarismus, y este abrev. del r. cls. lisabu lubar, clculo mediante cifras arbigas). (i) m. Conjunto ordenado y nito de operaciones que permite hallar la solucin de un problema. (ii) m. Mtodo y notacin en las distintas formas del clculo. Comencemos este captulo con una visita a un prototipo tpico de un algoritmo: El algoritmo de Euclides para encontrar el mximo comn divisor de dos nmeros naturales que fue descrito alrededor del ao 350 a.C. y se puede visitar en el libro de los Elementos de Euclides.
Algoritmos-Iteraciones
29
Algoritmo 2.1
El algoritmo de Euclides
Datos de entrada: m, n N Datos de salida: El mximo comn divisor de m y n: M CD(m, n) N Variables: m ; n ; // para operar sin cambiar los nmeros. auxiliar; // para hacer cambios. Fujo del programa: if(m >= n){ m = m; n = n; } else{ m = n; n = m;} while(n = 0){ auxiliar = n ; n = Resto(m n ); m = auxiliar } Parada: M CD(m, n) = m
Cmo encuentra este algoritmo el mximo comn divisor? Simplemente, basta con observar que los divisores comunes de m y n (m n)tambin son los divisores comunes de n y Resto(m n), si adems este resto es cero n es el mximo comn divisor . El algoritmo de Euclides trabaja reduciendo el tamao de m y n hasta que el resto sea cero, momento en el que habremos encontrado el mximo comn divisor. Ejemplo 2.1.1 Utilizando el algoritmo de Euclides calcula el M CD(18981, 34560). El algoritmo de Euclides muestra varias propiedades tpicas de los algoritmos: Los pasos del algoritmo estn denidos con claridad. Un cierto nmero de etapas se repiten en un bucle (while) y est claro que slo se realizan una cantidad nita de repeticiones. Una vez que se introducen los nmeros m y n en el algoritmo los clculos se realizan de forma automtica hasta producir el MCD como respuesta. El algoritmo puede implementarse fcilmente en una mquina programable (ordenador).
2.2.
El anlisis del algoritmo de Euclides nos ha dada una idea de lo que es un algoritmo, que estructura tiene y cmo podemos juzgar razonable su implementacin. Denicin 2.2.1 (Algoritmo) Un algoritmo es un procedimento de clculo que consiste en un conjunto de instrucciones precisas. Estas instrucciones especican una sucesin nita de operaciones que una vez ejecutadas proporcionan la solucin a un problema de entre los de una clase especial de problemas.
30
Mirando el algoritmo de Euclides observamos que tiene una estructura (forma) que vamos a requerir a los dems algoritmos: Estructura de un lgoritmo.(forma) Los Datos de Entrada son los valores de inicio que deben de aportarse al algoritmo antes de su ejecucin. Estos datos iniciales deben de pertenecer a unos tipos de datos predeterminados. Los Datos de Salida son los datos esperados como respuesta de la ejecucin del algoritmo. En algunos casos el algoritmo puede acabar enviando un mensaje de ERROR sealando la imposibilidad de alcanzar la solucin esperada. El Flujo del algoritmo consiste en una sucesin de instrucciones aritmticas que deben ser realizadas. Estas instrucciones deben de cumplir las siguientes propiedades: (i) Cada etapa debe estar denida de forma precisa y sin ambigedades. Todas las posibles situaciones deben de ser tenidas en cuenta. (ii) El ujo debe terminar despus de un nmero nito de etapas. (iii) El ujo debera de ser ecaz para un conjunto amplio de problemas. Debe de tenerse en cuenta su aplicabilidad en situaciones generales. (iv) El ujo debe de poder ser implementado en una mquina de clculo. Adems de las operaciones aritmticas habituales (+, , , , ...) y las funciones elementales (exp, sen, cos, , ...) en los algoritmos tambin se utilizan operaciones lgicas (comparaciones, asignaciones y bucles). En funcin de las posibilidades del lenguaje de programacin a utilizar en el proceso de implantacin del algoritmo se puede simplicar, ms o menos, la descripcin del ujo. Cuando un algoritmo est traducido en un lenguaje de programacin concreto para ser implementado en la mquina, nos referiremos a l llamndolo programa. El proceso de evaluar un algoritmo consiste en seguir su desarrollo (etapa por etapa) para asegurarnos que cumple con las propiedades que acabamos de describir. En muchos casos, basta con realizar los distintos clculos de forma ordenada con un ejemplo concreto para detectar posibles fallos. Frecuentemente, existen distintos algoritmos que pueden usarse para resolver un mismo problema. Es necesario disponer de criterios para comparar distintos algoritmos. Estos criterios deben de ser independientes de implementaciones particulares en computadoras concretas y de ejemplos de aplicaciones con unas condiciones iniciales concretas. Tambin deben poder aportar armaciones objetivas y concretas. Existe una teora en Matemticas y Ciencias de la Computacin, la teora de la Complejidad (Complexity theory) , cuyo objetivo es responder a cuestiones como: Cmo se puede cuanticar la calidad y la ejecucin de un algoritmo? Qu criterios pueden construirse para comparar algoritmos? Se pueden mejorar los algoritmos existentes? En que sentido se puede armar que un algoritmo es el mejor posible? Son tiles los mejores algoritmos?
Algoritmos-Iteraciones
31
En esta teora se abordan dos tipos distintos de criterios para medir la complejidad de un algoritmo: criterios relativos a la complejidad esttica como pueden ser la longitud del algoritmo, el nmero de ordenes que contiene o la estabilidad y el condicionamiento de las operaciones previstas; y criterios de complejidad dinmica relativos al tiempo de ejecucin y a requerimiento de memoria en el sentido de la adecuacin de la implantacin del algoritmo a las condiciones reales de espacio y tiempo. Nosotros nos jaremos en las siguientes tres cualidades de los algoritmos para compararlos: (i) el nmero de operaciones previstas en el algoritmo, (ii) la previsibilidad de la convergencia de los distintos mtodos iterativos, y (iii) la velocidad de esa convergencia (orden de convergencia). En los apartados siguientes vamos a analizar esa dos ltimas cualidades de los procesos iterativos. Ahora, para nalizar esta seccin vamos a recordar el algoritmo de Horner para evaluar polinomios comparndolo con las evaluaciones usuales. Utilizamos el nmero de operaciones como criterio de comparacin. El algoritmo de Horner En el ejercicio 1.6.5 proponamos contar el nmero de operaciones necesarias para evaluar un polinomio. En este apartado vamos a hacer los clculos vamos a escribir correctamente el algoritmo de Horner. Un polinomio complejo es una combinacin lineal de potencias naturales de z : p(z ) = a0 + a1 z + + an z n (2.1)
donde los coecientes ak C son nmeros complejos y an = 0. En estas condiciones se dice que el polinomio p(z ) tiene grado n N.
k+1 k y Para calcular el valor del polinomio p en un punto z0 , si usamos la relacin z0 = z0 .z0 la frmula (2.1), necesitaremos hacer 2n 1 multiplicaciones (1 en a1 z0 y 2 multiplicaciones en k para k 2) y n sumas. En total 3n 1 operaciones. cada sumando ak z0
Sin embargo, existe un procedimiento ms econmico, y por lo tanto ms estable para el clculo, conocido como Esquema de Horner que alguno conoceris como la Regla de Runi: p(z0 ) = (. . . ((an z0 + an1 ) z0 + an2 ) z0 + + a1 ) z0 + a0 . Los multiplicadores de z0 en esta frmula se van obteniendo de forma recursiva siguiendo el esquema an z0 bn an1 z0 b n bn1 an2 z0 bn1 bn2 ...... ...... ...... a1 z0 b 2 b1 a0 z0 b 1 b0
con bn = an y, bk = bk+1 z0 + ak para k = (n 1), . . . , 1, 0. Con estas operaciones, slo se necesitan 2(n 1) operaciones para calcular b0 = p(z0 ). Adms, los coecientes bk tambin determinan el cociente q (z ) de la divisin de p(z ) entre (z z0 ), p(z ) = q (z )(z z0 ) + p(z0 ). (2.2)
32 En efecto, si escribimos
q (z ) = bn z n1 + bn1 z n2 + + b2 z + b1 . q (z )(z z0 ) = bn z n + bn1 z n1 + + b2 z 2 + b1 z bn z n1 z0 + + b2 z0 + b1 z0 , q (z )(z z0 ) + b0 = bn z n + (bn1 bn z0 )z n1 + + (b1 b2 z0 )z + (b0 b1 z0 ). Tal y como tenemos denidos los coecientes bk , tenemos bn = an y (bk bk+1 z0 ) = ak , de donde resulta la igualdad 2.2. El siguiente algoritmo reproduce el esquema de Horner que hemos expuesto, y lo implementaremos en el correspondiente programa de clculo en las sesiones de prcticas.
Algoritmo 2.2
Esquema de Horner
Datos de entrada:a0 , a1 , . . . , an (coecientes del polinomio p); z Fujo del programa: bn = an for(k=n-1;k>=0;k- -){ bk = bk+1 z + ak } Datos de salida:(valor de p(z )) b0 ; (coecientes de q (z )) b1 , . . . , bn Observad que si slo necesitamos obtener el valor de p(z ) podemos acelerar el algoritmo utilizando una nica variable b en lugar de una lista bk . Se inicia b con el valor de an y en el bucle (for) se hace la asignacin b = bz + ak . Ejemplo 2.2.2 z = 2 es raz del polinomio p(z ) = z 4 4z 3 + 7z 2 5z 2
1 2 b4 = 1 4 2 b3 = 2 7 4 b2 = 3 5 6 b1 = 1 2 2 b0 = 0
2.3.
Vamos a analizar tres algoritmos sencillos para la bsqueda de soluciones de ecuaciones de la forma f (x) == 0, donde f : (a, b) R es una funcin real de variable real
2.3.1.
El Mtodo de la Biseccin
Teorema 2.3.1 (Bolzano) Sea f : [a, b] R una funcin continua tal que f (a) f (b) < 0. Entonces existe x [a, b] tal que f (x) = 0.
33
0.5
0.25
0.5
0.75
1.25
1.5
-0.5
-1
-1.5 1
0.5
0.25
0.5
0.75
1.25
1.5
-0.5
-1
-1.5 1
0.5
0.25
0.5
0.75
1.25
1.5
-0.5
-1
-1.5 1
0.5
0.25
0.5
0.75
1.25
1.5
-0.5
-1
-1.5 1
0.5
0.25
0.5
0.75
1.25
1.5
-0.5
-1
-1.5
Escribe la demostracin!
34
Algoritmo 2.3
Mtodo de la biseccin
Datos de entrada:Funcion f ; a, b R; precision R; nmaxiter Z Datos de salida: solucin x (f (x) = 0) o mensaje de error Variables: aa, bb, h, c, u, v, w R // auxiliares para operar sin cambiar los nmeros. Fujo del programa: aa = a; bb = b; u = f (aa); v = f (bb); if(u v > 0){ Parada: Error- No hay cambio de signo} for(k=1;k<=nmaxiter;k=k+1){ h = 0.5 (bb aa); c = aa + h; w = f (c); if((|h| < precision) o (|w| < precision)){ Parada: Solucin en x = c } if(w u > 0){ aa = c; u = w; } else{ bb = c; v = w;} } Parada: Error- No hay convergencia
las sucesiones ak = aa y bk == bb (en la etapa k ) son montonas acotadas, encierran la sucesin ck = c (en la etapa k ), y convergen hacia una solucin x de la ecuacin f (x) == 0. El algoritmo de la biseccin proporciona en cada etapa k una aproximacin ck = c a la raz x de manera que |x ck | ba . 2k+1
En el algoritmo de la biseccin tenemos asegurada la convergencia del mtodo aunque la velocidad de las iteradas es constante: en cada etapa se reduce el error en la aproximacin a la mitad. Ejemplo 2.3.2 En la tabla que sigue se pueden observar valores de las 37 primeras iteraciones del mtodo de la biseccin aplicado a la funcin f (x) = ex x2 x 1 en el intervalo [1,2], tomando precision = 1010 .
k= k= k= k= k= k= k= k= k= k= 1 2 3 4 5 11 12 13 14 15 aa= aa= aa= aa= aa= aa= aa= aa= aa= aa= 1.0 1.5 1.75 1.75 1.75 1.79296875 1.79296875 1.793212890625 1.793212890625 1.79327392578125 bb= bb= bb= bb= bb= bb= bb= bb= bb= bb= 2.0 2.0 2.0 1.875 1.8125 1.7939453125 1.79345703125 1.79345703125 1.7933349609375 1.7933349609375 u=-0.28171817154095447 u=-0.2683109296619355 u=-0.05789732399427017 u=-0.05789732399427017 u=-0.05789732399427017 u=-4.456149959981559E-4 u=-4.456149959981559E-4 u=-9.849297435415849E-5 u=-9.849297435415849E-5 u=-1.1675138180677891E-5 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.13019412033011246 v=0.02808641188198635 v=9.443070728494263E-4 v=2.4886798603152016E-4 v=2.4886798603152016E-4 v=7.515763303089784E-5 v=7.515763303089784E-5
Algoritmos-Iteraciones
35
k= k= k= k= k= k= k= k= k= k=
21 22 23 24 25 32 33 34 35 36
aa= aa= aa= aa= aa= aa= aa= aa= aa= aa=
1.7932815551757812 1.7932820320129395 1.7932820320129395 1.7932820320129395 1.7932820916175842 1.7932821325957775 1.7932821328286082 1.7932821328286082 1.7932821328868158 1.7932821328868158
bb= bb= bb= bb= bb= bb= bb= bb= bb= bb=
1.7932825088500977 1.7932825088500977 1.7932822704315186 1.793282151222229 1.793282151222229 1.7932821330614388 1.7932821330614388 1.7932821329450235 1.7932821329450235 1.7932821329159196
u=-8.21858566979472E-7 u=-1.4352084320989889E-7 u=-1.4352084320989889E-7 u=-1.4352084320989889E-7 u=-5.8728563345766815E-8 u=-4.338631676148452E-10 u=-1.0264278316185482E-10 u=-1.0264278316185482E-10 u=-1.9838353182421997E-11 u=-1.9838353182421997E-11
v=5.348177927189113E-7 v=5.348177927189113E-7 v=1.9564836062357926E-7 v=2.606373072921997E-8 v=2.606373072921997E-8 v=2.2857626902350603E-10 v=2.2857626902350603E-10 v=6.296652088622068E-11 v=6.296652088622068E-11 v=2.156363976268949E-11
El mtodo de encuentra c = 1.7932821329013677, f (c) = 8.633094239485217E 13, como raz, en 36 etapas (pasos). En los dos apartados siguientes vamos a ver dos intentos de aceleracin de esta convergencia: los mtodos de la regla falsa y de Newton.
2.3.2.
El mtodo de la Regula Falsi (regla falsa), es una modicacin del mtodo de la biseccin con la esperanza de obtener una aproximacin de la raz de forma ms rpida. Consiste en utilizar el punto de corte c de la secante que une los extremos de la curva y = f (x) en a y b en vez del punto medio, para dividir el intervalo y despus iterar el proceso quedndonos con los subintervalos en los que f cambie de signo. En los siguientes grcos podemos observar distintas etapas de este mtodo:
1.25 1.25
0.75
0.75
0.5
0.5
0.25
0.25
1.2
1.4
1.6
1.8
1.2
1.4
1.6
1.8
-0.25
-0.25
1.25
1.25
0.75
0.75
0.5
0.5
0.25
0.25
1.2
1.4
1.6
1.8
1.2
1.4
1.6
1.8
-0.25
-0.25
Para describir el algoritmo, recordar que la ecuacin de la recta que pasa por los puntos (a, u) y (b, v ) es vu y =u+ (x a). ba
36
Si ahora hacemos y = 0 en esa expresin para determinar la abscisa de corte de la recta con el eje de abscisas se tiene ba x=au . vu Modicando el algoritmo del mtodo de la biseccin en la denicin de c tomando el corte de la secante a la curva y = f (x) en los extremos de los intervalos con el eje de abscisas en vez de considerar el centro del intervalo, obtenemos el siguiente algoritmo: (Enmarcada sobre fondo gris, est la modicacin efectuada)
Ejemplo 2.3.3 Retomando el ejemplo 2.3.2, f (x) = ex x2 x 1 en [1,2], y aplicando el mtodo de la regula falsi con la misma precision = 1010 , tenemos
k= k= k= k= k= k= k= k= k= k= k= k= k= k= 1 2 3 4 5 11 12 13 14 15 16 17 18 19 aa= aa= aa= aa= aa= aa= aa= aa= aa= aa= aa= aa= aa= aa= 1.0 1.4199895314155169 1.6721721622963694 1.7610064028149435 1.7852195260508816 1.7932804127143416 1.7932817129360898 1.793282030371081 1.7932821078692915 1.7932821267896093 1.793282131408792 1.7932821325365136 1.7932821328118338 1.7932821328790503 bb= bb= bb= bb= bb= bb= bb= bb= bb= bb= bb= bb= bb= bb= 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 u=-0.28171817154095447 u=-0.29928267006193354 u=-0.14461267362264119 u=-0.043859961270654724 u=-0.01133990799920781 u=-2.447094586077725E-6 u=-5.974324321922353E-7 u=-1.4585651553211676E-7 u=-3.5609233561828546E-8 u=-8.693593622766116E-9 u=-2.1224435542421816E-9 u=-5.181701734358057E-10 u=-1.26505694808543E-10 u=-3.088485023283738E-11 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504 v=0.3890560989306504
Se obtiene la misma solucin que con el mtodo de la biseccin pero ahora slo en 19 pasos. A la vista de este ejemplo podramos pensar que el algoritmo de la regula falsi es ms rpido que el mtodo de la biseccin. En general, ese no es el caso
Algoritmos-Iteraciones
37
Ejemplo 2.3.4 Si consideramos la funcin g (x) = x3 x 1 que tambin cambia de signo en [1,2], y tomamos la precision = 1010 , el mtodo de la biseccin nos da la raz c = 1.324717957242683 con g (c) = 8.79785133633959E 12 en 37 etapas. Si aplicamos la regula falsi a esta misma funcin, en el mismo intervalo, y con la misma precisin, obtenemos la misma raz en 31 etapas, que slo es unas cuantas iteraciones menos que el de la biseccin. Ejercicio 2.3.1 Trabajando sobre la siguiente grca. Dad una estimacin del nmero de etapas que necesitan los mtodos de la biseccin y de la regula falsi para alcanzar buenas estimaciones de la raz. Observad que en este caso el mtodo de la biseccin parece ser bastante ms rpido que el de la regula falsi.
Observando la grca del ejercicio podemos conjeturar (sin equivocarnos demasiado) que el ralentizamiento de la regula falsi se debe a la presencia de regiones donde la curva tiene poca pendiente donde la secante aproxima mal a la curva, para pasar al nal a una regin con mucha pendiente donde las secantes aproximan bien a la curva. Para evadir esta situacin se puede utilizar el siguiente truco que consiste en reducir la pendiente de las secante en las etapas en las que se sea consciente de que podemos estar ralentizandonos. La modicacin esencialmente consiste en guardar memoria del signo de f en el punto de corte de la secante con el eje de abscisas y en caso de que el signo se repita en la siguiente iteracin, se inclinar ms la secante buscando una mejor aproximacin del cero de f . En la primera etapa, se utiliza f (a) para comparar con el signo de f (c) en el punto de corte, c, de la secante con el eje de abscisas. Grcamente hacemos lo siguiente:
38
1.25
1.25
0.75
0.75
0.5
0.5
0.25
0.25
1.2
1.4
1.6
1.8
1.2
-0.25
1.4
1.6
1.8 -0.25
1.25
1.25
0.75
0.75
0.5
0.5
0.25
0.25
1.2
1.4
1.6
1.8 -0.25
1.2
1.4
1.6
1.8 -0.25
(Enmarcadas sobre fondo gris, estn la modicaciones efectuadas sobre el mtodo de la regula falsi)
Algoritmos-Iteraciones
39
Ejemplo 2.3.5 Volviendo a retomar los ejemplos anteriores, para f (x) = ex x2 x 1 en [1,2], el mtodo de la regula falsi modicado proporciona la raz c = 1.7932821329006305 f (c) = 1.8562928971732617E 13 en slo 8 etapas. Para la funcin g (x) = x3 x 1 que tambin cambia de signo en [1,2], la modicacin de la regula falsi proporciona la raz c = 1.324717957244746 f (c) = 2.220446049250313E 16 en 7 etapas. Con el truco propuesto, podemos pensar en que vamos a tener mejor convergencia.
2.3.3.
Mtodo de Newton
Una variacin a los mtodos anteriores aparece cuando utilizamos rectas tangentes a la curva y = f (x) para aproximarnos a la raz. Este es el conocido como mtodo de Newton. Consiste en iterar el proceso siguiente: Dada una aproximacin xi de la raz de f , consideramos g (x) = f (xi) + f (xi)(x xi) la ecuacin de la tangente a y = f (x) en xi.
f (xi) resolvemos la ecuacin lineal g (x) = = 0, tomando h = f (xi) y xf = xi + h.
la solucin xf de la ecuacin aproximada, ser la nueva aproximacin de la raz de la ecuacin inicial. Grcamente se puede representar como sigue:
10
10
1.25
1.5
1.75
2.25
2.5
2.75
1.25
1.5
1.75
2.25
2.5
2.75
10
10
1.25
1.5
1.75
2.25
2.5
2.75
1.25
1.5
1.75
2.25
2.5
2.75
40
Algoritmo 2.6
Mtodo de Newton
Datos de entrada:Funcin f ; x0 R; precision R; nmaxiter Z Datos de salida: solucin x (f (x) = 0) o mensaje de error Variables: xi = x0 // la aproximacin inicial. f i; df i;// Para almacenar el valor de f y el de f en la aproximacin. hi = 1 + precision; // Para almacenar el incremento de xi, con un valor inicial grande. Fujo del programa: for(k=1;k<=nmaxiter;k++){ f i = f (xi); if((|f i| < precision) o (|hi| < precision)){ Parada: Raz en xi } df i = f (xi); if(dfi==0){ Parada:Error: derivada nula } hi = f i/df i; xi = xi + hi; // volvemos a iterar Newton con este nuevo valor de xi } Parada: Error: No hay convergencia en nmaxiter iteraciones
Terminamos la seccin observando el comportamiento del algoritmo en algunos ejemplos. Ejemplo 2.3.6 Volviendo a retomar los ejemplos anteriores, para f (x) = ex x2 x 1 en [1,2], el mtodo de Newton empezando en xi = 1 como aproximacin inicial, proporciona la raz c = 1.793282132894812 f (c) = 8.462119893692943E 12 en 30 etapas. En este caso el mtodo ms rpido ha sido el de la regula falsi modicado. Con la funcin g (x) = x3 x 1 y con xi = 1 como aproximacin inicial, el mtodo de Newton proporciona la raz c = 1.3247179572447898 f (c) = 1.865174681370263E 13 en 6 etapas. En este caso el mtodo de Newton es el ms ecaz de los cuatro estudiados. Los distintos mtodos introducidos tienen diferente comportamiento segn las ecuaciones propuestas en los ejemplos. En principio, debemos admitir la coexistencia de los diferentes mtodos de resolucin de ecuaciones estudiados, habida cuenta de que ninguno de los cuatro mtodos estudiados se puede calicar de mejor mtodo que los otros. El mtodo de Newton es un ejemplo de una iteracin funcional, tal y como sealaremos en la siguiente seccin. Para estas iteraciones vamos a tener resultados de convergencia local que nos dirn que el mtodo de Newton en general converge ms rpido que los otros supuesto que partimos de una buena aproximacin a la raz x de f y que f (x) = 0. En los siguientes ejemplos grcos podemos observar que las iteradas del mtodo de Newton pueden no ser convergentes e incluso pueden dar lugar a sucesiones peridicas (sucesiones en las que a partir de un momento, todos los trminos se repiten de forma peridica).
41
15
15
10
10
-1
-0.5
0.5
-1
-0.5
0.5
-5
-5
-10
-10
15
10
-1
-0.5
0.5
-5
-10
Cuando la derivada de f se anula, aparecen problemas: Ejemplo 2.3.8 Sucesin divergente (asintotas)
10
10
-8
-6
-4
-2 -10
-8
-6
-4
-2 -10
-20
-20
-30
-30
-40
-40
-50
-50
-1
-0.5
0.5
1.5
2.5
Mtodo de la Biseccin: Libro de Burden-Faires [2], seccin 2.1, algoritmo 2.1. Mtodo de la regula falsi: Libro de Burden-Faires [2], seccin 2.3, algoritmo 2.5. Mtodo de Newton: Libro de Burden-Faires [2], seccin 2.3, algoritmo 2.3.
2.4.
Iteracin de punto jo
Denicin 2.4.1 Un punto jo de una funcin f : C C es cualquier punto x C para el cual f (x) = x. En esta seccin vamos a estudiar los problemas de punto jo, es decir, problemas de resolucin de ecuaciones f (x) == x, donde f : C C es una funcin del conjunto C en si mismo. Vamos a poner ejemplos de funciones reales de variable real aunque el resultado principal de la seccin lo probaremos en el contexto de espacios mtricos completos. Los problemas de bsqueda de races de funciones g (x) == 0 son equivalentes a los de bsqueda de puntos jos f (x) == x, considerando funciones auxiliares: Si f (x) tiene un punto jo en x, entonces g (x) = f (x) x tiene una raz en x. Reciprocamente, si g tiene una raz en x, entonces f (x) = h(x)g (x) + x tiene un punto jo en x. Vamos a buscar puntos jos viendo el comportamiento (la dinmica) de las iteradas de funciones, es decir, sucesiones de la forma xn = f (xn1 ). A estas sucesiones se les llama rbitas del punto x[0] y la funcin f , Proposicin 2.4.2 Si f es una funcin continua y xn converge, entonces su lmite x es un punto jo de f . La prueba de la proposicin es la siguiente cadena de igualdades m f (xn ) = l m xn = l m xn+1 = x. f (x) = l
n n n
Esta tcnica de considerar sucesiones de iteradas, xn = f (xn1 ), para buscar puntos jos, recibe el nombre de iteracin de punto jo o iteracin funcional. El algoritmo correspondiente es:
Algoritmos-Iteraciones
43
Algoritmo 2.7
Iteracin de punto jo
Datos de entrada:Funcin f ; x0 R; precision R; nmaxiter Z Datos de salida: solucin x (f (x) = x) o mensaje de error Variables: xx = x0 // los puntos de la rbita. f x = f (xx); // el siguiente punto de la rbita f. Fujo del programa: for(k=1;k<=nmaxiter;k++){ if(|xx f x| < precision){ Parada: Punto jo en xx } xx = f x; f x = f (xx); // el siguiente punto de la rbita f } Parada: Error: No hay convergencia en nmaxiter iteraciones
Ejemplo 2.4.3 Con la calculadora de mano, congurada para trabajar en radianes, si consideramos la funcin cos(x) y calculamos la rbita de cualquier nmero obtenemos un/el punto jo del cos : cos(0.739085133) = 0.739085133. Grcamente, comenzando en 0.5 se tiene:
1 1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.2 1
0.4
0.6
0.8
1 1
0.2
0.4
0.6
0.8
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.2
0.4
0.6
0.8
0.2
0.4
0.6
0.8
44
1 1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.2
0.4
0.6
0.8
0.2
0.4
0.6
0.8
Recordis resultados del curso Analisis I que garanticen la existencia de puntos jos y su unicidad? Echad un vistazo al Teorema 2.2 del libro de Burden-Faires [2] y seguro que recordis una aplicacin del teorema de Bolzano y otra de la frmula de los incrementos nitos. El siguiente teorema da una condicin suciente para la convergencia de las iteraciones de punto jo. Vamos e enunciarlo para funciones denidas en espacios mtricos completos (X, d), que contiene como caso particular a R, Rn , a los espacios de Banach (espacios normados completos) (X, ) y a sus subconjuntos cerrados. Denicin 2.4.4 Sea (X, d) un espacio mtrico completo, se dice que una funcin f : X X , es una funcin contractiva cuando existe una constante c, 0 < c < 1, vericando : d(f (x), f (y )) c d(x, y ) para cada x e y en X.
Teorema 2.4.5 (Teorema del Punto Fijo de Banach) Sea (X, d) un espacio mtrico completo y f : X X una funcin (contractiva) tal que existe una constante c, 0 < c < 1, vericando : d(f (x), f (y )) c d(x, y ) para cada x e y en X. Entonces la ecuacin f (x) = = x tiene una nica solucin xs X . Esta solucin se encuentra como el lmite de la sucesin de iteradas xs = l m x(n),
n
para un x(0) en X arbitrario. Adems, el error en cada etapa est acotado por e(n) = d(x(n), xs) Demostracin: Ideas que intervienen Como f es contractiva si tiene un punto jo este es nico. En efecto, si f (x) = x y f (y ) = y , entonces d(x, y ) = d(f (x), f (y )) cd(x, y ), y como 0 < c < 1, esto slo es posible si d(x, y ) = 0, e. d. si x = y . cn d(x(1), x(0)) 1c
Algoritmos-Iteraciones
45
Como f es contractiva, f es continua. Si la iterada funcional xn = f (xn1 ) converge, su lmite es el punto jo de f (Proposicin 2.4.2). Como f es contractiva las iteradas funcionales xn son sucesiones de Cauchy y en consecuencia son convergentes ya que X es un espacio mtrico completo. (i) d(xn , xn1 ) c d(xn1 , xn2 ) c2 d(xn1 , xn3 ) ... cn1 d(x1 , x0 ). (ii) d(xn+p , xn ) d(xn+p , xn+p1 ) + d(xn+p1 , xn ) ... d(xn+p , xn+p1 ) + d(xn+p1 , xn+p2 ) + ... + d(xn+1 , xn ) n cn+p (cn+p1 + cn+p2 + ... + cn )d(x1 , x0 ) = c 1c d(x1 , x0 ) 0.
La frmula de los incrementos nitos nos ofrece condiciones para que una funcin sea contractiva y se cumpla el teorema del punto jo: |f (x) f (y )| = |f (x + t(y x))||x y | c|x y |, donde (0 < t < 1), y |f (s)| c para todo s [a, b] (x + t(y x) [a, b]). Corolario 2.4.6 Sea f : [a, b] [a, b] una funcin derivable para la que existe una constante c, 0 < c < 1 tal que: |f (x)| c para todo x [a, b]. Entonces la ecuacin f (x) = = x tiene una nica solucin xs en [a, b]. Esta solucin es el lmite de la sucesin de iteradas xn = f (xn1 ) denida a partir de cualquier punto x0 [a, b]. Adems: en = |xn xs| cn |x1 x0 |. 1c
Ejemplo 2.4.7 (Ejemplos 3 y 4 del apartado 2.2 de Burden-Faires [2]) La nica raz de p(x) = x3 + 4x2 10 en el intervalo [1, 2] se puede convertir en punto jo x == g (x), de una funcin g de diferentes formas. Vamos a relacionar 5 elecciones distintas de g , y describiremos el comportamiento de las iteradas funcionales empezando en x0 = 1.5 (i) x = g1 (x) = x x3 4x2 + 10 xn = g1 (xn1 ) es divergente. g1 no es contractiva, |g (x)| > 1 en todo x [1, 2]. (ii) x = g2 (x) =
10 x
1 2
4x
xn = g3 (xn1 ) es convergente. g3 es estrictamente decreciente en [1,2]. Lleva el intervalo [1,1.5] al intervalo [1.28,1.5]. Adems como |g3 (x)| |g3 (1.5)| 0.66 < 1 para todo x [1.28, 1.5], podemos concluir que g3 es contractiva en ese intervalo.
46
1 2
(iv) x = g4 (x) =
10 4+x
xn = g4 (xn1 ) es convergente, y converge ms rpido que la anterior. g4 es decreciente, lleva el intervalo [1,2] al intervalo [1,2] y |g4 (x)| = todo x [1, 2].
5 10 53
g4 es contractiva con constante menor que la de g3 . Esta es la razn por la iterada para g4 converge ms rpidamente que la de g4 . (v) x = g5 (x) = x
x3 +4x2 10 . 3x2 +8x
La iterada funcional para g5 es la iterada del mtodo de Newton para p(x) y es ms rpida que las dos iteradas anteriores. Enseguida vamos a ver porqu.
2.4.1.
Atractores y repulsores
Sea f : [a, b] R es una funcin derivable con derivada continua y x [a, b] un punto jo de f (f (x) = x) El tamao de la derivada |f (x)| indica el comportamiento de las iteradas funcionales en las prximidades de x. Proposicin 2.4.8 Si |f (x)| < 1 entonces, en un entorno de x se cumplen las hiptesis del teorema del punto jo. Se dice que x es un punto atractor (o sumidero) de f . Las iteradas xn = f (xn1 ) convergen a x, para x0 prximo a x. Demostracin: Ideas que intervienen |f (x)| < c < 1 y f continua que existe > 0 tal que |f (x)| < c para x [x , x + ]. f : [x , x + ] [x , x + ] En efecto: |f (x) x| = |f (x) f (x)| = |f ( )||x x| < c < . ( est entre x y x, [x , x + ]) Se cumplen las hiptesis del teorema del punto jo para f denida en [x , x + ].
Ejemplo 2.4.9 (El mtodo de Newton) El mtodo de Newton consiste en iterar el proceso siguiente: Dada una raz x de una funcin derivable f , (f (x) = 0). Si xn es una aproximacin de x consideramos aux(x) = f (xi) + f (xi)(x xi) la ecuacin de la tangente a y = f (x) en xn , resolvemos la ecuacin lineal aux(x) = = 0, y tomamos la solucin como nueva f ( xn ) aproximacin xn+1 = xn f ( xn ) .
47
Esperamos encontrar x como lmite de xn+1 = g (xn ), e.d., como punto jo de g . Si f es dos veces derivable con f continua y f (x) = 0, g es derivable en un entorno de x y f (x) g (x) = 0(< 1) y g (x) = . f (x) x es un atractor. Como corolario de la proposicin 2.4.8 tenemos el siguiente teorema de convergencia local para el mtodo de Newton. Proposicin 2.4.10 Sea f : (a, b) R una funcin dos veces derivable con f continua. Sea x (a, b) una raz simple de f , e.d. f (x) = 0 y f (x) = 0. Entonces existe > 0 tal que si f ( xn ) x0 (a, b), y |x0 x| < , la sucesin de iteradas de Newton, xn+1 = xn f (xn ) , est bien denida para todo n N y converge hacia x. Ejemplo 2.4.11 f (x) = 0.25 ex tiene una atractor cerca de 0.4, si hacemos las iteradas funcionales grcamente desde x0 = 0.9 tenemos:
1 1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.2 1
0.4
0.6
0.8
1 1
0.2
0.4
0.6
0.8
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.2
0.4
0.6
0.8
0.2
0.4
0.6
0.8
48
Cuando la derivada de la funcin en el punto jo es mayor que 1, el comportamiento de las iteradas funcionales cerca de este punto jo es todo lo contrario a lo que ocurre con los atractores. Ejemplo 2.4.12 f (x) = 0.25 ex , tiene punto jo cerca de 2.15, si hacemos las iteradas funcionales grcamente desde x0 = 2.1 tenemos:
5 5
0.5 5
1.5
2.5
3 5
0.5
1.5
2.5
0.5
1.5
2.5
0.5
1.5
2.5
Proposicin 2.4.13 Si |f (x)| > 1 entonces, en ningn entorno de x se cumplen las hiptesis del teorema del punto jo. Se dice que x es un punto repulsor (o fuente) de f . Las iteradas xn = f (xn1 ) no convergen a x, para x0 prximo a x, salvo que xn = x para algn n. Demostracin: Ideas que intervienen |f (x)| > C > 1 + f continua que existe > 0 tal que |f (x)| > C para x [x , x + ]. Si xn = f (xn1 ), entonces xn x salvo si para algn n0 , xn0 = x (xn = x, n > n0 ). En efecto: si fuese convergente existira n0 tal que 0 < |xn x| < para n n0 . Pero |xn x| = |f (xn1 ) f (x)| = |f ( )||xn1 x| > C |xn1 x| > ... > C nn0 |xn0 x|
49
2.5.
Para formalizar la idea de velocidad en la convergencia de una sucesin y poder cuanticar el que una sucesin converge hacia su lmite ms rpidamente que otra, vamos a considerar la siguiente denicin: Denicin 2.5.1 Si xn x, existen C > 0 y m > 0 tales que |xn x| C |xn1 x|m n, entonces se dice que xn x con convergencia de orden al menos m Si xn x con xn = x, existe > 0 y m > 0 tales que l m
n
entonces se dice que xn x con convergencia de orden m. A se le llama la constante asinttica del error. Si xn es una sucesin convergente con convergencia de orden m = 1, se dice que xn es linealmente convergente. Cuando xn es una sucesin convergente con convergencia de orden m = 2, se de que la sucesin es cuadrticamente convergente. Observad que para si n es grande xn aproxima a x con k dgitos en el sentido que1 |xn x| < 0.5 10k , entonces |xn+1 x| |xn x|2 < 0.52 102k xn+1 aproximar a x con alrededor de 2k dgitos de precisin. Cal es el orden de convergencia de las iteraciones de punto jo? Teorema 2.5.2 (Orden de convergencia) Si f : [a, b] [a, b] es una funcin con un punto jo en x. (Caso m = 1) Si f es derivable con derivada continua, |f (x)| < 1, y x0 es un punto prximo a x, entonces xn = f (xn1 ) converge a x con convergencia de orden al menos 1 (x es un atractor). (Caso m 2) Si f es m-veces derivable en [a, b], con derivada de orden m f (m) continua, se cumple: f (x) = f (x) = ... = f (m1) (x) = 0, y x0 es un punto prximo a x, entonces xn = f (xn1 ) converge a x con convergencia de orden al menos m. Si adems f (m) (x) = 0, la convergencia es de orden m con constante asinttica del error |f (m) (x)|/m!.
Permitid la licencia de que aqu consideremos errores absolutos en lugar de los errores relativos del captulo anterior.
1
(caso m=1) |f (x)| < 1 implica que x es un atractor. e.d. que las iteradas funcionales son convergentes. (caso m>1) Como f (x) = 0 < 1 la sucesin de iteradas xn+1 = f (xn ) converge hacia x siempre que x0 est cerca de x. Considera la frmula del desarrollo de Taylor de f en x de orden m: f (x) f (x) = As tenemos f (xn ) f (x) f (m)(x) o((xn x)m ) f (m)(x) xn+1 x = = + . (xn x)m (xn x)m m! (xn x)m m! f (m) (x) (x x)m + o((x x)m ). m!
Como corolario de este resultado y de la proposicin 2.4.10, se tiene el siguiente teorema de convergencia local del mtodo de Newton, Teorema 2.5.3 Sea f : (a, b) R una funcin dos veces derivable con f continua. Sea x (a, b) una raz simple de f , e.d. f (x) = 0 y f (x) = 0. Entonces existe > 0 tal que si x0 (a, b), f ( xn ) y |x0 x| < , la sucesin de iteradas de Newton, xn+1 = xn f (xn ) , est bien denida para todo n N y converge hacia x con convergencia de orden al menos 2. Cal es el orden de convergencia y la constante asinttica del error en el mtodo de Newton si f (x) = 0 y f (x) = 0? Volved al ejemplo 2.4.7 y comparar los ordenes de convergencia de los distintos procesos iterativos que se estudiaron all.
2.6.
No siempre tenemos la suerte de construir iteradas que converjan cuadrticamente. Pero si de antemano sabemos que nuestra sucesin de iteradas converge linealmente, podemos acelerar la convergencia de la sucesin con el mtodo de aceleracin de Aitken. Supongamos que xn x con convergencia de orden al menos 1, y que existe xn+1 x = A = 1. n xn x l m Remarcad la hiptesis de que la constante asinttica A = 1. Esto ocurre en los puntos jos que son atractores A = |f (x)| < 1. Entonces, para n sucientemente grande podemos escribir xn+1 x A(xn x) xn+2 x A(xn+1 x). (2.3)
Algoritmos-Iteraciones Restando esas dos expresiones tenemos xn+2 xn+1 A(xn+1 xn ) n+2 xn+1 A xx , y n+1 xn (xn+2 xn+1 )(xn+1 xn ) 1A xn+1 xn Despejando x en (2.3) y sustituyendo 1 A por la aproximacin dada en (2.4) queda x xn+1 Axn xn+1 xn (xn+1 xn )2 = xn + xn . 1A 1A (xn+2 xn+1 ) (xn+1 xn )
51
(2.4)
(2.5)
Se utiliza la notacin de Aitken: xn := (xn+1 xn ) 2 xn := (xn ) = (xn+2 xn+1 ) (xn+1 xn ) = xn+2 2xn+1 + xn . Con lo que la estimacin dada en (2.5) queda x xn (xn+1 xn )2 (xn )2 = xn (xn+2 xn+1 ) (xn+1 xn ) 2 xn
con la esperanza de que x n converja hacia x ms rpidamente que xn . Teorema 2.6.1 (Aceleracin de Aitken) Supongamos que xn x con convergencia de orden al menos 1, que para todo n xn x = 0, y que xn+1 x = A = 1. n xn x l m
xn ) converge hacia x ms rpidamente Entonces la sucesin del mtodo de Aitken x n = xn ( 2 xn que xn en el sentido de que x n x l m =0 n xn x
2
(ii) xn+1 x = (xn x) + xn = (xn x)(n + A) (iii) xn := xn+1 xn = (xn+1 x) (xn x) = (n + (A 1))(xn x). (iv) 2 xn = xn+1 xn = (n+1 + (A 1))(xn+1 x) (n + (A 1))(xn x) = n (xn x), donde n = (n+1 + (A 1))(n + A) (n + (A 1)) (A 1)2 = 0.
52
UMU Mtodos Numricos, 2007-2008 (xn )2 n (xn x)2 (n + (A 1))2 (xn x)2 = = 2 xn n (xn x) n (xn x) (n + (A 1))2 (xn x) . = n
(v) x n x = (xn x)
(vi)
Las hiptesis del teorema anterior se cumplen para iteraciones funcionales xn = f (xn1 ) que convergen hacia un punto jo atractor x, |A| = |f (x)| < 1. El algoritmo correspondiente a la aceleracin de Aitken para iteraciones de punto jo es el siguiente. En recuadros grises con texto en blanco tenis las modicaciones al algoritmo de punto jo:
Algoritmo 2.8
Datos de entrada:Funcin f ; x0 R; precision R; nmaxiter Z Datos de salida: solucin x (f (x) = x) o mensaje de error Variables: xx = x0 // los puntos de la rbita. f x = f (xx); // el siguiente punto de la rbita f. f f x; // para el siguiente punto de la rbita f(fx). xxacelerado; // para guardar los terminos de la iteracin acelerada por Aitken. Fujo del programa: for(k=1;k<=nmaxiter;k++){ if(|xx f x| < precision){ f f x = f (f x); xxacelerado = xx ((f x xx) (f x xx))/(f f x 2 f x + xx); if(|xxacelerado f (xxacelerado)| < precision){ Parada: Punto jo en xxacelerado } xx = f x; f x = f f x; // el siguiente punto de la rbita f } Parada: Error: No hay convergencia en nmaxiter iteraciones Parada: Punto jo en xx }
Ejemplo 2.6.2 (vanse los ejemplos 5 y 6 del paquete algoritmosIteraciones) La funcin g (x) = 1.6 + 0.99 cos x es contractiva y tiene un nico punto jo. La iteracin de punto jo para g , con inicio en x0 = 1.5707963267948966 proporciona una aproximacin al punto jo x 1.585521893915304 en 560 iteraciones (x x560 ). La derivada
Algoritmos-Iteraciones
53
de g en el punto jo, g (x) = 0.9898926649877118, tiene valor absoluto menor pero prximo a 1. Esto conrma que el punto jo es un atractor y que la convergencia no es de las ms rpidas. Si aceleramos la convergencia de la iteracin de punto jo iniciada en el mismo punto x0 , el mtodo de Aitken proporciona la aproximacin al punto jo x 1.585471801571905 en 476 pasos. Si consideramos la funcin f (x) = 0.25ex analizada en los ejemplos 2.4.11 y 2.4.12, y hacemos la iteracin de punto jo para f , con inicio x0 = 0.1 aproximamos el punto jo x = 0.35740295618138784 en 33 pasos. Observad que en este ejemplo f (x) = 0.3574029561813885 es mucho menor que en el caso de la funcin anterior y que ahora la convergencia es mucho ms rpida. Si aceleramos la convergencia con el mtodo de Aitken, iniciando tambin en x0 = 0.1 aproximamos el mismo punto jo en 15 pasos. Cuanto menor es el tamao de la derivada en el punto jo, ms rpido convergen las iteradas de punto jo y sus aceleradas de Aitken!
2.6.1.
Mtodo de Steensen
Si consideramos una iteracin de punto jo, xn = f (xn1 ), que suponemos convergente hacia un punto jo atractor x, y la aceleramos por el mtodo de Aitken, debemos esperar que la sucesin acelerada x n converja antes hacia x. Esta esperanza, nos permite suponer que el trmino (f (xn ) xn )2 y=x n = xn f (f (xn )) 2f (xn ) + xn se aproxima a x mejor que xn . Con esta idea en mente, Porqu seguir iterando f en xn en lugar de considerar iterar las evaluaciones de y ? Eso es justo lo que propone el Mtodo de Steensen: dada yn una aproximacin a un punto jo x de f , denimos yn+1 = yn (f (yn ) yn )2 . f (f (yn )) 2f (yn ) + yn
Teorema 2.6.3 Sea f : [a, b] [a, b] una funcin de clase C 2 en [a,b], con un punto jo en x (a, b) (f (x) = x), f (x) = 1. Entonces, existe > 0 tal que [x , x + ] (a, b) y para cualquier y0 [x , x + ] el algoritmo de Steensen yn+1 = yn (f (yn ) yn )2 , f (f (yn )) 2f (yn ) + yn
est bien denido y converge hacia x con convergencia de orden al menos 2. Demostracin: Ideas que intervienen Escribir yn+1 x en trminos de yn x utilizando el desarrollo de Taylor de f en x.
54
UMU Mtodos Numricos, 2007-2008 Utilizar la notacin z (x) = o((x x)k ) para designar a los innitsimos l mxx y simplicar las expresiones.
z ( x) ( x x) k
= 0,
n{k,k } , (x x)k o((x x)k ) = Recordar que o((x x)k ) + o((x x)k ) = o((x x)m o((x x)k+k , etc.
f ( x) 2 (x f ( x) 2 (x
(f (x) x)2 = f (x)2 (x x)2 + o((x x)2 ) (ii) f x := f (x) x = (f (x) 1)(x x) +
f ( x) 2 (x
(f x)2 = (f (x) x)2 = (f (x) 1)2 (x x)2 + (f (x) 1)f (x)(x x)3 + o((x x)3 ;
( x) (iii) f (f (x)) f (x) = (f (x) 1)(f (x) x) + f 2 (f (x) x)2 + o((f (x) x)2 ) = ( x) = (f (x) 1)(f (x) x) + f 2 (f (x) x)2 + o((x x)2 ) ;
(iv) Restando (III-II) tenemos: 2 f x := f (f (x)) 2f (x) + x = (f (x) 1)(f (x) x) + f (x) 2 2 2 2 [(f (x) x) (x x) ] + o((x x) ) = ( x) (f (x) 1)2 (x x) + (f (x) 1) f 2 (x x)2 + f (x) 2 2 2 2 (f (x) 1)(x x) + o((x x) ) = ( x) (f (x) 1)2 (x x) + f 2 (f (x) 1)(1 + (f (x) + 1))(x x)2 + o((x x)2 ); (v) Consideramos g (x) = x g (x) x = =
( f ( x) x) 2 f (f (x))2f (x)+x .
( x) (f (x) 1)2 (x x) + f 2 (f (x) 1)(1 + (f (x) + 1))(x x)2 + o((x x)2 ) f ( x) 2 2 2 f (x)(x x) + o((x x) ) = ; ( x) (f (x) 1) + f 2 (1 + (f (x) + 1))(x x) + o(x x)
x) + o(x x)
El algoritmo correspondiente a la aceleracin de Steensen para iteraciones de punto jo es el siguiente. En recuadros grises con texto en blanco tenis las modicaciones al algoritmo de punto jo:
Algoritmos-Iteraciones
55
Algoritmo 2.9
Datos de entrada:Funcin f ; x0 R; precision R; nmaxiter Z Datos de salida: solucin x (f (x) = x) o mensaje de error Variables: xx = x0 // los puntos de la rbita. f x; // el siguiente punto de la rbita f. f f x; // para el siguiente punto de la rbita f(fx). Fujo del programa: for(k=1;k<=nmaxiter;k++){ f x = f (xx); f f x = f (f x); if(|xx f x| < precision){ Parada: Punto jo en xx } xx = xx ((f x xx) (f x xx))/(f f x 2 f x + xx); } Parada: Error: No hay convergencia en nmaxiter iteraciones
Notas: Observad que la hiptesis del teorema anterior, f (x) = 1, es ms general que pedir que el punto jo x sea un atractor, tambin puede darse en repulsores. La diferencia fundamental entre el mtodo de aceleracin de Aitken y el mtodo de Steffensen aplicados a una iteracin de punto jo, radica en que en el mtodo de Aitken la aceleracin se produce sobre la sucesin de iteradas que hay que construir de entrada, mientras que en el mtodo de Steensen se construye directamente la sucesin acelerada. Si las iteradas de punto jo convergen linealmente, la acelerada de Steensen lo hace al menos cuadrticamente. Si las iteradas de punto jo convergen con convergencia de orden p > 1, las de Steensen convergen con convergencia de orden al menos 2p 1 [1] Ejemplo 2.6.4 La funcin f (x) = 0.25ex considerada en los ejemplos 2.4.11, 2.4.12 y 2.6.2 , tiene dos puntos jos, uno atractor y el otro repulsor. Recordad que la iteracin de punto jo para f , con inicio x0 = 0.1 aproximamos el punto jo x = 0.35740295618138784 en 33 pasos, y que acelerando con Aitken este nmero de iteraciones se reduce a 15 pasos. El mtodo de Steensen con inicio en el mismo x0 = 0.1 proporciona la aproximacin a x = 0.35740295618138895 en slo 5 pasos. Si consideramos la funcin g (x) = f (x) x, que se anula en los puntos jos de f , podemos comparar el mtodo de Steensen de bsqueda de puntos jos de f con el de Newton para localizar los ceros de f . La iteracin de Newton para g , con inicio en x0 = 0.1 proporciona x = 0.3573508313620166 en 3 pasos. El otro cero de g se puede encontrar haciendo la iteracin de Newton con inicio en x0 = 2.1, obteniendo x = 2.153299834108639 en 3 iteraciones. Si hacemos la iteracin de Steensen de f con inicio en x0 = 2.1 obtenemos el punto jo repulsor x = 2.1532923641103503 en 5 pasos.
56
Observad que el mtodo de Steensen tambin permite localizar puntos jos repulsores, tal y como sealbamos antes.
2.7.
Los documentos se pueden descargar de la Zona Compartida de SUMA. Paquete de java: algoritmosIteraciones, con los mtodos y los ejemplos de la unidad. Hoja de problemas no 2 (22/10/2007) Practica no 3
Bibliografa
[1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ. Aut. de Barcelona, Barcelona, 1993. [2] R.L. Burden and J.D. Faires, Anlisis numrico, 7a edicin, Thomson-Learning, Mexico, 2002. [3] D. Kincaid and W. Cheney, Anlisis numrico, Ed. Addison-Wesley Iberoamericana, Reading, USA, 1994.
# #
Captulo
Repaso de conceptos bsicos del lgebra matricial. Triangulacin y diagonalizacin de matrices Propiedades de las matrices simtricas y hermitianas. Radio espectral.
" "
Cocientes de Rayleigh. Normas matriciales. Condicionamiento de un sistema lineal Un problema de anlisis numrico matricial.
! !
matricial. Saber denir el nmero de condicin de una matriz o de un sistema lineal y saber calcularlo. Conocer problemas modelizados por sistemas lineales de dimensin grande.
Este es el primer captulo de los cuatro dedicados al anlisis numrico matricial que aborda las dos cuestiones siguientes
La resolucin de sistemas de ecuaciones lineales: Dada una matriz no singular A y un vector b, encontrar el vector solucin x del sistema lineal
Ax = b.
El clculo de valores propios y vectores propios de una matriz: Dada una matriz cuadrada A, encontrar todos sus valores propios, o solo algunos signicativos, y eventualmente los vectores propios correspondientes. En otras palabras, encontrar vectores p = 0 y escalares R o C, tales que
Ap = p.
60
En los prximos tres captulos vamos a estudiar mtodos directos y mtodos iterativos para la resolucin de sistemas lineales y mtodos de clculo de valores y vectores propios, pero antes vamos a detenernos en observar un modelo que origina un sistema de ecuaciones lineales con el objetivo de que nos sirva de ejemplo del tipo de sistemas que pueden aparecer a la hora de buscar soluciones a problemas reales concretos. Por otra parte, para poder establecer criterios que nos permitan comparar entre los distintos mtodos, y analizar el condicionamiento y la estabilidad de los mismos, describiremos distancias entre matrices y aprenderemos a calcularlas.
Desarrollo de los contenidos fundamentales
Repaso de conceptos bsicos de lgebra matricial Origen de los problemas del anlisis numrico matricial. Normas matriciales. Normas subordinadas y sus propiedades. Anlisis del error y condicionamiento. Temporalizacin: 7HTe + 1HPb + (Al nalizar, primer examen parcial) 3HEv = 11 H
3.1.
3.1.1.
Sistemas de Ecuaciones
Un sistema de m ecuaciones lineales (simultneas) con n incgnitas es un conjunto de m ecuaciones con n incgnitas que se van a considerar relacionadas por la existencia de soluciones comunes. Formalmente, se suele representar as:
a11 x1 + a12 x2 + + a1n xn = b1 a21 x1 + a22 x2 + + a2n xn = b2
. . . . . . . . . . . . a x + a x + + a x = b m1 1 m2 2 mn n m donde los coecientes, aij , y los trminos independientes, bi , son escalares del cuerpo K (R o C). El primer ndice, i, indica la ecuacin en la que se encuentran los coecientes y los trminos independientes (1 i m); mientras que el ndice, j , de los coecientes indica la incgnita, xj , a la que multiplican (1 j n). Las soluciones del sistema de ecuaciones son las listas de escalares (x1 , . . . , xn ) que son soluciones de todas las ecuaciones al mismo tiempo (simultneamente).
Introduccin
61
Si un sistema de ecuaciones tiene soluciones se llama compatible y si no las tiene, incompatible. Un sistema compatible con una nica solucin se llama determinado y si tiene ms soluciones se llama indeterminado. Un sistema de ecuaciones donde todos los trminos independientes son nulos (b1 = = bm = 0) se llama homogneo y tiene siempre soluciones: al menos la solucin trivial x1 = = xn = 0. Se dice que dos sistemas de ecuaciones son equivalentes si tienen el mismo conjunto de soluciones. Recordad las siguientes operaciones que se utilizan para transformar los sistemas de ecuaciones en otros equivalentes que sean ms fciles de resolver: Estas operaciones elementales para un sistema de ecuaciones son: (i) Intercambiar dos ecuaciones de posicin. (ii) Multiplicar una ecuacin por un escalar no nulo. (iii) Sumar a una ecuacin un mltiplo escalar de otra ecuacin.
valente al original.
Teorema 3.1.1 Al aplicar una operacin elemental a un sistema, el sistema resultante es equi-
En el captulo siguiente utilizaremos operaciones elementales para recordar y describir el mtodo de Gauss de resolucin de sistemas de ecuaciones por eliminacin.
3.1.2.
Matrices
La informacin de que disponemos acerca de un sistema de ecuaciones la proporcionan los coecientes y los trminos independientes, que podemos ordenar as:
a11 a12 a1n b1 a21 a22 a2n b2 . . . . . . . . .. . . . . . am1 am2 amn bm
Estas ordenaciones rectangulares se llaman matrices y estn relacionadas con otros muchos problemas, adems de con los sistemas de ecuaciones. Si los elementos aij K con 1 i m y 1 j n, se llama matriz de m las y n columnas o matriz m n, a
a11 a12 a1n a21 a22 a2n , . . ... . . . . . . . am1 am2 amn (aij )1im .
1 j n
Tambin se suele decir que es una matriz de tipo (m, n), y se representa de forma abreviada mediante su termino general aij ,
62
si se sobrentiende el recorrido de los ndices. Los ndices de cada trmino aij nos dicen donde est colocado; el primero, i, indica la la, y el segundo, j , la columna. A veces, interesar indicar el trmino general de la matriz A en funcin de los ndices en la forma
A(i, j ) = aij .
El conjunto de las matrices m n de escalares se suele representar por Mmn (K), o simplemente por Mmn si el cuerpo K est claro. Si el nmero de las y el de columnas coinciden, m = n, se dice que la matriz es cuadrada, y se denota por Mn al conjunto de las matrices cuadradas. Si m = 1 tenemos las matrices la, y si n = 1, las matrices columna. A los conjuntos correspondientes se les suele denotar por Kn o Km (aunque si fuese necesario distinguir entre las o columnas se debe utilizar la notacin M1n o Mm1 ) al identicarlos con los productos cartesianos de K consigo mismos, que son los conjuntos formados por las listas ordenadas de escalares dispuestas en las o en columnas. Dada una matriz M , si consideramos solamente y en el mismo orden, los elementos que estn en la interseccin de algunas las y columnas apropiadas se obtiene una submatriz.
Al contrario, si se pegan matrices de tamaos convenientes se puede obtener otra de tamao mayor. Dicho al revs, la matriz grande se puede considerar descompuesta en bloques:
M= A B C D .
Ejemplo 3.1.3 Si
A veces es conveniente pensar en una matriz M descompuesta en bloques formados por cada una de sus las, en otras palabras, pensar en M como una columna de las. O pensar en M como en una la de columnas. En este sentido se utiliza normalmente la notacin :
Mi = (ai1 , . . . , ain ) Kn y M j = a1j
. . .
amj
Introduccin
63
Otro caso muy frecuente es el de la matriz del sistema que describamos al principio. A la submatriz formada por las n primeras columnas se le llama matriz de coecientes
a11 a12 a1n a21 a22 a2n , A= . . ... . . . . . . . am1 am2 amn b1 b2 B= . . . bm
se le llama columna de trminos independientes. La matriz completa (A | B ) se le llama matriz ampliada. Cuando coinciden el nmero de ecuaciones y l de incgnitas, la matriz de coecientes es una matriz cuadrada.
3.1.3.
Sea E un espacio vectorial de dimensin n sobre el cuerpo K (R o C). Una base de E es un conjunto {v1 , . . . , vn }, de n vectores linealmente independientes de E y todo vector x E admite una descomposicin nica de la forma
n
x=
i=1
xi vi .
Cuando la base est jada sin ambigedad, se identican cada vector x con sus coordenadas {x1 , . . . , xn } con respecto a esta base. As se identican E y Kn .
64
x = (x1 , . . . , xn ),
donde z es complejo conjugado de z C. El vector la xt es el vector traspuesto del vector columna x y x es el vector adjunto de x. Si K = R, el producto escalar eucldeo en E se dene por
n
(x, y ) = x y = y x =
i=1
xi yi ,
(x, y ) = y x =
x y
=
i=1
xi yi .
(x, x) =
i=1
|xi |2 ,
que dene la distancia euclidea en E . Junto a esta nocin de distancia tambin introduce la nocin de ortogonalidad (ngulo), x e y se dicen ortogonales cuando (x, y ) = 0. Observad que en relacin a este producto escalar, los vectores de la base jada vi son dos a dos ortogonales y todos tienen norma 1. Las bases formadas por vectores ortogonales de norma 1 se denominan bases ortonormales con respecto al producto escalar. Sean f : V W una aplicacin lineal, y {v1 , . . . , vn }, {w1 , . . . , wm } bases de V y W respectivamente. Los n vectores f (v1 ), . . . , f (vn ) estn en W por lo que pueden escribirse de forma nica como combinacin lineal de la base {w1 , . . . , wm }:
f (v2 ) = a12 w1 + a22 w2 + + am2 wm ...... ... f (v1 ) = a11 w1 + a21 w2 + + am1 wm
Se obtienen as m n escalares aij (i = 1, . . . , m, j = 1, . . . , n) en los que los subndices (ij ) expresan que se trata de la i-sima (primer ndice) coordenada de la imagen del j -simo (segundo ndice) vector de la base de V . Estos m n escalares determinan una matriz m n
a11 a1n M = (aij ) = . . . . . . . . am1 amn
Introduccin
65
que se llama matriz asociada a la aplicacin lineal f : V W con respecto de las bases
{v1 , . . . , vn }, {w1 , . . . , wm }. Ntese que la columna j de M , Mj =
amj
. . .
Ejemplo 3.1.5 Sea A = (aij ) una matriz m n sobre un cuerpo K. Denimos una aplicacin fA : Kn Km como sigue: dado un vector (x1 , . . . , xn ) Kn ,
fA (x1 , . . . , xn ) =
n j =1
a1j xj ,
n j =1
a2j xj , . . . ,
n j =1
amj xj , .
la aplicacin fA as denida es lineal y nos referiremos a ella como la aplicacin lineal asociada a la matriz A. Evidentemente la matriz asociada a la aplicacin lineal fA respecto de las bases cannicas de Kn yKm es precisamente A. Trataremos a continuacin el problema de obtener la matriz asociada a una composicin de aplicaciones lineales cuando se conocen las matrices asociadas a cada uno de los factores. Para ello, supongamos que tenemos dos aplicaciones lineales g : U V y f : V W tales que el espacio nal de la primera coincide con el espacio inicial de la segunda. Fijadas las bases {u1 , . . . , up } de U , {v1 , . . . , vn } de V y {w1 , . . . , wm } de W , llamamos N = (bhk ) a la matriz n p asociada a g , y M = (aij ) a la matriz m n asociada a f . La aplicacin compuesta f g : U W tambin es lineal y con respecto a las bases {u1 , . . . , up } de U y {w1 , . . . , wm } de W tendr asociada una matriz m p que denotaremos P = (crs ), y vamos a tratar de encontrar el modo de relacionar la matriz P de f g con las matrices N , M de g y f respectivamente. Comencemos jando un vector us de la base de U . Para este vector se tiene
(f g )(us ) = c1s w1 + + cms wm
(1) (2)
y
g (us ) = b1s v1 + + bns vn
(3)
66
de un vector con respecto a determinada base son nicas, tenemos las igualdades
ark bks
k=1
(4)
(r = 1, . . . , m), y estas igualdades son vlidas cualquiera que sea us (s = 1, . . . , p). Hemos obtenido, por tanto, una frmula que nos permite calcular la matriz P a partir de las matices N y M . Esta frmula (4) se suele resumir diciendo que el elemento que ocupa la la r-sima y la columna s-sima de P se obtiene multiplicando la la r-sima de M por la columna s-sima de N . De acuerdo con la denicin que estableceremos a continuacin diremos que la matriz P de f g es el producto M N de la matriz de f por la matriz de g . Dada una matriz m n, M = (aij ), y una matriz n p, N = (bhk ), llamamos matriz producto de M por N y lo representaremos por M N a la matriz m p cuyo elemento crs es
n
crs =
k=1
arn bns .
de
Es importante hacer notar que para que el producto M N M ha de coincidir con el nmero de las de N .
Observar que con esta notacin, si identicamos los vectores x Kn con los vectores columna, para cada matriz cuadrada fA (x) = Ax. Dado el sistema de ecuaciones
a11 x1 + a12 x2 + + a1n xn = b1 a21 x1 + a22 x2 + + a2n xn = b2
si A es la matriz de coecientes y b es el vector columna de los trminos independientes, podemos escribirlo en forma matricial como
Ax = b,
. . . . . . . . . . . . a x + a x + + a x = b m1 1 m2 2 mn n m
Introduccin
67
por
lo que implica que (M )ij = aji . M es la matriz obtenida al cambiar las por columnas en A y tomar conjugados. La traspuesta de la matriz A Mmn (R) es la matriz At Mnm denida de forma nica
(M u, v )m = (u, M t v )n
para todo
u Rn y v Rm ,
Ejercicio 3.1.1 Comprobad que (AB )t = B t At y que (AB ) = B A . y el producto de matrices tiene estructura de anillo no conmutativo con elemento unidad.
La matriz unidad con respecto al producto es I Mn (K), la matriz I = (ij ) que tiene 1 en todos los trminos de la diagonal principal y 0 fuera de la diagonal.
AI = IA para toda A Mn (K).
De ahora en adelante y salvo que digamos lo contrario slo vamos a considerar matrices cuadradas A Mn (K) := Mnn (K). El espacio de las matrices cuadradas con la suma
Una matriz A se dice inversible cuando existe A1 tal que AA1 = A1 A = I . En caso contrario se dice que la matriz es singular. El clculo de la matriz inversa de una matriz inversible A se puede identicar con el problema de resolver los sistemas lineales Ax = ej donde ej es la base cannica de Kn , pues sus soluciones son los vectores columna de A1 . As, por ejemplo, cuando en el siguiente captulo escribamos el algoritmo de Gauss de resolucin de sistemas, podremos modicarlo para invertir matrices fcilmente.
simtrica, si A Mn (R) y A = At . hermitiana, si A = A . ortogonal, si A Mn (R) y A1 = At , e.d. AAt = At A = I . unitaria, si A1 = A , e.d. AA = A A = I . normal, si AA = A A. Ejercicio 3.1.3 Observad que una matriz es ortogonal-unitaria si, y solo si, los vectores la
(resp vectores columna) forman una base ortonormal de Kn .
68
tr(A) =
i=1
aij .
donde Gn es el grupo de las permutaciones de {1, 2, . . . , n} y es la signatura de la permutacin. Recordad que det(AB ) = det(BA) = det(A)det(B ). Recordad que un sistema de ecuaciones Ax = b es compatible determinado, si y slo si, A es inversible, si y slo si det(A) = 0.
A = (aij ) es una matriz no singular n n y b = (b1 , ..., bn )t Kn , la solucin al sistema lineal Ax = b tiene por coordenadas xj =
ars br
si s = j si s = j
Los valores propios de una matriz A son los complejos C para los que existen vectores no nulos p tales que Ap = p.Tambin se dice que p es un vector propio de . Los valores propios de A son los ceros del polinomio caracterstico
pA () = det(A I )
n i=1 i
y que det(A) =
n i=1 i .
Comprobad tambin que si A es ortogonal o unitaria, entonces todos sus valores propios tienen mdulo 1.
Introduccin
3.1.4.
69
Reduccin de matrices
y B = P 1 AP . Si u es una solucin del sistema de ecuaciones Bu = P 1 b, entonces x = P u es solucin del sistema Ax = b, en efecto:
P 1 AP u = P 1 b AP u = b x = P u.
Sea Ax = b un sistema de ecuaciones, sea una matriz inversible P (un cambio de base en Kn )
Reducir una matriz A consiste en encontrar una matriz inversible P tal que P 1 AP sea tan simple como sea posible. Los casos ms favorables en este sentido se tienen cuando P 1 AP es una matriz diagonal o una matriz escalonada (triangular). En estos casos los elementos de la diagonal son los valores propios de A y la resolucin de los sistemas de ecuaciones es muy simple. Cuando existe P tal que P 1 AP es diagonal, se dice que A es diagonalizable (en este caso los vectores columna de P forman una base formada por vectores propios de A). 1 Aunque no todas las matrices son diagonalizables (probad con ( 1 0 1 )), siempre se puede encontrar un buen cambio de base que las transforma en matrices triangulares:
Teorema 3.1.6
(i) Dada (ii) Dada
una matriz cuadrada A, existe una matriz unitaria U tal que la matriz U 1 AU es una matriz triangular superior, i.e. U 1 AU (i, j ) = 0 si i > j .
una matriz normal A, existe una matriz unitaria U tal que la matriz U 1 AU es una matriz diagonal. una matriz simtrica A, existe una matriz ortogonal O tal que la matriz O1 AO es una matriz diagonal.
(iii) Dada
Demostracin:
(1) Primero se prueba por induccin la existencia de un cambio de base (no necesariamente ortonormal) que transforma la matriz A en una triangular. Ortonormalizando la base anterior con el mtodo de Gram-Schmidt se obtiene el cambio de base ortonormal que produce la matriz unitaria buscada. (2) T = U 1 AU = U AU . Si A es normal (A A = AA ), T tambin es normal:
T T = U A U U AU = U A AU
Si T es triangular superior y normal, entonces T es diagonal. (3) Si A es simtrica, los pasos de la prueba de (1) y (2) se pueden hacer sin salir de R, por lo tanto cambiando adjuntas por transpuestas y unitaria por ortogonal se obtiene la prueba.
70
z hermitiana (o si A es real) que siempre son positivos (comprobadlo como ejercicio). Los valores singulares son todos > 0 si A es no singular. En efecto:
A A At A Ap = 0 A Ap = 0 p A Ap = 0 (Ap) (Ap) = 0 Ap = 0.
Se
z A
Teorema 3.1.7 Si
U t AV
A es una matriz real cuadrada, existen dos matrices ortogonales U y V , tales que = diagonal(i ). Y si A es una matriz compleja cuadrada, existen dos matrices unitarias U y V , tales que U t AV = diagonal(i ).
Los uj as denidos tienen norma 1 y son 2-2 ortogonales. Se completa la lista uj (en los casos fj = 0) con vectores ortonormales para tener una base ortonormal. la matriz U con vectores columna uj es unitaria/ortogonal y cumple U t AV = diagonal(i ).
3.1.5.
En este apartado vamos a enunciar los resultados para matrices complejas hermitianas aunque tambin se aplican a las matrices reales simtricas simplemente sustituyendo los adjetivos hermitiana, unitaria, adjunta y compleja por simtrica, ortogonal, traspuesta y real.
meros reales
Para caracterizar los valores propios de una matriz hermitiana (recordad que todos son n) vamos a hacer uso de la siguiente denicin
A una matriz cuadrada de dimensin n. El cociente de Rayleigh de A es la aplicacin RA : C \ {0} C denida por (Av, v ) v Av = . (v, v ) v v
Introduccin y
71
Observad tambin que RA toma los mismos valores en toda la semirecta denida por v :
RA (v ) = RA v v .
2
Teorema 3.1.9 Sea A una matriz hermitiana de dimensin n, con valores propios
y con una base ortonormal de vectores propios p1 , ..., p2 , e.d. tales que
(pi , pj ) = ij , y Api = i pi . 1 2 n ,
Sk = {E0 }.
(i) (ii) (iii) (iv) (v)
Para cada k = 1, . . . , n sea Ek el subespacio generado por {p1 , p2 , ..., pk }, y denotemos por Sk a la familia de todos los subespacios de Cn con dimensin k. Pongamos tambin E0 = {0} y Los valores propios de A admiten las siguientes caracterizaciones
k = RA (pk ). k = m ax{RA (v ) : v Ek \ {0}}. k = m nE Sk m ax{RA (v ) : v E \ {0}}. (Courant-Fischer) k = m axE Sk1 m n{RA (v ) : v E }. (Courant-Fischer) k = m n{RA (v ) : v Ek1 }.
Demostracin:
wn
v AV w U AU w D = = = V V w U U w w w
En la ltima seccin del captulo utilizaremos estas caracterizaciones para calcular nmeros
de condicin de sistemas lineales.
Una matriz hermitiana se dice denida positiva (resp. positiva) si
1 = m n{RA (v ) : v
= 1} y n = m ax{RA (v ) : v
= 1}.
para todo
v = 0. 1 > 0).
Una matriz hermitiana denida positiva tiene todos sus valores propios positivos (
72
3.2.
Dentro de los mtodos numricos objeto de este curso algunas soluciones a problemas no lineales pasan por aproximar el problema a uno lineal resolverlo y despus iterando el proceso
aproximarnos a la solucin.
Por
o en problemas de aproximacin por mnimos cuadrados que tambin forman parte de este curso.
maciones lineales a las ecuaciones diferenciales en derivadas parciales de la Fsica (movimiento armnico, ecuacin del calor, ...) que resultan al discretizar los problemas.
aparecen sistemas con muchas ecuaciones y matrices de coecientes con aspectos particulares donde los ceros aparecen dispuestos de forma especial (matrices tridiagonales o tridiagonales por bloques). En este apartado vamos a reproducir el mtodo de las diferencias nitas para una ecuacin diferencial lineal de segundo grado en dimensin 1 con condiciones frontera [3, seccin 3.1]: Consideremos dos funciones continuas en [0,1], c(x), f (x) C ([0, 1]), y dos constantes a, b R.
u (x) + c(x)u(x) = f (x), u(0) = a, u(1) = b. 0 < x < 1,
Un ejemplo de una situacin fsica donde aparece este problema es el del estudio de los momentos
u(x)
de la echa de una viga de longitud 1, estirada por a lo largo de su eje por la accin de una fuerza (que determina c(x)) y sometida a la accin de una carga perpendicular f (x)dx en cada punto de abcisa x.
x + dx
f (x)dx
Para obtener aproximaciones de u(x) con el mtodo de las diferencias nitas, se consideran particiones equidistribuidas de [0,1], 0 = x0 < x1 < ... < xN +1 = 1, xi = i/(N + 1), h =
xi xi1 = 1/(N + 1), y se hacen las aproximaciones: u u (xi )
u(xi )u(xi1 ) , h u (xi+1 )u (xi ) (xi ) h
i = 1, 2, ..., N + 1,
u(xi+1 )2u(xi )+u(xi1 ) , h2
i = 1, 2, ..., N.
Despus se trasladan estas aproximaciones a la ecuacin diferencial y se tiene el sistema de N ecuaciones lineales
u(xi+1 ) 2u(xi ) + u(xi1 ) + c(xi )u(xi ) = f (xi ), h2 i = 1, ..., N,
con incgnitas ui = u(xi ), i = 1, ..., N (u(x0 ) = a y u(xN +1 ) = b son las condiciones frontera). El sistema de ecuaciones se puede escribir
Introduccin y
73
u3
.. .
La matriz de coecientes tiene una forma muy particular, es de las llamadas tridiagonales (sus coecientes son cero fuera de la diagonal principal de la matriz y de las dos diagonales contiguas).
(c(x1 )h2 + 2) 1 1 (c(x2 )h2 + 2) 1 ... ... ... 1 (c(xN 1 )h2 + 2) 1 1 (c(xN )h2 + 2)
uN 2
)h2
de coe
cientes tridiagonales como la de este modelo. Observad que para tener buenas aproximaciones numricas a la solucin u(x) del problema hay que considerar sistemas con muchas ecuaciones correspondientes a considerar muchos puntos. Ejemplos como este muestran la necesidad de disponer de mtodos estables de resolucin de ecuaciones capaces de trabajar con muchas ecuaciones y con ecuaciones con muchos ceros.
En el captulo siguiente veremos mtodos para la resolucin de sistemas lineales con matrices
3.3.
Normas matriciales
Una
norma
sobre
es una aplicacin
x =0
x = 0.
para todo
x, y E
y todo
(desigualdad tringular).
para todo
xE
a K.
distanca en
Todas las normas denidas en un espacio de dimensin nita E son equivalentes en el sentido
de que todas denen la misma topologa.
= =
x x =
(x, x),
74
norma
matricial
denida en
Mn (K)
Mn (K)
de orden
es una norma
AB A
(Mn (K) es isomorfo a
B ,
para todo
A, B Mn (K). A =
n i,j =1 |A(i, j )|? )
Kn
Dada una norma en Kn , utilizando la identicacin de las matrices A con los operadores lineales que denen fA , podemos considerar la norma de la aplicacin lineal fA para denir la norma matricial subordinada a la norma , de Kn . Esta norma se dene por
A = sup{ Ax Ax Ax : x Kn 0} = sup{ : x 1} = sup{ : x = 1}. x x x
Lo que las hace interesantes para intentar medir la estabilidad y el condicionamiento de los sistemas lineales Ax = b. Existen normas matriciales que no estn subordinadas a ninguna norma de Kn como mostraremos ms adelante.
El siguiente teorema ofrece informacin sobre las normas subordinadas a las ms usuales
Ax 1 : x x 1 Ax : x x Ax 2 : x x 2
1
=1 =1
= m ax
j i
|aij | |aij |
2
= m ax
i j
=1
(A A) = A
La norma
= AU
= UA
= U AU
2.
= (A).
rrespondientes.
2
Para la
= sup
=1 .
Introduccin y
75
= 1.
2
2 , A E = i,j |aij | n es una norma matricial no subordinada a ninguna norma en K pero que sirve para acotar
la norma
que
la norma eucldea en Mn Kn
n A 2.
Si A es normal A 2 = (A). Aunque esta identidad no es cierta para todas las matrices, el radio espectral tiene la siguiente propiedad:
Teorema 3.3.2 Si A es una matriz cuadrada y
entonces es una norma matricial (subordinada o no),
(A) A .
En sentido recproco, si A es una matriz y > 0, existe una norma matricial subordinada tal que
A (A) + .
Demostracin:
[Prueba completa en Ciarlet [3] seccin 1.4] Ideas que intervienen Sea p = 0 un vector propio del valor propio , || = (A), y sea q un vector tal que la matriz pq t = 0. (Escribe la matriz!)
(A) pq t = pq t = (Ap)q t = A(pq t ) A pq t ,
Para la segunda parte, la idea es considerar el cambio de base que triangula la matriz
forma que casi-diagonalize la matriz A. La norma del supremo al hacer este cambio de base ser la que proporciona la norma subordinada del enunciado.
... ... n1
u1 n u2 n . . . un1,n n
76
... ... n1
Tomando
1)
que
n j i u | ij j =i+1 |
<
para
i = 1, 2, .., n 1
(U D )1 A(U D )
(A) + .
Si consideramos la norma
verica la propiedad buscada:
= U D )1 v
= (U D )1 A(U D )
(A) + .
Corolario 3.3.3
(A) = nf { A :
3.3.1.
Convergencia de matrices
Recordad que en dimensin nita la convergencia de las sucesiones es independiente de la norma considerada porque todas las normas son equivalentes. El siguiente teorema caracteriza las sucesiones de potencias B k de matrices que convergen a 0 en trminos del radio espectral. De este resultado deduciremos los mtodos iterativos de resolucin de sistemas de ecuaciones lineales.
lentes:
(i) (ii) (iii) (iv)
Teorema 3.3.4 Si
Demostracin:
k.
Bk
v , vlida
Introduccin y
77
II III . Sea un valor propio con || = (B ) y p un vector propio asociado, entonces B k p = ()p v 0, ()p 0, y || = (B ) < 1. III IV . Es el teorema 3.3.2 .
El
radio espectral tambin servir para medir la rapidez con que convergen los mtodos
iterativos.
l m B k
1 k
= (B ).
. (B ) < 1.
k <1 cientemente grande B
> 0,
la matriz
B =
1 (B )+ B
y entonces
k = 0, l mk B
su
(B ) = B k
1 k
k = B
(B ) + (B ) + .
3.4.
Este sistema perturbado tiene como solucin x = 2 e y = 0. Un error pequeo en los datos iniciales (en el trmino independiente) ha producido un error grande en la solucin.
78
x = 0.9999E 5
y = 1.99990001.
Supongamos que A es una matriz invertible (no singular) y que consideramos las soluciones
Ax = b
y
A(x + x) = b + b.
x A 1
b A
x .
Se deduce fcilmente que Ax = A(x +x) y que x = A1 A(x +x) Para cualquier
norma subordinada se cumple:
x A 1
x + x .
Acotando el error relativo en x (esta vez con respecto a x + x ) en funcin del error relativo en A se tiene
x A1 x + x A = A1 A A . A
1.7), en el sentido de medir la sensibilidad de la solucin de un sistema de ecuaciones lineales con respecto a perturbaciones en el trmino independiente o en la matriz de coecientes, podemos establecer la siguiente denicin:
Introduccin y
79
y una matriz cuadrada invertible A, se dene el nmero de condicin de la matriz A con respecto a esta norma por
A1 .
Los dos teoremas siguientes prueban que el nmero de condicin que acabamos de denir es la mejor acotacin posible en las dos desigualdades que hemos encontrado para denirlo
Teorema 3.4.2 Sea A una matriz invertible, x y x + x las soluciones de los sistemas
Ax = b y A(x + x) = b + b.
Si b = 0 entonces
Adems esta desigualdad es la mejor posible en el sentido de que se pueden encontrar un vector
b = 0 y un vector b = 0 para los que la desigualdad se convierte en igualdad.
Demostracin:
b x cond(A) . x b
seccin 2.2]
Au = A
A1 (b)
K proporciona u = 0 = A 1 b .
Teorema 3.4.3 Sea A una matriz invertible, x y x + x las soluciones de los sistemas
Ax = b y (A + A)(x + x) = b.
Si b = 0 entonces
Adems esta desigualdad es la mejor posible en el sentido de que se pueden encontrar un vector
b = 0 y una matriz A = 0 para los que la desigualdad se convierte en igualdad.
Demostracin:
x A 1 x + x
A = A 1
A . A
seccin 2.2]
La denicin del nmero de condicin depende de la norma subordinada considerada. Denotaremos cond2 (A) = A1 2 A 2 al nmero de condicin correspondiente a la norma euclidea. Reuniendo los resultados que hemos ido obteniendo a lo largo del captulo podemos obtener el siguiente teorema:
80
Teorema 3.4.4
(i)
cond(A) 1,
(ii)
Las armaciones (II y III) nos permiten pensar que el nmero de condicin cond2 (A) co-
Introduccin y
3.5.
81
Bibliografa
[1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ. Aut. de Barcelona, Barcelona, 1993. [2] R.L. Burden and J.D. Faires, Anlisis numrico, 7 2002. [3] P.G. Ciarlet, Introduction l'analyse numrique matricielle et l'optimisation, Masson, Paris, 1990. [4] D. Kincaid and W. Cheney,
a edicin,
Thomson-Learning, Mexico,
Anlisis
numrico,
Ed.
Addison-Wesley
Iberoamericana,
Captulo
Analizar tcnicas de resolucin de sistemas de ecuaciones lineales. Aprender mtodos de resolucin : Mtodo de Gauss. Factorizacin LU y Choleski.
#
Resolver sistemas de ecuaciones lineales utilizando los mtodos directos del lgebra lineal. Implementar los mtodos en el ordenador. Comparar su estabilidad y ecacia, y elegir el ms adecuado a cada problema. Aplicar los programas construidos de forma efectiva en la bsqueda de la solucin de sistemas lineales concretos.
"
!
84
Ax = b.
La complejidad numrica de cada uno de los mtodos se va a medir en funcin del nmero de operaciones que requiere y la estabilidad en los clculos se va a analizar en funcin del tipo de operaciones que se realizan.
orden,
En los tres mtodos propuestos el nmero de operaciones para un sistema n n es del mismo
O(n3 ).
La eleccin entre uno u otro depender de la naturaleza del sistema y del control
En los tres mtodos propuestos se simplica el problema de resolver un sistema de ecuaciones, El problema de calcular la inversa A1 de una matriz no singular A se reduce a la resolucin
sistemas lineales. Si
reducindolo a resolver sistemas fciles (triangulares). Usando estas reducciones, con cualquiera de los mtodos descritos permite calcular el determinante de una matriz.
de
{e1 , ..., en }
Kn ,
A1 = (u1 , ..., un )
Au k = e k .
4.1.
La solucin se reduce a
a11 0 0 a22 . . 0 0
0 0 . ann
x1 x2 . xn
b1 a11 b2 a22
b1 b2 . bn
x1 x2 . xn
.
bn ann
85
mtodo ascendente :
a11 a12 0 a22 . . 0 0
... ... ... ...
U upper
b1 b2 . bn
) y no singular, podemos
x1 x2 . xn
comenzando por encontrar la ltima coordenada en la ecuacin de abajo y sistema, calculando una nueva coordenada con cada ecuacin.
ascendiendo por el
xn =
xk = (bk
xj ))/Ak,k
para
k = n 1, n 2, ..., 1
Algoritmo 4.1
Mtodo Ascendente.
coecientes del sistema, sin ceros
en la diagonal);
A[n][n] (Matriz triangular sup. de b[n] (vector trmino independiente.); n (dimensin de A y b) Variables: x[n];// un vector donde escribir la solucin.
Datos de entrada: Fujo del programa:
for(k=n;k>=1;k){ n //xk = (bk j =k+1 (Ak,j xj ))/Ak,k xk = bk ; j = k + 1; for(j=k+1;j<=n;j++){ xk = xk Ak,j xj ; } xk = xk /Ak,k ; } Datos de salida: Solucin x del sistema.
86
mtodo descendente :
a11 0 a21 a22 . . an1 an2
... ... ... ...
L lower
b1 b2 . bn
) y no singular, podemos
0 0 . ann
x1 x2 . xn
comenzando por encontrar primera coordenada en la ecuacin de arriba y el sistema, calculando una nueva coordenada con cada ecuacin.
descendiendo por
x1 =
b1 An,n k 1 j =1 (Ak,j
xk = (bk
es:
xj ))/Ak,k
para
k = 2, 3, ..., n
En este caso el mximo nmero de operaciones necesarias para encontrar la solucin tambin
1 + 3 + ... + (2k 1) + .. + (2n 1) = n2
Algoritmo 4.2
la diagonal);
Mtodo Descendente.
A[n][n] (Matriz triangular inf. de coecientes del sistema, sin ceros en b[n] (vector trmino independiente.); n (dimensin de A y b) Variables: x[n];// un vector donde escribir la solucin.
Datos de entrada: Fujo del programa:
for(k=1;k<=n;k++){ n //xk = (bk j =k+1 (Ak,j xj ))/Ak,k xk = bk ; j = k + 1; for(j=1;j<k;j++){ xk = xk Ak,j xj ; } xk = xk /Ak,k ; } Datos de salida: Solucin x del sistema.
87
Tal y como recordaris del curso de lgebra lineal, el mtodo de Gauss para resolver sistemas
de ecuaciones
Ax = b
i,j =1,...,n
i,j =1,...,n
A( k )
a11 0 0
. . .
(k )
a12 (k ) a22 0
. . .
(k )
... ...
. .
...
(k )
(k )
U = A(n) .
Evidentemente, para que el sistema resultante sea equivalente al inicial debemos hacer en la
columna de los trminos independientes b(k) (con b = b1 ) las mismas operaciones que en las matrices A(k) y quedarnos con v = b(n) . Los pasos a seguir para obtener A(k+1) y b(k+1) partiendo
de
en el ltimo paso
A( k )
b (k )
(i)
(k ) (k ) Bsqueda del pivote: |akp | = m ax{|akj | : j = k, ..., n}, (el mayor elemento de la columna),
con localizacin de la la y
p donde se alcanza. Observad que si el pivote es 0, la matriz de coecientes es singular y el sistema no es compatible determinado. k
y
de
A( k )
y de
b (k ) .
En la construccin del algoritmo se sustituye esta permutacin por el uso de un puntero (permutacin)
: {1, 2, .., n} {1, 2, .., n}
de manera que (k) = p apunta a la la p donde est el puntero sin necesidad de permutar las dos las.
(iii)
Eliminacin: Se utiliza que el pivote es no nulo para ir anulando los elementos de la columna
k ba jo
la la diagonal, restando a cada la
(k ) aik (k ) , akk
i = k + 1, ..., n
de
A( k )
y de
bk ,
la correspondiente
primeras las.
(k+1) Ai
(k ) Ai
aik
(k )
(k ) akk
(k ) Ak
(k+1) bi
(k ) bi
aik
(k )
(k ) akk
bk .
(k )
88
Algoritmo 4.3
Datos de entrada:
A[n][n]
b[n]
(vector trmino
independiente.);
(dimensin de
Variables:
A y b) B [n][n];// una
A.
v [n] ;// un vector donde ir haciendo las modicaciones de b. [n];// un vector puntero donde anotar las permutaciones de // [k ] apunta hacia la la que ocupara la posicin k x[n];// un vector donde escribir la solucin.
Fujo del programa:
iniciales
for(k=1;k<n;k++){
k = 1, 2, ..., n 1.
singular
m = (k ) ; (k ) = (p) ; (p) = m
// 3. Eliminacin.
for(i=k+1;i<=n;i++){ mul = B(i),k /B(k),k ; B(i),k = 0 ;//Asignamos el valor 0 en lugar for(j=k+1;j<=n;j++){ B(i),j = B(i),j mul B(k),j ; } v(i) = v(i) mul v(k) ; }
for(k=n;k>=1;k){ n //xk = (v (k) j =k+1 (B (k),j xj ))/B (k),k xk = v(k) ; j = k + 1; while(j<=n){ xk = xk B(k),j xj ; j ++ ; } xk = xk /B(k),k ; } Datos de salida: Solucin x del sistema o mensaje de
error si
es singular.
89
para reducir el sistema a uno triangular superior dependiendo de la dimensin n del sistema en el mtodo anterior g (n) se puede calcular observando que (i) g (1) = 0.
g (n) = (n 1) (2 n + 1) + g (n 1) = 2 n2 n 1 + g (n 1), teniendo en cuenta que para pasar de A(1) a A(2) y de b(1) a b(2) , para cada la i = 2, ..., n de A(1) tenemos que construir el multiplicador de (1 divisin), en cada uno de los n 1 elementos j = 2, ...n de cada columna hay que hacer una multiplicacin y una resta (2 (n 1) operaciones) y en la misma la de b(1) hay que hacer una multiplicacin y una resta (2 operaciones). El problema de reducir A(2) equivale a reducir una matriz de dimensin n 1.
n 2 i=1 n
El nmero mximo de operaciones (sin contar las permutaciones de las o el uso del puntero)
(ii)
(iii) g (n) = 2
n i=1 n
1 2 7 3 n= 2 3 n + 2 n 6 n.
Tal y como hacais en la asignatura de lgebra lineal, se puede modicar el algoritmo para
Ax = ei (i = 1, ..., n)
calcular la matriz inversa de donde
Otra variante que se puede realizar es el mtodo de Gauss-Jordan, que consiste en realizar tambin el proceso de eliminacin de los elementos que estn sobre la diagonal, transformando el sistema de ecuaciones en uno equivalente donde la matriz de coecientes va a ser diagonal.
El mtodo de Gauss se puede optimizar al cambiar la estrategia seguida en la eleccin del pivote, buscando el elemento de mayor mdulo
(k ) | = m ax{|aij | : i = k, ..., n; j = k, ..., n}, |amp (k )
entre las las y columnas i k y j k. La nalidad es evitar hacer divisiones por nmeros muy pequeos que pueden producir nmeros muy grandes y clculos inestables al operar con nmeros de distinto tamao. De esta manera construimos el algoritmo de Gauss de pivote total. Como en el caso del pivote parcial, en lugar de permutar columnas en la matriz, lo que signicara permutar las en el vector solucin x, lo que se hace es utilizar un puntero donde sealar la posicin de cada columna.
En el algoritmo 4.4
90
Algoritmo 4.4
Datos de entrada:
A[n][n] b)
b[n]
(vector trmino
independiente.);
(dimensin de
Variables:
A B [n][n];
v [n] ; la[n];// un vector puntero donde anotar las permutaciones de las las. colu[n] // // un vector puntero donde anotar las permutaciones de las columnas. x[n];// un vector donde escribir la solucin. Fujo del programa: B =A ; v =b ;// Condiciones iniciales for(j=1;j<=n;j++){ la(j ) = j ; colu(j ) = j } // Vamos a hacer las etapas k = 1, 2, ..., n 1. for(k=1;k<n;k++){
// 1. Eleccin del pivote (total). p=k; q=k //buscamos desde la la k y la columna k
m = la(k ) ; la(k ) = la(p) ;la(k ) = la(p) ; la(p) = m ; m = colu(k ) ; colu(k ) = colu(q ) ;colu(k ) = colu(q ) ; colu(q ) = m
// 3. Eliminacin.
for(i=k+1;i<=n;i++){ mul = Bla(i),colu(k) /Bla(k),colu(k) ; Bla(i),colu(k) = 0 ;//Asignamos el valor 0 en lugar de hacer for(j=k+1;j<=n;j++){ Bla(i),colu(j ) = Bla(i),colu(j ) mul Bla(k),colu(j ) ; } vla(i) = vla(i) mul vla(k) ; }
las operaciones
// Resolvemos el sistema por el mtodo ascendente. for(k=n;k>=1;k){ xcolu(k) = (vla(k) n j =k+1 (Bla(k),colu(j ) xcolu(k) = vla(k)
//
xcolu(j ) ))/Bla(k),colu(k)
es singular.
Mtodos
91
4.3.
Factorizacin LU
Supongamos que la matriz A = (a )i,j =1, ,n admite una factorizacin como el producto de una matriz triangular inferior L por una matriz triangular superior U , A = LU
ij ...
y
U x=y
con los mtodos descendente y ascendente descritos en los apartados de arriba. Cuando se puede hacer este tipo de factorizaciones, se dice que A tiene una factorizacin LU . Adems, la factorizacin no es nica, como veremos se puede asignar un valor distinto para cada lkk y cada ukk , aunque los productos lkk ukk si que permanecen constantes. Para deducir la factorizacin LU comenzamos mltiplicando las matrices, obteniendo las ecuaciones
n m n(i,j ) s=1
ai,j =
s=1
li,s us,j =
li,s us,j
Con estas ecuaciones, por etapas, podemos ir determinando las las de U y las columnas de L. Supongamos que tenemos determinados las (k-1) primeras las de U y las (k-1) primeras columnas de L. La ecuacin correspondiente al trmino ak,k :
k 1
ak,k =
s=1
lk,s us,k
s=1
El producto
pk = lk,k uk,k est denido de forma nica. Ahora podemos seguir distintos criterios para determinar los valores de lk,k y de uk,k :
Criterio de
=U t , es decir
lS,k =uk,S .
En particular
lk,k =uk,k = pk
92
uk,k ,
1 ak,j = k s=1 lk,s us,j +lk,k uk,j 1 lk,k uk,j = ak,j - k s=1 lk,s us,j k 1 ai,k = s=1 li,s us,k +li,k uk,k 1 li,k uk,k = ai,k - k s=1 li,s us,k Si pk = lk,k uk,k =0, la la k ( uk,j ) de U y la columna k ( li,k ) de L estn denidas de forma
nica.
Algoritmo 4.5
A[n][n] (Matriz de coecientes del sistema.); n (dimensin de A) Variables: L[n][n]; U [n][n]// matrices para escribir las matrices triangulares
Datos de entrada:
superiores e
inferiores.
aux;//
aux = 0. ; for(k=0;k<n;k++){ aux = A[k ][k ]; for(s=0;s<k;s++){ // de Fila aux = aux L[k ][s]U [s][k ]; } if(aux==0){
k de L por Columna k de U.
} L[k ][k ] = 1.; U [k ][k ] = aux; for(j=k+1;j<n;j++){// de Fila k de L por Columna j aux = A[k ][j ]; for(s=0;s<k;s++){ aux = aux L[k ][s] U [s][j ];
}
de U.
U [k ][j ] = aux;
}
for(i=k+1;i<n;i++){// de Fila i de L por Columna k aux = A[i][k ]; for(s=0;s<k;s++){ aux = aux L[i][s] U [s][k ];
}
de U.
Mtodos
93
4.4.
2 vv , vv
v=0
un vector de
Cn ,
H (0) = Id.
v
v a) 2 v( v v (v a)v v v
H (v )a = a
H (v )a
con respecto
v,
v.
Ejercicio 4.4.1 Demuestra que las matrices H (v) son unitarias y simtricas.
Adems de por las propiedades expuestas en el ejercicio anterior, estas matrices son interesantes en anlisis numrico por el siguiente teorema
Teorema 4.4.1 Sea a un vector de Cn . Entonces existen dos matrices de Householder H tales
que
Ha
a1
De forma ms precisa, si
a =
an
entonces para
. . .
e1
nica de Cn , y
v = a a 2 ei e1
H (a a 2 ei ) = a 2 ei e1 .
94
v = a + a ei e1
H (v )a = a ei e1 a ei e1
ei e1
a1 = |a1 |ei
Demostrac
in:
+ a |a1 |.
2
+ 2 a |a1 |)a + (2 a
2
+ 2|a1 |) a ei e1 .
2
v v = a a + a ei a1 + a ei a1 + a (v v )a 2(v a)v = (2 a H (v )a =
(v v )a2(v a)v v v
=2 a
+ 2 a |a1 |.
+ 2 a |a1 |) a ei e1 .
= a ei e1
Obs
1 puede hacerse tomando signo = ei = a a si a = 0 signo = 1 si a=0. En el caso real ei = 1 es el signo de a1 . Con esta eleccin se evita el nmero v v del denominador sea demasiado pequeo y pueda producir inestabilidad en los clculos.
La determinacin de
El mtodo de
(n 1)
triangular, y la solucin del sistema es la solucin de que se obtiene por el mtodo ascendente.
matrices de Householder
Ax = b consiste en encontrar H1 , ..., Hn1 de manera que Hn1 ...H2 H1 A sea una matriz
Mtodos
95
Sea Ak la matriz formada por los elementos aij de A que estn en las las i k
akk
. . . columna
y en las
j k.
Sea
ak =
ank
Cnk+1 ,
Hk+1 = H (vk )
1 0
. . . .
la matriz de Householder
Hk+1 =
Idk1 0
0 Hk+1
0
Hk
es la matriz de Householder
H (vk )
con
vk =
v ek
Construimos
. . .
En la construccin de Ak+1 no se hacen modicaciones ni en las k 1 primeras las, ni en las k 1 primeras columnas, slo se modican los elementos de Ak .
C
En otras palabras. Al triangular la matriz con el mtodo de Householder no varia el condicionamiento del problema.
96
Algoritmo 4.6
Datos de entrada:
A[n][n]
b[n]
(vector trmino
independiente.);
(dimensin de
Variables:
A y b) B [n][n];// una
A.
w[n] ;// un vector donde ir haciendo las modicaciones de b. aux;// una variable auxiliar para sumatorios y productos escalares. sign;// una variable para el signo Bk,k /|Bk,k |. norma;// una variable real para la norma del vector a. norma2V ;// una variable real para v 2 . x[n];// un vector donde escribir la solucin.
Fujo del programa:
B =A ; w=b
for(k=1;k<n;k++){
// Vamos a hacer
k = 1, 2, ..., n 1.
aux = |Bk+1,k |; for(i=k+2;1<=n;i++){ aux = aux + |Bi,k |; } if(aux == 0){ if(|Bk,k | == 0){ Error Matriz Singular Fin;} Continue; // Pasar a la siguiente etapa k + 1 del bucle. } if(|Bk,k | > 0){ signo = Bk,k /|Bk,k |;} else{ signo = 1;} 2 norma = |Bk,k |2 ; // Vamos a hacer n k |Bi,k | . for(i=k+1;i<=n;i++){ norma = norma + |Bi,k |2 ;} norma = norma; v [k ] = Bk,k + norma signo; // 1. vector de Householder. for(i=k+1;i<=n;i++){v [i] = Bi,k ;} norma2V = 2(norma)2 + 2 norma signo Bk,k ; Bk,k = norma signo; // 2. Accin de la simetra en columna k . for(i=k+1;i<=n;i++){ Bi,k = 0; } for(j=k+1;j<=n;j++){ // Accin en las dems columnas. aux = v [k ] Bk,j ; //v.B j . for(i=k+1;i<=n;i++){ aux = aux + v [i] Bi,j ; } aux = 2 aux/norma2V for(i=k;i<=n;i++){ Bi,j = Bi,j aux v [i]; } } aux = v [k ] w[k ]; // Accin en el vector independiente. for(i=k+1;i<=n;i++){ aux = aux + v [i] w[i];} //v.w aux = 2 aux/norma2V for(i=k;i<=n;i++){ w[i] = w[i] aux v [i];} }
n k+1 |Bi,k |.
for(k=n;k>=1;k){//xk = (wk n j =k+1 (Bk,j xj ))/Bk,k xk = vk ; j = k + 1; while(j<=n){ xk = xk Bk,j xj ; j ++ ; } xk = xk /Bk,k ; } Datos de salida: Solucin x del sistema o mensaje de error si A
es singular.
Mtodos
97
4.5.
|aii | >
j =1;j =i
|aij |
La matriz A es estrictamente diagonal dominante, no simtrica y At no es estrictamente diagonal dominante. La matriz B es simtrica pero no es estrictamente diagonal dominante (tampoco lo es B t = B . No son raros los sistemas lineales estrictamente diagonal dominante que aparecen en muchos modelos de ecuaciones en diferencias (elementos nitos) al discretizar ecuaciones en derivadas
parciales y en mtodos numricos como en el caso de los problemas de interpolacin con splines y tienen buenas propiedades de estabilidad con relacin al mtodo de Gauss.
5 3 3 y B= 3 4 0 3 0 4
que estudiaremos ms adelante. Las matrices estrictamente diagonal dominante son no singulares
mtodo de Gauss sin hacer intercambios de las ni columnas tomando como pivote en cada etapa el elemento de la diagonal.
A estrictamente diagonal
del
Demostrac
in:
Se puede razonar por contradiccin: Si A fuese singular existira x = (x1 , .., xn )t tal que Ax = 0. Tomamos k tal que |xk | = x = m ax{|x1 |, ...|xn |} Como j aij xj = 0 para todo i, en particular para i = k se tiene
n
akk xk =
akj xj .
j =1;j =k
|akk ||xk |
j =1;j =k
|akj ||xj |,
|akk |
j =1;j =k
n j =1;j =k
|akj |.
98
Si A es estrictamente diagonal dominante, todos los elementos de su diagonal son no nulos. En particular a11 = 0 se puede elegir como pivote en la primera etapa del mtodo de Gauss. En este caso la matriz B que se obtiene tiene la misma primera la que A y el resto de las se denen haciendo la eliminacin por
bij = aij ai1 a1j a11
En otras palabras, la matriz A1 = B que proporciona la primera etapa del mtodo de Gauss es diagonal estrictamente dominante. Repitiendo el proceso se tiene que se puede hacer el mtodo de Gauss tomando como pivotes los elementos de la diagonal y la matriz triangular que se obtiene es estrictamente diagonal dominante. Observad que esta ltima matriz solo puede ser singular si alguno de los elementos de la diagonal es cero, pero en ese caso no sera estrictamente diagonal dominante.
Si la matriz A es estrictamente diagonal dominante (no singular) y no tiene ninguna la casi nula, los clculos del mtodo de Gauss sin hacer cambios de las ni columnas sern estables ya que los pivotes no resultan demasiado pequeos.
L s mtodos iterativos de la siguiente leccin para sistemas de ecuaciones con este tipo de
= A) de dimensin n A = (aij ) es
x Ax =
i,j =1
aij xi xj > 0
Proposicin 4.5.5
Si
(i) A es no singular (ii) aii > 0 para cada i = 1, ..., n. (iii) m ax{|aij | : 1 i, j n} m ax{|aii | : 1 i n}. (iv) a2 ij < aii ajj .
Mtodos
99
Demostrac
na matriz simtrica A es denida positiva si y slo si todos sus valores propios son estrictamente positivos. Equivalentemente, si y slo si, todas las submatrices principales
Ak =
Se puede probar que para matrices denidas positivas el mtodo de Gauss se puede realizar sin hacer cambios de las con clculos estables (ver Teorema 6.21 del libro de Burden-Faires [2]).
Recordando la factorizacin
LU
se obtiene:
Teorema 4.5.6
(i)
Sea
triangular inferior
y una matriz
diagonal
A = Lt DL.
Demostrac
in:
Ak = Lk Uk , se tiene que todos los ukk > 0. Tomando la matriz diagonal = diag (uii ), B = L y C = 1 U se tiene que A = BC . B es triangular inferior y C es triangular superior las diagonales de B y C coinciden con la de . t t t 1 = B 1 C t . Como A es simtrica, A = BC = C B y C (B ) Por una parte C (B t )1 es triangular superior y tiene slo unos en su diagonal. Y tambin, B 1 C t es triangular inferior con slo unos en la diagonal. As la igualdad de las dos matrices
Si
(1) (2):
Observad que L es triangular inferior con unos en la diagonal y D = es diagonal con elementos Dii estrictamente positivos. (3) (1):
xt Ax = xt LDLt x = (Lt x)t D(Lt x) =
i 2 Dii yi >0
100
donde y = Lt x = 0 si x = 0.
de [3 )
].
Algoritmo 4.7
(dimensin
de
A[n][n] A)
Variables:
L[n][n];
aux;//
aux = 0. ; for(k=0;k<n;k++){ aux = A[k ][k ]; for(s=0;s<k;s++){ // de Fila k aux = aux L[k ][s] L[k ][s]; } if(aux<=0){
de L por Columna k de L .
} L[k ][k ] = aux; for(i=k+1;i<n;i++){// de Fila i de L por Columna k aux = A[i][k ]; for(s=0;s<k;s++){ aux = aux L[i][s] L[k ][s];
}
de L .
Datos de salida:L
(Factorizacin de Choleski
A = LLt )o
mensaje de error
cuadrada
porque su forma es
p = q = 4.
matrices tridiagonales
Mtodos
101
Teorema 4.5.8
se dene
zacin
la sucesin 0 = 1, 1 = 1, k = bk k1 ak ck1 k2 (2 k n). Entonces, k = det(Ak ) (Ak el menor principal de orden k) y si todos los k = 0,
L
U de la matriz A es
a2 0 1 A = LU =
in:
la
factori-
1 1
.. . .. . .. .
n3 an1 n2
1
n2 an n1
Demostrac
c1
..
2 1
c2
.. . .. .
n1 n2
cn1
n n1
...
...
...
an1 bn1 an
y todos los determinantes de los menores principales son positivos, que proporcione la factorizacin de Choleski A = SS t
Escribe
una algoritmo
] y en la seccin 6.6 del libro de Burden-Faires [2] podis estudiar la factorizacin de L para sistemas tridiagonales. En esa misma seccin tenis informacin sobre resolucin de sistemas con matrices de coecientes de los distintos tipos que acabamos de presentar.
En la seccin
4.6.
L
ompartida de S
UM
A.
Bibliografa
[1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ. Aut. de Barcelona, Barcelona, 1993. [2] R.L. Burden and J.D. Faires, Anlisis numrico, 7 2002. [3] P.G. Ciarlet, Introduction l'analyse numrique matricielle et l'optimisation, Masson, Paris, 1990. [4] D. Kincaid and W. Cheney,
a edicin,
Thomson-Learning, Mexico,
Anlisis
numrico,
Ed.
Addison-Wesley
Iberoamericana,
Captulo
Anlizar tcnicas iterativas de resolucin de sistemas de ecuaciones lineales. Aprender los mtodos de resolucin : Mtodo de Jacobi. Mtodo de Gauss-Seidel. Mtodo de relajacin.
Resolver sistemas de ecuaciones lineales utilizando los mtodos iterativos. Implementar los mtodos en el ordenador. Compararlos entre si y con los mtodos directos del captulo anterior.
En esta unidad se estudian distintos mtodos iterativos de resolucin de sistemas de ecuaciones lineales. Los mtodos iterativos no suelen utilizarse para resolver problemas lineales de dimensin pequea ya que, para obtener una precisin razonable, requieren ms operaciones que los mtodos directos. Sin embargo, en el caso de sistemas grandes con muchos ceros en sus coecientes (matrices banda o estrictamente diagonal dominantes que aparecen en problemas de ecuaciones diferenciales con condiciones frontera) hay mtodos iterativos muy ecientes. Proponemos tres mtodos iterativos concretos a partir de una misma idea general.
104
5.1.
Ax = b
consiste en transformar el sistema de ecuaciones en una ecuacin de punto jo
x = T x + c;
donde
Ejemplo 5.1.1
Ax = b
=1 =5 =7
xi
en la ecuacin
x1 x2 x3
sta es una ecuacin de punto jo
= x2 +1 2 1 5 = 2 x x 1 3 3 3+ 3 1 x1 7 = 2 2
x = T x + c, con 0 1 0 1 T = 2 3 0 3 1 0 2 0
(T ) = 0.84657..., El lmite de la sucesin de iteradas xk = T xk1 + c obtenido en 194 iteraciones 14 , es la solucin del comenzando en x0 = 1, con un error relativo en la imagen menor que 10 sistema lineal (2.22222, 1.72222, 4.61111)
Denicin 5.1.2
Ax = b
Ax = b,
(T, c)
Ax = b
xk = (xk1 ) =
T xk1 + c
x0 .
A la hora de implementar los mtodos iterativos interesa tener presente que podemos utilizar como condicin de parada el tamao de los vectores residuales en cada etapa:
rk = Axk b.
105
En el siguiente teorema recogemos los resultados estudiados en el captulo 3 que dan condiciones necesarias y sucientes para que un mtodo iterativo sea convergente:
Teorema 5.1.3
Sea
n.
(i) Existe una norma matricial (subordinada) tal que (ii) El radio espectral (iii)
T < 1.
(T ) < 1.
para todo vector
l mk T k v = 0,
v.
converge comenzando en cualquier vector
xk = T xk1 + c
x0 .
La equivalencia entre (I) y (II) es el Teorema 3.3.2. La equivalencia entre (II) y (III) es el Teorema 3.3.4. La implicacin (I)
(x) = T x + c,
(x) (y ) = T x T y = T (x y ) T
y si
xy ,
T < 1,
ser contractiva.
x = T x + c.
Si tomamos
solucin y por lo
tanto:
Ejemplo 5.1.4
es
pT () = 63 + 4 + 1. (T ) = 0.84657...1 por lo tanto la iteracin xk = T xk1 + c, comenzando en cualquier vector x0 , converge hacia la solucin del sistema de punto jo x = T x + c; que tambin es la solucin de la ecuacin Ax = b.
El radio espectral es
5.1.2.
Ax = b
1
polinomio caracterstico (valores propios de Aunque no es facil calcular races de polinomios de tercer grado, siq es fcil comprobar que los ceros del
T)
5 6
<1
106
y que la matriz
A = M N,
donde
Ax = b M x N x = b M x = N x + b, Ax = b x = M 1 N x + M 1 b
Dada una matriz cuadrada de dimensin Entonces la matriz diagonal se obtiene el mtodo iterativo de Jacobi. Los mtodos de Gauss-Seidel y de relajacin son variaciones del mtodo de Jacobi. Para descibirlos vamos a utilizar la siguiente notacin para describir
n, A = (aij ), tal que aii = 0 para todo 1 i n. D = (aii ) es muy fcil de invertir. Escribiendo M = D y N = D A
N = D A = (L + U ):
5.2.
Mtodo de Jacobi
Tal y como hemos mencionado, el mtodo de Jacobi para buscar la solucin de un sistema lineal
Ax = b
de
i=1
se realiza coordenada a
aij xk j bi
(5.1)
1 k r aii i
107
El siguiente algoritmo implementa el mtodo de Jacobi. Prestad atencin a la construccin del vector residual y como se utiliza el cuadrado de su norma eucldea como condicin de parada:
Algoritmo 5.1
Datos de entrada: A[n][n] (Matriz de coecientes del sistema.); b[n] (vector trmino independiente.); n (dimensin de A y b); (precisin para la condicin de parada); nmax (nmero mximo de iteraciones); Variables:xa[n];// (xk ) vector para aproximar la solucin del sistema. e[n] ;// un vector auxiliar para almacenar el vector residual y el vector de correccin xk 1 xk . eadmisible = 0;// precisin admisible (se usan errores relativos. norma = 0; // registro para el cuadrado de la norma del vector residual. Fujo del programa:
// Condiciones iniciales y evaluacion de la diagonal for(j=1;j<=n;j++){ xa(j ) = 1 ; eadmisible = eadmisible + b(j )2 ; if(Aj,j == 0){ ERROR; Jacobi no es aplicable; } } eadmisible = 2 eadmisible // ( b )2 . // Vamos a hacer las etapas k = 1, 2, ..., nmax. for(k=1;k<=nmax;k++){ norma = 0; // 1. clculo de la correccin. for(i=1;i<=n;i++){ e(i) = b(i); for(j=1;j<=n;j++){ e(i) = e(i) + Ai,j xa(j ); } norma = norma + e(i)2 ; e(i) = e(i)/Ai,i ; xa(i) = xa(i) e(i); } if(norma < eadmisible){ Parada, la solucion es xa } } Parada, no hay convergencia en nmax iteraciones; Datos de salida: Solucin x del sistema o mensajes de error si la diagonal de A tiene algn cero o la iteracin no converge.
Ejemplo 5.2.1
Ax = b.
108
5.3. Mtodo de Gauss-Seidel
Los vectores del algoritmo de Jacobi se van construyendo coordenada a coordenada de manera que cuando se va a calcular
+1 xk i
+1 xk j
para
para
j < i.
La idea en la
modicacin propuesta en el mtodo de Gauss-Seidel consiste en utilizar para el clculo de en 5.1 las coordenada conocidas slo las coordenadas de de
+1 xk j
para
j <i
junto con
xk j
+1 xk i
i j,
en lugar de utilizar
xk ,
xk+1
xk .
aij xk j bi
(5.2)
1 k r = xk i aii i
A = (L + D) + U = M N , M = L + D y N = U . Para comprobarlo basta con observar las coordenadas de la expresin: (L + D )xk+1 = U xk + b. La matriz del mtodo iterativo de 1 (U ). Gauss-Seidel es AG = (L + D )
En la pgina siguiente est el algoritmo 5.2 correspondiente a este mtodo. Observad que
r k , donde cada k una de las coordenadas r i se corresponde con la coordenada i de los vectores Ax ik b con k+1 k +1 k )t (i = 1, ..., n). Si la sucesin x converge hacia la solucin del , ..., x , x , ...x x ik = (xk k n i 1 i1
para la condicin de parada hemos utilizado como vector residual el vector sistema lineal, tambin lo hace
x ik
r k 0.
5.3.1.
Para las matrices especiales del captulo anterior se tienen buenos criterios de convergencia:
Teorema 5.3.1
Sea
i = 1, ..., n. Entonces el mtodo de Jacobi y el mtodo de Gauss-Seidel para resolver sistema Ax = b son convergentes, y el mtodo de Gauss-Seidel converge al menos a la misma AJ
AG
< 1.
La demostracin de este teorema la podis seguir en la seccin 3 del captulo 8 libro de Hmmerlin y Homan [4].
109
Algoritmo 5.2
Datos de entrada: A[n][n] (Matriz de coecientes del sistema.); b[n] (vector trmino independiente.); n (dimensin de A y b); (precisin para la condicin de parada); nmax (nmero mximo de iteraciones); Variables:xa[n];// vector para aproximar la solucin del sistema. xb[n];// vector para las nuevas aproximaciones de la solucin del sistema. e [n] ;// un vector residual modicado. eadmisible = 0;// precisin admisible. norma = 0; // registro para el cuadrado de la norma del vector residual modicado. Fujo del programa:
// Condiciones iniciales y evaluacion de la diagonal for(j=1;j<=n;j++){ xa(j ) = 1 ; eadmisible = eadmisible + b(j )2 ; if(Aj,j == 0){ ERROR; Gauss-Seidel no es aplicable;} } eadmisible = 2 eadmisible // ( b )2 . // Vamos a hacer las etapas k = 1, 2, ..., nmax. for(k=1;k<=nmax;k++){ norma = 0; // 1. clculo del residuo. for(i=1;i<=n;i++){ e (i) = b(i); for(j=i;j<=n;j++){ e (i) = e (i) + Ai,j xa(j ); // se usan coordenadas de xk . }
for(j=1;j<i;j++){ e (i) = e (i) + Ai,j xb(j )// se usan coordenadas de xk+1 . } norma = norma + e (i)2 ; e (i) = e (i)/Ai,i ; xb(i) = xa(i) e (i); } if(norma < eadmisible){ Parada, la solucion es xa} xa = xb } Parada, no hay convergencia en nmax iteraciones; Datos de salida: Solucin x del sistema o mensajes de error si la diagonal de A tiene algn cero o la iteracin no converge.
(AG ) = (AJ )2
. As los mtodos de Jacobi y de Gauss-Seidel para resolver el sistema el de Jacobi.
La demostracin de este teorema la podis seguir en el libro de Ciarlet [3, The 5.3-4].
Ax = b
convergen
5.4.
Mtodo de Relajacin
En la construccin de la sucesin de Gauss-Seidel hemos ido deniendo coordenada conjuntamente con las coordenadas del vector residual
xk+1
coordenada a
r k :
aij xk j bi
(5.2)
xk
+1 xk = xk i i
Observad que ahora
k r aii i
aij xk j bi )
j =i+1 n
aij xk j bi )
j =i+1
111
Algoritmo 5.3
Datos de entrada: A[n][n] (Matriz de coecientes del sistema.); b[n] (vector trmino independiente.); n (dimensin de A y b); (parmetro de construccin); (precisin para la condicin de parada); nmax (nmero mximo de iteraciones); Variables:xa[n];// vector para aproximar la solucin del sistema. xb[n];// vector para las nuevas aproximaciones de la solucin del sistema. e [n] ;// un vector de correccin para xa. eadmisible = 0;// precisin admisible. norma = 0; // registro para el cuadrado de la norma de la correccin. Fujo del programa:
// Condiciones iniciales y evaluacion de la diagonal for(j=1;j<=n;j++){ xa(j ) = 1 ; eadmisible = eadmisible + b(j )2 ; if(Ai,i == 0){ ERROR; Relajacin no es aplicable;} } eadmisible = 2 eadmisible // ( b )2 . // Vamos a hacer las etapas k = 1, 2, ..., nmax. for(k=1;k<=nmax;k++){ norma = 0; // 1. clculo de la correccin. for(i=1;i<=n;i++){ e (i) = b(i); for(j=i;j<=n;j++){ e (i) = e (i) + Ai,j xa(j ); } for(j=1;j<i;j++){ e (i) = e (i) + Ai,j xb(j ); } 2 norma = norma + e (i) ; e (i) = e (i) /Ai,i ; xb(i) = xa(i) e (i); } if(norma < eadmisible){ Parada, la solucion es xa}
xa = xb } Parada, no hay convergencia en nmax iteraciones; Datos de salida: Solucin x del sistema o mensajes de error si la diagonal de A tiene algn cero o la iteracin no converge.
Ejemplo 5.4.1
Ax = b
con
w = 0.85
0 < < 2. AR() cumple siempre que Por lo tanto el mtodo de relajacin slo puede ser convergente si 0 < < 2. 0<<2
son convergentes y el mnimo de los radios espectrales de las
es una matriz simtrica denida positiva, tridiagonal, los mtodos de Jacobi, Gauss-
0 =
de manera que
2 1+ 1 (AJ )2
Bibliografa
[1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ. Aut. de Barcelona, Barcelona, 1993. [2] R.L. Burden and J.D. Faires, Anlisis numrico, 7 2002. [3] P.G. Ciarlet, Introduction l'analyse numrique matricielle et l'optimisation, Masson, Paris, 1990. [4] G. Hammerlin and K.H. Homann, Numerical mathematics, Springer-Verlag, New York, 1991. [5] D. Kincaid and W. Cheney,
Cap tulo
$ $
' '
Localizar aproximadamente los valores propios de una matriz a partir de sus coecientes. Describir los algoritmos correspondientes a distintos m etodos de aproximaci on de valores y vectores propios. Comparar la convergencia de las aproximaciones proporcionadas por cada m etodo. Implementar en el ordenador los programas de los m etodos de este cap tulo.
& &
Aplicar los programas construidos de forma efectiva en la b usqueda de todos los valores y vectores propios de matrices concretas.
% %
116
6.1.
Recordemos que si A Mnn (C) es una matriz con coecientes complejos, C es un valor propio de A si existe un vector v Cn no nulo (un vector propio asociado al valor propio ) tal que Av = v . Ello es equivalente a que sea ra z del polinomio caracter stico p() = | Id A| de la matriz A. Es importante resaltar que si la matriz es de coecientes reales (lo que ser a habitualmente el caso), a un es posible que parte, o incluso todos sus valores propios sean complejos, pero s olo a los valores propios reales corresponder an vectores propios con coecientes reales. El problema del c alculo de los valores propios de una matriz es equivalente al del c alculo de las ra ces de un polinomio. De una parte, los valores propios de una matriz son las ra ces de su polinomio caracter stico. E inversamente, las ra ces del polinomio p(x) = a0 + a1 x + + an1 xn1 + xn son los valores propios de la matriz an1 an2 . . . a1 a0 1 0 ... 0 0 0 1 0 ... 0 , . . . . . . 0 0 ... 1 0
que se conoce como la matriz compa nera del polinomio p. Dado que no se dispone de algoritmos (f ormulas) que tras un n umero nito de operaciones proporcionen las ra ces de un polinomio de grado mayor que cuatro, tampoco podemos esperar disponer de algoritmos directos para el c alculo de valores y vectores propios: todos habr an de ser iterativos y proporcionaran, por
117
que en el caso = 0 tiene todas sus valores propios iguales a cero. Si embargo si = 1040 y la dimensi on de la matriz es 40 entonces, dado que el polinomio caracter stico es 40 = 40 40 40 10 , todos los valores propios tienen m odulo 1/10: un error de 10 se amplica a un nalarse, no obstante, que las matrices sim etricas no presentan error 1039 veces mayor! Debe se este tipo de problemas (la raz on se explica en [2, pp. 3435]), lo que en particular garantiza la robustez del m etodo de Jacobi que explicaremos en la u ltima secci on de este cap tulo. Los m etodos num ericos de b usqueda de valores y vectores propios se dividen en dos clases en funci on de que lo que se pretenda sea conseguir todos los valores propios y una base de vectores propios, o solamente un valor propio (generalmente el de mayor tama no), como en el m etodo de la potencia que vamos a estudiar en primer lugar. Para calcular aproximaciones del conjunto de valores propios de una matriz A una idea explotada asiduamente es construir una sucesi on de matrices Pk tal que la sucesi on de matrices 1 APk converge hacia una matriz de valores propios conocidos, es decir, diagonal o triangular. Pk Esta idea est a en la base de algunos m etodos como el de Jacobi para las matrices sim etricas que tambi en estudiaremos, o los m etodos de Givens-Householder y QR para matrices arbitrarias (v ease el libro de Ciarlet [2]). Antes de pasar a analizar estos m etodos enunciamos y demostramos un resultado conocido como teorema de los c rculos de Gershgorin que permite localizar, de manera poco precisa, la parte del plano complejo donde estar an situados los valores propios de una cierta matriz: Teorema 6.1.1 El conjunto de los valores propios de una matriz A = (aij ) Mnn (C) est a contenido en la uni on de los discos del plano complejo Di = z C : |z aii | |aij | , i = 1, 2, . . . n.
1j n,j =i
tanto, s olo aproximaciones (eso s , tan precisas como se requiera) de los valores y vectores propios buscados. Por otra parte, los problemas de valores propios suelen presentar problemas de condicionamiento. Un buen ejemplo es la matriz 0 0 ... 0 1 0 . . . 0 0 A( ) = 0 1 0 . . . 0 , . . . . . . 0 0 ... 1 0
n: Demostracio
Ideas que intervienen: Si es un valor propio de A y v es un vector propio asociado, dividiendo v por su norma obtenemos otro vector propio de norma 1. Sea un valor propio de A. Sea x un vector tal que x = 1 y Ax = x y sea k un ndice esima de Ax es xk , tenemos que tal que |xk | = 1. Como la coordenada k -
n
xk =
j =1
akj xj .
akj xj .
j =k
Tomando valores absolutos, aplicando la desigualdad triangular y teniendo en cuenta que |xj | |xk | = 1, se obtiene |akj ||xj | |akj |, | akk |
j =k j =k
estar an en la uni on de los discos de centro 1 + i y radio 1/4, de centro 1 y radio 1/2, y de centro 3 y radio 2. En particular, si es valor propio de A entonces se tendr a 1/2 || 5.
6.2.
El m etodo de la potencia
Este m etodo permite, bajo ciertas hip otesis, aproximar el valor propio de estrictamente mayor tama no de una matriz A Mnn (R), si es que tal valor propio existe, con lo que en particular obtendremos el radio espectral. N otese que en este caso el valor propio ser a un n umero real, porque el polinomio caracter stico de la matriz tiene coecientes reales y si un n umero complejo es ra z del polinomio, es decir, un valor propio de la matriz, entonces su conjugado, que tiene el mismo m odulo, tambi en ser a valor propio (recordaremos el motivo en el pr oximo cap tulo). Supondremos en todo lo que sigue que los valores propios est an ordenados seg un su m odulo: ax{|1 | |2 | |n |}. = |1 | = m El m etodo de la potencia tambi en se conoce como el m etodo del cociente de Rayleigh y consiste en lo siguiente: se parte de una matriz A y dos vectores x0 e y ; se construye un sucesi on de vectores xk y una sucesi on de cocientes rk como xk+1 = Axk y rk = xk+1 , y ; xk , y
entonces, bajo ciertas hip otesis, la sucesi on rk converge hacia 1 y los vectores normalizados xk / xk convergen a un vector propio de valor propio 1 . Veamos cu ales son esas hip otesis. En primer lugar es necesario elegir x0 e y de forma que, si v1 , v2 . . . , vn es una base (en el espacio vectorial Cn sobre el cuerpo de los complejos C) de vectores propios asociados a los valores propios 1 , 2 , . . . , n (suponiendo que tal base existe), entonces x0 no sea combinaci on lineal de los vectores v2 . . . , vn . Tambi en suponemos v1 , y = 0
119
y xk , y = 0 para cada k . Finalmente hay que suponer que |1 | > |2 | lo que excluye la z m ultiple o compleja del polinomio posibilidad de que este valor propio dominante 1 sea una ra caracter stico. Si se cumplen las hip otesis, lo que normalmente, en la pr actica, seremos incapaces de vericar ( ese es el principal problema del m etodo de la potencia), entonces se demuestra que: Teorema 6.2.1 Con las hip otesis anteriores, la sucesi on rk converge hacia 1 . n: Demostracio Ideas que intervienen: Si (x) = x, y , basta escribir rk en la forma 1 vectorial ( k ) convergente a cero.
(1 v1 + k+1 ) (1 v1 + k )
otesis. Notemos que, por la forma en que est a denida Observemos que 0 = 0 por una de las hip la sucesi on xk , se tiene xk = Ak x0 , donde Ak es el resultado de multiplicar la matriz A por en lo ser an para cada s misma k veces. Como los vectores vj son vectores propios de A, tambi , y as Ak con valores propios k j n k j k k k xk = 1 k 1 v1 + j vj =: k 1 v1 + 2 2 v2 + + n n vn = 1 1 (1 v1 + k ), 1
j =2
Reescribamos (x) = y (x) = x, y y pongamos x0 como combinaci on lineal de los elementos de la base, x0 = 1 v1 + 2 v2 + + n vn .
con k 0 porque 1 es el valor propio dominante y los cocientes (j /1 )k tienden a cero. otesis Por ser lineal (y por tanto continua), y ocurrir que 1 = 0 y (v1 ) = 0 por las hip establecidas al principio, podemos tomar l mites en la expresi on rk = (1 v1 + k+1 ) 1 (v1 ) + ( k+1 ) (xk+1 ) = 1 = 1 (xk ) (1 v1 + k ) 1 (v1 ) + ( k )
En este caso es muy sencillo calcular directamente las tres ra ces 1 = 3, 2 = 1 y 3 = 1 del polinomio caracter stico. En particular, 3 ser a el valor propio dominante. Si partimos de x0 = (1, 0, 0), las primeras iteradas son los vectores x1 = (1, 2, 4), x2 = (5, 4, 8), x3 = (13, 14, 28), x4 = (41, 40, 80), x5 = (121, 122, 244).
120
Si tomamos y = (1, 0, 0), los correspondientes productos escalares ser an x0 , y x1 , y x2 , y x3 , y x4 , y x5 , y = 1, = 1, = 5, = 13, = 41, = 121,
que proporcionan los cocientes r1 = 1, r2 = 5 r3 = 2.6, r4 = 3.15384615, r5 = 2.95121951. Como vemos, bastan cinco iteraciones para aproximar el valor propio dominante con un error inferior a 0.05. En el ejemplo anterior la lista de vectores xk sugiere que (1, 1, 2) es un vector propio de valor propio 3, y en efecto as ocurre. Sin embargo no podemos decir que los vectores xk convergen a (1, 1, 2): sus m odulos crecen hacia innito. En general los vectores xk = k 1 (1 v1 + k ) no pueden converger a ning un vector propio porque o bien convergen a cero si |1 | < 1, o bien divergen a on si |1 | > 1. Sin embargo la sucesi yk := k xk 1 (1 v1 + k ) = xk |1 |k 1 v1 + k
A la hora de escribir el algoritmo es importante evitar calcular yk obteniendo primero el correspondiente vector xk y dividiendo luego por su norma, pues como ha quedado dicho los an. En lugar de eso se calcula la vectores xk pueden diverger a innito y los errores se disparar sucesi on (yk ) por recurrencia. Partiendo de y0 = x0 / x0 , y supuesto yk conocido, se tendr a que yk+1 = Tomando normas, 1 = yk+1 = es decir, yk+1 = A(yk ) . A(yk ) xk xk+1 A(yk ) , A(xk ) xk xk+1 = = A(yk ). xk+1 xk+1 xk+1
converge al vector propio 1 v1 / 1 v1 si 1 > 0 y alternativamente (en t erminos pares e impares) a los vectores propios 1 v1 / 1 v1 si 1 < 0.
Por tanto la sucesi on (yk+1 ) puede calcularse manejando siempre vectores uniformemente acotados por la norma de la matriz A, con lo que los errores estar an bajo control.
121
Puede probarse adem as que la velocidad de la convergencia depende del tama no del cociente. En concreto y para una constante C se cumple |2 | |1 |
k
|rk 1 | C
(ver [3, pp. 236237]). Cuando |2 | est a pr oximo a |1 | la convergencia es muy lenta. En este etodo de la 2 de Aitken. La caso se puede acelerar la convergencia haciendo la sucesi on tk del m |3 | velocidad de convergencia de esta sucesi on tk depende el cociente |1 | . Si |3 | est a muy pr oximo a acticamente nada en velocidad; en este caso se puede volver a acelerar aplicando |2 | no se gana pr el m etodo de Aitken a tk . La velocidad de convergencia de esta nueva sucesi on depender a del 4 | . Se podr a proseguir con estas aceleraciones, aunque desde el punto de vista de la cociente | |1 | programaci on del algoritmo no es aconsejable por el riesgo de hacer demasiadas iteraciones. En el algoritmo 6.1 describimos el m etodo sin incluir la aceleraci on de Aitken: el lector puede a nadirla al algoritmo si as lo desea. Es sencillo dise nar diversas variantes del m etodo de la potencia que permitan obtener informaci on sobre otros valores propios de A. Por ejemplo, si A es invertible, entonces es valor propio de A si y s olo si 1 lo es de A1 con el mismo vector propio: Au = u 1 u = A1 u. En consecuencia, para hallar el valor propio de m odulo m nimo bastar a aplicar el m etodo de la potencia a A1 y calcular el inverso de su valor propio dominante. N otese que en este caso, en lugar de calcular la inversa de A previamente para luego ir generando la sucesi on xk+1 = A1 xk , es m as eciente resolver el sistema Axk+1 = xk (guardando las operaciones realizadas sobre la matriz A para no repetirlas en cada iteraci on). A este m etodo se le denomina el m etodo de la potencia inversa. An alogamente, los valores propios de la matriz A Id son los n umeros de la forma , con los valores propios de A, con lo que los m etodos de la potencia y de la potencia inversa aplicados a esta matriz (a estos m etodos se les llama m etodos de la potencia y la potencia inversa con desplazamiento ) nos dar an, respectivamente, el valor propio m as alejado y m as cercano a . En particular, si tenemos una idea aproximada de donde puede estar situado un cierto valor propio, el m etodo de la potencia inversa con desplazamiento permitir a calcularlo con bastante rapidez.
122
Algoritmo 6.1
Datos de entrada: A[n][n] (matriz cuyo valor propio dominante queremos obtener); tol (precisi on para la condici on de parada); nmax (n umero m aximo de iteraciones); v (vector inicial); y (vector para los productos); Variables: uini; // vector para almacenar yk un; // vector para almacenar yk+1 rini; // real para almacenar rk rn; // real para almacenar rk+1 Flujo del programa: // Inicializaci on de las variables. rini = 0; uini = v/ v ; // Vamos a hacer las etapas m = 1, 2, ..., nmax. for(m=1;m<=nmax;m++){ if(| uini, y | = 0){ Parada: el m etodo de la potencia no es aplicable } un = A uini; if(ufin = 0){ Parada: el m etodo de la potencia no es aplicable } rn = un, y / uini, y ; un = un/ un ; if(|rfin rini| < tol){ Parada: rn es el valor propio dominante y un el correspondiente vector propio } rini = rn; uini = un; } Parada: no hay convergencia en nmax iteraciones Datos de salida: Valor propio dominante de la matriz A y correspondiente vector propio, o mensaje de error si la iteraci on no converge.
123
El m etodo de deaci on de Wielandt enfoca la cuesti on de una manera m as ambiciosa. La idea es partir del m etodo de la potencia para obtener el valor propio dominante 2 y un vector propio asociado, y a partir de ellos generar una matriz (n 1) (n 1) que tenga como valores propios 2 , . . . n y dar una f ormula que permita calcular los vectores propios de la matriz original a partir de los de la nueva. Aplicando el m etodo de la potencia a la nueva matriz, podremos obtener 2 y su correspondiente vector propio. Repitiendo el proceso, podremos obtener todos los valores y vectores propios de la matriz original. En cierto sentido, como vemos, el proceso recuerda al de la resoluci on de una ecuaci on polin omica: una vez que encontramos una ra z del polinomio, lo factorizamos y el problema queda reducido a encontrar las ra ces de un polinomio un grado menor. Naturalmente el proceso s olo puede llegar a buen puerto si todos los valores propios son reales y distintos (lo que no podemos saber a priori). N otese que en este caso cada subespacio propio tiene dimensi on uno as que, salvo multiplicaci on por constantes, existen n vectores propios. Dicho sea de paso, estos vectores propios formar an una base. En efecto, si v1 , . . . , vn son vectores propios de valores propios 1 , . . . , n , con i = j si i = j , entonces los vectores v1 , . . . , vn son linealmente independientes. Esto es f acil de demostrar por inducci on sobre n. La armaci on es obvia si n = 1. Supong amosla cierta para n 1 y supongamos que 1 v1 + 2 v2 + . . . n vn = 0. Entonces, por un lado, multiplicando por 1 , 1 1 v1 + 2 1 v2 + . . . + n 1 vn = 0, y por otro, multiplicando por A, 1 1 v1 + 2 2 v2 + . . . + n n vn = 0. Restando ambas igualdades 2 (2 1 )v2 + . . . n (n 1 )vn = 0, y como los n umeros j 1 son distintos de cero, la hip otesis de inducci on implica 2 = = en 1 = 0. Hemos probado que los vectores v1 , . . . , vn son n = 0, con lo que 1 v1 = 0 y tambi linealmente independientes. N otese que el mismo argumento demuestra que si un valor propio 1 es distinto del resto y v2 , . . . , vn es una familia linealmente independiente de vectores propios de valores propios 2 , . . . , n , entonces cada vector propio v1 de 1 forma, junto con v2 , . . . , vn , una base. El m etodo de deaci on de Wielandt se basa en el siguiente resultado: Teorema 6.2.3 Supongamos que 1 es un valor propio de A con vector propio v1 y x es un vector tal que xT v1 = 1. Entonces 0 es valor propio de B = A 1 v1 xT (6.1)
con vector propio v1 . Si adem as w2 . . . , wn son vectores propios de B de valores propios 2 , . . . , n y 0 = j = i para cada j = 1, entonces los vectores vj = (j 1 )wj + 1 (xT wj )v1 son vectores propios de A con valores propios j , j = 2, . . . , n. (6.2)
Dados los vectores v = (v1 , . . . , vn ) y x = (x1 , . . . , xn ), vxT es la matriz n n que tiene como coeciente ij el producto vi xj . Por la asociatividad del producto de matrices, si w es otro vector, entonces el resultado de multiplicar la matriz vxT por w es el de multiplicar el vector v por el producto escalar xT w. Por ser 1 valor propio de vector propio v1 , por la propiedad asociativa del producto de matrices y usando la hip otesis xT v1 = 1, Bv1 = Av1 1 (v1 xT )v1 = 1 v1 1 v1 (xT v1 ) = 1 v1 1 v1 = 0. Demostramos a continuaci on que los vectores vj son vectores propios de A de valor propio j , j = 2, . . . , n. Notemos para empezar que los vectores vj son no nulos porque j = 0 para cada j = 1, cada as, par de vectores wj , v1 es linealmente independiente y j 1 = 0 . Adem Avj = (A 1 v1 xT + 1 v1 xT )vj = Bvj + 1 (v1 xT )vj = B [(j 1 )wj + 1 (xT wj )v1 ] = j (j 1 )wj = j (j 1 )wj = j (j 1 )wj = j vj ; en la tercera igualdad hemos usado que wj es vector propio de B de valor propio j y que Bv1 = 0. En el m etodo de deaci on de Wielandt el vector x se elige de acuerdo con la f ormula ak1 a 2 1 k , (6.3) x= . 1 v1,k . . akn
+1 (v1 xT )[(j 1 )wj + 1 (xT wj )v1 ] +1 (j 1 )(v1 xT )wj + 1 (xT wj )1 (v1 xT )v1 +1 (j 1 )(xT wj )v1 + 1 1 (xT wj )v1 +j 1 (xT wj )v1
donde v1,k es una componente no nula del vector v1 (suele elegirse la de mayor valor absoluto para minimizar los errores de c alculo) y (ak1 , ak2 , . . . , akn ) es la la k - esima de la matriz A. En T efecto, obs ervese que (ak1 , ak2 , . . . , akn ) v1 es la componente k - esima del vector Av1 = 1 v1 , es decir, (ak1 , ak2 , . . . , akn )T v1 = 1 v1,k
125
La ventaja de escoger x de esta manera radica en que la matriz B = A 1 v1 xT tiene ceros umero en la la k - esima, dado que la componente ckj de la matriz 1 v1 xT es el n 1 akj = akj . 1v1,k
1 v1,k xj = 1 v1,k
as a un, Ello signica que si w es vector propio de B de valor propio = 0, entonces wk = 0. M si A es la matriz (n 1) (n 1) que resulta de eliminar la la y columna k - esimas de A y v es un vector propio de A de valor propio , entonces el vector w que resulta de a nadir a v un cero en el lugar k - esimo es un vector propio de B de valor propio . En resumen, el algoritmo tiene las siguientes fases:
1. Se obtiene el valor propio dominante 1 de A por el m etodo de la potencia y su vector propio asociado.
2. Se identica la coordenada k - esima de v1 de mayor valor absoluto y se construye el vector x de acuerdo con la f ormula (6.3).
3. Se construye la matriz B seg un la formula (6.1) y, tras quitarle la la y columna k - esimas, la matriz A M(n1)(n1) (R). 4. A partir de los valores propios 2 , . . . , n de A y la correspondiente base de vectores nadiendo ceros en el propios v2 , . . . , vn , construimos vectores propios w2 , . . . , wn para B a lugar k - esimo.
5. Finalmente, a partir de la f ormula (6.2) generamos los vectores propios v2 , . . . , vn de A an la base de vectores propios buscada. que junto a v1 completar
Notemos que se trata de un algoritmo recursivo: la parte clave del es el punto 4, donde el algoritmo se llama a s mismo, de modo que la dimensi on de la matriz se va reduciendo hasta que se llega a una matriz de dimensi on uno, que tiene trivialmente como valor propio su u nica componente y como vector propio la unidad. Tal y como lo hemos escrito a continuaci on, se ha determinado que cada vez que llame al m etodo de la potencia je los vectores iniciales x0 e y al azar.
126
Algoritmo 6.2
Datos de entrada: A[n][n] (matriz cuyos valores propios queremos obtener); tol (precisi on para la condici on de parada); nmax (n umero m aximo de iteraciones); Variables: Sol[n][n + 1]; // matriz para devolver los resultados B [n 1][n 1]; // matriz deacionada Solde[n 1][n]; // matriz con los valores y vectores propios de B vectvaldom; // vector para guardar el vector y valor propio dominantes de A u, lambda // vector y real para guardar el contenido de vectvaldom v, y, x, w; // vectores auxiliares max, lambdade; // reales auxiliares k ; // entero auxiliar Flujo del programa: // El caso n = 1 es trivial. if(n = 1){ Sol = (1, A[0][0]); Parada: caso trivial } // Si n = 1 calculamos los valores y vectores propios recursivamente. else{ // Elegimos al azar v e y para el m etodo de la potencia. for(i=0;i<n;i++){ v [i] = Math.random(); y [i] = Math.random(); } // Aplicamos el m etodo de la potencia para obtener el valor propio dominante. vectvaldom = potencia(A, tol, nmax, v, y); for(i=0;i<n;i++){ u[i] = vectvaldom[i]; } lambda = vectvaldom[n]; // Elegimos la componente m as grande u[k ] del vector propio u. aux = 0; k = 0; for(i=0;i<n;i++){ if(|u[i]|>|aux|){ aux = u[i]; k = i; } }
127
Algoritmo 6.2
// Calculamos la matriz deacionada B a partir de k . x = A[k ][]/(lambda aux); B A lambda u xT ; // Calculamos los valores y vectores propios de B . Solde = deflacionWielandt(B, tol, nmax); if(|Soldefl[n-2][n-1]-lambda|<tol){ Parada: valor propio m ultiple } // Obtenemos los valores y vectores propios de A. for(i=0;i<n-1;i++){ for(j=0;j<k;j++){ w[j ] = Solde[i][j ]; } w[k ] = 0; for(j=k+1;j<n;j++){ w[j ] = Solde[i][j 1]; } lambdade = Solde[i][n 1]; w = (lambdade lambda) w + lambda (xT w) u; for(j=0;j<n;j++){ Sol[i][j ] = w[j ]/ w ; } Sol[i][n] = lambdade; } Sol[n 1][] = vectvaldom; } Datos de salida: Valores y vectores propios de la matriz A y correspondiente vector propio, o mensaje de error si el m etodo no funciona.
Necesitamos para empezar el valor propio dominante 1 y el correspondiente vector propio asociado. Para ello usar amos el m etodo de la potencia, que nos proporcionar a 1 = 8 y actica el m etodo de la potencia no proporcionar a el v1 = (1, 0, 0, 2). (Por supuesto, en la pr valor exacto 8, sino una muy buena aproximaci on, y lo mismo ocurrir a con v1 , que adem as aparecer a dividido por su norma.) Por tanto k = 4, de donde x = 1/(1 v1,4 )(a41 , a42 , a43 , a44 ) = (1/(8 2))(0, 0, 0, 8) = (0, 0, 0, 1/2).
Ejemplo 6.2.4 A continuaci on ilustramos el m etodo de deaci on de Wielandt aplic andolo al c alculo de los valores y vectores propios de la matriz 4 1 0 2 2 5 0 1 A= . 3 1 1 3/2 0 0 0 8
De nuevo, supongamos que tras aplicar el m etodo de la potencia obtenemos el valor propio dominante 2 = 6 de A y un vector propio asociado, digamos v2 = (1, 2, 1). En este caso k = 2, con lo que x = 1/(2 v2,2 )(a21 , a22 , a23 ) = (1/(6(2)))(2, 5, 0) = (1/6, 5/12, 0). Ahora B = A 2 (v2 (x )T ) 1/6 5/12 0 4 1 0 = 2 5 0 6 1/3 5/6 0 1/6 5/12 0 3 1 1 1 5/2 0 4 1 0 = 2 5 0 2 5 0 1 5/2 0 3 1 1 3 3/2 0 = 0 0 0 . 2 3/2 1
A esta matriz aplicar amos de nuevo el m etodo de la potencia (por supuesto para una matriz 22 siempre podemos hacer los c alculos a mano, pero adoptamos el punto de vistade la m aquina,
129
que no distingue entre matrices grandes y peque nas) y obtendr amos su valor propio dominante, 3 = 3, y el correspondiente vector propio asociado, v3 = (1, 1). En este caso tomamos k = 1, de donde x = 1/(3 v3,1 )(a11 , a12 ) = (1/(3 1))(3, 0) = (1, 0). Ahora B = A 3 (v3 (x )T ) = = 3 0 2 1 3
1 0 1 0
0 0 . 1 1
Tras suprimir la primera la y columna llegamos a A = (1), que tiene trivialmente como vector propio 4 = 1 y como vector propio asociado v4 = (1). Ya sabemos que los cuatro valores propios de A son 1 = 8, 2 = 6, 3 = 3, 4 = 1 y que el vector propio asociado a 1 es v1 = (1, 0, 0, 2). Para calcular los otros tres tenemos que deshacer el camino andado. Para empezar generamos w4 = (0, 1) el, el vector a nadiendo un cero en la primera componente a v4 y, a partir de v4 = (4 3 )w4 + 3 ((x )T w4 )v3 = 2(0, 1) + 3(0)(1, 1) = (0, 2).
As pues, a los valores propios de A , 3 = 3 y 4 = 1, corresponden los vectores propios etodo de la potencia, y v4 = (0, 2). v3 = (1, 1), que obtuvimos con el m A continuaci on construimos w3 = (1, 0, 1) y w4 = (0, 0, 2) a partir de los vectores v3 y v4 a nadiendo un cero en la segunda componente. En este punto calculamos v3 = (3 2 )w3 + 2 ((x )T w3 )v2 = (3, 0, 3) + (1, 2, 1)
= (5)(0, 0, 2) + 6(0)(1, 2, 1)
130
que son vectores propios de valores propios 3 = 3 y 4 = 1 para A , a los que tenemos que a nadir v2 = (1, 2, 1), que era el vector inicial de valor propio 2 = 6 que proporcionaba el m etodo de la potencia. Ya casi hemos terminado. Generamos w2 = (1, 2, 1, 0) w3 = (2, 2, 2, 0) y w4 = (0, 0, 10, 0) a partir de los vectores v2 , v3 y v4 a nadiendo un cero en la cuarta componente. (N otese que podemos tomar, si as lo deseamos, los vectores m as sencillos (1, 1, 1, 0) y (0, 0, 1, 0) en lugar de w3 y w4 , pues son igualmente vectores propios de B ). Finalmente v2 = (2 1 )w2 + 1 (xT w2 )v1 = (2, 4, 2, 0),
= (2)(1, 2, 1, 0) + 8(0)(1, 0, 0, 2)
= (5)(2, 2, 2, 0) + 8(0)(1, 0, 0, 2)
junto a v1 = (1, 0, 0, 2), completan la base de vectores propios de A que busc abamos. Naturalas sencillos mente, en lugar de v2 , v3 y v4 podemos usar respectivamente los vectores propios m (1, 2, 1, 0), (1, 1, 1, 0) y (0, 0, 1, 0).
6.3.
El m etodo de Jacobi
Este m etodo se emplea cuando buscamos todos los valores propios y una base de vectores propios de una matriz sim etrica real. Recordemos que las matrices sim etricas son diagonalizables: existe una matriz ortogonal (es decir, una matriz cuya traspuesta coincide con su inversa) tal que 1 0 . . . 0 . 0 2 . . . . . T A = . . . . . . . . 0 . 0 . . . 0 n
131
es diagonal con los valores propios de A en la diagonal. En particular todos los valores propios de A son reales (aunque pueden repetirse) y los vectores columna de la matriz forman una base ortonormal de vectores propios, siendo el vector de la columna i el vector propio asociado al valor propio i . El m etodo de Jacobi consiste en ir construyendo una sucesi on de matrices ortogonales ele on de matrices: mentales(por su forma simple) (Ok )k=1 de manera que la sucesi A0 = A, converja hacia una matriz diagonal formada por los valores propios. As , la esperanza ser a que la sucesi on de matrices ortogonales 0 = Id y k = k1 Ok = O1 Ok converja hacia una matriz ortogonal cuyas columnas formen una base ortogonal de vectores propios. La idea de la construcci on es la de ir anulando en cada paso k dos elementos de la matriz Ak que est en fuera de la diagonal y en posiciones sim etricas (los correspondientes a ciertos coecientes pq y qp). Para ello se utilizan rotaciones en el plano determinado por los vectores p- esimo y q - esimo de la base can onica de Rn descritas por las matrices ortogonales: p q
T Ak = Ok Ak1 Ok = (O1 Ok )T A(O1 Ok ) (k 1)
Lema 6.3.1 Sean p y q enteros 1 p < q n y un n umero real a los cuales asociamos la matriz ortogonal O descrita m as arriba. (i) Si A = (aij ) es una matriz n n sim etrica, entonces la matriz B = OT AO = (bij )
n n
1 . .. 1 cos 1 .. O= . sen
sen 1 cos 1 .. . 1
b2 ij
i,j =1
=
i,j =1
a2 ij .
(ii) Si apq = 0, existe un u nico valor de ( umero 4 , 4 ] \ {0} tal que bpq = 0. El n est a determinado por la ecuaci on aqq app cot 2 = . 2apq
b2 ii =
i=1 i=1
2 a2 ii + 2apq .
puede expresarse en t erminos de la traza matricial y esta es invariante por cambios de base. Si se multiplica una matriz A por la derecha por otra que tiene como vectores la, salvo los de las las p y q , los vectores de la base can onica, entonces la matriz producto tiene los mismos vectores columna que A excepto los correspondientes a las columnas p y q . (i) Como A es sim etrica, B T = (OT AO)T = OT AT (OT )T = OT AO = B, as que B es sim etrica tambi en. Por otra parte, recordemos que la traza tr C = n i=1 cii de una matriz C = (cij ) se conserva por cambios de base, es decir, si P es invertible entonces tr(P 1 CP ) = tr C . En particular, si recordamos que OT = O1 , tendremos
n T T T b2 ij = tr(B B ) = tr(BB ) = tr(O AOO AO ) i,j =1
n i,j =1
a2 ij
1/2
=
i,j =1
a2 ij .
(ii) Por la estructura de la matriz O, si C es una matriz cualquiera el resultado del producto CO es una matriz con los mismos vectores columna que C excepto que los vectores columna p- esimo y q - esimo de C , vp y vq , son reemplazados respectivamente por cos vp sen vq y alogamente, el producto OT C tiene los mismos vectores la que C excepto sen vp + cos vq . An que los vectores la p- esimo y q - esimo de C , wp y wq , son reemplazados respectivamente por cos wp sen wq y sen wp + cos wq . As pues, B y A tienen los mismos coecientes salvo los de las las y las columnas p y q . M as a un, los coecientes de los lugares pp, pq , qp y qq est an conectados por la igualdad bpp bpq bqp bqq = cos sen sen cos app apq aqp aqq cos sen , sen cos
2 2 2 2 2 y razonando como en (i) obtenemos a2 pp + aqq + 2apq = bpp + bqq + 2bpq independientemente de lo que valga . Haciendo operaciones y usando las conocidas f ormulas trigonom etricas cos 2 = cos2 sen2 y sen 2 = 2 sen cos , obtenemos
133
Por tanto, si elegimos como en el enunciado de (ii) se tendr a que bpq = bqp = 0 y en consecuencia, dado que los coecientes en las diagonales principales de A y B son los mismos excepto los correspondientes a los lugares pp y qq , obtenemos
n n
b2 ii =
i=1 i=1
2 a2 ii + 2apq .
Enfatizamos que la aplicaci on cot 2 lleva biyectivamente ( que 4 , 4 ] \ {0} a R as est a bien denido y es u nico.
Antes de pasar a describir el algoritmo y estudiar los resultados de convergencia es conveniente hacer las siguientes observaciones: 1. Si vemos Mnn (R) como el espacio eucl deo Rn y en el usamos la norma eucl dea habitual, es decir, 1/2
n
2
DOS
DOS
(en el libro de Ciarlet se usa la notaci on E para referirse a esta norma), el Lema 6.3.1(i) nos dice que la transformaci on B = OT AO deja invariante a la norma. El Lema 6.3.1(ii), por su parte, muestra que la suma de los cuadrados de la diagonal de B aumenta al tiempo que los coecientes bpq y bqp se anulan. 2. Esta transformaci on s olo afecta a las las p y q , y las columnas p y q . De forma m as precisa: bpi = bip = aip cos aiq sen si i = p e i = q ; bqi = biq = aip sen + aiq cos si i = p e i = q ; bpp = app cos2 + aqq sen2 apq sen 2; bqq = app sen2 + aqq cos2 + apq sen 2; a a bpq = bqp = apq cos 2 + pp 2 qq sin 2=0; bij = aij en el resto de los casos. Resulta que las relaciones entre las f ormulas trigonom etricas permiten describir los coecientes de B a partir de los A sin necesidad de calcular expl citamente . En efecto, sea x = cot 2 = aqq app 2apq (6.4)
i,j =1
a2 ij
y de aqu t2 + 2xt 1 = 0. Despejando t en funci on de x obtenemos t = x el dato adicional de que |t| 1 (porque || /4) podemos precisar m as: t= x + x2 + 1 x x2 + 1 si x 0, si x < 0.
(6.5)
134
De nuevo recordando que || /4 (con lo que cos > 0) y usando que tg2 + 1 = 1/ cos2 , obtenemos c= y s= t2 t +1 (6.7) 1 t2 + 1 (6.6)
para c = cos y s = sen . Ahora podemos encontrar expresiones muy convenientes para bpp y bqq : bpp = c2 app + s2 aqq 2scapq
= app + s2 (aqq app ) 2scapq t2 2t = app + 2 x2apq 2 apq t +1 t +1 t(1 t2 ) 2t = app + 2 apq 2 apq t +1 t +1 = app tapq ;
an alogamente, bqq = aqq + tapq . Ya estamos en condiciones de describir el m etodo de Jacobi: 1. Partiendo de A0 = A y 0 = Id se van construyendo una sucesi on de matrices Ak = T Ok Ak1 Ok mediante cambios de base dados por rotaciones y las correspondientes matrices k = k1 Ok de cambio de base, con lo que Ak = T k Ak . 2. Supuesta construida Ak = (aij ), se elige un t ermino apq con p < q para anular con una rotaci on; para ello seguiremos el llamado criterio de Jacobi cl asico, que consiste tomar el t ermino de mayor tama no, ax{|aij | : i < j }; |apq | = m umero nito de pasos obs ervese que si apq = 0 entonces la matriz es diagonal y tras un n hemos obtenido la matriz k ortogonal cuyos vectores columna son la base de vectores propios buscada (con los correspondientes valores propios los t erminos en la diagonal de Ak ). 3. Se denen x, t, c y s con arreglo a las f ormulas (6.4)-(6.7) y se calculan los coecientes la ormulas matriz Ak+1 = (bij ) de acuerdo con las f bpi = bip = caip saiq si i = p e i = q , bqi = biq = saip + caiq si i = p e i = q , bpp = app tapq , bqq = aqq + tapq , bpq = bqp = 0, bij = aij en el resto de los casos. 4. Se calculan los coecientes de la matriz k+1 = (ij ) a partir de los coecientes de k = (oij ) de acuerdo con las f ormulas ip = coip soiq ,
135
5. Como las sumas de los cuadrados de los coecientes de las matrices Ak son siempre las mismas pero las sumas de los cuadrados de sus coecientes diagonales son estrictamente crecientes, esperamos que la sucesi on (Ak ) converja a una matriz diagonal en la que encontraremos todos los valores propios de A, y que la sucesi on de los productos de rotaciones k converja hacia una matriz ortogonal cuyas columnas determinan una base de vectores propios de A. Ejemplo 6.3.2 Aplicamos el primer paso del algoritmo de Jacobi a la matriz 1 1 3 4 1 4 0 1 A= . 3 0 0 3 4 1 3 1 En este caso p = 1 y q = 4, con a14 = 4. Entonces x= a44 a11 11 = 0, = 2a14 8 x2 + 1 = 1, 1 2 c= = , 2 t2 + 1 t 2 . s= = 2 2 t +1
t = x +
Por tanto, si A1 = (bij ), tendremos que b11 = a11 ta14 = 1 4 = 3, 2 2 = b21 = ca21 sa24 = (1) (1) = 0, 2 2 2 2 = b31 = ca31 sa34 = (3) (3) = 3 2, 2 2 = b41 = 0, b22 = a22 = 4, b23 = b32 = a32 = 0, b24 = b42 = sa21 + ca24 2 2 = (1) + (1) = 2, 2 2
2 2 = (3) + (3) = 0, 2 2
136 As pues,
3 0 3 2 0 0 4 0 2 A1 = . 3 2 0 0 0 0 2 0 5 Finalmente, en esta primera etapa la matriz 1 es la propia matriz O1 , es decir, c 0 1 = 0 s 0 1 0 0 0 0 1 0 2/2 s 0 0 = 0 0 2/2 c 0 1 0 0 0 2/2 0 0 . 1 0 0 2/2
A la hora de escribir un algoritmo con este m etodo usaremos como condici on de parada nos o bien que se que los coecientes de Ak fuera de la diagonal son sucientemente peque realice un n umero excesivo de iteraciones. En el primer caso tendremos aproximados los valores propios y una base de vectores propios, mientras que en el segundo habremos parado para evitar entrar en un bucle innito. De hecho probaremos enseguida que la sucesi on (Ak ) siempre converge a una matriz diagonal con los valores propios de A pero puede ocurrir (si existen valores propios repetidos) que las matrices (k ) no converjan. Por ello, en el caso en que al detener el proceso veamos que aparecen valores propios repetidos (esto es, si sus aproximaciones son sucientemente parecidas) lanzaremos un mensaje de advertencia (que no de error) pues los e aproximar a los vectores propios vectores de k en el momento de la parada no tienen por qu buscados (aunque en todo caso proporcionar an una base ortonomal). Vale la pena subrayar que para la matriz 1 1 3 4 1 4 0 1 A= 3 0 0 3 4 1 3 1 anterior, el algoritmo proporciona en tan s olo 4 iteraciones los cuatro valores propios 1 = 6, 2 = 3 = 3 y 4 = 6 y la base ortonormal de vectores propios v1 = (1, 0, 1, 1)/ 3, v2 = (1, 2, 0, 1)/ 6, v3 = (1, 0, 2, 1)/ 6, v4 = (1, 1, 0, 1)/ 3 con la m axima precisi on de la m aquina.
137
Algoritmo 6.3
Datos de entrada: A[n][n] (matriz sim etrica cuyos valores propios queremos obtener); tol (precisi on para la condici on de parada); nmax (n umero m aximo de iteraciones); Variables: O[n][n]; // matriz auxiliar donde se guardan los vectores propios aproximados B [n][n]; // matriz auxiliar donde se guardan los valores propios aproximados Sol[n][n + 1]; // matriz para devolver los resultados p; q ; x; t; c; s; aux; // variables auxiliares Flujo del programa: B = A; O = Id; // se inicializa O a la identidad // Vamos a hacer las etapas k = 1, 2, ..., nmax. for(k=1;k<=nmax;k++){ aux = 0; // Elecci on del coeciente m as grande. for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ if(|Bij | > aux){ p = i; q = j; aux = |Bij |; } } }
138
Algoritmo 6.3
} Parada: no hay convergencia en nmax iteraciones Datos de salida: Valores y vectores propios de la matriz A, mensaje de error si la iteraci on no converge, mensaje de advertencia si se repiten valores propios.
if(aux < tol){ for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ if(|Bii Bjj | < tol){ Advertencia: posible error en los vectores propios } } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ Solij = Oji ; // se escriben los vectores propios soluci on } Solin = Bii ; // se escriben los valores propios soluci on } Parada: los vectores y valores propios buscados est an en Sol } // C alculo de los coecientes modicados de B . x = (Bqq Bpp )/(2 Bpq ); if(x 0){ t = x + 1 + x x; } else{ t = x 1 + x x; } c = 1/ 1 + t t; s = t/ 1 + t t; for(i=0;i<n;i++){ aux = Oip ; Oip = c aux s Oiq ; Oiq = s aux + c Oiq ; } Bpp = Bpp t Bpq ; Bqq = Bqq + t Bpq ; Bpq = Bqp = 0; for(i=0;i<n;i++){ if(i = p, q ){ aux = Bip ; Bpi = Bip = c aux s Biq ; Bqi = Biq = s aux + c Biq ; } }
139
El siguiente teorema garantiza la convergencia del m etodo de Jacobi cl asico. La clave de su prueba esta en este lema de topolog a: Lema 6.3.3 Si (xk ) es una sucesi on acotada en un espacio vectorial normado de dimensi on on y l mk xk+1 nita X sobre R, (xk ) posee una cantidad nita de puntos de acumulaci xk = 0, entonces (xk ) es una sucesi on convergente. n: Demostracio Ideas que intervienen: No es restrictivo suponer X = Rn . Para los puntos de acumulaci on ai de la sucesi on (xk ) encontramos peque nas bolas centradas en ai y separadas a una distancia positiva unas de otras. Usando que toda sucesi on acotada en Rn tiene un punto de acumulaci on vemos que a partir de un cierto ndice todos los t erminos de la sucesi on est an en la uni on de las bolas. Usamos la hip otesis l mk xk+1 xk = 0 para concluir que, de hecho, los t erminos de sucesi on est an todos en la misma bola. Es sabido que dos espacios vectoriales normados sobre R de la misma dimensi on (nita) son homeomorfos. Por ejemplo, es sencillo demostrar que cualquier isomorsmo lineal es un homeomorsmo. Por tanto podemos suponer, sin p erdida de generalidad, que X = Rn . on de la sucesi on (xk ). Entonces, para cada Sean ai , 1 i M , los puntos de acumulaci > 0, existe un natural l( ) tal que si k l( ) entonces
M
xk
B (ai , )
i=1
(aqu , B (a, ) = {x Rn : x a < } es la bola abierta de centro a y radio para la distancia inducida por la norma ). La raz on es que, en caso contrario, podr amos extraer una subsucesi on (xkm ) de (xk ) con la propiedad de que
M
/ xkm
B (ai , )
i=1
para cada m. Pero sabemos que en Rn cada sucesi on acotada, en particular (xkm ), posee alg un punto de acumulaci on. Este punto de acumulaci on, que tambi en lo es de (xk ), no puede estar en on con el hecho de que los puntos ai son los u nicos ninguna de las bolas B (ai , ), en contradicci puntos de acumulaci on de (xk ). Elijamos en particular
0
1 m n ai ai 3 i=i
>0
xk
B (ai ,
i=1
0 ),
xk+1 xk <
140
para cada k l0 (tambi en hemos usado la hip otesis l mk xk xk+1 = 0). Sea i0 tal que xl0 B (ai0 , 0 ). Como xl0 ai0 < 0 y xl0 +1 xl0 < 0 , obtenemos xl0 +1 ai0 < 2 0 por la desigualdad triangular y por tanto, gracias de nuevo a la desigualdad triangular y a la denici on de 0 , xl0 +1 ai > 0 para cada i = i0 . Esto signica que xl0 +1 no puede pertenece a ninguna de las bolas B (ai , 0 ) excepto tal vez a la bola B (ai0 , 0 ). Como on es que xl0 +1 B (ai0 , 0 ). de hecho xl0 +1 ha de estar en alguna de las bolas, la conclusi / B (ai , 0 ) si i = i0 para cada Reiterando el razonamiento, concluimos que xk B (ai0 , 0 ) y xk k l0 . Vemos, pues, que ninguno de los puntos ai , i = i0 , puede ser punto de acumulaci on de (xk ), es decir, ai0 es el u nico punto de acumulaci on de (xk ). Esto equivale a decir que l mk xk = ai0 .
Teorema 6.3.4 (convergencia del m etodo de Jacobi cl asico) La sucesi on (Ak ) de matrices obtenidas por el m etodo de Jacobi cl asico para una matriz sim etrica A es convergente hacia una matriz diagonal, diag((1) , . . . , (n) ), en la que aparecen los valores propios 1 , . . . , n de A convenientemente permutados. Si suponemos adem as que los valores propios de la matriz A son distintos entre s , la sucesi on de matrices (k ) denida por k = O1 O2 Ok
converge hacia una matriz ortogonal cuyas columnas determinan una base de vectores propios de A con valores propios los correspondientes en la anterior matriz diagonal. n: Demostracio Demostramos la primera parte del teorema. Para ello seguiremos el siguiente esquema: Ideas que intervienen:
k k Si Ak = (ak ij ) = Dk + Bk , con Dk = diag(a11 , . . . , ann ), probamos que l mk Bk = 0.
Demostramos que (Dk ) tiene a lo sumo un n umero nito de puntos de acumulaci on, cada uno de ellos de la forma diag((1) , . . . , (n) ) para una cierta permutaci on de los ndices {1, 2, . . . , n}. Probamos que l mk Dk+1 Dk = 0. Comprobamos que la sucesi on (Dk ) est a acotada. Aplicamos el Lema 6.3.3. (i) Consideremos los n umeros
k
=
i=j
2 |ak ij | = Bk
2 DOS ,
k 0.
Como k es la suma de los cuadrados de los coecientes de la matriz Ak fuera de la diagonal principal, sabemos (Lema 6.3.1) que si que p < q son los ndices elegidos para generar Ak+1 a partir de Ak con el m etodo de Jacobi, entonces
k+1
2 2|ak pq | .
Valores y vectores propios Por otro lado, y dado que |apq | = m axi=j |aij |, resulta
k 2 n(n 1)|ak pq |
141
(pues el n umero de coecientes fuera de la diagonal principal es n(n 1)). Combinando ambas relaciones obtenemos 2 k+1 1 k, n(n 1) de donde se deduce l mk
k
= 0 y por tanto l mk Bk = 0.
(ii) Supongamos que una cierta subsucesi on (Dkm ) de (Dk ) converge a una cierta matriz D. Entonces la matriz D ser a diagonal. Por otro lado, como Bk 0 por (i) tambi en ser a cierto que (Akm ) converge tambi en a D. Por continuidad tenemos que, para cada n umero Bkm 0, as R jado,
m
Como las matrices Ak y A son semejantes, tambi en lo ser an las matrices Id Ak y Id A para cada R, con lo que deducimos que sus determinantes son los mismos y por tanto det( Id A) = det( Id D) para cada R.
Estamos diciendo que polinomios caracter sticos de A y D toman los mismos valores para cada valor de la inc ognita. Como es sabido, si dos polinomios de grado n toman los mismos valores en n +1 puntos distintos entonces ambos polinomios son iguales. La conclusi on que es los polinomios caracter sticos de A y D (y por tanto sus valores propios, incluidas multiplicidades) son los mismos. Como la matriz D es diagonal, los elementos de su diagonal ser an los valores propios de A, con las mismas multiplicidades, adecuadamente permutados. Hemos probado que (Dk ) tiene a lo sumo un n umero nito de puntos de acumulaci on, cada uno de ellos de la forma on de los ndices {1, 2, . . . , n}. diag((1) , . . . , (n) ) para una cierta permutaci 0 k+1 k aii aii = tg k ak pq k tg k apq si i = p, q , si i = p, si i = q ,
donde k (/4, 0) (0, /4]. Como | tg k | 1 y |ak as se pq | Bk DOS para cada k , y adem tiene l mk Bk = 0 por (i), concluimos que l mk (Dk+1 Dk ) = 0. Dk
DOS
Ak
DOS
= A
DOS
por el Lema 6.3.1(i). Por tanto la sucesi on (Dk ) est a acotada. Ya estamos listos para probar la primera parte del Teorema 6.3.4. De acuerdo con el Lema 6.3.3 y (ii), (iii) y (iv), la sucesi on (Dk ) converge a una matriz diagonal diag((1) , . . . , ( n) ). Por (i), la sucesi on (Ak ) converge a la misma matriz. Probamos ahora la segunda parte del teorema conforme al siguiente esquema:
Demostramos que la sucesi on (k ) s olo tiene un n umero nito de puntos de acumulaci on, que son necesariamente de la forma (p(1) , p(2) , . . . , p(n) ), siendo p1 , p2 , . . . , pn una base ortonormal de vectores propios de valores propios correspondientes 1 , 2 , . . . , n . Probamos que l mk (k+1 k ) = 0. Se demuestra que las matrices ortogonales est an acotadas para la norma Se concluye la prueba usando el Lemma 6.3.3. (i) Sea un punto de acumulaci on de la sucesi on (k ) y sea (km ) una subsucesi on de (k ) ) converger a a T . Como convergente a . Entonces la sucesi on de las matrices traspuestas (T km T T k k = Id para cada k y el producto de las sucesiones (km ) y (km ) converge por continuidad a T , concluimos que T = Id, es decir, la matriz es ortogonal. Recordemos que por la primera parte del teorema las matrices Ak = T k Ak convergen a una matriz diagonal diag((1) , . . . , (n) ). Tomando l mites en la subsucesi on (T km Akm ) llegamos a que T A = diag((1) , . . . , ( n) ). La igualdad implica que los vectores columna de forman una base ortonormal de vectores otesis todos los valores propios con valores propios respectivos los n umeros (i) . Como por hip propios son distintos, cada subespacio propio tiene dimensi on 1 y para cada valor propio existen exactamente dos vectores propios (uno opuesto del otro) de norma 1. Hemos probado que es de la forma (p(1) , p(2) , . . . , p(n) ). (ii) Recordemos que los angulos k son tales que |k | /4 y satisfacen la igualdad tg 2k = 2ak pq k aqq ak pp
DOS .
para cada k . Enfatizamos que los ndices p y q dependen de k , pero para simplicar la notaci on no hacemos expl cita esta dependencia. Como los coecientes ak de la diagonal principal de las ii matrices Ak convergen a los valores propios (i) y dichos valores propios son distintos dos a dos, existir a un n umero l sucientemente alto tal que si k l entonces
k m n |ak ii ajj | i=j
1 m n |i j | =: M > 0; 2 i=j
k en particular, |ak qq app | M para cada k l. Como todos los coecientes fuera de la diagonal principal de Ak tienden a cero, la sucesi on (ak ndices p y q vayan pq ) tiende a cero (aunque los variando con k ). As pues, (tg 2k ) tiende a cero e igualmente (k ) tiende a cero. En resumen, hemos probado que l m Ok = Id. k
l m (k+1 k ) = 0.
(iii) En el Cap tulo 3 (Teorema 3.3.1) se vio que la norma 2 de todas las matrices ortogonales 2 es 1. Como en Mnn (R) (que puede verse como el espacio eucl deo Rn ) todas las normas son
143
equivalentes, existe en particular una cierta constante > 0 tal que B DOS B 2 para cada B Mnn (R). De esto se deduce que O DOS para cada matriz ortogonal O. Finalmente, la segunda parte del Teorema 6.3.4 se deduce del Lema 6.3.3 y (i), (ii) y (iii).
144
Bibliograf a
[1] R. L. Burden y J. D. Faires, An alisis Num erico, Grupo Editorial Iberoam erica, M exico, 1985. [2] P. G. Ciarlet, Introduction ` a lAnalyse Num erique Matricielle et ` a lOptimisation, Dunod, Par s, 1990. [3] D. Kincaid y W. Cheney, An alisis Num erico. Las Matem aticas del C alculo Cient co, Addison-Wesley Sudamericana, Wilmington, 1994.
146
' '
Cap tulo
Ceros de polinomios
Interrogantes centrales del cap tulo
$ $
Ceros de polinomios. Teorema fundamental del Algebra. M etodos num ericos para aproximaci on de ceros: M etodo de Newton para polinomios. Iteraci on de Laguerre.
& & ' #
% % $
Describir los algoritmos correspondientes a los distintos m etodos de aproximaci on de ceros y factorizaci on de polinomios. Comparar la convergencia de las aproximaciones proporcionadas por cada m etodo. Implementar en el ordenador los programas de los m etodos de este cap tulo utilizando variables complejas en los algoritmos.
" &
Aplicar los programas construidos de forma efectiva en la b usqueda de todas las ra ces reales y complejas de un polinomio concreto.
! %
148
7.1.
Recordemos que un polinomio complejo es una combinaci on lineal de potencias naturales de la variable z , p(z ) = a0 + a1 z + + an z n , donde los coecientes ak C son n umeros complejos y an = 0. En estas condiciones se dice que el polinomio p(z ) tiene grado n N. Se adopta la convenci on de que el grado del polinomio constante cero es .
Como ya explicamos, para calcular el valor del polinomio p en un punto z0 lo m as rentable desde el punto de vista computacional es usar el esquema de Horner (popularmente conocido como regla de Runi) p(z0 ) = (. . . ((an z0 + an1 ) z0 + an2 ) z0 + + a1 ) z0 + a0 .
Los multiplicadores de z0 en esta f ormula se van obteniendo de forma recursiva siguiendo el esquema an z0 bn an1 z0 bn bn1 an2 z0 bn1 bn2 ...... ...... ...... a1 z0 b2 b1 a0 z0 b1 b0
con bn = an y bk = bk+1 z0 + ak para k = (n 1), . . . , 1, 0. Los coecientes bk tambi en determinan el cociente c(z ) de la divisi on de p(z ) entre z z0 .
En efecto, recu erdese que si p(z ) y q (z ) son polinomios dados entonces existen polinomios c(z ) y r(z ) (con el grado de r(z ) estrictamente menor que el de q (z )) de manera que p(z ) = c(z )q (z ) + r(z ).
Ceros de polinomios
149
Los polinomios c(z ) y r(z ) (el cociente y el resto de la divisi on de p(z ) entre q (z )) est an un vocamente determinados. Si z0 z y tomamos q (z ) = z z0 entonces r(z ) debe ser una constante r0 C, y sustituyendo z por z0 en la igualdad p(z ) = c(z )(z z0 ) + r0 obtenemos z0 = p(z0 ), es decir, p(z ) = c(z )(z z0 ) + p(z0 ). Denamos c(z ) = bn z n1 + bn1 z n2 + + b2 z + b1 , con los coecientes bk como en el algoritmo de Horner. Entonces c(z )(z z0 ) = bn z n + bn1 z n1 + + b2 z 2 + b1 z bn z n1 z0 + + b2 z0 + b1 z0 , c(z )(z z0 ) + b0 = bn z n + (bn1 bn z0 )z n1 + + (b1 b2 )z + (b0 b1 z0 ). De acuerdo con la denici on de los coecientes bk resulta bn = an y bk bk+1 z0 = ak , de donde se obtiene la igualdad (7.1). Recordamos a continuaci on el pseudoc odigo del algoritmo de Horner, enfatizando que si s olo necesitamos obtener el valor de p(z ) podemos acelerar el algoritmo utilizando una u nica variable b en lugar de una lista bk (se inicia b con el valor de an y en el bucle for se hace la asignaci on b = bz + ak ). (7.1)
Algoritmo 7.1
Esquema de Horner
Datos de entrada: a0 , a1 , . . . , an (coecientes del polinomio p); z0 (n umero donde se eval ua el polinomio); Flujo del programa: bn = an ; for(k=n-1;k>=0;k--){ bk = bk+1 z0 + ak ; } Datos de salida: b0 (valor de p(z0 )) y b1 , . . . , bn (coecientes de q (z )).
con lo que p(2) = 0 y p(z ) = (z 2)(1z 3 2z 2 + 3z + 1). Al derivar en la expresi on (7.1) se tiene que p (z ) = q (z )(z z0 ) + q (z ) y por lo tanto p (z0 ) = q (z0 ). As , para evaluar la derivada p (z0 ) bastar a con aplicar el esquema de Horner a q (z ) en el punto z0 . N otese que estamos usando aqu derivaci on compleja: la denici on es la misma que la derivada usual, s olo que trabajando en C en lugar de R. La demostraci on de las reglas de derivaci on usuales no queda afectada por este hecho.
150
El esquema de Horner aplicado a q (z ) nos proporciona q (z0 ) y el polinomio cociente m(z ) on de p nos da la expresi on de q (z ) entre (z z0 ), que sustituido en la factorizaci p(z ) = (m(z )(z z0 ) + q (z0 ))(z z0 ) + p(z0 ) = m(z )(z z0 )2 + q (z0 )(z z0 ) + p(z0 ). Al hacer la segunda derivada obtenemos que p (z0 ) = 2! m(z0 ). Si repetimos la aplicaci on de Horner vamos obteniendo las distintas derivadas p(k) (z0 ). Tambi en podemos expresar el desarrollo de Taylor de un polinomio en el punto z0 utilizando (k ) el m etodo de Horner para evaluar los coecientes ck = p k(!z0 ) en la expresi on p(z ) = cn (z z0 )n + cn1 z n1 + + c1 (z z0 ) + c0 . Ve amoslo en el siguiente ejemplo. Ejemplo 7.1.2 Desarrollamos a continuaci on el polinomio p(z ) = z 4 4z 3 + 7z 2 5z 2 en potencias de (z 3):
1 3 1 3 1 3 1 3 c4 = 1 4 3 1 3 2 3 5 3 c3 = 8 7 3 4 6 10 15 c2 = 25 5 12 7 30 c1 = 37 2 21 c0 = 19
As pues, p(z ) = 1(z 3)4 + 8(z 3)3 + 25(z 3)2 + 37(z 3) + 19. En las siguientes secciones, utilizaremos el esquema de Horner para evaluar simult aneamente los polinomios y sus derivadas en las implementaciones de los distintos m etodos num ericos de localizaci on de ra ces.
7.2.
Si p(z0 ) = 0 se dice que z0 es un cero del polinomio o una ra z de p(z ). La f ormula (7.1) nos on del polinomio q (z ) se le llama deaci on da la factorizaci on p(z ) = (z z0 )q (z ). A la obtenci de p(z ) en z0 (ver el Ejemplo 7.1.1). Si q (z0 ) = 0 podemos factorizar q obteniendo q (z ) = (z z0 )q1 (z ) y p(z ) = (z z0 )2 q1 (z ). As seguiremos hasta llegar a una factorizaci on de p de la forma p(z ) = (z z0 )k0 q0 (z ), umero k0 es la multiplicidad de la ra z z0 de p. donde q0 (z ) es un polinomio con q0 (z0 ) = 0. El n Antes de buscar ceros de polinomios debemos preguntarnos sobre su existencia. El teorema fundamental del Algebra nos responde a esta cuesti on: Teorema 7.2.1 (teorema fundamental del Algebra; Gauss, 1799) Todo polinomio no constante con coecientes complejos tiene al menos una ra z compleja.
Ceros de polinomios
151
n: Aunque el enunciado es puramente algebraico todas las demostraciones aseDemostracio quibles que se conocen hacen uso de recursos del An alisis Matem atico. Vamos a exponer esquem aticamente una de estas pruebas. Puede encontrarse el desarrollo detallado de la misma en el Teorema 2.2.7 del libro An alisis Matem atico II de J. A. Fern andez Vi na [2]. Ideas que intervienen: Sea p(z ) un polinomio no constante de grado n, digamos p(z ) = a0 + a1 z + + an z n con an = 0. Comparando p(z ) con el sumando an z n podemos armar que
|z |
Por la armaci on anterior, como |p(z )| es una funci on continua en C podemos concluir que la funci on continua |p(z )| alcanza su valor m nimo en un punto z0 C. Para ver que z0 es una ra z de p, es decir p(z0 ) = 0, razonamos por reducci on al absurdo: supondremos que |p(z0 )| > 0 y llegaremos a una contradicci on. Si |p(z0 )| > 0 vamos a elegir una recta que pasa por z0 de manera que |p(z )| restringida a esa recta tome valores estrictamente menores que |p(z0 )|. En consecuencia, |p(z )| no tiene un m nimo en z0 , en contradicci on con la elecci on de z0 . Si k = k0 es la multiplicidad de z0 como ra z de p(z ) p(z0 ) podemos escribir (z )), p(z ) = p(z0 ) + (z z0 )k q (z ) = p(z0 )(1 + (z z0 )k q (z0 ) = 0. Escribimos z z0 = reit en coordenadas donde q es un polinomio de grado n k y b0 = q polares y q (z ) en la forma q (z ) = b0 + (z z0 )h(z ).
1 Si b0 = |b0 |eis , jamos la direcci on correspondiente a t = k ( s) y tenemos
p(z ) = p(z0 )(1 rk |b0 | + rk+1 ei(k+1)t h(z )). Tomando r peque no, rk |b0 | < 1 y la desigualdad triangular nos da |p(z )| |p(z0 )|((1 rk |b0 |) + rk+1 |h(z )|) = |p(z0 )|(1 rk (|b0 | r|h(z )|)). Como r|h(z )| 0 cuando r 0, si r es sucientemente peque no se tendr a |b0 | r|h(z )| > 0,5|b0 | y por lo tanto |p(z )| |p(z0 )|(1 rk (|b0 | r|h(z )|)) < |p(z0 )|(1 0,5rk |b0 |) < |p(z0 )|. Esta u ltima cadena de desigualdades nos da la contradicci on esperada.
152
Factorizando el polinomio p(z ) en z0 tenemos p(z ) = (z z0 )k0 q (z ). Si q (z ) no es constante podemos aplicar otra vez el teorema fundamental del Algebra para garantizar la existencia de un cero z1 de q que tambi en ser a un cero de p(z ). Repitiendo el proceso obtenemos el siguiente teorema de factorizaci on. Teorema 7.2.2 (factorizaci on de polinomios) Si p(z ) = a0 + a1 z + + an z n es un polinomio de grado n con coecientes en C, existen s + 1 n umeros complejos distintos z0 , z1 , . . . , zs , con s + 1 n, y enteros positivos k0 , . . . , ks , vericando k0 + + ks = n y p(z ) = an (z z0 )k0 (z z1 )k1 (z zs )ks . De la factorizaci on anterior se deduce que un polinomio de grado n tiene, a lo m as, n ra ces distintas. Repitiendo las ra ces seg un su multiplicidad, un polinomio de grado n tiene exactamente n ra ces. Tambi en se sigue que dos polinomios p(z ) y q (z )de grado menor o igual a n que coinciden en n + 1 n umeros complejos distintos (p(zk ) = q (zk ) con z1 , . . . , zn+1 distintos) deben ser iguales (p(z ) = q (z ) en todo z ). Una observaci on a tener en cuenta es que un polinomio puede tener todos sus coecientes reales y sus ra ces no tienen porque ser reales. Por ejemplo, en el polinomio p(x) = x2 + 1 = (x + i)(x i) los coecientes son n umeros reales y las ra ces i y i no lo son. En estos casos, si z0 C es una ra z del polinomio de coecientes reales p(z ) = a0 + a1 z + + an z n tomando conjugados en la en es ra z de p(z ) ya que expresi on p(z0 ) = 0 se deduce que z0 tambi
n = p(z ) = 0. p(z0 ) = a0 + a1 z0 + + an z0 n = a0 + a1 z0 + + an z0 0
As , cada vez que obtenemos una ra z compleja tambi en obtenemos su conjugada, es decir, si z (a + bi) es un factor de p(z ) tambi en lo ser a z (a bi) y por tanto igualmente lo ser a su producto (z (a + bi))(z (a bi)) = (z a)2 + b2 = z 2 2az + a2 b2 .
En otras palabras, todo polinomio con coecientes reales puede descomponerse como producto de monomios y polinomios de grado 2 con coecientes reales. A la hora de construir algoritmos de b usqueda de ra ces de polinomios deberemos tener presente la conveniencia de programarlos utilizando variables complejas (en C) aunque estemos pensando en utilizarlos con polinomios reales.
7.3.
Localizaci on de ceros
Para aplicar alguno de los m etodos que enseguida describiremos para aproximar ra ces es conveniente disponer de buenas aproximaciones iniciales de las mismas. En esta secci on vamos a localizar regiones del plano complejo en las que tenemos la certeza de que podemos encontrar ra ces de un polinomio, lo que ser au til para elegir nuestras aproximaciones iniciales. Teorema 7.3.1 Todas las ra ces del polinomio p(z ) = a0 + a1 z + + an z n de grado n est an en el disco de centro 0 y radio =1+ n: Demostracio 1 m ax{|a0 |, . . . , |an1 |}. |an |
Ceros de polinomios Ideas que intervienen: Vamos a ver que para |z | > se tiene |p(z )| > 0. As , todas las ra ces de p(z ) est an dentro del disco de centro 0 y radio . S olo usamos la desigualdad triangular. Sean M = m ax{|a0 |, |a1 |, . . . , |an1 |} y como en el enunciado. Entonces 1 = tanto, si |z | > se tiene que |an |(|z | 1) > |an |( 1) = |an | M = M. |an |
M |an | .
153
Por
Ahora es suciente hacer uno de la desigualdad triangular en la siguiente cadena de desigualdades: |p(z )| = | a0 + a1 z + + an1 z n1 + an z n | |an ||z |n M 1 + |z | + + |z |n1 |z |n 1 = |an ||z |n M |z | 1 |z |n |an ||z |n M |z | 1 1 = |z |n |an | M |z | 1 |z |n = |an |(|z | 1) M |z | 1 |z |n > (M M ) = 0 |z | 1 |an ||z |n |a0 | + |a1 ||z | + + |an1 ||z |n1
Ejemplo 7.3.2 Los ceros del polinomio p(z ) = z 4 4z 3 + 7z 2 5z 2 est an en el circulo de centro 0 y radio = 1+m ax{2, 5, 7, 4} = 1+7 = 8. En la Figura 7.1 representamos gr acamente
2 1.5
0.5
-7.5
-5
-2.5 -0.5
2.5
7.5
los valores del polinomio real |p(x)| comprendidos entre 0,5 y 2 cuando x varia en el intervalo real [8, 8] y observamos que el polinomio s olo tiene dos ra ces reales en los cortes de la gr aca con el eje x. Por otra parte en la Figura 7.2 representamos las curvas de nivel de la funci on |p(z )| en el rect angulo [1, 4] [2,5, 2,5] del plano complejo, contenido en el disco con centro en el origen y radio 8, y visualizamos la posici on de las cuatro ra ces (las dos reales y las dos complejas conjugadas).
154
-1
-2
-1
El teorema de localizaci on 7.3.1 nos da una acotaci on superior del m odulo de los ceros de un polinomio. Es posible tener tambi en una acotaci on inferior? La respuesta a esta cuesti on es armativa y para conseguir encontrar una acotaci on inferior 1 vamos a recurrir al habitual truco de invertir la variable, es decir, hacer el cambio z = w que transforma n umeros z peque nos en n umeros w grandes y viceversa. Pero antes de hacer el cambio de variable vamos a detenernos un instante en el caso en que la acotaci on inferior es 0, es decir, cuando z0 = 0 es una ra z del polinomio. En este caso no necesitamos recurrir a ning un algoritmo particular para descubrir este cero pues el polinomio tiene una expresi on de la forma p(z ) = ak z k + ak+1 z k+1 + + an z n = z k ak + + an z nk con ak = 0. De la expresi on deducimos sin m as que 0 es una ra z de p de multiplicidad k y el problema de b usqueda de ra ces se reduce al caso de polinomios que no se anulan en 0. Supongamos que p(z ) = a0 + a1 z + + an z n es un polinomio de grado n que no se anula en z = 0, y por lo tanto,con a0 = 0 y an = 0.
1 1 1 n n1 + + a tenemos p(z ) = p( w ) = w Haciendo z = w n a0 w + a1 w n1 w + an . Como n n 1 = 0, resulta que p(z ) = 0 si, y s olo si, q (w) = a0 w + a1 w + + an1 w + an = 0. Ahora hacemos uso del teorema de localizaci on y podemos asegurar que p(z ) = 0 s olo cuando 1 1 |w| = |z ), donde ( | z | | 1 w
=1+
Volviendo al Ejemplo 7.3.2, para p(z ) = z 4 4z 3 + 7z 2 5z 2, = 1 + asegurar que las ra ces de p est an en el anillo A = {z : 2 9 |z | 8}.
9 2
y podemos
Corolario 7.3.3 Sea p(z ) = a0 + a1 z + + an z n un polinomio de grado n tal que a0 = 0 y an = 0, y sean =1+ 1 1 m ax{|a0 |, . . . , |an1 |}, = 1 + m ax{|a1 |, . . . , |an |}. |an | |a0 |
1
|z | }.
Ceros de polinomios
155
7.4.
En un cap tulo anterior estudiamos el m etodo de Newton para aproximar ceros de funciones p(z ), y ya sabemos que si partimos de una aproximaci on inicial x0 sucientemente pr oxima a un cero simple de p, la iteraci on de Newton dada por xk+1 = xk converge cuadr aticamente hacia ese cero de p(z ). El esquema de Horner se puede utilizar para evaluar simult aneamente los valores de p y on del algoritmo de Newton para polinomios en la p agina p , tal y como reejamos en la versi siguiente. Obs ervese que el algoritmo tiene tambi en sentido para polinomios con coecientes complejos, pero no que no puede utilizarse para aproximar ra ces complejas de polinomios con coecientes reales a menos que partamos de una condici on inicial compleja. Otra propiedad del m etodo de Newton para polinomios interesante la proporciona el siguiente teorema que permite localizar un cero del polinomio dadas dos iteraciones consecutivas, y ofrece una estimaci on del error cometido al aproximar una ra z del polinomio por una iterada de Newton. Teorema 7.4.1 Sean xk y xk+1 dos iteraciones sucesivas del m etodo de Newton para un polinomio p(z ) de grado n 1. Entonces existe un cero de p(z ) en el disco complejo de centro xk y radio n|xk+1 xk |. n: Demostracio Ideas que intervienen: El teorema de factorizaci on 7.2.2 proporciona una representaci on del cociente p (z ) derivada logar tmica de p ( z ) (llamado as porque coincide con la derivada p(z ) de log(p(z ))). En efecto, si z1 , z2 , . . . , zn son las ra ces de p(z ) repetidas seg un su multiplicidad, entonces
n
p(xk ) p (xk )
p(z ) = an (z z1 )(z z2 ) (z zn ) = an
n n n
i=1
(z zi )
n i=1
p (z ) = an
i=1 j =1,j =i
(z zj ) =
i=1
p(z ) = p(z ) z zi
1 . z zi
El corrector de la aproximaci on inicial xk en el m etodo de Newton viene dado p(xk ) por p (xk ) que en t erminos de las ra ces del polinomio se puede escribir como xk+1 xk = p(xk ) = p (xk )
n 1 i=1 xk zi
Alguna de las ra ces cumple |xk zi | n|xk+1 xk |, pues en otro caso la desigualdad triangular nos llevar a a una contradicci on.
156
Algoritmo 7.2
Datos de entrada: a0 , a1 , . . . , an (coecientes del polinomio p); z (condici on inicial); tol (precisi on para la parada); nmax (n umero m aximo de iteraciones); Variables: xini; // variable para almacenar xk xn; // variable para almacenar xk+1 b; // variable para almacenar p(xk ) c; // variable para almacenar p (xk ) Flujo del programa: xini = z ; xn = 0; for(j=1;j<=nmax;j++){ b = an ; c = b; // Evaluaci on de p(xini) y p (xini) con Horner. for(k=n-1;k>=1;k--){ b = b xini + ak ; c = c xini + b; // p (xini) = c } b = b xini + a0 ; // p(xini) = b if(c = 0){ xn = xini (b/c); } else{ Parada: derivada nula } if((|b| < tol) or (|xfin xini| < tol)){ Parada: ra z en xini } else{ xini = xn } } Parada: no hay convergencia en nmax iteraciones Datos de salida: Ra z en xini o mensaje de error.
Ceros de polinomios
157
Si suponemos que |xk zi | > n|xk+1 xk | para i = 1, . . . , n, tendremos la siguiente cadena contradictoria de desigualdades: 1 |
n 1 i=1 xk zi |
|xk+1 xk | = >
n 1 i=1 |xk zi |
1
n 1 i=1 n|xk+1 xk |
1
1 |xk+1 xk |
= |xk+1 xk |.
Ejemplo 7.4.2 Calculando con ocho cifras decimales, las cinco primeras iteraciones del m etodo de Newton aplicado al polinomio de los ejemplos anteriores p(z ) = z 4 4z 3 + 7z 2 5z 2 con z pr oxima a x0 = 0 (v ease la inicio en x0 = 0 y estimaciones del error con respecto a la ra Figura 7.1) obtenemos los siguientes datos:
k 0 1 2 3 4 5
El teorema anterior nos asegura que 0,27568226 es una aproximaci on de la ra z buscada con un error menor que 2,4 107 . En general no tenemos ning un procedimiento que nos proporcione una aproximaci on inicial para la cual el algoritmo de Newton sea convergente. Sin embargo esta regla general s existe en algunos casos importantes, como en el siguiente teorema.
Teorema 7.4.3 Sea p(z ) un polinomio de grado n 2 con todas sus ra ces y coecientes reales. Si rn rn1 r2 r1 son los ceros de p(z ) ordenados en forma decreciente y x0 > r1 , entonces el m etodo de Newton proporciona una sucesi on de iteradas xk estrictamente decreciente convergente hacia r1 .
El teorema de Rolle para funciones reales de variable real nos asegura que entre z sk de la derivada de cada dos ra ces reales consecutivas, rk y rk+1 , hay una ra p(x), rn sn1 rn1 r2 s1 r1 . En consecuencia p (x) tiene n 1 ceros reales s1 , . . . , sn1 y todos son menores que p (x) no se anula en [r1 , ). que r1 , as Haciendo el mismo razonamiento con los n 1 ceros de p (x) podemos concluir que p (x) tampoco se anula en [r1 , ). Estas condiciones garantizan la monoton a y convergencia de las iteradas de Newton con inicio en x0 > r1 . Enfatizamos para empezar que todas las ra ces de p (x) (y del mismo modo las de p (x)) est an entre rn y r1 incluso que el caso de que p(x) tenga ra ces repetidas (porque si r es una ra z the p(x) de multiplicidad m entonces tambi en lo es de p (x) con multiplicidad al menos m 1).
Podemos suponer que p(x) > 0 para cada x > r1 (en caso contrario, cambiar amos el signo de p; n otese que el m etodo de Newton proporciona la misma sucesi on de n umeros).
Como p(x) converge a o cuando x , se tendr a en este caso l mx p(x) = . Si otico de p(x) y an xn an es el coeciente principal de p(x), sabemos que el comportamiento asint es el mismo, con lo que se concluye que an > 0. Como los coecientes principales de p (x) y p (x) son, respectivamente, nan y n(n 1)an , concluimos de igual manera l mx p (x), p (x) = y por tanto (ya que ni p (x) ni p (x) se anulan a la derecha de r1 ) que p (x), p (x) > 0 para cada x > r1 . Comprobemos que en estas condiciones el m etodo de Newton converge a r1 siempre que la a a la derecha de r1 . condici on inicial x0 est Sea (xk ) la sucesi on de iteradas por el m etodo de Newton, es decir, xk+1 = xk p(xk )/p (xk ). Basta demostrar que la sucesi on de errores ek = xk r1 es positiva y decreciente, pues entonces umero r r1 , y de hecho r = r1 ya que de otro modo se llegar a, tomando (xk ) converge a un n l mites en la expresi on xk+1 = xk p(xk )/p (xk ), a la contradicci on r = r p(r)/p (r).
on positiva y decreciente. Haciendo desarrollos Probamos a continuaci on que (ek ) es una sucesi de Taylor de orden dos obtenemos 0 = p(r1 ) = p(xk ek ) = p(xk ) p (xk )ek + (1/2)p (k )e2 k para un cierto n umero k comprendido entre r1 y xk . Por tanto ek+1 = xk+1 r1 = xk r (1/2)p (k )e2 p(xk ) p(xk ) p (xk )ek p(xk ) k = ek = = . p (xk ) p (xk ) p (xk ) p (xk )
A partir de aqu la armaci on se deduce inmediatamente por inducci on. Reuniendo este teorema y el teorema de localizaci on 7.3.1 obtenemos el siguiente corolario. Corolario 7.4.4 Si p(z ) = a0 + a1 z + + an z n tiene todos sus coecientes y ra ces reales y 1 elegimos x0 > 1 + |an | m ax{|ak | : k = 1, . . . , n 1}, entonces el algoritmo de Newton xk+1 =
p(xk ) p (xk ) ,
xk
genera una sucesi on mon otona decreciente hacia la mayor de las ra ces de p(z ).
Ceros de polinomios
159
Para el caso de polinomios con todas sus ra ces reales, el corolario anterior nos marca un camino a seguir para localizar todas las ra ces. Una vez localizada la mayor ra z r1 si hacemos la deaci on de p en r1 obtenemos un polinomio de grado n 1 con todas sus ra ces reales al cual podemos aplicar el proceso. Naturalmente para un polinomio dado no podemos saber de antemano si todas las ra ces son reales, pero incluso entonces esta puede ser una buena estrategia para jar el valor inicial.
7.5.
El m etodo de Laguerre
Este m etodo se emplea en varios paquetes de c alculo debido a que sus propiedades de convergencia son muy favorables: puede probarse que tiene convergencia de orden tres para condiciones iniciales pr oximas a una ra z simple. Adem as sus c alculos num ericos son bastante robustos. Antes de describir este algoritmo necesitamos algunos resultados previos que nos ayudar an a localizar las ra ces de un polinomio. En un primer lema vamos a posicionar n n umeros reales en un intervalo centrado en su media aritm etica y con longitud medida en t erminos de su desviaci on t pica. Sin llegar a describir y usar estos estad sticos lo enunciamos como sigue: Lema 7.5.1 Dados n n umeros reales v1 , v2 , . . . , vn , sean = todos los n umeros vj pertenecen al intervalo de extremos n: Demostracio Ideas que intervienen: Vamos a ver que para un polinomio q (x) de grado 2 que toma valores positivos umero vj . Por lo tanto estos n umeros est an para |x| grande, q (vj ) 0 en cada n en el intervalo cuyos extremos son las dos ra ces del polinomio q , que van a coincidir con los n umeros (n 1)(n 2 ) . n (n 1)(n 2 ) . n
n j =1 vj
y=
n 2 j =1 vj .
Entonces
No es restrictivo trabajar s olo con el n umero v1 . Para los otros n umeros basta con permutar las posiciones, y observar que estas permutaciones no afectan a los valores de y . Tenemos
2 2 2v1 + v1 = ( v1 )2
= (v2 + + vn )2
2 2 2 (n 1)(v2 + v3 + + vn ) 2 2 = (n 1) nv1 + v1 ;
ak bk (
2 a2 i) (
m k=1
2 b2 i) .
k=1
Por tanto
2 + 2v1 2 0 (n 1) nv1
y Consid erese el polinomio q (x) = nx2 2x + (2 (n 1) ) y notemos que q (v1 ) 0. Como ces reales, y v1 est a comprendido entre las l mx q (x) = +, q (x) cambia de signo, q tiene ra dos ra ces reales x= 2 n(2 (n 1) ) = n (n 1)(n 2 ) . n
2 2v1 + 2 (n 1) 0. nv1
En la secci on anterior analiz abamos las distancias de un punto a las ra ces de un polinomio escribiendo n p (x) 1 , = p(x) x zj
j =1
donde z1 , . . . , zn son las n ra ces de p(x). Derivando en esa expresi on con respecto a x y cambiando los signos, tenemos p(x)p (x) + p (x)2 = p(x)2 Reescribiendo el lema anterior con vj = resultado.
1 xzj , n j =1
1 . (x zj )2 =
p (x)2 p(x)p (x) , p(x)2
p (x) p(x) ,
se tiene el siguiente
Lema 7.5.2 Sea p(x) un polinomio de grado n con coecientes reales cuyos ceros, z1 , . . . , zn , 1 son todos reales. Entonces para cualquier n umero real x que no sea cero de p, los n umeros x zj est an en el intervalo de extremos p (x) (n 1)2 p (x)2 n(n 1)p(x)p (x) . np(x)
n: Basta con utilizar el lema anterior y escribir: Demostracio p (x) (n 1)(n 2 ) = n (n 1)2 p (x)2 n(n 1)p(x)p (x) . np(x)
Supongamos que xi es una aproximaci on de una ra z de p y que zj es la ra z de p m as 1 on xi ser a la de mayor tama n o (en valor absoluto). La idea pr oxima a xi . Entonces la fracci zj de Laguerre consiste en aproximar el valor de esta fracci on por el del extremo, C , del intervalo 1 dado por el lema, que tiene mayor tama no. Invirtiendo la fracci on xi on C zj y su aproximaci
1 obtenemos xf = xi C como una nueva aproximaci on de zj . As el algoritmo de Laguerre consiste en el siguiente proceso iterativo:
161
2. Se calcula A =
p (xi) p(xi)
(A = en la discusi on anterior).
3. Se calcula B =
(B = en la discusi on anterior).
(n1)(nB A2 ) n
5. Se toma xf = xi
En el Algoritmo 7.3 se presenta el m etodo de Laguerre en t erminos de las dos primeras derivadas del polinomio (evaluadas simult aneamente con el m etodo de Horner) e incluyendo las correspondientes condiciones de parada. Es importante resaltar que aunque (al igual que para el m etodo de Newton) s olo podremos garantizar la convergencia cuando todas las ra ces del polinomio sean reales, el algoritmo tiene un sentido (y a menudo converge) cuando el radicando (n 1)(nB A2 ) se hace negativo en alg on de iterados se hacen complejos. momento. A partir de entonces los t erminos xk de la sucesi De hecho, el algoritmo tambi en sentido para condiciones iniciales complejas e incluso para polinomios con coecientes complejos. El siguiente teorema asegura la convergencia global del m etodo de Laguerre aplicado a polinomios con todas sus ra ces reales. El m etodo converge a una ra z para cualquier condici on inicial que se tome.
Teorema 7.5.3 Sea p(x) un polinomio real cuyas ra ces son todas reales. Entonces la sucesi on otonamente hacia uno de iteradas de Laguerre con un punto inicial arbitrario x0 converge mon de los dos ceros de p que tiene m as pr oximos.
162
Algoritmo 7.3
M etodo de Laguerre
Datos de entrada: on inicial); a0 , a1 , . . . , an (coecientes del polinomio p); z (condici tol (tolerancia para la parada); nmax (n umero m aximo de iteraciones); Variables: xini, xn; // variables para almacenar xk y xk+1 b, c, d; // variables para almacenar p(xk ), p (xk ) y p (xk ) aux1, aux2, Cmax; // variables auxiliares para almacenar C Flujo del programa: xini = z ; for(j=1;j<=nmax;j++){ b, c, d = an ; // Evaluaci on de p(xini), p (xini) y p (xini) con Horner. for(k=n-1;k>=2;k--){ b = b xini + ak ; c = c xini + b; d = d xini + c; // d = p (xini)/2 } d = 2d; // d = p (xini) b = b xini + a1 ; c = c xini + b; // c = p (xini) b = b xini + a0 ; // b = p(xini) if(b=0){ Parada: ra z en xini } else{ // A = c/b, B = (c2 b d)/b2 , C = (1/n) (A (n 1)(nB A2 ). 1 aux1 = nb (c + (n 1)2 c2 n(n 1)bd); 1 aux2 = nb (c (n 1)2 c2 n(n 1)bd); if(|aux1| |aux2|){ Cmax = aux1; } else{ Cmax = aux2; } } if(Cmax=0){ Parada: primera y segunda derivadas nulas } else{ 1 xn = xini Cmax ; } if(|xfin-xini|<tol){ Parada: ra z en xini; } else{ xini = xn }
Ceros de polinomios n: Demostracio Ideas que intervienen: Si r1 r2 rn son las n ra ces de p, entonces entre cada par de ra ces consecutivas el signo de p es constante. Adem as, como entre cada par de ra ces hay alg un cero de p (x) y p (x) tiene a lo sumo n 1 ceros reales, concluimos ces consecutivas distintas. As , que p (x) tiene exactamente un cero entre dos ra si p es positiva, p pasa de ser creciente a decreciente y si p es negativa entonces p pasa de ser decreciente a ser creciente.
p(x)
163
r r j x 1 x 0 r j+1
j+1
p(x)
Si por ejemplo rj < x0 < rj +1 con p(x) > 0 entre las dos ra ces y adem as p (x0 ) > 0, entonces p(x) es creciente entre rj y x0 y vamos a ver que rj x1 < x0 < rj +1 , que p(x1 ) > 0 y que p (x1 ) > 0. Repitiendo el argumento, rj x2 < x1 < x0 < rj +1 . Es decir, xk es mon otona decreciente y est a acotada inferiormente por rj y, en consecuencia, es convergente, Si xk converge hacia y , de las f ormulas de iteraci on resulta que xk+1 xk = 1 0 , y por tanto C ( k ) . Ahora, por la construcci on de los valores de C (k ) C (k ), p (xk ) (n 1)2 p (xk )2 n(n 1)p(xk )p (xk ) . C (k ) = np(xk ) se deduce que el denominador p(xk ) tiende a p(y ) = 0. As , y es un cero de p, y por la disposici on de los xk , y = rj . Vamos a restringirnos al caso rj < x0 < rj +1 con p(x) > 0 entre las dos ra ces y adem as p (x0 ) > 0. Los otros casos se pueden analizar en la misma forma. 1 Como x0 no es una ra z, el Lema 7.5.2 posiciona todas las fracciones x0 rj en el intervalo de extremos p (x0 ) + (n 1)2 p (x0 )2 n(n 1)p(x0 )p (x0 ) u(x0 ) = np(x0 ) y p (x0 ) (n 1)2 p (x0 )2 n(n 1)p(x0 )p (x0 ) . v (x0 ) = np(x0 ) En particular, para las dos ra ces rj y rj +1 se tiene que v (x0 ) 1 1 <0< u(x0 ). x0 rj +1 x0 rj 1 1 <0< x0 rj v (x0 ) u(x0 )
164
Como p (x0 ) > 0, se tiene que |v (x0 )| < |u(x0 )| y x1 = x0 u(1 x0 ) , lo que prueba la desigualdad as, p es creciente entre rj y x0 , por lo que tambi en se tiene buscada rj x1 < x0 . Adem p (x1 ) > 0. Un buen ejercicio para comprobar como funciona el teorema es realizar la demostraci on en los casos restantes. Al igual que ocurre con el Teorema 7.4.1 para el m etodo de Newton, la construcci on de Laguerre tambi en proporciona un disco donde localizar ra ces expresado en t erminos de los c alculos realizados en cada iteraci on. Una prueba del siguiente teorema puede verse en el libro de Kincaid y Cheney [3] (pp. 103105). Teorema 7.5.4 (Kahan, 1967) Sean p(z ) un polinomio de grado n y z0 C un n umero complejo que tomamos como aproximaci on inicial en el primer paso de la iteraci on de Laguerre. Si C se calcula como en el algoritmo (1/|C | = |xf xi |), entonces p(z ) tiene un cero en el disco n n D z0 , = z : |z z0 | < . |C | |C | Para nalizar revisitamos el polinomio de los ejemplos anteriores: Ejemplo 7.5.5 Las cinco primeras iteraciones del m etodo de Laguerre aplicado a p(z ) = z 4 4z 3 + 7z 2 5z 2 con inicio en x0 = 0 muestran la r apida convergencia del m etodo de Laguerre a la ra z m as pr oxima a x0 . En la u ltima columna escribimos la cota del error que proporciona el teorema de Kahan: p(xk ) 4/|C | k xk 0 0 -2 0.5577742855120604 1 -0.2788871427560302 0.031696585387203324 0.006409886096878962 2 -0.2756821997075907 0.011457452669712431 7.886788553624726E-9 3 -0.275682203650985 0 0 Obs ervese c omo en la primera aproximaci on del ejemplo anterior se tienen jas 2 cifras decimales, en la segunda pasan a ser 6 las cifras de precisi on y en la tercera se alcanza la precisi on de la m aquina, en consonancia con que el orden de convergencia de este m etodo es 3.
7.6.
En esta secci on vamos a trabajar con polinomios con coecientes reales buscando localizar intervalos en los que podamos asegurar la existencia de ra ces reales y determinar el n umero de ra ces reales distintas que tiene el polinomio. Seguiremos el libro de Stoer y Bulirsh [4, Section 5.6, pp. 297301] y el de Aubanell, Benseny y Delshams [1, Secci on 5.2.4, pp. 404406]. Vamos a utilizar las sucesiones de Sturm para construir un m etodo que cuenta el n umero de ra ces reales que un polinomio tiene en un intervalo. Despu es usamos ese m etodo como en el algoritmo de la bisecci on: partiremos de un intervalo [A, A], donde A es el radio del disco que contiene a todas las ra ces (v ease el teorema 7.3.1); este intervalo contiene a todas las
Ceros de polinomios
165
ra ces reales, luego iremos dividiendo los intervalos en mitades, contaremos el n umero de ra ces en cada mitad, y nos iremos quedando con los trozos que contengan alguna ra z. Conforme vayamos avanzando con la bisecci on de los intervalos iremos localizando las ra ces reales de forma simult anea. Como el proceso de bisecci on no es muy r apido, una vez separadas las ra ces en intervalos disjuntos se puede ensayar con Newton o Laguerre para localizarlas m as r apidamente. Denici on 7.6.1 Una sucesi on de funciones reales continuas {f0 , f1 , . . . , fm } denidas en un intervalo [a, b], es una sucesi on de Sturm si se cumplen las cuatro condiciones siguientes: 1. 2. 3. 4. f0 es derivable en [a, b]; fm no tiene ra ces reales en [a, b] (no se anula); si f0 (x) = 0 entonces f1 (x)f0 (x) > 0; si fi (x) = 0 (i {1, 2, . . . , m 1}) entonces fi+1 (x)fi1 (x) < 0.
La tercera condici on implica que f0 s olo puede tener ra ces simples, y tanto esta condici on como la siguiente permiten detectar las ra ces de f0 observando el n umero de cambios n(x) de signo en la sucesi on {f0 (x), f1 (x), . . . , fm (x)} tal y como establece el siguiente teorema. Teorema 7.6.2 (Sturm) Sea {f0 , f1 , . . . , fm } una sucesi on de Sturm en el intervalo [a, b] y sea n(x) el n umero de cambios de signo (los ceros se ignoran) en la sucesi on {f0 (x), f1 (x), . . . , fm (x)}. Entonces el n umero de ra ces reales de f0 en (a, b] es igual a n(a) n(b). n: Demostracio Ideas que intervienen: Por la continuidad de las funciones fi el n umero de cambios de signo n(x) va a ser constante en entornos de los puntos x0 en los que no se anula ninguna de las funciones. Por tanto este n umero n(x) s olo puede verse modicado al pasar por alguno de los ceros de las mismas. Bastar a con observar que n(x) se incrementa en una unidad al pasar por cada una de las ra ces de f0 , y permanece constante en otro caso. Supongamos que fi (x0 ) = 0 con i {1, 2, . . . , m 1}. Entonces por la condici on 4a de la denici on de Sturm tendremos que fi+1 (x0 )fi1 (x0 ) < 0. En particular, estas dos funciones no a alguno se anulan en un entorno de x0 y tienen distintos signos. Por lo tanto cerca de x0 suceder de los casos siguientes (representamos por los valores negativos, por + los positivos, por indistintamente 0, + o , y h > 0 es sucientemente peque no): fi1 fi fi+1 x0 h x0 x0 + h 0 + + + fi1 fi fi+1 x0 h x0 x0 + h + + + 0
166
En cualquiera de los casos el n umero de cambios de signo de la sucesi on {fi1 , fi , fi+1 } es constante e igual a 1 en las proximidades de x0 . Si f0 (x0 ) = 0, por la tercera propiedad de las sucesiones de Sturm f0 (x0 ) = 0 y adem as el signo de f1 (x0 ) es el mismo que el de f0 (x0 ). As , si esta derivada es positiva (f0 es creciente en x0 ) entonces f1 (x0 ) > 0 y por la continuidad f1 es positiva en un entorno de x0 . De la misma forma, cuando la derivada es negativa, la funci on f1 es negativa en un entorno de x0 . Por lo tanto s olo se presentan los dos casos siguientes: x0 h x0 x0 + h 0 + + + + x0 h x0 x0 + h + 0
f0 f1
f0 f1
En resumen, el n umero de cambios de signo n(x) s olo disminuye en una unidad al pasar de izquierda a derecha sobre cada una de las ra ces de f0 . De esta forma, el total n(a) n(b) mide el n umero de ra ces reales de f0 en (a, b]. La construcci on de sucesiones de Sturm asociadas a polinomios proviene del m etodo de Euclides de b usqueda del m aximo com un divisor. Sea p0 = p un polinomio real de grado n 1. Se dene p1 = p (x). Para i = 1, 2, 3, . . . se dene pi+1 = ci+1 resto (pi1 : pi ), donde ci+1 es una constante positiva y por resto entendemos el resto que queda al hacer la divisi on entera del polinoon de Sturm se construye con un ordenador se elige mio pi1 entre pi . Cuando la sucesi simplemente ci+1 = 1. Cuando lo hacemos a mano, conviene elegirlo de manera que los erminos: coecientes del polinomio pi+1 sean tan simples como sea posible. En otros t
1 pi1 (x) = qi (x)pi (x) c i+1 pi+1 (x).
En los dos casos deja de haber un cambio de signo en la sucesi on {f0 , f1 } al pasar por x0 .
(7.2)
Esta construcci on se realiza hasta que pm+1 = 0. En est a construcci on el polinomio pm es el m aximo com un divisor de p0 y p1 = p . Por u ltimo consideramos la sucesi on f0 = p0 p1 pm , f1 = , . . . , fm = =1 . pm pm pm
Obs ervese que f0 es un polinomio que tiene las mismas ra ces que p0 pero, para f0 , todas las ra ces son simples. En efecto, las ra ces m ultiples de p son las ra ces comunes de p y ces de pm . Si una ra z x0 tiene multiplicidad k en p, entonces tiene p , es decir, son las ra multiplicidad k 1 en p y en pm . Por consiguiente x0 es una ra z simple de f0 = pp . m Lema 7.6.3 Si p es un polinomio de grado n 1, entonces la sucesi on {f0 , f1 , . . . , fm } que acabamos de construir es una sucesi on de Sturm.
Ceros de polinomios
167
n: Todas las funciones f0 , . . . , fm son polinomios, as Demostracio que en particular son funciones continuas (primera condici on en la denici on de sucesiones de Sturm). Por la denici on, fm = condici on de Sturm.
pm pm
p0 Como pm es m aximo com un divisor de p0 y p1 , entonces f0 = p y f1 = m comunes. As , si f0 (x) = 0 entonces p(x) = 0 y f1 (x) = 0, con lo que
no tienen ra ces
f1 (x)f0 (x) =
p (x) p (x)pm (x) p(x)pm (x) p (x) p (x) p (x)2 = = f1 (x)2 > 0. = pm (x) pm (x)2 pm (x) pm (x) pm (x)2
Esta es la tercera condici on en las sucesiones de Sturm. Volviendo a mirar en la expresi on 7.2, si fi (x) = 0 = pi (x) (1 i m 1) entonces
1 2 fi1 (x)fi+1 (x) = c i+1 fi+1 (x) 0,
y se anula s olo si fi1 (x) = fi (x) = fi+1 (x) = 0. Si esto u ltimo sucediese, podemos repetir el argumento con fi1 y fi+1 , para obtener que f0 (x) = = fi2 (x) = fi1 (x) = fi (x) = fi+1 (x) = fi+2 (x) = fm (x) = 0. en se cumplir a la u ltima condici on Como fm (x) = 1 esto no puede suceder. Por lo tanto tambi de la denici on, lo que completa la prueba de que {f0 , . . . , fm } es una sucesi on de Sturm. Notemos que si p(a) = 0 = p(b) entonces tambi en ocurrir a pm (a) = 0 = pm (b), con lo que a la hora de computar los cambios de signo podremos usar la sucesi on {p0 , p1 , . . . , pm } en lugar de {f0 , f1 , . . . , fm }. Hemos probado: Corolario 7.6.4 Sea p(x) un polinomio con coecientes reales y constr uyase la correspondiente umero de cambios de signo (los ceros se ignoran) en la sucesi on {p0 , p1 , . . . , pm }. Sea V (x) el n sucesi on {p0 (x), p1 (x), . . . , pm (x)}. Entonces, si p(a) = 0 = p(q ), el n umero de ra ces reales de p en [a, b] es igual a V (a) V (b). Estamos ahora en condiciones de explicar c omo separar todas las ra ces reales de un polinomio con coecientes reales. El teorema 7.3.1 localiza todas las ra ces reales de un polinomio p(z ) = a0 + a1 z + + an z n en el intervalo [, ], (de hecho en el abierto (, ), como se desprende de una lectura cuidadosa de la prueba) con = 1 + m ax{|a0 |, . . . , |an1 |}/|an |. Por otra parte, el teorema de Sturm nos permite conocer el n umero de ra ces reales en cada intervalo. As , si comenzando con la lista de intervalos L0 = {I0 }, con I0 = (, ], podemos razonar como en el m etodo de la bisecci on, y en cada etapa k : dividir en dos intervalos semiabiertos de la misma longitud cada intervalo de la lista Lk , mirar, con la sucesi on de Sturm, si hay ceros reales en cada una de las mitades, y construir una nueva lista Lk+1 con las mitades que contienen alguna ra z. Este proceso iterativo puede detenerse cuando tengamos una sola ra z en cada intervalo y la longitud de estos intervalos sea sucientemente peque na. Como el proceso de biseccionar intervalos no permite aproximarnos a las ra ces de forma r apida podemos optar por
168
UMU M etodos Num ericos, 2007-2008 continuar con el proceso hasta que la proximidad de los extremos de los intervalos sea tan peque na que nos permita admitir que aproximan a una ra z, o detener la bisecci on de los intervalos cuando cualquiera de sus extremos sirva como aproximaci on inicial para aplicar m etodos m as r apidos como el de Newton o Laguerre.
Para poder aplicar el teorema de Sturm 7.6.2 necesitamos un m etodo que cuente los cambios de signo en una sucesi on de n umeros reales sin tener en cuenta los ceros:
Algoritmo 7.4 M etodo para contar los cambios de signo de una lista
Datos de entrada: lista[m] (lista de n umeros reales); Variables: ncambios; // para contar los cambios de signo ini, sig; // ndices para movernos por la sucesi on pini, psig; // variables auxiliares Flujo del programa: // Usamos un m etodo signo(x) =1, -1 o 0, seg un que x > 0, x < 0 o x = 0 ini = 0; pini = lista[0]; ncambios = 0; while(ini < m 1 && signo(pini) = 0){ ini = ini + 1; pini = lista[ini]; } if(ini = m 1){ Parada: devolver ncambios; } while(ini < m 1){ sig = ini + 1; psig = lista[sig]; while(sig < m 1 && signo(pini) signo(psig) = 1){ sig = sig + 1; psig=lista[sig]; } if(sig = m 1 && signo(pini) signo(psig) = 1){ Parada: devolver ncambios; } else{ ncambios = ncambios + 1; ini = sig; } } Parada: devolver ncambios; Datos de salida: ncambios (n umero de cambios de signo de una lista).
Los algoritmos siguientes describen el m etodo de construcci on de la sucesi on de Sturm asociada a un polinomio, y el m etodo de la bisecci on para localizar ra ces en un intervalo.
Ceros de polinomios
169
Algoritmo 7.5
Datos de entrada: a[n] (lista con los coecientes de un polinomio p de grado n 1); Variables: sturm[n][]; // matriz para la sucesi on de Sturm listaauxiliar[]; // vector auxiliar Flujo del programa: sturm[0][n 1] = a[n 1]; if(n = 1){ Parada: devolver sturm } for(i=0;i<n-1;i++){ sturm[0][i] = a[i]; sturm[1][i] = (i + 1) a[i + 1]; // p0 = p y p1 = p } if(n = 2){ Parada: devolver sturm } for(k=2;k<n;k++){ listaauxiliar= resto(sturm[k-2]:sturm[k-1]); if(listaauxiliar.length = 1 && listaauxiliar[0] = 0){ for(j=0;j<=k-1;j++){ sturm[j ] = cociente(sturm[j ], sturm[k 1]); } Parada: devolver sturm } sturm[k ] = listaauxiliar; } Parada: devolver sturm Datos de salida: sturm[][] (matriz con los coecientes sturm[i][] de los polinomios de la sucesi on de Sturm; n otese que a partir de i = k los coecientes quedan vac os).
170
Algoritmo 7.6
Datos de entrada: prec (precisi on para longitud de intervalos); sturm[k ][] (matriz con los coecientes de la sucesi on de Sturm de un polinomio p); a, b (extremos del intervalo inicial); Variables: sturma[], sturmb[]; // vectores para guardar las evaluaciones de // la sucesi on de Sturm intervalos; // lista de longitud variable para guardar los extremos de los intervalos // que contienen exactamente una ra z real s, c; // variables auxiliares Flujo del programa: // Evaluamos la sucesi on de Sturm en a y b. for(i=0;i<k;i++){ sturma[i] = (evaluaci on de sturm[i] en x = a); sturmb[i] = (evaluaci on de sturm[i] en x = b); } s = cuentaCambiosSigno(sturma) cuentaCambiosSigno(sturmb); if(s 0){ a intervalos = ; // lista de intervalos vac Parada: devolver intervalos } if(s = 1 && b a < prec){ intervalos = {a, b}; // lista con (a, b] como u nico intervalo Parada: devolver intervalos } else{ c = a + 0.5 (b a); intervalos = biseccionSturm(prec, sturm, a, c) biseccionSturm(prec, sturm, c, b); // lista uni on de las dos listas correspondientes a a, c y b, c Parada: devolver intervalos } Datos de salida: intervalos (lista de intervalos conteniendo exactamente una ra z real del polinomio).
El u ltimo m etodo propuesto utiliza recursividad, es decir, se va llamando a si mismo, y listas de longitud variable. Si programamos en JAVA la clase Vector es una herramienta bastante adecuada, aunque una vez construida requiere una transformaci on en una lista (array) est andar de n umeros reales.
Como en otros apartados vamos a nalizar volviendo a visitar el polinomio utilizado en los ejemplos anteriores:
Ceros de polinomios
171
Ejemplo 7.6.5 La sucesi on de Sturm asociada al polinomio p(x) = x4 4x3 + 7x2 5x 2 y generada por el algoritmo (con todos los coecientes ci = 1) es la siguiente p0 (x) = x4 4x3 + 7x2 5x 2
p2 (x) = resto (p0 : p1 ) = 0.5x2 0.25x 3.25 p3 (x) = resto (p1 : p2 ) = 35x + 70 p4 (x) = resto (p2 : p3 ) = 1.75
Comenzando en el intervalo (8, 8], que contiene a todas las ra ces reales, observamos que en 8 la sucesi on de Sturm toma valores {+,-,-,+,-} con lo que aparecen tres cambios de signo, mientras que en 8 tenemos {+,+,-,-,-}, as que hay un u nico cambio designo. La diferencia del n umero de cambios de signo es 2, el n umero de ra ces reales. Tomando el punto medio en el intervalo, que es 0, y viendo el signo de los valores de la sucesi on de Sturm en esos puntos, {-,-,+,+,-}, observamos que hay dos cambios de signo y por lo tanto podemos concluir que una de las ra ces es negativa y la otra positiva. Aplicando el m etodo descrito en el algoritmo con una precisi on de 1014 obtenemos los intervalos (0.2756822036512858, 0.27568220365083107] y (1.9999999999995453, 2.0] que proporcionan excelentes aproximaciones de las dos ra ces reales 0.27568220365 . . . y 2.
Si realizamos las operaciones a mano los polinomios propuestos como alternativa son m ultiplos positivos de los otros, pero con coecientes m as sencillos para las evaluaciones. Por ejemplo, en lugar de p2 (x) podr amos haber multiplicado todos los coecientes por 4 y usar 2x2 x 15.
172
Bibliograf a
[1] A. Aubanell, A. Benseny y A. Delshams, Utiles B asicos de C alculo Num erico, Labor, Barcelona, 1993. [2] J. A. F ernandez Vi na, An alisis Matem atico II : Topolog a y C alculo Diferencial. 2a ed. corr., Tecnos, Madrid, 1992. [3] D. Kincaid y W. Cheney, An alisis Num erico. Las Matem aticas del C alculo Cient co, Addison-Wesley Sudamericana, Wilmington, 1994. [4] J. Stoer y R. Bulirsh, Introduction to Numerical Analysis. 2nd. edition, Springer-Verlag, Nueva York, 1993.
174
Cap tulo
Interpolaci on y aproximaci on
8.1.
Interpolaci on polinomial
Los contenidos de esta secci on est an bien explicados en el libro de Kincaid y Cheney [3] (Secciones 6.1 y 6.2, pp. 285313). Enunciamos a continuaci on los teoremas m as importantes: Teorema 8.1.1 Consideremos una familia de puntos {(xi , yi )}n i=0 con las abscisas distintas dos a dos. Entonces existe un u nico polinomio p de grado a lo sumo n (abreviadamente p n ) tal que p(xi ) = yi para cada i = 0, 1, . . . , n. Al polinomio anterior se le llama polinomio interpolador en los puntos {(xi , yi }.
Hay dos maneras b asicas de escribir el polinomio interpolaci on. La forma del polinomio interpolador de Lagrange viene dada por
n n
p(x) =
i=0
yi
j =0,j =i
x xj . xi xj
p(x) =
i=0
p[x0 , . . . , xk ]
j =0
(x xj ),
es del algoritmo de las diferencias divididas a donde los n umeros p[x0 , . . . , xk ] se calculan a trav partir de las igualdades p[xi ] = yi y p[xi0 , xi1 . . . , xir1 , xir ] = p[xi1 . . . , xir1 , xir ] p[xi0 , xi1 . . . , xir1 ] . xir xi0
Teorema 8.1.2 Sea f : [a, b] R una funci on de clase C n+1 y sea p n el polinomio que interpola a la funci on f en n + 1 puntos distintos {xi }n i=0 (es decir, el polinomio interpolador ). Entonces para cada x [a, b] existe x [a, b] tal que en los puntos {(xi , f (xi ))}n i=0 f (x) p(x) = f (n+1) (x ) (n + 1)!
n i=0
(x xi ).
176
8.2.
Interpolaci on de Hermite
En esta secci on extendemos los resultados de la secci on anterior permitiendo que podamos jar no s olo los valores del polinomio interpolador en ciertos puntos sino tambi en los de algunas de sus derivadas sucesivas. Lo que sigue es una reelaboraci on de algunos de los contenidos de la Secci on 6.3 (pp. 313323) de [3]. Proposici on 8.2.1 Consid erese la familia {(xi , yi,l )}, con i = 0, 1, . . . , m, 0 l < ki , y con las nico polinomio abscisas xi distintas dos a dos. Sea n = k0 + k1 + km 1. Entonces existe un u p n tal que p(j ) (xi ) = yi,l para cada i, l. n: Sea p(x) = a0 + a1 x + + an xn el polinomio candidato a satisfaces las Demostracio condiciones prejadas. Entonces estas determinar un sistema de n + 1 ecuaciones lineales donde las inc ognitas son los coecientes a0 , a1 , . . . , an del polinomio p(x). Por ejemplo p(x0 ) = y0,0 equivale a n a0 + x0 a1 + x2 0 a2 + x0 an = y0,0 , p (x0 ) = y0,1 equivale a
n1 an = y0,1 , a1 + 2x0 a2 + nx0
y as sucesivamente. Como es bien sabido, el que el sistema tenga soluci on u nica depende de que la matriz de coecientes del sistema sea no singular. Como la matriz no depende de los n umeros yi,l , si demostramos que el problema con las condiciones yi,l = 0 para cada i y l tiene soluci on u nica, habremos terminado. Evidentemente el polinomio nulo es soluci on en este caso, as que debemos demostrar que esa es, de hecho, la u nica soluci on posible. Ahora bien, si un polinomio p(x) satisface que las derivadas en un punto xi hasta un cierto orden ki 1 se anulan, entonces admite un factor on factorial (esto es f acil de ver escribiendo el desarrollo de Taylor del (xxi )ki en su descomposici pues, el polinomio p(x) es divisible por (x x0 )k0 (x x1 )k1 , (x xm )km , polinomio en xi ). As un polinomio de grado n + 1, cosa imposible salvo que p(x) sea el polinomio id enticamente nulo.
Hay otra manera de probar la Proposici on 8.2.1, muy semejante a la que se utiliza para demostrar la existencia y unicidad del polinomio interpolador (Teorema 8.1.1). Primero redenotamos la familia {(xi , yi,l )}, donde a partir de ahora supondremos que x0 < x1 < < xm para simplicar la notation, como {(xi , yi )}n endose entonces x0 x1 xn . As , i=0 , teni a (x0 , y0,0 ), y (xn , yn ) ser a (xm , y0,km 1 )). Ahora demostramos por inducci on que el (x0 , y0 ) ser polinomio interpolador de Hermite puede escribirse como
n k1
p(x) =
k=0
ck
j =0
(x xj ),
(8.1)
armaci on que es obvia para n = 0 y que probamos a continuaci on para el caso n, suponi endola verdadera para el caso n 1.
Interpolaci on y aproximaci on
177
n1 Sea pn1 el polinomio interpolador de Hermite en {(xi , yi )}i =0 . Basta demostrar que el , p ( x ), puede escribirse como polinomio interpolador de Hermite en {(xi , yi )}n n i=0 n1
Para empezar, obs ervese que para cada xi , i = 0, . . . , m 1, aparece en el producto de la derecha k un factor (x xi ) i , lo que signica que las derivadas de dicho producto hasta el orden ki 1 olo hasta se anulan cuando se eval uan en xi . Otro tanto puede decirse para xm pero esta vez s otesis de inducci on, y con independencia del valor de cn , se el orden km 2. A la luz de la hip tendr a entonces l) p( n (xi ) = yi,l on de la derecha entonces Ahora bien, cuando se hace la derivada de orden km 1 de la expresi aparecen distintos sumandos, todos los cuales se anulan en xm , excepto q (x) = (km 1)!(x x0 )k0 (x xm1 )km1 que s olo contiene factores de la forma x x0 , . . . , x xm1 . Dado que
(km 1) (km 1) (xm ) = pn (xm ) + cn q (xm ), pn
(k 1)
(xm )
Llegados a este punto cabr a preguntarse si existe una variante del algoritmo de las diferencias divididas en este caso. La respuesta es armativa y, de hecho, las diferencias son muy peque na. Para cada subfamilia xi0 xir de x0 xn denimos, al estilo del polinomio interpolador convencional, p[xi0 , . . . , xir ] como el coeciente que multiplica a xr del polinomio interpolador de Hermite en los puntos correspondientes. Por ejemplo, si la familia de partida es (x0 , y0,0 ), (x0 , y0,1 ), (x1 , y1,0 ), (x1 , y1,1 ), (x1 , y1,2 ), (x2 , y2,0 ), (x2 , y2,1 ) entonces el polinomio interpolador de Hermite en los puntos (x0 , y0,0 ), (x0 , y0,1 ) y (x1 , y1,0 ) vendr a dado por p(x) = p[x0 , x0 , x1 ]x2 + , el polinomio interpolador de Hermite en los puntos (x0 , y0,0 ), (x1 , y1,0 ), (x1 , y1,1 ) y (x2 , y2,0 ) ser a p(x) = p[x0 , x1 , x1 , x2 ]x3 + , etc. N otese que (8.1) puede reescribirse entonces como
n k1
p(x) =
k=0
p[x0 , x1 , . . . , xk ]
j =0
(x xj ).
(8.2)
n: El caso m Demostracio as simple es cuando x0 = xn . En este caso la familia a interpolar es (x0 , y0,0 ), . . . , (x0 , y0,n ), y el polinomio interpolador de Hermite es simplemente el polinomio de Taylor y0,2 y0,n p(x) = y0,0 + y0,1 (x x0 ) + (x x0 )2 + + (x x0 )n . 2! n! Por tanto y0,n . p[x0 , x1 , . . . , xn ] = p[x0 , x0 , . . . , x0 ] = n! Supongamos ahora que x0 = x0 = xn = xm . Al igual que en la versi on del teorema para la interpolaci on convencional, si pn1 (x) = p[x0 , . . . , xn1 ]xn1 + , q (x) = p[x1 , . . . , xn ]xn1 + , y pn (x) = p[x0 , x1 , . . . , xn ]xn + son los correspondientes polinomios interpoladores de Hermite, es suciente demostrar que pn (x) = q (x)(x x0 ) pn1 (x)(x xn ) q (x)(x x0 ) pn1 (x)(x xm ) = . xn x0 xn x0 xm x0 xm x0
si x0 = xn , si x0 = xn .
Si llamamos h(x) al polinomio de la derecha basta demostrar, por la unicidad del polinomio interpolador de Hermite, que h(l) (xi ) = yi,l para cada 0 i m y 0 l < km . Se prueba de inmediato por inducci on que la derivada l- esima de q (x)(x x0 ) viene dada por [q (x)(x x0 )](l) = q (l) (x)(x x0 ) + lq (l1) (x), y del mismo modo [pn1 (x)(x xm )](l) = pn1 (x)(x xm ) + lpn1 (x). Si 0 < i < m, entonces q (l) (xi ) = pn1 (xi ) = yi,l , para cada 0 l < ki , de modo que tambi en h(l) (xi ) = = Asimismo tenemos si l < k0 , con lo que h(l) (x0 ) = ly0,l1 y0,l (x0 xm ) + ly0,l1 = y0,l xm x0 xm x0 q (l) (xi )(xi x0 ) + lq (l1) (xi ) pn1 (xi )(xi xm ) + lpn1 (xi ) xm x0 xm x0 yi,l (xi x0 ) + lyi,l1 yi,l (xi xm ) + lyi,l1 = yi,l . xm x0 xm x0 q (l1) (x0 ) = pn1 (x0 ) = y0,l1
(l1) (l) (l1) (l) (l) (l1)
Interpolaci on y aproximaci on para cada 0 l < k0 . De igual manera se comprueba que h(l) (xm ) = ym,l , 0 l < km .
179
Como en el caso de las diferencias divididas de Newton, el Teorema 8.2.2 permite calcular recursivamente, y de una manera sencilla, los coecientes p[x0 , x1 , . . . , xk ]. Ejemplo 8.2.3 Calculamos a continuaci on el polinomio p(x) de grado a lo sumo 4 que cumple las condiciones p(1) = 2, p (1) = 3, p(2) = 6, p (2) = 7, p (2) = 8. De acuerdo con (8.2) se tendr a p(x) = p[1] + p[1, 1](x 1) + p[1, 1, 2](x 1)(x 1) + p[1, 1, 2, 2](x 1)(x 1)(x 2) +p[1, 1, 2, 2, 2](x 1)(x 1)(x 2)(x 2). Ahora se tendr a el siguiente esquema: 1 p[1] p[1, 1] 1 p[1] p[1, 2] 2 p[2] p[2, 2] 2 p[2] p[2, 2] 2 p[2] En la primera columna obtenemos p[1] = 2 y p[2] = 6. En la segunda tendremos p[1, 1] = p (1) p[2] p[1] p (2) = 3, p[1, 2] = = 4, p[2, 2] = = 7. 1! 21 1! p[2, 2] p[1, 2] = 3, 21 p (2) = 4. 2! p[2, 2, 2] p[1, 2, 2] p[1, 2, 2, 2] p[1, 1, 2] p[1, 1, 2, 2] p[1, 1, 2, 2, 2]
En la tercera tendremos p[1, 1, 2] = En la cuarta p[1, 1, 2, 2] = Finalmente p[1, 1, 2, 2, 2] = Por tanto el polinomio buscado ser a p[2, 2, 2] p[1, 2, 2] p[1, 2, 2] p[1, 1, 2] = 2, p[1, 2, 2, 2] = = 1, 21 21 p[1, 2, 2, 2] p[1, 1, 2, 2] = 1. 21 p[1, 2] p[1, 1] = 1, 21 p[1, 2, 2] = p[1, 2, 2] =
p(x) = 2 + 3(x 1) + (x 1)(x 1) + 2(x 1)(x 1)(x 2) (x 1)(x 1)(x 2)(x 2) = 8 + 23x 20x2 + 8x3 x4 . Finalizamos la secci on escribiendo el pseudoc odigo correspondiente al m etodo de interpolaci on de Hermite. Hemos a nadida al nal el algoritmo de anidaci on de manera que el algoritmo arroje como resultado los coecientes del polinomio interpolador.
180
Algoritmo 8.1
Datos de entrada: m + 1 (n umero de puntos a interpolar); x[m + 1] (abscisas de los puntos a interpolar; y [m + 1][] (ordenadas de los puntos a interpolar; y [i][k ] es la derivada k - esima del polinomio interpolador en x[i]); l[m + 1] (longitudes de las las de y ); Variables: aux[m + 2]; // vector auxiliar para contar las multiplicidades n; // grado del polinomio interpolador a[n + 1]; // coecientes del polinomio interpolador u[n + 1]; p[n + 1]; // variables auxiliares Flujo del programa: for(i=0;i<=m;i++){ for(j=i+1;j<=m;l++){ if(xi = xj ){ Parada: abscisas repetidas } } } // Calculamos el grado del polinomio interpolador. aux0 = 0; for(i=0;i<=m;i++){ auxi+1 = auxi + li ; } n = auxm+1 1; // grado del polinomio interpolador
Interpolaci on y aproximaci on
181
Algoritmo 8.1
// C alculo de abscisas generalizadas. for(i=0;i<=m;i++){ for(j=aux[i];j<aux[i+1];j++){ uj = xi ; } } // Algoritmo de las diferencias divididas. for(k=0;k<=n;k++){ for(i=m;i>=0;i--){ for(j=aux[i+1]-1;j>=max{aux[i],k};j--){ if(uj k = uj ){ pj = yi,k ; for(r=1;r<=k;l++){ pj = pj /r; } } else{ pj = (pj pj 1 )/(uj uj k ) } } } } // C alculo de los coecientes del polinomio interpolador. for(k=0;k<=n;k++){ ak = 0; } for(k=n;k>=0;k--){ for(i=n-k;i>=1;i--){ ai = ai1 ai uk ; } a0 = pk a0 uk ; } Datos de salida: Polinomio interpolador con coecientes a0 , a1 , . . . , an
8.3.
Consid erese la familia de puntos {(xi , yi )}m a de i=0 con abscisas distintas dos a dos. La teor la interpolaci on nos dice que existe un u nico polinomio q (x) de grado a lo sumo m tal que a para estos puntos un q (xi ) = yi para cada i. Por tanto, en general, si n < m no existir polinomio interpolador de grado menor o igual que n. En estas condiciones tiene sentido, no obstante, preguntarse si existir a alg un polinomio p(x) n que minimice la norma eucl dea 2 . La respuesta a (y0 p(x0 ), . . . , ym p(xm )) o, equivalentemente, la suma m ( y p ( x )) i i i=0 esta pregunta es armativa pero para formularla adecuadamente necesitamos introducir los lla-
182
mados sistemas lineales sobredeterminados. Los contenidos de esta secci on se inspiran (bastante libremente) en parte de la Secci on 7.1 (pp. 394418) de [1]. Sean n < m, A Mmn (R) y b Rm . En lo que sigue supondremos que A tiene rango n. En general el sistema a11 x1 + a12 x2 + + a1n xn = = = b1 , b2 , bm ,
que en forma matricial puede escribirse como Ax = b para el vector columna x Rn cuyas a de soluci on. Mostraremos a continuaci on componentes son las inc ognitas x1 , . . . , xn , carecer etodo sencillo que existe u Rn tal que Au b < Ax b para cada x = u y daremos un m para calcular u. La base del procedimiento es el bien conocido teorema de la proyecci on, cuya prueba puede encontrarse en muchos textos introductorios al Algebra Lineal: Teorema 8.3.1 Sean V un espacio vectorial eucl deo sobre R y W un subespacio nitodimensional de V . Sea v V . Entonces existe w W tal que w v < w y para cada y W , y = w. Este vector w est a caracterizado por la propiedad de que w v es ortogonal a W , es decir, w v, y = 0 para cada y W . Ahora procedemos como sigue. V ease A : Rn Rm como una aplicaci on lineal y pongamos m n V = R , W = A(R ). El Teorema 8.3.1 nos dice que existe w W tal que w b < y b para cada y W distinto de w o, equivalentemente, por ser A inyectiva (recordemos que su nico con la propiedad Au = w) tal que Au b < Ax b rango es n), que existe u Rn (el u para cada x Rn , x = u. M as a un, sabemos que w est a caracterizado por la propiedad de que w b es ortogonal a W , es decir, Au b, Ax = 0 para cada x Rn . Dado que AT c, d = c, Ad para cada c Rm , d Rn , ello equivale a decir que AT Au AT b, x = 0 para cada x Rn o, lo que es lo mismo, AT Au AT b = 0. En otras palabras, u ser a la soluci on del sistema (de n ecuaciones y n inc ognitas) AT Ax = AT b,
que es la llamada ecuaci on normal asociada al sistema sobredeterminado. Conviene enfatizar que la ecuaci on tiene soluci on u nica pues la matriz AT A es regular. En efecto, AT Ax = 0 T , por implica A Ax, x = 0 y por tanto Ax 2 = Ax, Ax = 0. Esto signica que Ax = 0 y as la linealidad de A, x = 0. Resumimos nuestras conclusiones en el siguiente teorema: Teorema 8.3.2 Sean n < m, A Mmn (R) y b Rm . Supongamos que A tiene rango n. Entonces existe u Rn tal que Au b < Ax b para cada x Rn , x = u. El vector u es la u nica soluci on de la ecuaci on normal AT Ax = AT b. Estamos ahora en disposici on de responder a la cuesti on que abr a el ep grafe. Recordemos dea a que buscamos el polinomio p(x) = a0 + a1 x + an xn que mejor aproxima en norma eucl m 2 . Si consideramos los puntos {(xi , yi )}m , es decir, que minimiza la cantidad ( y p ( x )) i i=0 i=0 i
183
y los vectores x = (a0 , a1 , . . . , an ) y b = (y0 , y1 , . . . , ym ), el problema se reduce a buscar u = (c0 , c1 , . . . , cn ) tal que Au b < Ax b para cada x = u (n otese que estamos utilizamos la el t ermino x con un doble sentido, como variable del polinomio y como vector de Rn , pero esto no deber a inducir a confusi on). En otras palabras, el polinomio p(x) = c0 + c1 x + cn xn buscado es aquel cuyo vector de coecientes u es la u nica soluci on de la ecuaci on normal AT Ax = AT b. Naturalmente la discusi on anterior carece de sentido a menos que la matriz A tenga rango n + 1, pero esto es f acil de probar. Por ejemplo n 1 x0 x2 0 x0 xn 1 x1 x2 1 1 A = . . .
n 1 xn x2 n xn
n 1 x0 x2 x 0 0 xn 1 x1 x2 1 1 A= . . . 2 n 1 xm xm xm
a0 + x0 a1 + + xn 0 an a0 + x1 a1 + + xn 1 an xn n an
= = =
y0 , y1 , yn
a0 + xn a1 + +
tiene soluci on u nica (los n umeros a0 , a1 , . . . an son los coecientes del polinomio interpolador en {(xi , yi )}n , que como sabemos existe y es u nico). i=0 Veamos a continuaci on un ejemplo ilustrativo. Ejemplo 8.3.3 Consideremos la tabla de puntos x y 1 2.1 2 3.3 3 3.9 4 4.4 5 4.6 6 4.8 7 4.6 8 4.2 9 3.4
y busquemos el polinomio p(x) = a + bx + cx2 que mejor la aproxime. El sistema sobredimensionado a considerar es Ax d, donde 1 1 1 1 A= 1 1 1 1 1 1 2 3 4 5 6 7 8 9 1 4 9 16 25 , 36 49 64 81
184
on normal resulta a = 0.9333, b = 1.3511, y AT d = (35.3, 186.2, 1178.2). Resolviendo la ecuaci c = 0.1189. En la pr actica usaremos alguno de los m etodos de resoluci on de sistemas lineales ya conocidos etrica y denida para resolver la ecuaci on normal. Notemos que la matriz AT A es siempre sim positiva (ya que si x = 0 entonces AT Ax, x = Ax, Ax = Ax 2 > 0) lo que hace que estemos en un contexto optimo para usar el m etodo de Cholesky. Con adecuadas modicaciones del m etodo de aproximaci on por m nimos cuadrados descrito podemos aproximar familias de puntos por funciones no necesariamente polin omicas. Ejemplo 8.3.4 Consideremos la tabla de puntos x y 1 7 2 11 3 17 4 27
x = (a, b, c) y d = (2.1, 3.3, 3.9, 4.4, 4.6, 4.8, 4.6, 4.2, 3.4). Los coecientes (a, b, c) buscados ser an la soluci on de la ecuaci on normal AT Ax = AT d, donde 9 45 285 AT A = 45 285 2025 , 285 2025 15333
y buscamos la funci on y = aebx que mejor la aproxime. Tomando logaritmos y escribiendo c = log a tendr amos log y = log a + bx = c + bx, con lo que podemos encontrar c y b aplicando nuestro m etodo a la tabla de datos x log y 1 log 7 2 log 11 3 log 17 4 log 27
AT d = (log 35343, log 2211491279151) = (10.4729 . . . , 28.4227 . . .), obteni endose c = 1.497 y b = 0.485 como soluci on de la ecuaci on normal AT Ax = AT d. Finalmente a = ec = 4.468. Es importante resaltar que en el anterior ejemplo no estamos armando que la funci on 0.485 x bx 2 f (x) = 4.468e sea aquella entre las de la forma f (x) = ae que minimiza (f (1) 7) + (f (2) 11)2 + (f (3) 17)2 + (f (4) 27)2 . El u ltimo ejemplo de la secci on ilustra con m as enfasis esta cuesti on.
Interpolaci on y aproximaci on
185
Ejemplo 8.3.5 Se supone que el cometa Tentax, descubierto el a no 1968, es un objeto del Sistema Solar. En cierto sistema de coordenadas polares (r, ), centrado en el Sol, se han medido experimentalmente las siguientes posiciones del cometa: r 2.20 48o 2.00 67o 1.61 83o 1.20 108o 1.02 126o
Si se desprecian las perturbaciones de los planetas, las leyes de Kepler garantizan que el cometa se mover a en una orbita el ptica, parab olica o hiperb olica, que en dichas coordenadas polares tendr a en cualquier caso la ecuaci on p r= , 1 + e cos donde p es un par ametro y e la excentricidad. Ajustemos por m nimos cuadrados los valores p y e a partir de las medidas hechas. A partir de los datos dados hay varias maneras de formular un problema de m nimos cuadrados, todas v alidas pero no todas equivalentes entre s . Mostramos a continuaci on dos posibles formas de hacerlo. Posibilidad 1. Despejando en la ecuaci on r= llegamos a r + er cos = p y de aqu Por tanto se trata de minimizar Ax b , donde 1 2.20 cos 48o 1 1.47209 1 2.00 cos 67o 1 0.78146 A = 1 1.61 cos 83o = 1 0.19621 , 1 1.20 cos 108o 1 0.37082 1 0.59954 1 1.02 cos 126o 2.20 2.00 b = 1.61 1.20 1.02 y p . x= e Dado que A tiene rango 2 tiene sentido plantear la ecuaci on normal AT Ax = AT b, es decir, 5 1.47940 1.47940 3.31318 p e = 8.03 4.06090 r = p + e(r cos ). p 1 + e cos
cuya soluci on p = 1.43262 y e = 0.58599 nos da los valores de p y e buscados (obteni endose Ax b = 0.22686 como medida de la aproximaci on).
r + er cos = p por er y despejando se obtiene cos = (1/e) + (p/e)(1/r). Se trata ahora de minimizar Ax b 1 1 A = 1 1 1 , donde 1 1/2.20 1 1/2 1/1.61 = 1 1/1.20 1 1 1/1.02 0.45454 0.5 0.62112 , 0.83333 0.98039
cos 48o 0.66913 cos 67o 0.39073 b = cos 83o = 0.12187 cos 108o 0.30902 cos 126o 0.58779 x= c d
con c = 1/e y d = p/e. A partir de la ecuaci on normal AT Ax = AT b, es decir, 5 3.38939 3.38939 2.49801 c d = 0.28493 , 0.25856
obtenemos c = 1.58479 y d = 2.25381, de donde p = 1.42215 y e = 0.63100 (obteni endose ahora Ax b = 0.29359 como medida de la aproximaci on).
8.4.
Aproximaci on uniforme
A la vista del Teorema 8.1.2 parece bastante natural pensar que f es una funci on con buenas propiedades de derivabilidad y elegimos los puntos de la interpolaci on de la manera natural xi = a + (b a)i n
(nodos equidistribuidos ) entonces los correspondientes polinomios interpoladores de f converger an uniformemente a la funci on. Sin embargo, como demostr o Runge en 1901, este no es ni 2 mucho menos el caso: un sorprendente ejemplo es la funci on f (x) = 1/(x + 1) vista en el intervalo [5, 5]. Sin embargo puede probarse que eligiendo los nodos seg un la regla xi = a + ba 2 1 + cos 2i + 1 2n + 2
(nodos de Chebyshev ) entonces los polinomios interpoladores correspondientes convergen uniformemente a f . Los nodos de Chebyshev tienen la interesante propiedad que hacen la cantidad
Interpolaci on y aproximaci on
187
m axx[a,b] | n as peque na posible (comp arese con el Teorema 8.1.2) pero ni sii=0 (x xi )| lo m quiera para estos nodos hay garant a de convergencia: Faber prob o en 1914 que para cualquier (n) (n) (n) sistema de nodos a x0 < x1 < < xn b existe una funci on continua f de manera (n) (n) n que si pn n es el polinomio interpolador en los puntos (xi , f (xi )i=0 , entonces (pn ) no converge uniformemente a f . El objetivo de esta secci on es demostrar que, por el contrario, si partimos de una funci on continua dada y elegimos adecuadamente el sistema de nodos, entonces los polinomios interpoladores resultantes convergen uniformemente a la funci on (teorema de Marcinkiewicz). Seguimos la Secci on 1.7 (pp. 3542) del libro de Crouzeix y Mignot [2]. El punto de partida es el famoso teorema de aproximaci on de Weierstrass, que garantiza que las funciones continuas pueden aproximarse uniformemente por polinomios (aunque no da informaci on acerca de la naturaleza y propiedades de dichos polinomios). Transcribimos a continuaci on (sin traducir!) una prueba bastante asequible que hemos encontrado en el sitio de internet http://planetmath.org. Puede encontrarse una demostraci on alternativa en [3, pp. 296299]. Teorema 8.4.1 (Teorema de aproximaci on de Weierstrass) Sean f : [a, b] R y Entonces existe un polinomio p tal que f p < . > 0.
n: To simplify the notation, assume that the function is dened on the interval Demostracio [0, 1]. This involves no loss of generality because if f is dened on some other interval, one can make a linear change of variable which maps the domain of f to [0, 1]. The case f (x) = 1 1 x. Let us start by demonstrating a few special cases of the theorem, starting with the case f (x) = 1 1 x. In this case, we can use the ancient Babylonian method of computing square roots to construct polynomial approximations. Dene the polynomials P0 , P1 , P2 , . . . recursively as P0 (x) = 0 1 Pn+1 (x) = Pn (x)2 + x 2 It is an obvious consequence of this denition that, if 0 x 1 then 0 Pn (x) 1 for all n. It is equally obvious that each Pn is a monotonically increasing function on the interval [0, 1]. By subtracting the recursion from itself, cancelling, and factoring, we obtain the relation 1 Pn+2 (x) Pn+1 (x) = (Pn+1 (x) + Pn (x))(Pn+1 (x) Pn (x)) 2 From this relation, we conclude that Pn+1 (x) Pn (x) for all n and all x in [0, 1]. This implies that l mn Pn (x) exists for all x in [0, 1]. Taking the limit of both sides of the recursion that mn Pn (x) = 1 1 x. The relation also implies denes Pn and simplifying, one sees that l that Pn+1 (x) Pn (x) is also a monotonically increasing function of x in the interval [0, 1] for all n. Therefore, Pn+1 (x) Pn (x) Pn+1 (1) Pn (1) Summing over n and cancelling, one sees that Pm (x) Pn (x) Pm (1) Pn (1) whenever m > n. Taking the limit as m approaches innity, one concludes that 1 1 x Pn (x) 1 Pn (1) Since the Pn s converge, for any > 0, there exists an n such that 1 Pn (1) < . For this value of n, |f (x) Pn (x)| < , so the Weierstrass approximation theorem holds in this case.
188
The case f (x) = |x c|. Next consider the special case f (x) = |x c|, where 0 c 1. A little algebra shows that (x c)2 + 2 /4 |x c| /2 By the case of the approximation theorem already proven, there exists a polynomial P such that | (x c)2 + 2 /4 P (x)| < /2 when x [0, 1]. Combining the last two inequalities and applying the triangle inequality, one sees that |f (x) P (x)| < , so the Weierstrass approximation theorem holds in the case f (x) = |x c|. The case of piecewise linear functions. A corollary of the result just proven is the Weierstrass approximation theorem for piecewise linear functions. Any piecewise linear function can be expressed as
N
(x) = b +
m=0
am |x cm |
for suitable constants a0 , . . . , aN , b, c0 , . . . , cN . By the result just proven, there exist polynomials P0 , . . . , PN such that |am |x cm | Pm | < /N By the triangle inequality,
N
(x) b
Pm <
m=0
Since the interval [0, 1] is compact, f is uniformly continuous. Hence, for all exists an integer N such that |f (x) f (y )| < /2 whenever |x y | 1/N .
The general proof. Having succeeded in proving all these special cases, we now have the courage to attack the general theorem. In light of the case just proven, it suces to show that if f is continuous on [0,1] then for all > 0 there exists a piecewise-linear function such that for all x in [0, 1], |f (x) (x)| < /2. For, if such a function exists, then there also exists a polynomial P such that |(x) P (x)| < /2, but then |f (x) P (x)| < . > 0 there
Dene by the following two conditions: If m is an integer between N and N , (m/N ) = f (m/N ). On any interval [m/N, (m + 1)/M , is linear. For every point x in the interval [0, 1], there exists an integer m such that x lies in the subinterval [m/N, (m + 1)/M . Since a linear function is bounded by its values at the endpoints, (x) lies between (m/N ) = f (m/N ) and ((m + 1)/N ) = f ((m + 1)/N ). Since |f (m/N ) f ((m + 1)/N )| /2, it follows that |f (m/N ) (x)| /2. Because |x m/N | 1/N , it is also true that |f (m/N ) f (x)| /2. Hence, by the triangle inequality, |f (x) (x)| < . Lema 8.4.2 Sea f : [a, b] R una funci on continua y sean n + 2 puntos distintos x0 < x1 < < xn < xn+1 en [a, b]. Entonces existe un u nico polinomio p n tal que f (xi ) p(xi ) = (1)i (f (x0 ) p(x0 )) para cada i = 1, 2, . . . , n + 1. M as a un, este polinomio se caracteriza por la propiedad
0in+1
(8.3)
0in+1
q n , q = n.
(8.4)
Interpolaci on y aproximaci on
189
n: N Demostracio otese que las ecuaciones de (8.3) constituyen un sistema de n + 1 ecuaciones lineales en las n + 1 inc ognitas a0 , a1 , . . . , an de los coecientes del polinomio p(x) = a0 + a1 x + + an xn buscado. Demostramos a continuaci on que dicho polinomio, de existir, verica (8.4). Esto es suciente para concluir la armaci on del lema porque garantiza que la soluci on del sistema, de existir, es u nica. En efecto, si f es la funci on nula, el polinomio nulo (que obviamente es soluci on) ser a la u nica soluci on del sistema, lo que equivale a decir que la matriz de coecientes del sistema lineal dado por (8.3) (que no depende de f ) es regular. Probemos pues que de (8.3) se concluye (8.4). Sea q n con q = p y supongamos, por reducci on al absurdo, que
0in+1
m ax |f (xi ) q (xi )|
0in+1
No es restrictivo suponer que f (x0 ) p(x0 ) 0. Entonces (1)i (q (xi ) p(xi )) = (1)i (f (xi ) p(xi )) (1)i (p(xi ) q (xi )) 0, para cada i, lo que implica que (1)i
xi+1 xi
i+1 q (x) p (x) dx = (1)i [q (x) p(x)]x xi
0.
Ahora existen dos posibilidades. Si q p 0 en alguno de los intervalos [xi , xi+1 ] entonces, por ser q p un polinomio, tendremos que q p 0 en todo R, con lo que q p es constante. Como el signo de q p va cambiando en los puntos xi , no hay m as alternativa que q = p, contradicci on. Concluimos entonces que existe i (xi , xi+1 ) tal que (1)i (q (i ) p (i )) < 0 para cada a una ra z i = 0, 1, . . . , n, con lo que por la propiedad de los valores intermedios q p admitir en cada uno de los intervalos (i , i+1 ), i = 0, 1, . . . , n 1. Esto hace un total de al menos n ra ces para el polinomio (no nulo) q p , que tiene a lo sumo grado n 1. Hemos llegado de nuevo a una contradicci on. Se dice que una funci on continua h : [a, b] R equioscila en los puntos x0 < x1 < < xn < xn+1 si h = |f (xi )|, i = 0, 1, . . . , n + 1, y f (xi ) = f (xi+1 ), i = 0, 1, . . . , n. Si p n es un polinomio tal que f p equioscila en x0 < x1 < < xn < xn+1 y q n es distinto de p entonces, de acuerdo con (8.4), f p
0in+1
0in+1
m ax |f (xi ) q (xi )| f q
Ello signica que p es el polinomio de n que mejor aproxima a f en la norma uniforme (o, como se dice a veces, en el sentido de Chebyshev ). Probamos a continuaci on que, en efecto, existe un polinomio p n tal que f p equioscila en los puntos x0 < x1 < < xn < xn+1 del intervalo [a, b]. Este polinomio se construye como l mite de una sucesi on de polinomios construidos mediante el llamado (segundo) algoritmo de R em` es. Este algoritmo funciona como sigue. Inicializaci on. Partimos de los puntos a x0 < x1 < < xn < xn+1 b.
190
el Lema 8.4.2 garantiza que el polinomio pk est a bien denido. Ahora aparecen dos casos:
k k Primer caso: f pk = |f (xk i ) pk (xi )|. En este caso f pk equioscila en los puntos xi , on de f en norma uniforme que and abamos buscando; el con lo que pk es la mejor aproximaci algoritmo acaba.
+1 xk = xk i , i = 1, 2, . . . , n + 1. i
+1 xk = xk i1 , i = 1, 2, . . . , n + 1. i
+1 xk = xk i, i
i = j.
+1 xk = xk i , i = j + 1. i
+1 xk = xk i, i
i = 0, 1, = n.
+1 xk = xk i+1 , i
i = 0, 1, = n.
Interpolaci on y aproximaci on
191
Demostraremos a continuaci on que si el algoritmo no se detiene entonces la sucesi on de on. polinomios pk converge al polinomio de mejor aproximaci Lema 8.4.3 Supongamos que el algoritmo de R em` es no se detiene en un n umero nito de iteraciones. Entonces
k
<
k+1
< inf
q n
f q
para todo k 0,
donde
k
0in+1
0in+1
k m ax |f (xk i ) pk (xi )|
0in+1
k m ax |f (xk i ) q (xi )| f q
(8.5)
que k inf qn f q para cada k . Por tanto basta demostrar que para cada q n , as la sucesi on ( k ) es estrictamente creciente. +1 el nuevo t ermino con relaci on a los xk Fijemos k 0 y sea xk i . No es restrictivo suponer i0
+1 k+1 f (xk i0 ) pk (xi0 ) = f pk
(8.7)
Asimismo
+1 +1 f (xk ) pk+1 (xk ) = (1)ii0 i i k+1 ,
i = 0, 1, . . . , n + 1,
(8.8)
siendo
+1 k+1 f (xk i0 ) pk+1 (xi0 ) = k+1
k+1 .
(8.9)
k+1 .
(8.10)
k+1 ),
i = i0 ;
pk+1 pk = (
k+1
k )qk .
(8.11)
= f pk
k+1
inf
q n
f q
k+1
0.
(8.12)
+1 k+1 N otese que qk (xk an (al menos) n + 1 i0 ) > 0. En efecto, si qk (xi0 ) < 0 entonces habr cambios de signo de x0 a xn+1 y por tanto n + 1 ceros distintos, cosa imposible porque el grado
192
+1 de qk es a lo sumo n. El mismo argumento permite descartar qk (xk i0 ) = 0 en los casos i0 = 0 +1 k+1 e i0 = n + 1, y concluir que qk (x) 0 para todo x (xk i0 1 , xi0 +1 ) cuando i0 {1, . . . , n}. Por +1 nimo relativo de qk y podemos aplicar tanto, si en este u ltimo caso, qk (xk i0 ) = 0, xi0 es un m el teorema de Rolle para encontrar n ceros de la derivada de qk , una contradicci on. k+1 Como qk (xi0 ) > 0, (8.12) implica que k+1 k 0, de donde k+1 = k+1 y k+1 k . Finalmente, si k+1 = k entonces pk+1 = pk por (8.11), y aplicando (8.10) concluimos
f pk
k+1
0in+1
y el algoritmo se habr a detenido. Observaci on 8.4.4 N otese que como consecuencia de (8.12) la demostraci on del Lema 8.4.3 tambi en proporciona la cadena de desigualdades 0 f pk
k+1
k+1
k)
qk
(8.13)
k Lema 8.4.5 Existe un n umero > 0 tal que |xk i+1 xi | para cada k 0, i = 0, 1, . . . , n.
n: Supongamos lo contrario para encontrar una subsucesi Demostracio on 1 k1 < k2 < < kl kl < tal que l ml xi = xi para cada i = 0, 1, . . . , n + 1 y no todos los puntos xi son distintos. Entonces podemos encontrar un polinomio interpolador en dichos puntos, es decir, existe p n tal que p(xi ) = f (xi ) para cada i. Ahora bien, gracias a (8.4) y al Lema 8.4.3 sabemos que 0
0
<
kl
0in+1
0in+1
kl l m ax |f (xk i ) p(xi )|
l m
kl l m ax |f (xk i ) p(xi )| =
0in+1
m ax |f (xi ) p(xi )| = 0.
Ya estamos listos para probar: Teorema 8.4.6 Sean f : [a, b] R continua y n 0. Entonces existe un u nico polinomio p de mejor aproximaci on a f en n para la norma uniforme. Este polinomio est a caracterizado porque f p equioscila en n + 2 puntos de [a, b]. El algoritmo de R em` es proporciona o bien p tras un n umero nito de pasos o una sucesi on de polinomios que converge uniformemente a p. n: Debemos demostrar que la sucesi Demostracio on (pk ) de polinomios generada por el algoritmo converge al polinomio p buscado. Con la notaci on del Lema 8.4.3 pongamos = l mk k . Escribamos cada uno de los introduc amos mediante la forma del polinomio interpolador de Lagrange, polinomios qk que all es decir, +1 x xk j ii0 +1 qk (x) = (1) . +1 xk+1 xk j i=i i =j =i i
0 0
Interpolaci on y aproximaci on
193
es decir, las normas de los polinomios qk est an acotadas, con lo que podemos aplicar (8.13) para deducir
k
l m f pk
= .
(8.14)
En particular, la sucesi on de polinomios (pk ) tambi en est a acotada en el espacio normado de dimensi on nita (n , ). Por tanto podremos encontrar una subsucesi on (kl ), puntos x0 < x1 < < xn < xn+1 y un polinomio p n tales que
l
l m pkl = p
y Dado que
k
l l m xk i = xi , i = 0, 1, . . . , n + 1.
k = f (xk i ) pk (xi )
para cada k , tomando l mites se obtiene = f (xi ) p(xi ) y f (xi+1 ) p(xi+1 ) = (f (xi ) p(xi )).
on Por (8.14), f p equioscila en los puntos {xi }, con lo que p es el polinomio de mejor aproximaci en la norma uniforme. M as a un, obs ervese que cualquier otro punto de acumulaci on de la a en n + 2 puntos, con lo que tambi en ser a el polinomio de mejor sucesi on (pk ) equioscilar aproximaci on en la norma uniforme, es decir, p. Es bien sabido que si una sucesi on acotada tiene un u nico punto de acumulaci on, entonces ese es su l mite. Hemos demostrado que (pk ) converge uniformemente a p. Ponemos n a la secci on obteniendo como corolario el teorema de Marcinkiewicz anunciado al comienzo de la misma: Corolario 8.4.7 (Teorema de Marcinkiewicz) Sea f : [a, b] R continua. Entonces existe (n) (n) (n) un sistema de puntos de interpolaci on x0 < x1 < < xn de manera que si pn n es n (n) (n) el polinomio interpolador en los puntos (xi , f (xi )i=0 , entonces la sucesi on (pn ) converge uniformemente a f . n: Basta tomar como pn el polinomio que mejor aproxima a f en la norma Demostracio uniforme. En efecto, como f p equioscila en n + 2 puntos tendr a n + 1 ceros distintos, que (n) ser an los puntos {xi } buscados. N otese que la convergencia de (pn ) a f est a garantizada por el teorema de aproximaci on de Weierstrass.
194
Bibliograf a
[1] R. Burden y J. D. Faires, An alisis Num erico. 7a ed., Thomson Learning, Madrid, 2002. [2] M. Crouzeix y A. L. Mignot, Analyse Num erique des Equations Di erentielles. 2e edition r evisee et augment ee, Masson, Par s, 1992. [3] D. Kincaid y W. Cheney, An alisis Num erico. Las Matem aticas del C alculo Cient co, Addison-Wesley Sudamericana, Wilmington, 1994.