Вы находитесь на странице: 1из 196

METODOS NUMERICOS

V ctor Jim enez L opez y Antonio Pallar es Ruiz

# 

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

 "  

 !  

Destrezas a adquirir en el captulo

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
 

wedir nmeros de ondiin de proesos senillosF

 

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

UMU Mtodos Numricos, 2007-2008

Desarrollo de los contenidos fundamentales

Nmeros y su representinF
irroresF

Nmeros de mquinF edondeoF


glulos estles e inestlesF rolems ml ondiiondosF rtis s y ssF emporlizinX Tre C Pr C Trv a IRrres

Nmero de ondiinF

1.1.

Introduccin

Ejemplo 1.1.1

rod relizr l siguiente operin 2 .

i hemos

clculo simblicoD

2 l mism de(niin de rz udrd nos die que ( ) = F

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

rod l siguientes operiones en ls luldors

@iiA 1050 1050 /3 @iiiA 1050 (1050 /3)

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.

Fuentes del Error

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

se trduzn en errores grndes de l soluin se die que el mtodo es inestleF

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

UMU Mtodos Numricos, 2007-2008

1.1.2.

Ejemplos

Ejemplo 1.1.4 Utilizndo l luldor1 vmos evlur ls expresiones de l iguldd


18817 10864 3 = 1 18817 + 10864 3

i se quiere ompror l iguldd nterior str reordr l identidd

i hemos los lulosD nuestr luldor proporion los siguientes vloresX

a2 b2 = (a b)(a + b) y poner a = 18817 y b = 10864 3 y onsttr que a2 b2 = 1F

18817 10864 3 = 2.65718 1005 1 = 2.657171708 1005 18817 + 10864 3


remos otenidos dos vlores distintosD lo que nos plnte lguns uestionesX gl es l us por l que l luldor no respet l igulddc vs luldors estn truds pr fstidirnos e hn produido iyi i repitirmos ls operiones on l luldorD otendrimos los mismos vloresc

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


u soluinD es x = 1 e y = 1F gonsideremos hor el sistem perturndo un poo los trminos independientesF

x + y=2 x +1.00001y = 2.
iste sistem perturdo tiene omo soluin x = 2 e y = 0F

Un error pequeo en los datos iniciales (en el trmino independiente) ha producido


grnde en l soluinF in este soD no se h produido ningn error de luloF iste es un ejemplo de un prolem @sistem linelA mal condicionadoF No podemos
un error las soluciones.

evitar que pequeos errores en los datos iniciales se conviertan en errores grandes en

gmo frontmos situiones en ls que prezn sistems ml ondiiondosc


1
Casio fx-991ES

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-

ros que se escriben en binario (con 0 y 1) en registros de 8, 16, 32 o 64 dgitos (bits).

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

1.2.1.1. Representacin de enteros en un sistema de base

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

12879 = 9 100 + 7 101 + 8 102 + 2 103 + 1 104 ,

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)

an > 0. p = an an1 . . . a1 a0 (b)

y se llama

representacin digital de p en base b. Los coecientes aj se denominan dgitos o cifras.

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,

UMU Mtodos Numricos, 2007-2008

1.2.1.2.

Tipos de enteros de mquina


binario (base 2) utilizando registros de 8, 16, 32 o 64

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

Si tu calculadora tiene la funcin de representar nmeros en distintas bases,

encuentra los mayores enteros que se pueden escribir en hexdeiml 8).

@se ITAD inrio @se PA

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

mos utilizr proximiones D esrits en se P y lmends en unos registros de tmo prejado.

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.

1.2.2.1. Sistemas de representacin de punto jo Proposicin 1.2.2 Elegida


una base natural admite una representacin en la forma

b N, b 2,

cualquier nmero real positivo

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

representacin digital de punto jo de

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

base 10, con un mximo de 6 dgitos adems de la coma.

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

As el resultado debe ser x y = 0.


Si multiplicamos

que se pueden escribir con 6 dgitos. Esta aproximin es

0.00000.

z , tendremos (x y ) z = 0. Si hacemos lo mismo con y z , obtenemos y z = y z = 1000. tendremos x (y z ) = 0.01.


por

xy

Y si multiplicamos por

A l hor de trjr on nmeros en mquinas, este sistema de representacin puede no ser


conveniente al operar con nmeros con muchos ceros. Para evitar estos problemas que representan los ceros a la izquierda o a la derecha de la coma, se utiliza el sistema de representacin de coma

0 = (x y ) z = x (y z ) = 0.01

)otnteF

10 1.2.2.2.

UMU Mtodos Numricos, 2007-2008

Representacin de nmeros reales en coma otante


n=1

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.

EN y se llama representacin digital de punto otante de x en base


x = .a1 a2 . . . an . . .
Al nmero

b.
1 n=1 an bn

N se le llama exponente de la representacin de x, y al nmero m = .a1 a2 . . . an . . .(b) se le llama mantisa.

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

Cul es el lgoritmo pr enontrr un representin de punto )otnte en se b de un nmero


k bn F y si se de l ondiin de

= 5.6666 . . .(10) = 101 .56666 . . .(10) = .56666 . . . E 1(10)

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

upongmos que trjmos on un mquin que utiliz nmeros esritos en

om )otnte de se 10, con un mximo de 6 dgitos en la mantisa.

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

Cmo se multiplican dos nmeros en coma )otnte?

(no es necesario guardar el punto)

Cmo se suman? Cmo se representan los nmeros en tu calculadora?

meros y Errores

11

1.2.2.3.

Tipos de reales en los ordenadores


binario @se PA utilizndo

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

for iletril nd iletroni ingineers estlei en I985

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]

onoido omo el siii754-1985.

gul es el myor rel @doubleA positivo en un ordendorc

Cul es el menor rel @doubleA positivo en un ordendorc


rz los ejeriios ID P y R de l roj de prolems IF

No pienso copiarla aqu!

enontrris un reve desripin de este protooloD

Ejercicio 1.2.3

1.3.

Errores
Si el nmero real

Denicin 1.3.1

es una aproximacin del nmero

p, para medir el tamao

del error cometido en esta aproximacin podemos utilizar:

Error exacto en la aproximacin e = p p . Error absoluto: ea = |e| = |p p |.

p | Errores relativos (si p = 0): er = |epa| = |p |p|

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

in el so de tener errores reltivos pe ueos podemos utilizr indistintmente

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

que lo tendremos de estimaciones de

er

a partir de

ea

que intentar trabajar con

er .

12

UMU Mtodos Numricos, 2007-2008

tilizndo el error solutoD podemos esriirX

p = p + e = p ea
Si tenemos una acotacin de

y tmin

p ea p p + ea .

ea , ea < ,

entonces podemos asegurar que

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.

Nmeros de mquina. Redondeo


a llamar mquina de

Denicin 1.4.1 (Nmeros de mquina) Vamos


mantisa y

dgitos en la

dgitos en el exponente en base

al conjunto de nmeros que se pueden representar

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

que estn ms prximos si es que hy vriosAF

en el que se procurar utilizar el nmero de mquina

que est ms prximo p @o uno de los

en una mquina ,

ixisten distintos tipos de redondeoD nosotros nos vmos (jr en el siguienteX

meros y Errores
Sean

13
b 2 aj
un nmero natural,

Denicin 1.4.2 (Redondeo)


descrito en coma otante y base

por:

t N t > 0,

x R \ {0}

x = bN

j =1

1 = .a1 a2 . . . EN(b) , bj

ak {0, 1, ..., (b 1)}. t 1 N Sean x = b j =1 aj bj = .a1 a2 . . . at EN(b)


 truncar la mantisa a los

el nmero de mquina que resulta al

+ primeros dgitos y x

x y x+ a x.

son los dos de la mquina de base

dgitos en la mantisa, que estn ms prximos

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

Cuando el nmero de dgitos

este jado en el entorno de trabajo podemos escribir solamente

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)

Proposicin 1.4.3 (Errores de redondeo)

Entonces

Sean

b2

un nmero natural,

t N t > 0,

El error absoluto en el redondeo satisface la acotacin


|x f lt (x)| 0.5bN t

f lt (x) = bN

t 1 j =1 aj bj

= .a1 a2 . . . at EN(b) ,

con

N N N + 1.

(iii) Los errores relativoa en el redondeo satisfacen la acotacin

|x f lt (x)| 0.5bt+1 |x|


il nmero 0.5bt+1
)otnteF
Demostracin:

|x f lt (x)| 0.5bt+1 |f lt (x)| t


dgitos en om

se denomin l preisin reltiv en l ritmti de

|x f lt (x)| = |x x | < 0.5bN t

b N b t |x x+ | = = 0.5bN t 2 2 |x x+ | |x f lt (x)| = |x x+ | si |x x | y en este so 2 |x x+ | (1) = 0.5bN t . |x x+ | = |(x x ) + (x x+ )| = |x x+ | |x x | 2


si

|x x | <

(1)

x x+

x x

tienen distinto signo tnto si

es positivo omo si es negtivoF

14

UMU Mtodos Numricos, 2007-2008

Ejercicio 1.4.1
@iA

wide los errores reltivos del redondeo del nmero


mantisa y base 10

en un mquina de cuatro dgitos de

(ii) En una mquina de nmeros escritos en coma )otnte on se IHAD ul es el mximo error reltivo posilec

13

dgitos en l mntis @en

Denicin 1.4.4 (Precisin de k dgitos)


nmero

Se dice que el nmero

es una aproximacin del

p=0

con una precisin de, al menos,

cifras signicativas en la base

b,

siempre que

el error relativo

Cuando

|p p | .5 bm+1 . |p| m
cifras signicativas.

es el mayor entero para el que se cumple la desigualdad anterior, se dice que

aproxima a

con

Ejemplo 1.4.5

Se
e = .27182818284590452353602874713527...E 1

y app1 (e) = .2718287E 1 un proximin de eF

.5171540 . . . E 5 |e app1 (e)| = 1.90250E 6 = .19025E 5, |e| .271828182E 1


in este soD app1 (e) proxim e on T ifrs signi(tivs y en ls mntiss de e y app(e) oiniden ls 6 primers ifrsF

.5E (7 + 1) < .190250E 5 < .5E (6 + 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|

Con la denicin anterior app(x) es una aproximin de x on R ifrs signi(tivsD unque


no coinciden ninguna de las cifras de la mantisa.

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.

Distribucin de Nmeros de Mquina

Cmo estn distribuidos los nmeros de mquina?

espX ry muhos er del eroD muy poos en el D y su(ientes lrededor de los nmeros rzonles @FID ID I0, ...).

Denicin 1.4.6 (psilon de la Mquina)


en mantisa y base que

Si

es una mquina ideal de nmeros (t dgitos

b),

se denomina  psilon de la Mquina al menor nmero positivo

O en otros trminos, al menor nmero positivo tal que +1 de mquina siguiente al 1, 1 bt

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

prtis lo preisremos on extitudF

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.

Aritmetica de la mquina. Propagacin de errores

Cmo suma, resta, multiplica, divide, etc... una mquina?

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 = .700001E 1 e y = .600002E 0 son dos nmeros de la mquina. Su suma, x + y = .7600012E 1,


es un nmero de 8 dgitos en la mantisa que debe ser redondeado por un nmero de la mquina si se quiere guardar en la misma,

AsD pr relizr operiones ritmtis en un mquin idelD pensremos siempre que


x y
con la mayor precisin posible;

x y := f l(x + y ) = .760001E 1.

ests se relizn en dos etps @iA Primero se calcula

(ii) despus se redonde el resultdo un nmero de l m uinF

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

los factores en el producto?

redondeo en los sumandos a la suma?

uen momento pr volver sore el ejemplo IFIFR X

Ahor que semos omo se deen relizr ls operiones dentro de nuestr luldorD es
Utilizamos la calculadora

Ejemplo 1.5.1

pr evlur ls expresiones de l iguldd

18817 10864 3 =

1 . 18817 + 10864 3

riimos los lulosDoteniendo dos vlores distintos y nos preguntmos ul de los dos er el ms preisoF

Vamos a ir detallando las operiones


f l( 3) = 1.732050808D
y

@iA @iiA @iiiA

3 = 1.732050808(1 ered )

ered .5E 10 10864 f l( 3) = 18816.9997D

Casio fx-991ES: presenta 10 dgitos en pantalla, presupondremos que es una mquina de nmeros de 10

dgitos en la mantisa.

16

UMU Mtodos Numricos, 2007-2008

@ivA @vA

10864

3 = 10864 (f l( 3) ea ) = (18816.9997 ered ) (10864 ered )


del error en l operin

@viA @viiA @viiiA

x1 | e1 = |x x1 | .54E 6 y |x| x1 | .20E 1F As, l vlor de x on un preisin de dos dgitosF

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

slo podemos armar que

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 |

.1435E 10F ehor podemos segurr que x2 proxim x

Cundo se restn dos nmeros de mquin prximosD l es l preisin en l diferenic


Sea dos nmeros de

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

gonsideremos los nmeros p = 0.54619 y q = 0.54601F edondendo los nmeE


por

ros en una mquina de cuatro dgitos de precisin (base 10), mide el error relativo cometido al

Analiza el resultado! Podemos mejorarlo?


x1
y

pq

f l(p) f l(q )F

nts ifrs signi(tivs tiene

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

Comprueba la bondad de las aproximaciones reconstruyendo el polinomio de segundo grado

x2 200x + 1 == 0.

Analiza el resultado! Podemos mejorarlo?

meros y Errores
Clculos estables e inestables
que un proceso numrico, o una operacin, es

17

1.6.

Denicin 1.6.1 Diremos

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

Diremos que un proceso numrico, es estable cuando no es inestable.


1.208 x

Entonces se dice que el algoritmo es condicionalmente estable


Ejercicio 1.6.1
Evala la expresin R dgitos de preisin en se IHF

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

Analiza los algoritmos:

x (y = 1.208/x) (z = 1 y ),

Despus de ver mo se relizn ls operiones ritmtis en un mquin de nmerosD


podemos quedarnos con el siguiente resumen: El producto

x (u = x 1.208) (z = u/x).

producir errores de desbordamiento ( over)ow AF

de dos nmeros de mquina es un clculo estable, slo se pueden

La

divisin

de dos nmeros de m uin es un lulo estleD tmin slo se

pueden produir errores de desordmiento @ over)ow AF

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

de dos nmeros de mquina es inestable cuando los dos nmeros estn

muy prximosD y es estle undo los dos nmeros tienen distinto signo @en este so es un sum de nmeros del mismo signoAF

ry que prestr tenin ls operiones on nmeros grndes o exesivmente


pequeos para evitar errores de desbordamiento ( overow ).

Ejercicio 1.6.2

En relacin con el ltimo punto,

Cmo se puede realizar el clculo

ex
para valores grandes de

ex 1

Comprubalo con la calculadora!

x (x > 250)?

1.6.1.

Propagacin de errores

Cmo afecta el nmero de operaciones al resultado nal?


ner D
proporionl l nmero de operionesF

Si las operaciones son estables, lo menos que podemos esperar es que si en cada operacin efectuamos un redondeo del orden de

er 0.5bt+1 D despus de n operionesD tengmos un error umuldo

18

UMU Mtodos Numricos, 2007-2008

Proposicin 1.6.2

Sean

xi 0,

nmeros de mquina (base

t-dgitos

en la mantisa). Sean

Sn = x0 + x1 + + xn = Sn1 + xn ,

Entonces:
donde

Sn = Sn 1 xn (S0 = x0 ). | |Sn Sn (1 + eM )n 1 neM , |Sn |


es la precisin de la mquina.

eM = .5bt+1

(ver prueba en el libro de Kincaid-Cheney [3])

Ejercicio 1.6.3 Ejercicio 1.6.4

Sea

tal que

neM <

1 3 . Utilizando el binomio de

Newton comrueba que

Sen xi > 0D nmeros de mquin @se b y t


Pn = x0 x1 xn = Pn1 xn ,
Pn = Pn 1 xn (P0 = x0 ).

1 + (0.5)neM (1 + eM )n 1 + (1.5)neM .
-dgitos en la mantisa). Sean

Entonces:

donde

eM = .5bt+1

| |Pn Pn (1 + eM )n 1 neM , |Pn |


es la precisin de la mquina.

Ejercicio 1.6.5
(i) paa0 ; zaI; para (kaID

Para evaluar un polinomio

de los dos algoritmos siguientes

p(x) = an xn + an1 xn1 + ... + a1 x + a0

disponemos

zazBx; papCak Bx;


(ii) (rornerA

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

errores de redondeo al introducir el valor de los parmetrosD

menos erroresc

gul de los dos lgorimos umul

Ejercicio 1.6.6

rz los ejeriios

U y IH de l hoj de prolems IF

A la hora de escribir un algoritmo o un proceso numrico, debemos intentar minimizar


el nmero de operaciones para evitar acumulacin de errores de redondeo.

meros y Errores
Propagacin de Errores en Procesos Iterativos

19

1.6.2.

Un algoritmo o un mtodo iterativo, es un procedimiento por el que se construye una sucesin

xn

por etapas. Cada

xn

depender

de unos primeros dtos iniiles los que se vn gregndo

en cada etapa los trminos de la sucesin que ya se han calculado. in generlD

Normalmente, en los procesos iterativos esperamos que xn sea una sucesin convergente hacia
la solucin de un problema

xn = f (x0 , x1 , ..., xn1 ) :

x.

En principio, desconocemos el valor exto de aproximin de

yD nte l preseni de errores inevitles

@omo los de redondeoAD deeremos prr l iterin undo remos que

xn

es una buena

xF

in generlD l ondiin de prd viene dd en trminos de los errores solutos o reltivos pidiendo que :

n = |xn xn1 | < prec


donde

o que

Normalmente,

prec > 0

es una precisin dada.

xn1 n = 1 < prec, |xn | xn

este tipo de condicin de parada se complementa con un control sobre la

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

est denida por un mtodo iterativo y que

implementar el mtodo en una mquina, vamos construyendo una sucesin

xn

que va acumulando

xn x.

Al

los errores de redondeo y de propagacin segn las operaciones que intervienen.

y relativo en cada etapa.

f| = Denotamos en = |xn xn | si x = 0, y en = |x |xx |


n n n

xn x f n

si

x = 0,

a los errores absoluto

(i) Se dice que la propagacin de errores en la iteracin es que

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.

Debemos intentar evitarlos.

20

UMU Mtodos Numricos, 2007-2008

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

del resto de l frmul de ylorD que

x Se yn = n!(ex (1+ x + x + + )). emosD por l expresin de vgrnge 2! n!


2

y n = n!

etx etx xn+1 = xn+1 . (n + 1)! (n + 1)

he donde podemos onluir que pr x 1 yn 0F

Tambin sabemos que se cumple la frmul de reurreni linelX

en un mquina que trabaja con reales de tipo

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,

podemos estimar que

yn yn = n(yn1 yn1 ) = ... = n!(y0 y0 ).


Aqu podemos observar como el pequeo error de redondeo al escribir el nmero

y evlur y0 D se h propgdo de form exponenil @n! >

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

n xn1 podemos estimr que


0, en absoluto.

|xn xn | = n|xn1 xn1 | = ... = n!|y0 y0 )|,


y predeir que l suesin xn es muy inestle y no onverge
con 25 iteraciones En efecto, si trabajis en doble precisin con nmeros de tipo

ivl los PS primeros trminos de l suesin

x2 5 8.2E 8

muy lejos del lmite

0F xn en

double

podris observar que

el ordendor!

meros y Errores
Condicionamiento de un problema

21

1.7.

Los

trminos  condicionamiento y/o  problema bien o mal condicionado se utilizan de

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.

A ontinuin vmos ver distintos  modelizaciones

de problemas en los que se pueden

hacer esas cuanticaciones.

1.7.1.

Funciones de una variable.

Este es el caso en el que el algoritmo consiste simplemente en dado un nmero de entrada, evaluar Si adems

como dato

f (x)

como dato de salida, donde

es derivable, con derivada continua, podemos cuanticar el condicionamiento del

f :RR

es una funcin real.

algoritmo como sigue: Sea

el dato de entrada, y

x=x+h

una perturbacin de

como dato de entrada.

En la salida obtenemos

f (x + h)

en lugar de

f (x).

il error en slid se puede estimr en trminos de l derivdX

|f (x + h) f (x)| = |f (x + th)||h| |f (x)||h|


donde

0<t<1

y pr

pequeo,

|f (x + th)| |f (x)|F

il error reltivo en el dto de slid es

|f (x + h) f (x)| |f (x)||h| |f (x)| |f (x)|


i medimos l rzn entre los errores reltivos en los dtos de slid y los dtos de entrdD tenemos | f ( x+ h ) f ( x) | er (f (x)) |f (x)||x| | f ( x) | = . | h | er (x) |f (x)| ist ltim estimin slo depende de x y de f y se puede preveer ntes de ejeutr el lgoritmo de evluinF
| x|

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

y mide la razn entre los errores relativos en

f (x)

ante variaciones de este ltimo valor.

Cuando el nmero de condicin es pequeo, o menor que una cota razonable, pequeos errores en

se propagan a pequeos errores en

f (x)

y el algoritmo es estable. Pero si los nmeros de

condicin son muy grandes o tienden a innito cerca de un valor de cerca de este valor.

el algoritmo ser inestable

22

UMU Mtodos Numricos, 2007-2008

Ejemplo 1.7.2
(i)

f (x) = xex (f (x) = ex 2x2 ex ) nc(xe


x2

|f (x)||x| |(ex 2x2 ex )x| 2 = |1 2x2 ex | 1 , x) = = 2| x |f (x)| |xe


es estable en todo

La evaluacin de f (x) = xex2


del mismo tamao . (ii)

x:

 los errores relativos en

f (x)

son

f (x) = arc sen(x) (f (x) =

1 ) 1 x2 | x|

|x| |f (x)||x| 1 x2 = = nc(arc sen(x), x) = |f (x)| arc sen(x) arc sen(x) 1 x2 x1

l m nc(arc sen(x), x) = + arc sen(x) .


2 ) es muy inestable:  pequeos

La evaluacin de arc sen(x) cerca de x = 1 (arc sen(1) =


errores en (iii)

producen errores grandes en

1 ) f (x) = log(x) (f (x) = x

nc(log(x), x) =

evaluacin es inestable.

1 |f (x)||x| = |f (x)| | log(x)|


es estable, pero si

est lejos de

la evaluacin de

log(x)

esta cerca de

x=1

esta

1.7.2.

Funciones de varias variables

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)

como dato de salida, donde

f :

Rn

es una funcin real de

x Rn

como

es  diferenciable con derivadas parciales

5 continuas podemos cuanticar el

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

para cada par

(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

con respecto a cada una de las coordenadas,

derivando la funcin de una variable que resulta al jar el resto de las coordenadas.

x0

y son continuas, entonces

es  diferenciable en

x0 

en el sentido

f (x) f (x0 )

se aproxima  bien por una aplicacin lineal.

Nmeros y Errores

23

il error en slid se puede estimr en trminos de ls derivds prilesX

|f (x + h) f (x)| = |f (x0 + hx , y0 , z0 ) f (x0 , y0 , z0 )| f (x0 + t1 hx , y0 , z0 ) ||hx | =| x


donde

0 < t1 < 1

y pr

hx

pequeo,

,y0 ,z0 ) 1 hx ,y0 ,z0 ) | f (x0 +tx | | f (x0 |. x

El error relativo en el dato de salida es

,y0 ,z0 ) | f (x0 ||hx | |f (x + h) f (x)| x |f (x)| |f (x)|


Si medimos la razn entre los errores relativos en los datos de salida y los datos de entrada, tenemos

,y0 ,z0 ) | f (x0 ||x0 | er (f (x)), x0 x . er (x0 ) |f (x)|

Como antes, esta ltima estimacin slo depende de ejeutr el lgoritmo de evluinF

y de

y se puede preveer ntes 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 : A Rn R una funcin diferenciable sea x A con f (x) = 0. Los nmeros nc(f, x, i) :=


(x) | f xi ||xi |

con derivadas parciales

|f (x)|

, i = 1, 2, ..., n f (x)
y en

se llaman nmeros de condicin f en x


x

y mide la razn entre los errores relativos 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

ante variaciones en cada una de las coordenadas de este vector.

en

f (x, y ) = x2 y (2, 1.5)F

undo

x = 2 0.3

x [2 0.3, 2 + 0.3] f (x,y ) | y | 2.32 = 5.29


i

f (x,y ) x

= 2xy

f (x,y ) y

= x2 D
e

(x,y ) | 2 2.3 1.7 = 7.82 y [1.5 0.2, 1.5 + 0.2], | fx

|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

UMU Mtodos Numricos, 2007-2008

El error mximo l evlur por HFSQTAF

f (2, 1.5) = 6 est otdo por QFPIP @ el error reltivo est otdo

Los nmeros de condicin con respecto a cada variable son:


nc(f, (x, y ), 1) :=
(x,y ) | fx ||x| 2x2 y = 2 = 2, |f (x, y )| x y (x,y ) ||y | | f y
y

nc(f, (x, y ), 2) :=

|f (x, y )| x

x2 y = 1. x2 y

Podemos armar que el error en la coordenada

in)uye ms que el error en la coordenada

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

A wtries omo ls de rilert

y el error que se propaga a la solucin 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

Vamos a analizar en el siguiente modelo (muy simple) cmo cuanticar el condicionamiento


en el problema de aproximacin de 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

p(r + h) = p(r) + p (r)h +

Tambin si h es pequeo q(r + h) q(r)

p (r) 2 p(n) (r) 2 h + ... + h p (r)h. 2 n!

. As

0 = p(r + h) = p(r + h) + q (r + h) hp (r) + q (r).

Nmeros y Errores

25

Despejndo qued h pq((rr)) F


Con este modelo, el nmero

q (r ) p (r )

puede servir para prever el error absoluto en el clulo

de

la raz en trminos de la perturbacin en el polinomio original.

Ejemplo 1.7.5 (Polinomios de Wilkinson)

Cuando tengamos construidos e implementados

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

{1, 2, ..., n}:

pn (x) = (x 1)(x 2)...(x n). p20


dada por

Consideremos la perturbacin de

p20 (x) = p20 (x) + x20 F r = 20 de p2 0, y r + h20 = algR20 (p20 )F


es

i algR20

es un algoritmo que nos proporciona la raz

La estimacin propuesta para el tamao de h20


h20

2020 2020 = 109 . p20 (20) 19!

Observad que una pequea perturbacin () en el coeciente de x20 se multiplica por 109 al
intentar aproximar la raz

r = 20F vos polinomios de

Wilkinson son un ejemplo de polinomios

 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

que proporcionen respectivamente las races

1.8.

Actividades complementarias del captulo

Los documentos se pueden descargar de la Zona Compartida de SUMA.


roj de prolems no I @P5G09GP007).
Practica n 1 . Fenmenos extraos . Prctica n 2 

o o

wquins ideles F

Bibliografa
[1]
A.
A

Delshms eF eunellD eF fensenyD tiles utF de frelonD frelonD I993.

bsicos de clculo numrico, Ed.

Labor - Univ.

[2] FvF furden nd tFhF piresD P002. [3]

a Anlisis numrico, 7 edicinD

homsonEverningD wexioD
seromerinD

DF uinid nd WF Reading, USA, 1994.

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

' '

Destrezas a adquirir en el captulo

$ $

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

UMU Mtodos Numricos, 2007-2008

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.

Desarrollo de los contenidos fundamentales


Algoritmos: forma, evaluacin y complejidad. Algoritmos iterativos. Mtodos iterativos elementales de resolucin de ecuaciones no lineales: Mtodo de la biseccin. Mtodo de regula-falsi. Mtodo de Newton. Iteracin de punto jo. Atractores y repulsores Orden de convergencia de una sucesin y constante asinttica del error. Aceleracin de la convergencia: algoritmos de Aitken y Steensen. Temporalizacin: 8HTe + 2HPb + 2HLab = 12 H

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.

Algoritmos: forma, evaluacin y complejidad

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

UMU Mtodos Numricos, 2007-2008

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

UMU Mtodos Numricos, 2007-2008

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

p(2) = 0 y p(z ) = (z 2)(1z 3 2z 2 + 3z + 1).

2.3.

Mtodos elementales de resolucin de ecuaciones no lineales

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.

Algoritmos-Iteraciones Recuerdas la demostracin constructiva representada en el grco:


1

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

UMU Mtodos Numricos, 2007-2008 En si misma esa prueba es el algoritmo de la biseccin:

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

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

UMU Mtodos Numricos, 2007-2008

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)

Algoritmo 2.4 Algoritmo de la regula falsi


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 = u (bb aa)/(v u); c = aa + h; w = f (c); if((|h| < precision) o (|w| <)){ Parada: Solucin en x = c } if(w u > 0){ aa = c; u = w; } else{ bb = c; v = w;} } Parada: Error- No hay convergencia

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

UMU Mtodos Numricos, 2007-2008

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)

Algoritmo 2.5 Regula falsi modicado


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, w1 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} w1 = u for(k=1;k<=nmaxiter;k=k+1){ h = u (bb aa)/(v u); c = aa + h; w = f (c); if((|h| < precision) o (|w| <)){ Parada: Solucin en x = c } if(w u > 0){ if((w w1 > 0)){ v = 0.5 v } aa = c; u = w; w1 = w } else{ if((w w1 > 0)){ u = 0.5 u} bb = c; v = w; w1 = w } } Parada: Error- No hay convergencia

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

El algoritmo es muy simple:

40

UMU Mtodos Numricos, 2007-2008

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

Algoritmos-Iteraciones Ejemplo 2.3.7 Puntos peridicos

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

Ejemplo 2.3.9 Extremos relativos (empezamos cerca del mnimo)


5

-1

-0.5

0.5

1.5

2.5

42 Referencias para la seccin

UMU Mtodos Numricos, 2007-2008

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

UMU Mtodos Numricos, 2007-2008

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

x(n) = f (x(n 1)).

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

g2 no lleva el intervalo [1,2] al intervalo [1,2]. La iterada x3 no est denida.


3 2 (iii) x = g3 (x) = 1 2 (10 x )
1

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

UMU Mtodos Numricos, 2007-2008

(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

< 0.15 para

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

Algoritmos-Iteraciones Considerando la funcin g (x) = x f (x) . f (x)

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

UMU Mtodos Numricos, 2007-2008

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|

Algoritmos-Iteraciones (C > 1 C nn0 ) ABSURDO

49

2.5.

Orden de convergencia de una sucesin

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

|xn x| = , |xn1 x|m

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

50 Demostracin: Ideas que intervienen

UMU Mtodos Numricos, 2007-2008

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

Acelerando la convergencia: mtodo 2 de Aitken y mtodo de Steensen

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

El mtodo de aceleracin 2 de Aitken, consiste en ir construyendo la sucesin x n = xn (xn )2 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

Demostracin: Ideas que intervienen Expresar x n x en trminos de xn x y A 1 = 0. (i) n := xn+1 x A0 xn x

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

(A 1)2 (A 1)2 x n x n (n + (A 1))2 = 0. = xn x n (A 1)2

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

Iteracin de punto jo con Aceleracin de Aitken

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.

(i) f (x) = x + f (x)(x x) + f (x) x = f (x)(x x) +

f ( x) 2 (x f ( x) 2 (x

x)2 + o((x x)2 ); x)2 + o((x x)2 )

(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

x)2 + o((x x)2 );

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

2 f x(x x) (f x)2 = 2 f x f ( x) 3 3 2 (f (x) 1)f (x)(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 ) 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)

(vi) g (x) x l m = l m xx (x x)2 xx (f (x) 1) +


f ( x) o((xx)2 ) 2 f (x) + (xx)2 f (x) 2 (1 + (f (x) + 1))(x

x) + o(x x)

f (x)f (x) . 2(f (x) 1)

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

Iteracin de punto jo con Aceleracin de Steensen

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

UMU Mtodos Numricos, 2007-2008

Observad que el mtodo de Steensen tambin permite localizar puntos jos repulsores, tal y como sealbamos antes.

2.7.

Actividades complementarias del captulo

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

Introduccin y complementos de anlisis matricial.


Interrogantes centrales del 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.

! !  

Destrezas a adquirir en el captulo

Conocer y manejar distintas normas matriciales. Distinguir la mejor norma

 

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

UMU Mtodos Numricos, 2007-2008

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.

Repaso de conceptos bsicos de los sistemas de ecuaciones y el lgebra matricial.

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

y complementos de anlisis matricial.

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

UMU Mtodos Numricos, 2007-2008

De forma ms breve, tambin se utiliza una letra como por ejemplo


A = (aij ),

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.

Ejemplo 3.1.2 Consideremos la matriz


1 0 2 M = 0 1 2 1 . 3 2 0 1 M = 1 2 3 0 .

Si tachamos la segunda la y las columnas segunda y cuarta obtenemos la 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 .

1 2 A = (0 1 0 ), B = ( 2 ), C = ( 3 3 ) y D = (4), podemos obtener una nueva matriz (2 + 1) (2 + 1) descompuesta en bloques por 0 1 2 0 1 2 A B = 1 0 2 = 1 0 2 . M= C D 3 3 4 3 3 4

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

y complementos de anlisis matricial.

63

para los vectores la y columna respectivamente, representando


. 1 n M = . . y M = M ,...,M . Mm M1

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

y la submatriz dada por la ltima columna

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.

Ejemplo 3.1.4 La matriz ampliada del sistema


2x y + z = 1 x + 2z = 3
1 1 1 es 2 1 0 2 3 . Su columna de trminos independientes es representada por (2, 1, 1, 1). 1 3

y la primera ecuacin est

3.1.3.

Espacios vectoriales. Aplicaciones lineales

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

UMU Mtodos Numricos, 2007-2008


En notacin matricial representaremos siempre a x por el vector columna
. x= . . , xn x1

y denotaremos por por xt y x a los vectores la


xt = (x1 , . . . , xn )

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 ,

y cuando K = C el producto escalar hermitiano en E se dene por


n

(x, y ) = y x =

x y

=
i=1

xi yi .

Asociada al producto escalar o hermitiano se tiene la norma


n

(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

f (vn ) = a1n w1 + a2n w2 + + amn 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

y complementos de anlisis matricial.


a 1j

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 =

coordenadas del f (vj ) en la base {w1 , . . . , wm }.

amj

. . .

, est formada por las

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

Adems se tienen las relaciones


f (vj ) = a1j w1 + + amj wm

(3)

Si en ambos miembros de (2) se toma la imagen por f resulta


f (g (us )) = b1s f (v1 ) + + bns f (vn )

y sustituyendo la expresin (3) resulta


f (g (us )) = b1s (a11 w1 + + am1 wm ) + b2s (a12 w1 + + am2 wm ) +

+ bns (a1n w1 + + amn wm )

+ (b1s a21 + b2s a22 + + bns a2n )w2

= (b1s a11 + b2s a12 + + bns a1n )w1

+ (b1s am1 + b2s am2 + + bns amn )wm .

66

UMU Mtodos Numricos, 2007-2008


Los parntesis de esta ltima expresin son las coordenadas de

base {w1 , . . . , wm } de W , y estas coordenadas son (c1s , . . . , cms

f (g (us )) = (f g )(us ) en la por (1). Como las coordenadas

de un vector con respecto a determinada base son nicas, tenemos las igualdades

crs = b1s ar1 + b2s ar2 + + bns arn =

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 .

est denido el nmero de columnas

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

o utilizando operadores lineales, en la forma


fA (x) = b.

Introduccin

y complementos de anlisis matricial.

67

Algunas matrices notables


Dada una matriz M Mmn (C), se dene la matriz adjunta M Mnm de manera que
(M u, v )m = (u, M v )n para todo u Cn y v Cm .

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

y en consecuencia (M t )ij = Mji .

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.

Ejercicio 3.1.2 Comprobad que si A y B son inversibles, entonces


(AB )1 = B 1 A1 , (At )1 = (A1 )t ), (A )1 = (A1 ) ).

Una matriz A se dice

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

UMU Mtodos Numricos, 2007-2008


Una matriz A se dice diagonal cuando aij = 0 para i = j . La traza de una matriz A = (aij ) est denida por
n

tr(A) =
i=1

aij .

El determinante de una matriz A est denido por


det(A) =
Gn

a(1)1 a(2)2 ...a(n)n ,

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.

Ejercicio 3.1.4 (Regla de Cramer) Si


det(Cj ) , det(A)

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 =

donde Cj = (crs ) crs =

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 )

de la matriz A. El espectro de la matriz A es el conjunto de los vectores propios


(A) = {1 , 2 , . . . , n }.

El radio espectral de A se dene como


(A) = m ax{|1 |, |2 |, . . . , |n |}.

Recordad que tr(A) =

n i=1 i

y que det(A) =

n i=1 i .

Ejercicio 3.1.5 Comprobad que si


propios son nmeros reales.

A es simtrica o hermitiana, entonces todos sus valores

Comprobad tambin que si A es ortogonal o unitaria, entonces todos sus valores propios tienen mdulo 1.

Introduccin
3.1.4.

y complementos de anlisis matricial.

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:

Ideas que intervienen

[Prueba completa en Ciarlet [3] seccin 1.2]

(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

UMU Mtodos Numricos, 2007-2008

valores propios de la matri

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

denominan valores singulares de una matri

z A

a las races cuadradas positivas de los

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

En los dos casos los nmeros i 0 son los valores singulares de A.


Demostracin:

Ideas que intervienen

[Prueba completa en Ciarlet [3] seccin 1.2]

Diagonalizar la matriz normal A A, haciendo


V A AV = diagonal(2 i)

con V unitaria/ortogonal. si fj es el vector columna de AV y fj = 0 ponemos uj =


1 j fj .

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.

Cocientes de Rayleigh. Matrices simtricas y hermitianas

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

Denicin 3.1.8 (Cocientes de Rayleigh) Sea


RA (v ) =

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

Si la matriz A es hermitiana, los cocientes de Rayleigh toman valores reales:


RA (v ) = (Av, v ) (v, Av ) (A v, v ) (Av, v ) = = = = RA (v ). (v, v ) (v, v ) (v, v ) (v, v )

Introduccin y

complementos de anlisis matricial.

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:

Ideas que intervienen

[Prueba completa en Ciarlet [3] seccin 1.3]

Considerar la matriz unitaria U

cuyos vectores columna son los pi , que diagonaliza A:


U AU = diag (i ) =: D.
w1

Poniendo v = U w, e.d. tomando w =

. . . con respecto a la base {p1 , ..., p2 }, se tiene


RA (v ) =

el vector columna de las coordenadas de v


i |wi |2 . |wi |2

wn

v AV w U AU w D = = = V V w U U w w w

De la igualdad anterior se deducen (I), (II) y (III).


Las otras dos identidades se deducen de las tres primeras.

Como caso particular de este teorema se tiene que

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

(Av, v ) = v Av > 0 (resp. (Av, v ) = v Av 0)

para todo

v = 0. 1 > 0).

Una matriz hermitiana denida positiva tiene todos sus valores propios positivos (

72

UMU Mtodos Numricos, 2007-2008

3.2.

Origen de los problemas del anlisis numrico matricial

Existen muchos problemas cuyas modelizaciones involucran la resolucin de sistemas lineales


o el clculo de valores y vectores propios de matrices.

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

ejemplo esta es la situacin en el mtodo de Newton para

sistemas de ecuaciones no lineales.

Tambin aparecen en problemas de interpolacin por splines

o en problemas de aproximacin por mnimos cuadrados que tambin forman parte de este curso.

En el libro de Ciarlet [3]

hay todo un captulo (el captulo 3) dedicado a mostrar aproxi-

maciones lineales a las ecuaciones diferenciales en derivadas parciales de la Fsica (movimiento armnico, ecuacin del calor, ...) que resultan al discretizar los problemas.

Problema: Encontrar u(x) C 2 ([0, 1]) tal que

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,

En todos los casos

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

complementos de anlisis matricial.

73

(c(x1 )h2 + 2)u1 u1


.. .

u2 +(c(x2 )h2 + 2)u2


.. .

u3
.. .

= h2 f (x1 ) + a = h2 f (x2 ) = h2 f (xN 1 ) = h2 f (xN ) + b

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

+(c(xN 1 + 2)uN 1 uN uN 1 +(c(xN )h2 + 2)uN

)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

Sea E un espacio vectorial sobre el cuerpo K.


E [0, +)
(i) (ii) (iii) al par que cumple las propiedades si, y slo si,

norma

sobre

es una aplicacin

x =0

x = 0.
para todo

x+y x + y ax = |a| x (E, ) se E, y

x, y E
y todo

(desigualdad tringular).

para todo

xE

a K.

le llama espacio vectorial normado. la topologa asociada a esta mtrica.

distanca en

La funcin d(x, y ) = x y dene una

Todas las normas denidas en un espacio de dimensin nita E son equivalentes en el sentido
de que todas denen la misma topologa.

En Kn las tres normas ms utilizadas en la prctica son


x x x
1 2

= =

n i=1 |xi |, n 2 i=1 |xi |

x x =

(x, x),

= m ax{|xi | : i = 1, ..., n}.

74

UMU Mtodos Numricos, 2007-2008

Donde xt = (x1 , x2 , ..., xn ).


Una

norma

matricial

en el anillo de las matrices

denida en

Mn (K)

que adems cumple

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

, es una norma matricial la norma

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

Observad que estas normas subordinadas tienen la propiedad siguiente:


Ax A x para todo A Mn (K) y x Kn .

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

Teorema 3.3.1 Sea A = (aij ) Mn (C) una matriz cuadrada. Entonces


A A A
1

:= sup := sup := sup

=1 =1

= m ax
j i

|aij | |aij |
2

= m ax
i j

=1

(A A) = A

La norma

es invariante por transformaciones unitarias


UU = I A
2

= AU

= UA

= U AU

2.

Si adems la matriz A es normal (A A = AA ):


A
Demostracin:

= (A).

[Prueba completa en Ciarlet [3] seccin 1.4] Ideas que intervienen


Para las norma

rrespondientes.
2

slo hay que utilizar la denicin y buscar los supremos co-

Para la

utilizaremos los cocientes de Rayleigh de la seccin anterior


A
2 2

= sup

(A Ax, x) (Ax, Ax) = = RA A (x) : x (x, x) (x, x)

=1 .

Introduccin y

complementos de anlisis matricial.

75

Observad que La norma A Las normas


2

coincide con el mayor valor singular de A.


2

Si U es una matriz unitaria/ortogonal se tiene U


1

= 1.
2

son mucho ms fciles de calcular que la norma


, 1.4.4])

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

Se puede probar (ver [3

que

la norma eucldea en Mn Kn

2 y es ms fcil de calcular que sta.

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 ,

y despejando queda (A) A .


perturbndolo de

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.

En efecto, sea U la matriz unitaria tal que


1 U 1 AU = u12 2 u13 u23
. . . . . .

... ... n1

En la diagonal aparecen los valores propios de A.

u1 n u2 n . . . un1,n n

76

UMU Mtodos Numricos, 2007-2008

Para > 0 se toma la matriz diagonal D = diag (1, , 2 , ..., n1 ). Entonces


1 (U D )1 A(U D ) = u12 2 2 u13 u23
. . . . . .

... ... n1

n1 ut1n n2 u2n . . . un1,n n

Tomando

sucientemente pequeo se tiene

por lo tanto (teorema 3.3.

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

, se tiene que la norma subordinada a sta

= (U D )1 A(U D )

(A) + .

Corolario 3.3.3
(A) = nf { A :

es una norma matricial }.

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

B es una matriz cuadrada, entonces las siguientes condiciones son equiva-

l mk B k = 0, l mk B k v = 0, para todo vector v . (B ) < 1.

Existe una norma subordinada tal que B < 1.

Demostracin:

[Prueba completa en Ciarlet [3] seccin 1.5] Ideas que intervienen


IV I . Basta con utilizar la desigualdad B k B I II . Basta con utilizar la desigualdad B k v
subordinadas

k.

Bk

v , vlida

para las normas

Introduccin y

complementos de anlisis matricial.

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.

Teorema 3.3.5 Para cualquier norma matricial se cumple


k
Demostracin:

l m B k

1 k

= (B ).

[Prueba completa en Ciarlet [3] seccin 1.5] Ideas que intervienen


(B ) B y (B k ) = (B )k implica que (B ) = (B k ) k B k
Para
1 1 k

. (B ) < 1.
k <1 cientemente grande B

> 0,

la matriz

B =

1 (B )+ B

tiene radio espectral por lo tanto para


1 k

y entonces

Por el teorema anterior

k = 0, l mk B

su

(B ) = B k

1 k

k = B

(B ) + (B ) + .

3.4.

Anlisis del error. Condicionamiento

Recordad el ejemplo de la introduccin:

Ejemplo 1.1.5Consideremos el sistema de ecuaciones


x x + y=2 +1.00001y = 2.00001.

Su solucin, es x = 1 e y = 1. Consideremos ahora el sistema perturbando un poco los trminos independientes.


x x + y=2 +1.00001y = 2.

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

UMU Mtodos Numricos, 2007-2008

En este caso, no se ha producido ningn error de clculo.


Este es un ejemplo de un problema (sistema lineal) mal condicionado. No podemos evitar que pequeos errores en los datos iniciales se conviertan en errores grandes en las soluciones.

Si en lugar de perturbar el trmino independiente se perturba la matriz


1.00001x + y=2 x +1.00001y = 2.00001.
la solucin pasa a ser

Un error pequeo en la matriz del sistema tambin ha producido un error grande en


la solucin.

x = 0.9999E 5

y = 1.99990001.

Vamos a estimar el nmero de condicin de un sistema lineal atendiendo a estos fenmenos


de los sistemas

Supongamos que A es una matriz invertible (no singular) y que consideramos las soluciones
Ax = b
y

A(x + x) = b + b.

Se deduce fcilmente que Ax = b y que x = A1 b.


Para cualquier
norma subordinada se cumple:

x A 1

b A

x .

Acotando el error relativo en x en funcin del error relativo en b se tiene


x A 1 b = A 1 x x A b A 1 A x A b . b

Consideramos ahora las soluciones de los sistemas


Ax = b y (A + A)(x + x) = b.

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:

Recordando la nocin de condicionamiento de un problema y la de nmero de condicin (ver

Introduccin y

complementos de anlisis matricial.

79

Denicin 3.4.1 Dada una norma matricial subordinada


cond(A) = A

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

Ideas que intervienen

[Prueba completa en Ciarlet [3

seccin 2.2]

La desigualdad se prob con antelacin.


Para la igualdad, observad que la compacidad de la bola unidad de tal que

Au = A

u (b = Au) y b = 0 tal que

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

[Prueba completa en Ciarlet [3

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

UMU Mtodos Numricos, 2007-2008

Teorema 3.4.4
(i)

Para toda matriz A invertible se cumple


a) b) c)

cond(A) = cond(A1 ). cond(A) = cond(A) para todo escalar . n (A) 1 (A)

cond(A) 1,

(ii)

Para toda matriz A


cond2 (A) =

donde 1 (A) y n (A) son el menor y el mayor valor singular de A.


(iii)

Para toda matriz normal A


cond2 (A) = (A)(A1 ) = |n (A)| |1 (A)|

donde |1 (A)| y |n (A)| son los valores propios de A


(iv) (v)

de menor y mayor tamao.

Para toda matriz unitaria U u ortogonal O se cumple cond2 (U ) = cond2 (O) = 1.

El nmero de condicin cond2 (A) es invariante por transformaciones unitarias (cambios


de base ortonormales):
cond2 (A) = cond2 (U A) = cond2 (AU ) = cond2 (U 1 AU ).

Las armaciones (II y III) nos permiten pensar que el nmero de condicin cond2 (A) co-

rrespondiente a la norma eucldea es el mejor

en el sentido de que proporciona la medida

ms pequea del condicionamiento de los sistemas de ecuaciones lineales.

Introduccin y
3.5.

complementos de anlisis matricial.

81

Actividades complementarias del captulo

Los documentos se pueden descargar de la Zona Compartida de SUMA.


Hoja de problemas 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, 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,

Reading, USA, 1994.

 

Mtodos directos para resol v er si s temas de 4 ecuaciones


Interrogantes centrales del captulo

Captulo

 

Analizar tcnicas de resolucin de sistemas de ecuaciones lineales. Aprender mtodos de resolucin : Mtodo de Gauss. Factorizacin LU y Choleski.

  # 

Factorizacin QR, mtodo de Householder.

  

Destrezas a adquirir en el captulo

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

UMU Mtodos Numricos, 2007-2008

En esta unidad se estudian distintos mtodos directos de resolucin de sistemas de ecuaciones


lineales

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

que tengamos sobre la estabilidad de los clculos.

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 }

es la base cannica de donde

Kn ,

A1 = (u1 , ..., un )

Au k = e k .

4.1.

Sistemas fciles de resolver

4.1.1. Sistemas diagonales


Si la matriz de coecientes

es diagonal y no singular, ... ... ... ...


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

y la complejidad del problema se puede medir contando las sarias.

.
bn ann

operaciones (divisiones) nece-

Mtodos Directos para Ecuaciones Lineales

85

4.1.2. Sistemas triangulares superiores. Mtodo ascendente


Si la matriz de coecientes es triangular superior ( resolver el sistema por el

mtodo ascendente :
a11 a12 0 a22 . . 0 0
... ... ... ...

U upper
b1 b2 . bn

) y no singular, podemos

a1n a2n . ann

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 =

bn An,n n j =k+1 (Ak,j

xk = (bk

xj ))/Ak,k

para

k = n 1, n 2, ..., 1

Ahora la complejidad del algoritmo se mide por el mximo de

1 + 3 + ... + (2k 1) + .. + (2n 1) = n2


operaciones necesarias para encontrar la solucin.

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.

// Resolvemos el sistema por el mtodo ascendente.

86

UMU Mtodos Numricos, 2007-2008

4.1.3. Sistemas triangulares inferiores. Mtodo descendente


Si la matriz de coecientes es triangular inferior ( resolver el sistema por el

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.

// Resolvemos el sistema por el mtodo descendente.

Mtodos Directos para Ecuaciones Lineales


4.2. Mtodo de Gauss

87

Tal y como recordaris del curso de lgebra lineal, el mtodo de Gauss para resolver sistemas
de ecuaciones

Ax = b

consiste en pasar a un sistema equivalente donde la matriz de coecientes es triangular superior


Ux = v
y resolver este nuevo sistema por el mtodo ascendente. La triangulacin de la matriz de coecientes se consigue mediante un proceso de eliminacin,

que partiendo de la matriz A=A(1) = a(1)


ij

i,j =1,...,n

va obteniendo matrices A(k) = a(k)


ij

i,j =1,...,n

A( k )

a11 0 0
. . .

(k )

a12 (k ) a22 0
. . .

(k )

... ...

. .
...

a1k (k ) a2k . (k ) akk .


(k ) ank

(k )

... ... ... ... ... ...

ank (k ) a2n . (k ) akn .


(k ) ann

(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

Con el objetivo de obtener la matriz triangular superior

en el ltimo paso

A( k )

b (k )

son los siguientes:

(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

(ii) Cambio de la: se permutan la la

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

multiplicada por el cociente

dejando invariantes las

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

UMU Mtodos Numricos, 2007-2008

Algoritmo 4.3

Mtodo de Gauss con eleccin de pivote parcial

Datos de entrada:

A[n][n]

(Matriz de coecientes del sistema.);

b[n]

(vector trmino

independiente.);

(dimensin de

Variables:

A y b) B [n][n];// una

matriz donde ir haciendo todas las modicaciones de las las.

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:

B =A ; v =b ;// Condiciones for(j=1;j<=n;j++){ (j ) = j ; }


// Vamos a hacer las etapas

iniciales

for(k=1;k<n;k++){

k = 1, 2, ..., n 1.

// 1. Eleccin del pivote (parcial). p=k; //iniciamos la busqueda en la la k

for(i=k+1;i<=n;i++){ if(|B(i),k | > |B(p),k |){ } } if(B(p),k == 0){ Parada, Error: A es }

p=i;//apuntamos a la la donde est el puntero

singular

// 2. Intercambio de las (virtual). Cambios en el puntero.

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) ; }

de hacer las operaciones

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

// Resolvemos el sistema por el mtodo ascendente.

error si

es singular.

Mtodos Directos para Ecuaciones Lineales

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

A. Aunque el clculo de esta es equivalente a resolver los sistemas ei es la base cannica de Kn .

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.

Gauss con pivote parcial

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

de la siguiente pgina se puede seguir la construccin.

90

UMU Mtodos Numricos, 2007-2008

Algoritmo 4.4

Mtodo de Gauss con eleccin de pivote total

Datos de entrada:

A[n][n] b)

(Matriz de coecientes del sistema.);

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

for(i=k;i<=n;i++){ for(j=k;j<=n;j++){ if(|Bfila(i),colu(j ) | > |Bfila(p),colu(q) |){


p=i; q=j;

} } } if(Bfila(p),colu(q) == 0){ Parada, Error: A es singular }


// 2. Intercambio de las y columnas. Cambios en los punteros.

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)

j = k + 1; while(j<=n){ xcolu(k) = xcolu(k) Bla(k),colu(j ) xcolu(j ) j ++ ; } xcolu(k) = xcolu(k) /Bla(k),colu(k) ;

//

xcolu(j ) ))/Bla(k),colu(k)

Datos de salida: Solucin

del sistema o mensaje de error si

es singular.

Mtodos

Directos para Ecuaciones Lineales

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

a11 a12 a21 a22 . . a11 a12

... a1n ... a2n ... . ... ann

Para resolver el sistema lineal de ecuaciones:


A.x = b LU x = b

l11 0 l21 l22 . . l11 l12

... 0 ... 0 ... . ... lnn

u11 u12 0 u22 . . 0 0

... u1n ... u2n ... . ... unn

resolveriamos consecutivamente los sistemas :


Ly = b

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 + lk,k uk,k


k 1

lk,k uk,k = ak,k

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

Dootlittle .- lk,k =1 uk,k =pk


uk,k =1 lk,k =pk
L

Criterio de Crout .Mtodo de Choleski .-

=U t , es decir

lS,k =uk,S .

En particular

lk,k =uk,k = pk

92

UMU Mtodos Numricos, 2007-2008

Una vez determinados los coecientes lk,k


para escribir:

uk,k ,

volvemos a las ecuaciones iniciales

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

Mtodo de factorizacin LU (Dootlittle)

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

una variable auxiliar para sumatorios y productos escalares.

Fujo del programa:

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 ];
}

Parada: no hay factorizacin LU;

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.

L[i][k ] = aux/U [k ][k ];

Datos de salida:L y U(Factorizacin LU)o mensaje de error

Mtodos

Directos para Ecuaciones Lineales

93

4.4.

Factorizacin QR. Mtodo de Householder

Se llaman matrices de Householder


H (v ) = Id

a las matrices de la forma

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

Geomtricamente, el producto a la direccin de

H (v )a

representa a la  reexin especular de

con respecto

v,

es decir, el vector simtrico del vector

con respecto al vector normal a

en el plano determinado por los vectores

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

tiene todas sus coordenadas nulas salvo quizs la primera.

a1
De forma ms precisa, si

a =

R cumple a1 = |a1 |ei ,

an
entonces para

. . .

e1

es el primer vector de la base can se cumple

nica de Cn , y

v = a a 2 ei e1

H (a a 2 ei ) = a 2 ei e1 .

El siguiente grco contiene una prueba geomtrica del teorema:

94

UMU Mtodos Numricos, 2007-2008

v = a + a ei e1

H (v )a = a ei e1 a ei e1

ei e1

a1 = |a1 |ei

Analticamente, si tomamos v = a + a ei e1 y hacemos los correspondientes clculos, tenemos:


v a = a a + a ei a1 = a 2(v a)v = (2 a
2 2

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

En la practica, para calcular H (v)b se sigue el siguiente proceso:


norma v
2

ervacin 4.4.2 Si a = 0, entonces v = 0 y H = Id.


= vv,

(i) se calcula la (ii) se calcula el (iii)

producto escalar (v, b) = v b

por ltimo se calcula H (v )b = b (2(v, b)/ v 2 )v .

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)

Householder para la resolucin de un sistema

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

Hn1 ...H2 H1 Ax = Hn1 ...H2 H1 b

Mtodos

Directos para Ecuaciones Lineales

95

Pongamos A0 = A y H0 = Id. Pongamos Ak = Hk Hk1 ...H1 A, y supongamos que presenta la forma:

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

que da el teorema 4.4.1 de manera queHk+1 ak =


Sea

Hk+1 =

Idk1 0

0 Hk+1
0

Hk

es la matriz de Householder

H (vk )

con

vk =

v ek
Construimos

. . .

Ak+1 = Hk+1 Ak . R = An1


es una matriz triangular.

Con esta construccin

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

omo las matrices de

Householder son unitarias (conservan distancias)

cond2 (A) = cond2 (A1 ) = ... = condn (An1 )

En otras palabras. Al triangular la matriz con el mtodo de Householder no varia el condicionamiento del problema.

96

UMU Mtodos Numricos, 2007-2008

Algoritmo 4.6

Mtodo de Householder. Factorizacin QR

Datos de entrada:

A[n][n]

(Matriz de coecientes del sistema.);

b[n]

(vector trmino

independiente.);

(dimensin de

Variables:

A y b) B [n][n];// una

matriz donde ir haciendo las modicaciones de

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

;// Condiciones iniciales

// Vamos a hacer las etapas

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

// 3 Resolvemos el sistema por el mtodo ascendente.

es singular.

Mtodos

Directos para Ecuaciones Lineales

97

4.5.

Tipos especiales de matrices

4.5.1. Matrices estrictamente diagonal dominante


Denicin 4.5.1 Se dice que una matriz cuadrada de dimensin n A = (aij ) es estrictamente diagonal dominante cuando
n

|aii | >

j =1;j =i

|aij |

para toda la i = 1, ...n.

Ejemplo 4.5.2 Si consideramos las matrices


7 2 0 A = 3 5 1 0 5 6

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

Teorema 4.5.3 Toda matriz

realizar el proceso de eliminacin

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

dominante es no singular. Adems al

Demostrac

in:

Ideas que intervienen

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

La desigualdad triangular nos dice entonces que


n

|akk ||xk |

j =1;j =k

|akj ||xj |,

Lo que contradice la hiptesis de que A es estrictamente diagonal dominante porque


n

|akk |

j =1;j =k

|xj | |akj | |xk |

n j =1;j =k

|akj |.

98

UMU Mtodos Numricos, 2007-2008

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

La desigualdad triangular nos permite probar que


n j =2;j =i

|bij | < |bii |.

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

matrices son convergentes.

4.5.2. Matrices simtricas denidas positivas.


Denicin 4.5.4 Se dice que denida positiva cuando
una matriz simtrica (At
n

= A) de dimensin n A = (aij ) es

x Ax =
i,j =1

aij xi xj > 0

para todo vector columna x Rn .

Proposicin 4.5.5

Si

A es una matriz denida positiva entonces:

(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

Directos para Ecuaciones Lineales


in:

99

Demostrac

Ver el Teorema 6.21 del libro de Burden-Faires [2].

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

tienen determinante estrictamente positivo.

Ak =

a11 ... a1k


. . . . . .

ak1 ... akk

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

A una matriz simtrica. Son equivalentes:

A es denida positiva. B t B . (Mtodo de Choleski).


triangular inferior

(ii) Existe una matriz (iii) Existe una matriz

B con diagonal estrictamente positiva, tal que A = L


con unos en la diagonal,

triangular inferior

y una matriz

diagonal

con elementos estrictamente positivos a lo largo de la diagonal, tal que

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 u11 x . . . x x 1 u22 . . . x . . . . . A = LU = . . . . . . . . . . . x x . . . 1 unn

(1) (2):

es denida positiva, como

nos dice que ambas coinciden con la identidad y por lo tanto


C = Bt

(2) (3): Si A = BB t , tomamos = diag (Bii ), entonces A = B 1 1 B t = LDLt .

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.

UMU Mtodos Numricos, 2007-2008

(Ver el teorema 4.4.1 de la seccin 4.4

de [3 )

].

Algoritmo 4.7

Mtodo de factorizacin de (Choleski)

(slo para matrices simtricas denidas positivas)


Datos de entrada:

(dimensin

de

A[n][n] A)

(Matriz de coecientes del sistema.);

Variables:

L[n][n];

// matriz para escribir la matriz triangular superior.

aux;//

una variable auxiliar para sumatorios y productos escalares.

Fujo del programa:

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];
}

Parada: no hay factorizacin de Choleski;

de L .

L[i][k ] = aux/L[k ][k ];

Datos de salida:L

(Factorizacin de Choleski

A = LLt )o

mensaje de error

4.5.3. Matrices tridiagonales


cuando existen
este tipo se

Denicin 4.5.7 Una matriz

enteros p y q tales que aij = 0 dene como w = p + q 1.

cuadrada

A de dimensin n se dice que es una matriz banda si i + p j o j + q i. El ancho de banda de

ules son las matrices banda con p = 1 y q = 1 (w = 1)?


Las matrices de ancho de banda 3 con

as matrices banda que ms suelen aparecer en la prctica tienen la forma p = q = 2 y


p=q=2
se llaman

porque su forma es

p = q = 4.

matrices tridiagonales

Mtodos

Directos para Ecuaciones Lineales


Si

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

A es una matriz tridiagonal b1 c1 a c2 2 b2 .. .. .. A= . . . an1 bn1 cn1 an bn

U de la matriz A es
a2 0 1 A = LU =
in:

la

factori-

1 1
.. . .. . .. .
n3 an1 n2

1
n2 an n1

Demostrac

Ver Teorema 4.3.2 de [3]

c1
..
2 1

c2
.. . .. .
n1 n2

cn1
n n1

Ejemplo 4.5.9 Si A es una matriz tridiagonal simtrica


b1 a 2 A= a2 b2 a3 an bn

...

...

...

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.3 del libro de Ciarlet [3

4.6.
L

Actividades complementarias del captulo


C

os documentos se pueden descargar de la Zona


Hoja de problemas n 4

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,

Reading, USA, 1994.

 

Mtodos iterativos de resolucin de sistemas de ecuaciones


Interrogantes centrales del captulo

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.

 

 

 

Destrezas a adquirir en el captulo

 


 

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.

UMU Mtodos Numricos, 2007-2008


Mtodos iterativos. Criterios de Convergencia

Idea general: Un mtodo iterativo para resolver un sistema lineal

Ax = b
consiste en transformar el sistema de ecuaciones en una ecuacin de punto jo

x = T x + c;
donde

es una aplicacin lineal. Si el radio espectral

(T ) < 1, la aplicacin T x+c es contractiva x0


a la solucin.

y la solucin del sistema funcionales

x (el punto jo) se xk = T xk1 + c, comenzando en


Consideremos el sistema

obtiene como el lmite de una sucesin de iteradas una aproximacin inicial

Ejemplo 5.1.1

Ax = b

dado por las ecuaciones:

2x1 2x2 2x1 + 3 x2 + x3 x1 2x3


que tiene como nica solucin Despejando

=1 =5 =7

31 83 x = ( 20 9 , 18 , 18 ) (2.22222, 1.72222, 4.61111).

xi

en la ecuacin

se tiene la ecuacin equivalente

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

Dado un sistema lineal

Ax = b,

se llama  mtodo iterativo de resolucin del que la solucin de

sistema a cualquier par

(T, c)

formado por una matriz

es el nico punto jo de la funcin afn

T y un vector c tales (x) = T x + c, es decir x = T x + c.

Ax = b

Se dice que el mtodo iterativo es convergente cuando la sucesin de iteradas

xk = (xk1 ) =

T xk1 + c

converge hacia el punto jo para cualquier eleccin del vector

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.

Mtodos iterativos de resolucin de sistemas de ecuaciones


5.1.1. Criterios de Convergencia

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

una matriz cuadrada de dimensin

n.

Entonces son equivalentes:

(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

(iv) Las sucesiones de iteradas


Demostracin:

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)

(IV), la da el teorema del punto jo porque si

(x) = T x + c,

(x) (y ) = T x T y = T (x y ) T
y si

xy ,

T < 1,

ser contractiva.

Para la implicacin (IV) de

x = T x + c.

Si tomamos

(III), consideremos v un vector arbitrario, y x el vector x0 = x v , la sucesin xk = T xk1 + c converge hacia x

solucin y por lo

tanto:

x xk = T x + c (T xk1 + c) = T (x xk1 ) = T 2 (x xk2 )... = T k (x x0 ) = T k (v ) 0.

Ejemplo 5.1.4

Volviendo al ejemplo 5.1.1, el polinomio caracterstico de la matriz

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.

Construccin de Mtodos iterativos

Idea general: Supongamos que tenemos un sistema lineal

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)

tienen mdulo menor que

5 6

<1

106
y que la matriz

UMU Mtodos Numricos, 2007-2008


A
se puede expresar como diferencia de dos matrices

A = M N,
donde

es una matriz  fcil  de invertir (por ejemplo si es diagonal o triangular). Entonces:

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

0 0 0 a21 0 0 . . . . L= . . . . . . 0 . an1 . . . an(n1) 0

0 a12 . . . a1n 0 a23 . . a2n . . U = . . . 0 a(n1)n 0

5.2.

Mtodo de Jacobi

Tal y como hemos mencionado, el mtodo de Jacobi para buscar la solucin de un sistema lineal

Ax = b

si no hay ceros en la diagonal

de

consiste en construir la sucesin de iteradas

xk+1 = D1 ((L + U ))xk + D1 b = AJ xk + D1 b.


Para realizar los clculos de forma eciente y para utilizarlos en las condiciones de parada comenzamos analizando los vectores residuales y observando cmo pueden utilizarse para construir cada iteracin del mtodo:

rk = Axk b = Dxk + (L + U )xk b D1 rk = xk (D1 ((L + U ))xk + D1 b) = xk xk+1 xk+1 = xk D1 rk


Cada etapa del clculo de los vectores coordenada, comezando en

i=1

k ) y x = (xk ) rk = (ri i k i i consecutivamente i = 2, 3, ..., n

se realiza coordenada a

Para i = 1, mientras que i n, haciendo en cada paso i = i + 1:


k ri = aii xk i + j =1;j =i +1 xk = xk i i

aij xk j bi

(5.1)

1 k r aii i

Mtodos iterativos de resolucin de sistemas de ecuaciones

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

Mtodo de Jacobi para resolucin de sistemas lineales

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

En el ejemplo 5.1.1 se ha considerado la iteracin de Jacobi que, como hemos

sealado, converge hacia la solucin del sistema lineal

Ax = b.

108
5.3. Mtodo de Gauss-Seidel

UMU Mtodos Numricos, 2007-2008

Los vectores del algoritmo de Jacobi se van construyendo coordenada a coordenada de manera que cuando se va a calcular

+1 xk i

ya se conocen los valores de

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

en la hiptesis de que si el mtodo va a converger, las coordenadas

xk+1

son una mejor aproximacin a las de la solucin que las de

xk .

Para i = 1, mientras que i n, haciendo en cada paso i = i + 1:


i 1 k r i = aii xk i + j =1 +1 xk i +1 aij xk + j j =i+1 n

aij xk j bi

(5.2)

1 k r = xk i aii i

En trminos matriciales, el mtodo de Gauss-Seidel consiste en considerar la descomposicin

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.

Convergencia de los Mtodos de Jacobi y Gauss-Seidel

Para las matrices especiales del captulo anterior se tienen buenos criterios de convergencia:

Teorema 5.3.1

Sea

una matriz diagonal estrictamente dominante:

|aij | < |aii |


j =1,j =i
para todo el

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

velocidad que el de Jacobi. De forma ms concreta

AG

< 1.

La demostracin de este teorema la podis seguir en la seccin 3 del captulo 8 libro de Hmmerlin y Homan [4].

Mtodos iterativos de resolucin de sistemas de ecuaciones

109

Algoritmo 5.2

Mtodo de Gauss-Seidel para resolucin de sistemas lineales

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.

110 Teorema 5.3.2


Sea

UMU Mtodos Numricos, 2007-2008


A
una matriz tridiagonal. Entonces los radios espectrales de las matrices

de los mtodos de Jacobi y Gauss-Seidel cumplen:

(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

simultneamente y cuando lo hacen, el mtodo de Gauss-Seidel converge ms rpidamente que

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 :

Para i = 1, mientras que i n, haciendo en cada paso i = i + 1:


i 1 k r i = aii xk i + j =1 +1 xk i +1 aij xk + j j =i+1 n

aij xk j bi

(5.2)

1 k = xk r i aii i > 0 para corregir las coordenadas

Los mtodos de relajacin consisten en considerar un peso de

xk

poniendo en la ecuacin 5.2

+1 xk = xk i i
Observad que ahora

k r aii i

i 1 +1 k aii xk = aii xk i (aii xi + i j =1 i 1 +1 aii xk + i j =1 +1 aij xk = (1 )aii xk i ( j +1 aij xk + j

aij xk j bi )
j =i+1 n

aij xk j bi )

j =i+1

Con esta modicacin, en trminos matriciales, el mtodo de relajacin consiste en considerar

(D + L)xk+1 = ((1 )D U )xk + b.


As, la matriz de la iteracin del mtodo de relajacin es

AR() = (D + L)1 ((1 )D U ).


En la pgina siguiente aparece el algoritmo de este mtodo iterativo.

Mtodos iterativos de resolucin de sistemas de ecuaciones

111

Algoritmo 5.3

Mtodo de Relajacin para resolucin de sistemas lineales

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

En el caso concreto del ejemplo 5.1.1 el mtodo de Gauss-Seidel no rebaja el

nmero de iteraciones utilizadas por el de Jacobi para aproximar la solucin de

Ax = b

con

14 , sin embargo el mtodo de relajacin con la precisin de 10


signicativamente pues alcanza la solucin en slo 34 iteraciones.

w = 0.85

si que las rebaja

En relacin con la convergencia de los mtodos de relajacin tenemos el siguiente resultado:

112 Teorema 5.4.2


para Si

UMU Mtodos Numricos, 2007-2008


A es una matriz simtrica denida positiva, el mtodo de relajacin converge

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

En general el radio espectral de la matriz del mtodo de relajacin

(R( )) > | 1|.


Si

es una matriz simtrica denida positiva, tridiagonal, los mtodos de Jacobi, Gauss-

Seidel y Relajacin para

matrices de los mtodos de Relajacin se alcanza en

0 =
de manera que

2 1+ 1 (AJ )2

(AR(0 ) ) = m n {(AR() )} < (AG ) = (AJ )2 < (AJ ).


0<<2
El parmetro los estudiados. La demostracin de este teorema la podis seguir en la seccin 5.3 del libro de Ciarlet [3].

nos da el mtodo iterativo ptimo, con convergencia ms rpida, de entre

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,

a edicin, Thomson-Learning, Mexico,

Anlisis numrico, Ed. Addison-Wesley Iberoamericana,

Reading, USA, 1994.

 

Cap tulo

Valores y vectores propios


Interrogantes centrales del cap tulo
 

Generalidades sobre valores y vectores propios.


 

El m etodo de la potencia. El m etodo de deaci on de Wielandt. El m etodo de Jacobi.

  $ $

' '

Destrezas a adquirir en el 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

UMU M etodos Num ericos, 2007-2008

Desarrollo de los contenidos fundamentales


Es este cap tulo abordamos el problema de calcular, o m as bien aproximar, los valores y vectores propios de una matriz, con especial atenci on al caso de las matrices sim etricas. En la primera secci on indicamos brevemente los problemas de condicionamiento que pueden presentarse y formulamos el teorema de los c rculos de Gerschgorin, que proporciona una primera aproximaci on (bastante burda) al problema de localizar los valores propios de una matriz. A continuaci on presentamos el m etodo de la potencia, que es una manera muy sencilla de localizar el valor propio de mayor valor absoluto de una matriz (cuando exista) y el correspondiente vector propio, y vemos como el m etodo puede explotarse (con el m etodo de deaci on de Wielandt) para calcular todos los valores y vectores propios de una matriz siempre que los valores propios sean todos reales y distintos dos a dos. En la u ltima secci on presentamos el elegante m etodo de Jacobi, que permite calcular siempre los valores propios y pr acticamente siempre los vectores propios de una matriz sim etrica. Los contenidos del cap tulo se han extra do principalmente de la Secci on 6.1 (pp. 111117) del libro de Ciarlet [2], las Secciones 5.1 y 5.2 (pp. 231250) del texto de Kincaid y Cheney [3], y la Secci on 8.4 (pp. 488511) del libro de Burden y Faires [1].

6.1.

Generalidades sobre valores y vectores propios. El teorema de Gerschgorin

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

Valores y vectores propios

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 .

118 En consecuencia, ( akk )xk =

UMU M etodos Num ericos, 2007-2008

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

de modo que Dk . Ejemplo 6.1.2 Los valores propios de la matriz 1+i 0 1 4 1 A= 4 1 1 4 1 1 3

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

Valores y vectores propios

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 )

para una sucesi on

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 )

y concluir l mk rk = 1 . Ejemplo 6.2.2 Consid erese la matriz 1 0 1 A = 2 1 0 . 4 0 1

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

UMU M etodos Num ericos, 2007-2008

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.

Valores y vectores propios

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

UMU M etodos Num ericos, 2007-2008

Algoritmo 6.1

Valor propio dominante (m etodo de la potencia)

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.

Valores y vectores propios

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)

124 n: Demostracio Ideas que intervienen:

UMU M etodos Num ericos, 2007-2008

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

Valores y vectores propios y por tanto xT v1 = 1.

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

UMU M etodos Num ericos, 2007-2008

Algoritmo 6.2

Valores y vectores propios (m etodo de deaci on de Wielandt)

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

Valores y vectores propios

127

Algoritmo 6.2

Valores y vectores propios (cont. m et. de deaci on de Wielandt)

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

128 A continuaci on calculamos

UMU M etodos Num ericos, 2007-2008

Suprimiendo la cuarta la y columna de B llegamos 4 1 A = 2 5 3 1

B = A 1 (v1 xT ) 0 0 0 1/2 4 1 0 2 0 0 0 0 2 5 0 1 = 8 0 0 0 0 3 1 1 3/2 0 0 0 1 0 0 0 8 0 0 0 4 4 1 0 2 2 5 0 1 0 0 0 0 = 3 1 1 3/2 0 0 0 0 0 0 0 8 0 0 0 8 4 1 0 2 2 5 0 1 = . 3 1 1 3/2 0 0 0 0 a 0 0 . 1

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 partir la matriz B , suprimiendo la segunda la y columna, obtenemos A = 3 0 . 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,

Valores y vectores propios

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)

= (3)(1, 0, 1) + 6(1/6)(1, 2, 1) = (2, 2, 2),

y v4 = (4 2 )w4 + 2 ((x )T w4 )v2 = (0, 0, 10),

= (5)(0, 0, 2) + 6(0)(1, 2, 1)

130

UMU M etodos Num ericos, 2007-2008

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)

v3 = (3 1 )w3 + 1 (xT w3 )v1 = (10, 10, 10, 0),

= (5)(2, 2, 2, 0) + 8(0)(1, 0, 0, 2)

y v4 = (3 1 )w4 + 1 (xT w4 )v1 = (0, 0, 70, 0),

= (7)(0, 0, 10, 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

Valores y vectores propios

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

tambi en es sim etrica y cumple

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

Para este valor de se cumple


n n

b2 ii =
i=1 i=1

2 a2 ii + 2apq .

132 n: Demostracio Ideas que intervienen: La norma A


DOS

UMU M etodos Num ericos, 2007-2008

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

= tr(O1 AAO) = tr(AA) = tr(AT A)


n

=
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

bpq = bqp = apq cos 2 +

app aqq sen 2. 2

Valores y vectores propios

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 escribamos t = tg . Entonces x = cot 2 = 1 tg2 1 t2 cos2 sen2 = = , 2 sen cos 2 tg 2t x2 + 1, y con

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

UMU M etodos Num ericos, 2007-2008

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 ,

Valores y vectores propios iq = soip + coiq , ij = oij si j = p, q .

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

b12 b13 b14

b33 = a33 = 0, b34 = b43 = sa31 + ca34

2 2 = (3) + (3) = 0, 2 2

b44 = a44 + ta14 = 1 + 4 = 5.

136 As pues,

UMU M etodos Num ericos, 2007-2008

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.

Valores y vectores propios

137

Algoritmo 6.3

Valores y vectores propios (m etodo de Jacobi)

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

UMU M etodos Num ericos, 2007-2008

Algoritmo 6.3

Valores y vectores propios (m etodo de Jacobi), continuaci on

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

Valores y vectores propios

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

y encontremos l0 tal que


M

xk

B (ai ,
i=1

0 ),

xk+1 xk <

140

UMU M etodos Num ericos, 2007-2008

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

l m det( Id Akm ) = det( Id D).

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.

(iii) Recordemos que

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 ,

(iv) Observemos que

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:

142 Ideas que intervienen:

UMU M etodos Num ericos, 2007-2008

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

Dado que k+1 k = k (Ok+1 Id), se deduce


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

Valores y vectores propios

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

UMU M etodos Num ericos, 2007-2008

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

UMU M etodos Num ericos, 2007-2008

' '

Cap tulo

Ceros de polinomios
Interrogantes centrales del cap tulo
$ $

Evaluaci on de polinomios. Esquema de Horner. Localizaci on de ceros de polinomios.

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.
& & ' #

El m etodo de separaci on de Sturm.

% % $

Destrezas a adquirir en el cap tulo

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

UMU M etodos Num ericos, 2007-2008

Desarrollo de los contenidos fundamentales


Un caso particular de ecuaciones para las que es muy importante y u til la determinaci on de sus ra ces es el de las ecuaciones polin omicas. En este cap tulo vamos a ampliar la lista de m etodos de resoluci on de ecuaciones no lineales aprendidos en un cap tulo anterior incluyendo otros que resultan de aplicar propiedades espec cas de los polinomios. En la primera secci on repasamos el algoritmo de Horner de evaluaci on y deaci on de polinomios, que resulta m as econ omico desde el punto de vista num erico que la evaluaci on directa de combinaciones lineales de potencias, y ahondamos en sus propiedades. En la segunda secci on recordamos las propiedades de los ceros de un polinomio, haciendo hincapi e en el teorema fundamental del Algebra y en la factorizaci on de polinomios. En la tercera secci on exponemos resultados de localizaci on de ceros de polinomios u tiles en la determinaci on de condiciones iniciales de los m etodos num ericos de c alculo de ra ces. Concluimos estudiando y analizando distintos algoritmos num ericos de aproximaci on de ra ces de polinomios. Hemos seguido la Secci on 3.5 (pp. 91111) del libro de Kincaid y Cheney [3] para redactar la mayor parte de este cap tulo.

7.1.

Polinomios complejos. El algoritmo de Horner

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

Ejemplo 7.1.1 Evaluemos el polinomio p(z ) = z 4 4z 3 + 7z 2 5z 2 en z = 2. Entonces


1 2 b4 = 1 4 2 b3 = 2 7 4 b2 = 3 5 6 b1 = 1 2 2 b0 = 0

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

UMU M etodos Num ericos, 2007-2008

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.

Ceros de polinomios. El teorema fundamental del Algebra

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 |

m |an ||z |n = . l m |p(z )| = l


|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

UMU M etodos Num ericos, 2007-2008

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

Figura 7.1: Localizaci on de las ra ces reales de p(z ) = z 4 4z 3 + 7z 2 5z 2

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

UMU M etodos Num ericos, 2007-2008

-1

-2

-1

Figura 7.2: Localizaci on de las ra ces reales y complejas de p(z ) = z 4 4z 3 + 7z 2 5z 2

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+

1 m ax{|a1 |, . . . , |an |}. |a0 |


7 2

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

Reuniendo la observaci on con el Teorema 7.3.1, tenemos el siguiente resultado:

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

Entonces, los ceros de p(z ) est an en el anillo A = {z :

|z | }.

Ceros de polinomios

155

7.4.

El m etodo de Newton para polinomios

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

UMU M etodos Num ericos, 2007-2008

Algoritmo 7.2

Newton para polinomios

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

p(xk ) -2 1.4016 1.46321856 0.00225803 5,6 107 3,6 1014

p (xk ) -5 -12.776 -10.1732291 -9.86029921 -9.85536835 -9.85536711

xk 0 -0.4 -0.2902943 -0.27591126 -0.27568226 -0.27568220

4|xk1 xk | 1.6 0.4388228 0.05753214 0.00028398 0.00000024

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 .

158 n: Demostracio Ideas que intervienen:

UMU M etodos Num ericos, 2007-2008

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

= (1.v2 + 1.v3 + + 1.vn )2


2 = (n 1)( v1 )

2 2 2 (n 1)(v2 + v3 + + vn ) 2 2 = (n 1) nv1 + v1 ;

160 hemos usado la desigualdad de Cauchy-Schwartz


m k=1 m

UMU M etodos Num ericos, 2007-2008

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:

Ceros de polinomios 1. Se parte de una aproximaci on inicial xi de una ra z de p.

161

2. Se calcula A =

p (xi) p(xi)

(A = en la discusi on anterior).

3. Se calcula B =

p (xi)2 p(x)p (xi) p(xi)2

(B = en la discusi on anterior).

4. Se elige el signo para que C =


1 C

(n1)(nB A2 ) n

tenga el mayor valor absoluto.

5. Se toma xf = xi

como la nueva aproximaci on de la ra z de p.

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

UMU M etodos Num ericos, 2007-2008

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 }

} Parada: no hay convergencia en nmax iteraciones

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 )

De estas desigualdades se sigue que x0 rj +1 y rj x0

1 1 < x0 < x0 rj +1 . u(x0 ) v (x0 )

164

UMU M etodos Num ericos, 2007-2008

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.

Separaci on de ra ces reales. Sucesiones de Sturm.

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

UMU M etodos Num ericos, 2007-2008

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 (x0 ) > 0) (f1 (x0 ) > 0)

f0 f1

(f0 (x0 ) < 0) (f1 (x0 ) < 0)

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

= 1 es constante y no nula. Por tanto se cumple la segunda


p1 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

M etodo para calcular la sucesi on de Sturm de un polinomio

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

UMU M etodos Num ericos, 2007-2008

Algoritmo 7.6

M etodo para separar los ceros de un polinomio

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

p1 (x) = p (x) = 4x3 12x2 + 14x 5

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

UMU M etodos Num ericos, 2007-2008

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

UMU M etodos Num ericos, 2007-2008

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

La forma del polinomio interpolador de Newton viene dada por


n i1

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

UMU M etodos Num ericos, 2007-2008

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

pn (x) = pn1 (x) + cn


j =0

(x xj ) = pn1 (x) + cn (x x0 )k0 (x xm1 )km1 (x xm )km 1 .

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

para cada 0 i < m y 0 l < ki , y tambi en para i = m y 0 l < km 1.

como q (x) no se anula en xm bastar a tomar cn =


m ym,km 1 pn 1 q (xm )

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

El siguiente teorema es la clave del algoritmo:

178 Teorema 8.2.2 Se tiene que

UMU M etodos Num ericos, 2007-2008

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

p[x1 , . . . , xn ] p[x0 , . . . , xn1 ] xn x0 p[x0 , x1 , . . . , xn ] = y 0,n n!

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

UMU M etodos Num ericos, 2007-2008

Algoritmo 8.1

Polinomio interpolador de Hermite

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

Polinomio interpolador de Hermite (continuaci on)

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

Aproximaci on por m nimos cuadrados

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

UMU M etodos Num ericos, 2007-2008

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 ,

a21 x1 + a22 x2 + + a2n xn am1 x1 + am2 x2 + + amn xn

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

Interpolaci on y aproximaci on la matriz

183

es regular porque el sistema

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

UMU M etodos Num ericos, 2007-2008

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

x = (c, b) y d = (log 7, log 11, log 17, log 27). Entonces AT A = y

y una vez obtenidos c y b, calculamos a = ec . Concretamente tendremos 1 1 1 2 A= , 1 3 1 4 4 10 10 30

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

186 Posibilidad 2. Dividiendo en

UMU M etodos Num ericos, 2007-2008

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

UMU M etodos Num ericos, 2007-2008

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)

m ax |f (xi ) p(xi )| <

0in+1

m ax |f (xi ) q (xi )|,

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

m ax |f (xi ) p(xi )| = |f (x0 ) p(x0 )|.

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

f (x0 ) p(x0 ) + |p(xi ) q (xi )|

0.

= (1)i (q (xi+1 ) p(xi+1 )) (1)i (q (xi ) p(xi ))

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

m ax |f (xi ) p(xi )| <

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

UMU M etodos Num ericos, 2007-2008

Etapa k del algoritmo. Supongamos conocidos los puntos


k k k a xk 0 < x1 < < xn < xn+1 b.

A estos puntos les asociamos el polinomio pk n tal que


k i k k f (xk i ) pk (xi ) = (1) (f (x0 ) pk (x0 )) para cada i = 1, 2, . . . , n + 1;

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.

Segundo caso: existe y [a, b] tal que |f (y ) pk (y )| = f pk


k > |f (xk i ) pk (xi )|, i = 1, 2, . . . , n + 1.

Entonces se construye una nueva sucesi on de puntos


+1 +1 +1 +1 < xk < < xk < xk a xk n 0 1 n+1 b k+1 +1 ) pk (xk ) se reemplazando uno de los puntos xk j por y de manera que los signos de f (xi i vayan alternando, es decir, +1 k+1 k+1 +1 ) pk (xk )) 0 para cada i = 1, 2, . . . , n. (f (xk i+1 ) pk (xi+1 )(f (xi i

En concreto, aparecen seis posibilidades:


k k (a) Si y [a, xk 0 ) y (f (x0 ) pk (x0 ))(f (y ) pk (y )) 0, tomamos +1 xk =y 0

+1 xk = xk i , i = 1, 2, . . . , n + 1. i

k k (b) Si y [a, xk 0 ) y (f (x0 ) pk (x0 ))(f (y ) pk (y )) < 0, tomamos +1 xk =y 0

+1 xk = xk i1 , i = 1, 2, . . . , n + 1. i

k k k (c) Si y (xk j , xj +1 ) y (f (xj ) pk (xj ))(f (y ) pk (y )) 0, tomamos +1 =y xk j

+1 xk = xk i, i

i = j.

k k k (d) Si y (xk j , xj +1 ) y (f (xj ) pk (xj ))(f (y ) pk (y )) < 0, tomamos +1 xk j +1 = y

+1 xk = xk i , i = j + 1. i

k k (e) Si y (xk n+1 , b] y (f (xn+1 ) pk (xn+1 ))(f (y ) pk (y )) 0, tomamos +1 xk n+1 = y

+1 xk = xk i, i

i = 0, 1, = n.

k k (f) Si y (xk n+1 , b] y (f (xn+1 ) pk (xn+1 ))(f (y ) pk (y )) < 0, tomamos +1 xk n+1 = y

+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

k m ax |f (xk i ) pk (xi )|.

n: Por el Lema 8.4.2 sabemos que Demostracio


k

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.6) es an alogo). Entonces, por la denici on de pk y la

+1 k+1 (el caso (f (xk i0 ) pk (xi0 )) = f pk +1 manera de elegir xk i0 , tenemos que

+1 +1 k ii0 ) pk (xk ) = f (xk f (xk k , i = i0 . i ) pk (xi ) = (1) i i

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

Si a (8.6) le restamos (8.9) se obtiene


+1 k+1 pk+1 (xk i0 ) pk (xi0 ) = f pk

k+1 .

(8.10)

Por otra parte, si a (8.7) le restamos (8.8) resulta


+1 +1 pk+1 (xk ) pk (xk ) = (1)ii0 ( i i k

k+1 ),

i = i0 ;

+1 nico polinomio que cumple qk (xk ) = (1)ii0 +1 , i = i0 , en otras palabras, si qk n es el u i entonces

pk+1 pk = (

k+1

k )qk .

(8.11)

Finalmente, combinando (8.5) y (8.10) llegamos a (


k+1

k+1 k )qk (xi0 )

= 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

UMU M etodos Num ericos, 2007-2008

+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

k m ax |f (xk i ) pk (xi )|,

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

kl l m ax |f (xk i ) pkl (xi )|

0in+1

kl l m ax |f (xk i ) p(xi )|

lo que es incompatible con


l 0in+1

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

Usando el Lema 8.4.5 vemos que qk (n + 1) (b a)n =: C, n

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 )

k k k f (xk i+1 ) pk (xi+1 ) = (f (xi ) 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

UMU M etodos Num ericos, 2007-2008

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.

Вам также может понравиться