Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodosnumericos PDF
Metodosnumericos PDF
NUMERICOS
Nmeros y Errores
#
Interrogantes centrales del captulo
Destrezas a adquirir en el captulo
En esta unidad vamos a analizar los distintos tipos de errores que se producen en los clculos
numricos. Presentaremos los sistemas de numeracin y la aritmtica que utilizan las mqui-
nas. Mediremos como se propagan los errores de redondeo. Y, por ltimo, estudiaremos los
conceptos de estabilidad de un algoritmo y condicionamiento de un problema.
4 UMU Mtodos Numricos, 2007-2008
Nmeros y su representacin.
Errores.
1.1. Introduccin
(i) 2 3
(i) 2 3
Cualquier procedimiento numrico debe considerar el control de errores para medir cmo
afectan al resultado
Es muy importante que en cada problema numrico hagamos un seguimiento de los errores
cometidos con el n de poder estimar el grado de aproximacin de la solucin que proporciona.
Hay diferentes fuentes/tipos de error que pueden afectar a la solucin numrica de un pro-
blema:
1.1.2. Ejemplos
18817 10864 3 = 2.65718 1005
1
= 2.657171708 1005
18817 + 10864 3
Hemos obtenidos dos valores distintos, lo que nos plantea algunas cuestiones:
Cal es la causa por la que la calculadora no respeta la igualdad?
Las calculadoras estn trucadas para fastidiarnos
Se han producido ERRORES
Si repitiramos las operaciones con la calculadora, obtendriamos los mismos valores?
Si No
Si los resultados son aproximados Cal de los dos valores se aproxima ms al verda-
dero valor de la expresin?
Al nalizar la unidad debis tener la respuesta.
1
Casio fx-991ES
N meros y Errores 7
A la vista del ejemplo 1.1.4 , podemos hacer una primera armacin: La aritmtica con la
que calcula un ordenador o una calculadora no es la que hemos aprendido en el colegio y en
los cursos de lgebra (grupos, anillos, cuerpos, lgebras, etc...). Con nuestra calculadora hemos
constatado que (a b) puede ser distinto de (a2 b2 )/(a + b).
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). Nosotros
mismos, al representar los nmeros en el sistema decimal (con las cifras 0, 1,. . . ,9) utilizamos
secuencias nitas de dgitos. Es decir, a la hora de trabajar con representaciones de nme-
ros en una mquina slo lo podemos hacer con una cantidad nita de ellos. Vamos a poder
trabajar con exactitudcuando trabajemos con nmeros enteros que puedan ser representados
en la mquina, y tambin (cuando el procesador est especialmente programado2 ) con algunos
nmeros racionales. Pero, a la hora de representar nmeros reales cmo nmeros de mquina
siempre tendremos que utilizar aproximaciones .
Para representar enteros, usualmente utilizamos el sistema de numeracin decimal (en base
10) que es un sistema posicional en el que cada nmero viene expresado por una sucesin nita
de dgitos (cifras del 0 al 9) cuyos valores dependen de la posicin que ocupan
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 aj N, 0 aj (b 1) y an > 0.
Se utiliza la representacin:
p = an an1 . . . a1 a0 (b)
y se llama representacin digital de p en base b.
Los coecientes aj se denominan dgitos o cifras.
Ejercicio 1.2.1 Describe los algoritmos para pasar de la representacin en base 2 (binario) de
un nmero entero a sus representaciones en las bases 4 y 8 (octal).
Describe tambin los reciprocos que pasen de las representaciones en las bases 4 y 8 a binario.
2
Este es el caso para algunos nmeros en la calculadora Casio f x-991ES. Revisad el manual.
3
algoritmo: Sucesin nita de instrucciones claras y preci sas, especicando cuales son los datos de entrada,
el ujo (la sucesin) de instrucciones, las condiciones de parada y los datos de salida.
8 UMU Mtodos Numricos, 2007-2008
(byte) 8 bits
(short) 16 bits
(int) 32 bits
(large) 64 bits
Aqu el hecho de jar el tamao de los registros que han de ocupar los nmeros en la mquina,
nos anuncia la aparicin de errores de aproximacin 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 1 1
x = an bn + + a1 b1 + a0 + a1 + a2 2 + + an n + . . .
b b b
N meros y Errores 9
con aj N, 0 aj (b 1) y an > 0.
Se utiliza la representacin:
x = an an1 . . . a1 a0 , a1 a2 . . . an . . .(b)
y se llama representacin digital de punto jo de x en base b.
Cul es el algoritmo para encontrar una representacin de punto jo en base b de un nmero
real?
Es nica esta representacin?
Resp: Si excepto para nmeros racionales de la forma x = bkn .
Ejemplo 1.2.3
(i) 17
3 = 5.6666 . . .(10)
(ii) 1(10) = .99999 . . .(10) = .111111 . . .(2)
(iii) .1(10) = .0001 1001 1001 . . .(2)
En base 10 el nmero .1 es decimal exacto (tiene una cantidad nita de dgitos no nulos)
mientras que en base 2 ese mismo nmero tiene una representacin digital peridica
mixta (con innitos dgitos no nulos que se van repitiendo de forma peridica).
(iv) = 3.141592....
A la hora de trabajar en una mquina, tenemos que jar el tamao de los registros a usar
para guardar los nmeros. Esto se traduce inmediatamente en una limitacin 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.
0 = (x y) z 6= x (y z) = 0.01
A la hora de trabajar con 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 otante.
10 UMU Mtodos Numricos, 2007-2008
EN
x = .a1 a2 . . . an . . .
y se llama representacin digital de punto otante de x en base b.
P 1
Al nmero N se le llama exponente de la representacin de x, y al nmero m = n=1 an bn =
.a1 a2 . . . an . . .(b) se le llama mantisa.
Cul es el algoritmo para encontrar una representacin de punto otante en base b de un nmero
real?
Es nica esta representacin?
Resp: Si, excepto para nmeros racionales de la forma x = k
bn . O si se aade la condicin de
que para cada n existe un k > n tal que ak 6= b 1
Ejemplo 1.2.6
17
(i)
3 = 5.6666 . . .(10) = 101 .56666 . . .(10) = .56666 . . . E 1(10)
(ii) 1(10) = 20 .111111 . . .(2) = .111111 . . . E0(2)
(iii) .1(10) = .0001 1001 1001 . . .(2) = 23 .1 1001 1001 . . .(2) = .1 1001 1001 . . . E 3(2)
(iv) = 3.141592... = .314151592...(10)
Observad que a la hora de guardar las representaciones de nmeros en coma otante no
es necesario dejar sitio para la coma (el punto) porque siempre est en la misma posicin. Si
trabajamos con representaciones binarias tampoco es necesario dejar ningn sitio para a1 que
forzosamente slo puede tomar el valor 1 (es distinto de cero y menor que 2).
Volvamos al problema planteado en el ejemplo 1.2.4 y veamos que operando con los nmeros
en coma otante no se producen los mismos errores en el clculo.
Ejemplo 1.2.7 Supongamos que trabajamos con una mquina que utiliza nmeros escritos en
coma otante de base 10, con un mximo de 6 dgitos en la mantisa.
Cmo se suman?
Cmo se representan los nmeros en tu calculadora?
N meros y Errores 11
(float) 32 bits
(double) 64 bits
En el libro de Burden y Faires [2] encontraris una breve descripcin de este protocolo,
conocido como el IEEE754-1985. No pienso copiarla aqu!
Cul es el menor real (double) positivo en un ordenador?
Cul es el mayor real (double) positivo en un ordenador?
1.3. Errores
Denicin 1.3.1 Si el nmero real p es una aproximacin del nmero p, para medir el tamao
del error cometido en esta aproximacin podemos utilizar:
A la hora de expresar el error relativo hemos utilizado dos cuanticaciones porque no siempre
estaremos en disposicin de conocer el valor exacto de un nmero aunque si que podamos conocer
aproximaciones y estimaciones del error absoluto cometido.
Utilizando la desigualdad triangular, |p| |p | |p p |. Trasladando est acotacin a la
denicin de er se obtiene la acotacin:
eer
er .
1 eer
De la misma forma, como |p | |p| |p p |, tambin se tiene la acotacin
er
eer .
1 er
As, q
para valores pe ueos de er (respectivamente de eer ) los valores de er y eer estn muy
er
prximos (
eer 1).
q
En el caso de tener errores relativos pe ueos podemos utilizar indistintamente er eer .
o
No siempre (por no decir casi nunca) tendremos conocimiento exacto del valor real p y s
que lo tendremos de p . Por eso, ser ms fcil obtener estimaciones del valor de eer a partir de
estimaciones de ea que intentar trabajar con er .
12 UMU Mtodos Numricos, 2007-2008
p = p + e = p ea y tambin p ea p p + ea .
p < p < p + .
Utilizando el error relativo, si tenemos una acotacin de eer , eer < , entonces podemos
asegurar que ea = |p |eer < |p |, y
p |p | < p < p + |p |.
Ejercicio 1.3.1
(i) Calcula el error relativo que se comete cuando el nmero 1.503 aparece redondeado a 1.5.
(ii) Calcula los errores absoluto y relativo cuando el nmero .abcE7 aparece escrito como
a.bcE7
(iii) S upnque en un clculo aparece el nmero 0.0001 cuando deba aparecer el 0. Qu frmula
utilizaras para calcular el error relativo? Utilizando esa frmula qu valor obtienes?
(iv) Determina el mayor intervalo en el que debe estar p para aproximar a p = 2 con un
error relativo de a lo sumo 106 .
(Salvo que expresemos lo contrario, no nos vamos a preocupar mucho por el exponente, que
es entero y slo puede producir errores de desbordamiento)
1.4.0.4. Redondeo
Por redondeo vamos a entender el proceso de introducir un nmero p en una mquina ,
en el que se procurar utilizar el nmero de mquina p que est ms prximo a p (o uno de los
que estn ms prximos si es que hay varios).
Existen distintos tipos de redondeo, nosotros nos vamos a jar en el siguiente:
N meros y Errores 13
x y x+ son los dos de la mquina de base b y t dgitos en la mantisa, que estn ms prximos
a x.
Vamos a denir el nmero redondeado de x con t dgitos en la mantisa como el nmero real
(
|x x+ |
x . si |x x | < 2 = 0.5bN t
f lt (x) = |x x+ |
x+ si |x x | 2 = 0.5bN t
Cuando el nmero de dgitos t este jado en el entorno de trabajo podemos escribir solamente
f l(x).
|x x+ |
Observad que si b es par (por ejemplo si b = 2 o b = 10), entonces |x x | < 2 si, y
slo si at1 < 2b .
Podis leer sobre otros tipos de redondeo en Kincaid-Cheney [3]:
(i) Redondeo por paridad (Roud to even), redondeo equidistribuido
(ii) Redondeo por truncamiento.
|x f lt (x)| |x f lt (x)|
0.5bt+1 y 0.5bt+1
|x| |f lt (x)|
Demostracin:
|x x+ | bN bt
|x f lt (x)| = |x x | < 0.5bN t si |x x | <
= = 0.5bN t
2 2
|x x+ |
|x f lt (x)| = |x x+ | si |x x | y en este caso
2
(1) |x x+ |
|x x+ | = |(x x ) + (x x+ )| = |x x+ | |x x | = 0.5bN t .
2
(1) x x+ y x x tienen distinto signo tanto si x es positivo como si es negativo.
14 UMU Mtodos Numricos, 2007-2008
Ejercicio 1.4.1
(i) Mide los errores relativos del redondeo del nmero en una mquina de cuatro dgitos de
mantisa y base 10
(ii) En una mquina de nmeros escritos en coma otante con 13 dgitos en la mantisa (en
base 10), cul es el mximo error relativo posible?
Denicin 1.4.4 (Precisin de k dgitos) Se dice que el nmero p es una aproximacin del
nmero p 6= 0 con una precisin de, al menos, m cifras signicativas en la base b, siempre que
el error relativo
|p p |
.5 bm+1 .
|p|
Cuando m es el mayor entero para el que se cumple la desigualdad anterior, se dice que p
aproxima a p con m cifras signicativas.
Con la denicin anterior app(x) es una aproximacin de x con 4 cifras signicativas, aunque
no coinciden ninguna de las cifras de la mantisa.
q
En doble precisin (IEEE-754) el psilon de la m uina es del orden de
1
252
1016 . En
prcticas lo precisaremos con exactitud.
q
El psilon de la m uina nos indica la mxima precisin relativa que cabe esperar en la
mquina. As, a la hora de preguntar si dos nmeros de mquina estn prximos debemos de
tener en cuenta no pedir que el error relativo sea menor que el psilon de la mquina, porque en
ese caso estaremos pidiendo que sean idnticos.
Por ejemplo, supongamos que trabajamos en una mquina de 6 dgitos en la mantisa y que
x = .700001E1 e y = .600002E0 son dos nmeros de la mquina. Su suma, x + y = .7600012E1,
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, x y := f l(x + y) = .760001E1.
As, para realizar operaciones aritmticas en una mquina ideal, pensaremos siempre que
estas se realizan en dos etapas
Cmo se suman dos nmeros de mquina del mismo signo? Cmo afectan los errores de
redondeo en los sumandos a la suma?
Ahora que sabemos como se deben realizar las operaciones dentro de nuestra calculadora, es
buen momento para volver sobre el ejemplo 1.1.4 :
(iv) 10864 3 = 10864 (f l( 3) ea ) = (18816.9997 ered ) (10864 ered )
(v) e1 = (10864
ered ) ered .54E 6, e1 es una estimacin del error en la operacin
10864 3.
(vi) x1 = 18817 (10864 f l( 3)) = 2.65718E 5
(vii) x = 18817 (10864 3) = 18817 18816.9997 e1
|xx2|
(xiv) |x2 | .1435E 10. Ahora podemos asegurar que x2 aproxima a x con los 10 dgitos de
precisin.
Ejercicio 1.5.1 Consideremos los nmeros p = 0.54619 y q = 0.54601. Redondeando los nme-
ros en una mquina de cuatro dgitos de precisin (base 10), mide el error relativo cometido al
aproximar pq por f l(p) f l(q). cantas cifras signicativas tiene f l(p) f l(q).
Analiza el resultado! Podemos mejorarlo?
Ejercicio 1.5.2 Utilizando aritmtica de cuatro dgitos (base 10), encuentra aproximaciones a
las races x1 y x2 de la ecuacin de segundo grado
x2 200x + 1 == 0.
Denicin 1.6.1 Diremos que un proceso numrico, o una operacin, es inestable cuando
pequeos errores en los datos de entrada, o errores de redondeo en alguna de las etapas el proceso,
x (u = x 1.208) (z = u/x).
Despus de ver cmo se realizan las operaciones aritmticas en una mquina de nmeros,
podemos quedarnos con el siguiente resumen:
La divisin q
de dos nmeros de m uina es un clculo estable, tambin slo se
pueden producir errores de desbordamiento ( overow ).
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 prximos, y es estable cuando los dos nmeros tienen distinto signo (en este caso
es una suma de nmeros del mismo signo).
Hay que prestar atencin a las operaciones con nmeros grandes o excesivamente
pequeos para evitar errores de desbordamiento ( overow ).
Ejercicio 1.6.2 En relacin con el ltimo punto, Cmo se puede realizar el clculo
ex
ex 1
para valores grandes de x (x > 250)?
Comprubalo con la calculadora!
Sn = x0 + x1 + + xn = Sn1 + xn ,
Sn = Sn1
xn (S0 = x0 ).
Entonces:
|Sn Sn |
(1 + eM )n 1 neM ,
|Sn |
donde eM = .5bt+1 es la precisin de la mquina.
Ejercicio 1.6.4 Sean xi > 0, nmeros de mquina (base b y t -dgitos en la mantisa). Sean
Pn = x0 x1 xn = Pn1 xn ,
Pn = Pn1
xn (P0 = x0 ).
Entonces:
|Pn Pn |
(1 + eM )n 1 neM ,
|Pn |
donde eM = .5bt+1 es la precisin de la mquina.
Ejercicio 1.6.5 Para evaluar un polinomio p(x) = an xn + an1 xn1 + ... + a1 x + a0 disponemos
de los dos algoritmos siguientes
(ii) (Horner)
p=an ;
para (k=(n-1), hasta 0, )
p=p*x +ak ;
Si es una cota del error relativo al hacer las operaciones aritmticas y no consideramos los
errores de redondeo al introducir el valor de los parmetros, Cul de los dos algorimos acumula
menos errores?
Denicin 1.6.3 Supongamos que xn est denida por un mtodo iterativo y que xn x. Al
implementar el mtodo en una mquina, vamos construyendo una sucesin x
fn que va acumulando
los errores de redondeo y de propagacin segn las operaciones que intervienen.
Denotamos en = |xn xfn | si x = 0, y en = |xn f
xn |
|xn |
= 1 xn
f
x n
si x 6= 0, a los errores absoluto
(i) Se dice que la propagacin de errores en la iteracin es lineal, cuando existe C >0 tal
que
en Cne0 , n.
(ii) Se dice que la propagacin de errores en la iteracin es de tipo exponencial cuando existen
C>1 y M >0 tal que
en M C n e0 , n.
(iii) A veces encontraremos ejemplos en los que
Admitiremos que un proceso iterativo con propagacin de error lineal va a ser estable
si no requiere demasiadas iteraciones para pararse.
Los procesos iterativos con propagacin de errores exponencial van a ser muy inesta-
bles. Debemos intentar evitarlos.
20 UMU Mtodos Numricos, 2007-2008
Observad los dos ejemplos siguientes que muestran dos procesos iterativos algo perversos. En
la practica 2 os propongo un ejemplo ms para que lo analicis.
Sea yn = n!(ex (1+x+ x2! + + xn! )). Sabemos, por la expresin de Lagrange
2 n
Ejemplo 1.6.4
del resto de la frmula de Taylor, que
etx etx
yn = n! xn+1 = xn+1 .
(n + 1)! (n + 1)
De donde podemos concluir que para x 1 yn 0.
Tambin sabemos que se cumple la frmula de recurrencia lineal:
yn = nyn1 xn .
Qu ocurri?
S i denotamos yf ]
n =ny n1 1, podemos estimar que
yf
n yn = n(]
yn1 yn1 ) = ... = n!(ye0 y0 ).
Aqu podemos observar como el pequeo error de redondeo al escribir el nmero e en la mquina
y evaluar ye0 , se ha propagado de forma exponencial (n! > si n 3).
M (3/e)n
R R
Ejemplo 1.6.5 Sea xn = 01 xn ex dx. Sabemos que 0 xn e 01 xn dx = n+1 e
0.
Integrando por partes se tiene que xn viene dada por la frmula de recurrencia lineal:
xn = e nxn1 ,
comenzando con x0 = e 1.
Razonando como en el ejemplo precedente, si x n1 podemos estimar que
fn = e n x]
|f
xn xn | = n|]
xn1 xn1 | = ... = n!|ye0 y0 )|,
y predecir que la sucesin x
fn es muy inestable y no converge a 0, en absoluto.
En efecto, si trabajis en doble precisin con nmeros de tipo double podris observar que
con 25 iteraciones x2 5 8.2E8 muy lejos del lmite 0.
Evala los 25 primeros trminos de la sucesin x
fn en el ordenador!
N meros y Errores 21
Una posibilidad para hacer este tipo de apreciaciones es intentar cuanticar a priori esta
sensibilidad, utilizando para ello un modelo apropiado del problema.
Este es el caso en el que el algoritmo consiste simplemente en dado un nmero x como dato
de entrada, evaluar f (x) como dato de salida, donde f :RR es una funcin real.
Si medimos la razn entre los errores relativos en los datos de salida y los datos de entrada,
tenemos
|f (x+h)f (x)|
er (f (x)) |f (x)| |f 0 (x)||x|
= |h|
.
er (x) |f (x)|
|x|
Denicin 1.7.1 Sea f : [a, b] R una funcin derivable con derivada continua. y sea x [a, b]
con f (x) 6= 0. El nmero de condicin de f en x se dene por la frmula
|f 0 (x)||x|
nc(f, x) :=
|f (x)|
y mide la razn entre los errores relativos en f (x) y en x ante variaciones de este ltimo valor.
Cuando el nmero de condicin es pequeo, o menor que una cota razonable, pequeos errores
Ejemplo 1.7.2
2 2 2
(i) f (x) = xex (f 0 (x) = ex 2x2 ex )
2 2
x2 |f 0 (x)||x| |(ex 2x2 ex )x| 2
nc(xe , x) = = x 2| = |1 2x2 ex | 1
|f (x)| |xe
La evaluacin de f (x) = xex2 es estable en todo x: los errores relativos en x y f (x) son
del mismo tamao .
|x|
|f 0 (x)||x| 1x2 |x|
nc(arc sen(x), x) = = =
|f (x)| arc sen(x) arc sen(x) 1 x2
lm nc(arc sen(x), x) = +
x1
|f 0 (x)||x| 1
nc(log(x), x) = =
|f (x)| | log(x)|
S i x est lejos de 1 la evaluacin de log(x) es estable, pero si x esta cerca de x=1 esta
evaluacin es inestable.
Sea ~x = (x0, y0, z0) el dato de entrada, y ~xe = ~x + ~h = (x0 + hx, y0, z0) una perturbacin
en la primera coordena de ~x como dato de entrada.
f (x0 , y0 , z0 )
= fy0 0 ,z0 (x0 )
x
De forma anloga se denen las derivadas parciales de f en ~x0 con respecto a cada una de las coordenadas,
derivando la funcin de una variable que resulta al jar el re sto de las coordenadas.
Si existen todas las derivadas parciales en ~x0 y son continuas, entonces f es diferenciable en ~x0 en el sentido
de que f (~x) f (~x0 ) se aproxima bien por una aplicacin lineal.
Nmeros y Errores 23
Si medimos la razn entre los errores relativos en los datos de salida y los datos de entrada,
tenemos
er (f (~x)), x0 | f (x0x
,y0 ,z0 )
||x0 |
.
er (x0 ) |f (~x)|
Como antes, esta ltima estimacin slo depende de ~x y de f y se puede preveer antes de
ejecutar el algoritmo de evaluacin.
De la misma forma se pueden obtener estimaciones de las razones entre los errores relativos
cuando se van perturbando de forma independiente cada una de las coordenadas.
| fx(~xi ) ||xi |
nc(f, ~x, i) := , i = 1, 2, ..., n
|f (~x)|
se llaman nmeros de condicin f en ~x y mide la razn entre los errores relativos en f (~x) y en
~x ante variaciones en cada una de las coordenadas de este vector.
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.
El error mximo al evaluar f (2, 1.5) = 6 est acotado por 3.212 ( el error relativo est acotado
por 0.536).
Cuando estudiemos los sistemas de ecuaciones lineales A~x = ~b (A matriz nn, consideraremos
distintas normas para las matrices A y veremos que el nmero nc(A) = kAk kA1 k servir como
nmero de condicin del sistema en el sentido de que mide la razn entre el error cometido en
los datos iniciales del sistemakAk o b y el error que se propaga a la solucin del sistema.
que aparecen de forma natural en ajustes funciones por polinomios de grado n, estn muy mal
condicionadas nc(Hn ) e3.5n .
Denotemos por p(x) a un polinomio y supongamos que algR(p) es un algoritmo que propor-
ciona una raz S
r = algR(p) de p(x) (p(r) = 0). upongamos adems que r es una raz simple de
p, e.d. p0 (r) 6= 0.
Si se perturba el polinomio p de entrada, tomando una aproximacin pe(x) = p(x) + q(x),
donde q(x) es otro polinomio, y se aplica el algoritmo encontraremos una raz r + h = algR(ep).
Si suponemos que h es pequeo, h , h , ... seran mucho mas pequeos que h y podramos
2 3
2020 2020
h20 = 109 .
p020 (20) 19!
Observad que una pequea perturbacin () en el coeciente de x20 se multiplica por 109 al
intentar aproximar la raz r = 20. Los 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 algR15 o algR10 que proporcionen respectivamente las races
r = 15 o r = 10.
o
Prctica n 2 Mquinas ideales .
Bibliografa
[1] A.Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ.
Aut. de Barcelona, Barcelona, 1993.
Algoritmos e Iteraciones
'
' Interrogantes centrales del captulo $
$
Mtodo de la biseccin.
Mtodos de Regula-Falsi y Newton.
'
' Destrezas a adquirir en el captulo $
$
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 fijo de Banach y el algoritmo de
Aitken para acelerar la convergencia de sucesiones.
Mtodo de la biseccin.
Mtodo de regula-falsi.
Mtodo de Newton.
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
definicin que se corresponde con nuestras intenciones:
algoritmo: (Quiz del lat. tardo algobarismus, y este abrev. del r. cls. lisabu lubar,
clculo mediante cifras arbigas).
Un cierto nmero de etapas se repiten en un bucle (while) y est claro que slo se realizan
una cantidad finita 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.
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 definida de forma precisa y sin ambigedades. Todas las posi-
bles situaciones deben de ser tenidas en cuenta.
(ii) El flujo debe terminar despus de un nmero finito de etapas.
(iii) El flujo debera de ser eficaz para un conjunto amplio de problemas. Debe de tenerse
en cuenta su aplicabilidad en situaciones generales.
(iv) El flujo 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 simplificar, ms o menos, la descripcin
del flujo.
Cuando un algoritmo est traducido en un lenguaje de programacin concreto para ser im-
plementado 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 pro-
blema. 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
afirmaciones 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:
En esta teora se abordan dos tipos distintos de criterios para medir la complejidad de un algo-
ritmo: 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 pre-
vistas; 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 fijaremos en las siguientes tres cualidades de los algoritmos para compararlos:
En los apartados siguientes vamos a analizar esa dos ltimas cualidades de los procesos
iterativos. Ahora, para finalizar 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
p(z) = a0 + a1 z + + an z n (2.1)
donde los coeficientes ak C son nmeros complejos y an 6= 0. En estas condiciones se dice que
el polinomio p(z) tiene grado n N.
Para calcular el valor del polinomio p en un punto z0 , si usamos la relacin z0k+1 = z0 .z0k y
la frmula (2.1), necesitaremos hacer 2n 1 multiplicaciones (1 en a1 z0 y 2 multiplicaciones en
cada sumando ak z0k para k 2) y n sumas. En total 3n 1 operaciones.
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 Rufini:
En efecto, si escribimos
q(z) = bn z n1 + bn1 z n2 + + b2 z + b1 .
q(z)(z z0 ) = bn z n + bn1 z n1 + + b2 z 2 + b1 z bn z n1 z0 + + b2 z0 + b1 z0 ,
Observad que si slo necesitamos obtener el valor de p(z) podemos acelerar el algoritmo utili-
zando 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 .
0.5
-0.5
-1
-1.5
0.5
-0.5
-1
-1.5
0.5
-0.5
-1
-1.5
0.5
-0.5
-1
-1.5
0.5
-0.5
-1
-1.5
Escribe la demostracin!
34 UMU Mtodos Numricos, 2007-2008
ba
|x ck | .
2k+1
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 .
En los dos apartados siguientes vamos a ver dos intentos de aceleracin de esta convergencia:
los mtodos de la regla falsa y de Newton.
El mtodo de la Regula Falsi (regla falsa), es una modificacin 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 grficos podemos observar distintas etapas de este mtodo:
1.25 1.25
1 1
0.75 0.75
0.5 0.5
0.25 0.25
-0.25 -0.25
1.25 1.25
1 1
0.75 0.75
0.5 0.5
0.25 0.25
-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
Modificando el algoritmo del mtodo de la biseccin en la definicin 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 modificacin efectuada)
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
Ejercicio 2.3.1 Trabajando sobre la siguiente grfica. 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 grfica 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 final 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 ralen-
tizandonos.
La modificacin 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.
Grficamente hacemos lo siguiente:
38 UMU Mtodos Numricos, 2007-2008
1.25 1.25
1 1
0.75 0.75
0.5 0.5
0.25 0.25
-0.25 -0.25
1.25 1.25
1 1
0.75 0.75
0.5 0.5
0.25 0.25
-0.25 -0.25
(Enmarcadas sobre fondo gris, estn la modificaciones efectuadas sobre el mtodo de la regula
falsi)
Con el truco propuesto, podemos pensar en que vamos a tener mejor convergencia.
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:
10 10
8 8
6 6
4 4
2 2
1.25 1.5 1.75 2.25 2.5 2.75 3 1.25 1.5 1.75 2.25 2.5 2.75 3
10 10
8 8
6 6
4 4
2 2
1.25 1.5 1.75 2.25 2.5 2.75 3 1.25 1.5 1.75 2.25 2.5 2.75 3
Los distintos mtodos introducidos tienen diferente comportamiento segn las ecua-
ciones propuestas en los ejemplos.
15 15
10 10
5 5
-5 -5
-10 -10
15
10
-1 -0.5 0.5 1
-5
-10
10 10
-8 -6 -4 -2 -8 -6 -4 -2
-10 -10
-20 -20
-30 -30
-40 -40
-50 -50
Mtodo de la regula falsi: Libro de Burden-Faires [2], seccin 2.3, algoritmo 2.5.
En esta seccin vamos a estudiar los problemas de punto fijo, 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 fijos f (x) == x, considerando funciones auxiliares:
Si f (x) tiene un punto fijo 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 fijo
en x.
Vamos a buscar puntos fijos viendo el comportamiento (la dinmica) de las iteradas de
funciones, es decir, sucesiones de la forma
xn = f (xn1 ).
Esta tcnica de considerar sucesiones de iteradas, xn = f (xn1 ), para buscar puntos fijos,
recibe el nombre de iteracin de punto fijo o iteracin funcional. El algoritmo correspon-
diente es:
Algoritmos-Iteraciones 43
Ejemplo 2.4.3 Con la calculadora de mano, configurada para trabajar en radianes, si conside-
ramos la funcin cos(x) y calculamos la rbita de cualquier nmero obtenemos un/el punto fijo
del cos :
cos(0.739085133) = 0.739085133.
Grficamente, comenzando en 0.5 se tiene:
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
Recordis resultados del curso Analisis I que garanticen la existencia de puntos fijos 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 finitos.
El siguiente teorema da una condicin suficiente para la convergencia de las iteraciones de
punto fijo. Vamos e enunciarlo para funciones definidas en espacios mtricos completos (X, d),
que contiene como caso particular a R, Rn , a los espacios de Banach (espacios normados com-
pletos) (X, k k) y a sus subconjuntos cerrados.
Definicin 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, verificando :
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 com-
pleto y f : X X una funcin (contractiva) tal que existe una constante c, 0 < c < 1,
verificando :
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 = lm x(n), x(n) = f (x(n 1)).
n
(i) d(xn , xn1 ) c d(xn1 , xn2 ) c2 d(xn1 , xn3 ) ... cn1 d(x1 , x0 ).
La frmula de los incrementos finitos nos ofrece condiciones para que una funcin sea
contractiva y se cumpla el teorema del punto fijo:
donde (0 < t < 1), y |f 0 (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 0 (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 )
definida a partir de cualquier punto x0 [a, b]. Adems:
cn
en = |xn xs| |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 fijo 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
1
10 2
(iv) x = g4 (x) = 4+x
Sea f : [a, b] R es una funcin derivable con derivada continua y x [a, b] un punto fijo
de f (f (x) = x)
El tamao de la derivada |f 0 (x)| indica el comportamiento de las iteradas funcionales en las
prximidades de x.
Proposicin 2.4.8 Si |f 0 (x)| < 1 entonces, en un entorno de x se cumplen las hiptesis del
teorema del punto fijo. 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 0 (x)| < c < 1 y f 0 continua que existe > 0 tal que |f 0 (x)| < c para x [x , x + ].
f : [x , x + ] [x , x + ] En efecto:
( est entre x y x, [x , x + ])
Se cumplen las hiptesis del teorema del punto fijo para f definida en [x , x + ].
Ejemplo 2.4.9 (El mtodo de Newton) El mtodo de Newton consiste en iterar el pro-
ceso 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 0 (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
aproximacin xn+1 = xn ff0(x n)
(xn ) .
Algoritmos-Iteraciones 47
Considerando la funcin
f (x)
g(x) = x .
f 0 (x)
Esperamos encontrar x como lmite de xn+1 = g(xn ), e.d., como punto fijo de g.
Proposicin 2.4.10 Sea f : (a, b) R una funcin dos veces derivable con f 00 continua. Sea
x (a, b) una raz simple de f , e.d. f (x) = 0 y f 0 (x) 6= 0. Entonces existe > 0 tal que si
x0 (a, b), y |x0 x| < , la sucesin de iteradas de Newton, xn+1 = xn ff0(x n)
(xn ) , est bien
definida 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 grficamente desde x0 = 0.9 tenemos:
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
Ejemplo 2.4.12 f (x) = 0.25 ex , tiene punto fijo cerca de 2.15, si hacemos las iteradas fun-
cionales grficamente desde x0 = 2.1 tenemos:
5 5
4 4
3 3
2 2
1 1
4 4
3 3
2 2
1 1
Proposicin 2.4.13 Si |f 0 (x)| > 1 entonces, en ningn entorno de x se cumplen las hiptesis
del teorema del punto fijo. 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 0 (x)| > C > 1 + f 0 continua que existe > 0 tal que |f 0 (x)| > C para x [x, x+].
Si xn = f (xn1 ), entonces xn 6 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 0 ()||xn1 x|
> C |xn1 x| > ...
> C nn0 |xn0 x|
Algoritmos-Iteraciones 49
|xn x|
lm = ,
n |xn1 x|m
Teorema 2.5.2 (Orden de convergencia) Si f : [a, b] [a, b] es una funcin con un punto
fijo en x.
(Caso m = 1) Si f es derivable con derivada continua, |f 0 (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 0 (x) = f 00 (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) 6= 0, la convergencia es de orden m con constante asinttica del error
|f (m) (x)|/m!.
1
Permitid la licencia de que aqu consideremos errores absolutos en lugar de los errores relativos del captulo
anterior.
50 UMU Mtodos Numricos, 2007-2008
Demostracin:
Ideas que intervienen
(caso m=1) |f 0 (x)| < 1 implica que x es un atractor. e.d. que las iteradas funcionales son
convergentes.
(caso m>1) Como f 0 (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 (m) (x)
f (x) f (x) = (x x)m + o((x x)m ).
m!
As tenemos
xn+1 x f (xn ) f (x) f (m)(x) o((xn x)m ) f (m)(x)
= = + .
(xn x)m (xn x)m m! (xn x)m m!
Teorema 2.5.3 Sea f : (a, b) R una funcin dos veces derivable con f 00 continua. Sea x
(a, b) una raz simple de f , e.d. f (x) = 0 y f 0 (x) 6= 0. Entonces existe > 0 tal que si x0 (a, b),
y |x0 x| < , la sucesin de iteradas de Newton, xn+1 = xn ff0(x n)
(xn ) , est bien definida para
todo n N y converge hacia x con convergencia de orden al menos 2.
Remarcad la hiptesis de que la constante asinttica A 6= 1. Esto ocurre en los puntos fijos que
son atractores A = |f 0 (x)| < 1.
Entonces, para n suficientemente grande podemos escribir
(
xn+1 x A(xn x)
(2.3)
xn+2 x A(xn+1 x).
Algoritmos-Iteraciones 51
xn := (xn+1 xn )
2 xn := (xn ) = (xn+2 xn+1 ) (xn+1 xn ) = xn+2 2xn+1 + xn .
(xn+1 xn )2 (xn )2
x xn = xn
(xn+2 xn+1 ) (xn+1 xn ) 2 xn
(xn )2
n = xn
x
2 xn
con la esperanza de que x
n converja hacia x ms rpidamente que xn .
2
Entonces la sucesin del mtodo de Aitken x n = xn (x n)
2 xn
converge hacia x ms rpidamente
que xn en el sentido de que
n x
x
lm =0
n xn x
Demostracin:
Ideas que intervienen
n x en trminos de xn x y A 1 6= 0.
Expresar x
xn+1 x
(i) n := A0
xn x
(ii) xn+1 x = (xn x) + xn = (xn x)(n + A)
xn = f (xn1 )
de g en el punto fijo, g 0 (x) = 0.9898926649877118, tiene valor absoluto menor pero prximo a
1. Esto confirma que el punto fijo es un atractor y que la convergencia no es de las ms rpidas.
Si aceleramos la convergencia de la iteracin de punto fijo iniciada en el mismo punto x0 ,
el mtodo de Aitken proporciona la aproximacin al punto fijo 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 ha-
cemos la iteracin de punto fijo para f , con inicio x0 = 0.1 aproximamos el punto fijo x =
0.35740295618138784 en 33 pasos. Observad que en este ejemplo f 0 (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 apro-
ximamos el mismo punto fijo en 15 pasos.
Cuanto menor es el tamao de la derivada en el punto fijo, ms rpido convergen las iteradas
de punto fijo y sus aceleradas de Aitken!
definimos
(f (yn ) yn )2
yn+1 = yn .
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 fijo en
x (a, b) (f (x) = x), f 0 (x) 6= 1. Entonces, existe > 0 tal que [x , x + ] (a, b) y para
cualquier y0 [x , x + ] el algoritmo de Steffensen
(f (yn ) yn )2
yn+1 = yn ,
f (f (yn )) 2f (yn ) + yn
Demostracin:
Ideas que intervienen
z(x)
Utilizar la notacin z(x) = o((x x)k ) para designar a los infinitsimos lmxx (xx)k
= 0,
y simplificar las expresiones.
0 0 0
Recordar que o((x x)k ) + o((x x)k ) = o((x x)mn{k,k } , (x x)k o((x x)k ) =
0
o((x x)k+k , etc.
f 00 (x)
(i) f (x) = x + f 0 (x)(x x) + 2 (x x)2 + o((x x)2 );
f 00 (x)
f (x) x = f 0 (x)(x x) + 2 (x x)2 + o((x x)2 )
(f (x) x)2 = f 0 (x)2 (x x)2 + o((x x)2 )
f 00 (x)
(ii) f x := f (x) x = (f 0 (x) 1)(x x) + 2 (x x)2 + o((x x)2 );
(f x)2 = (f (x) x)2 = (f 0 (x) 1)2 (x x)2 + (f 0 (x) 1)f 00 (x)(x x)3 + o((x x)3 ;
00
(iii) f (f (x)) f (x) = (f 0 (x) 1)(f (x) x) + f 2(x) (f (x) x)2 + o((f (x) x)2 ) =
00
= (f 0 (x) 1)(f (x) x) + f 2(x) (f (x) x)2 + o((x x)2 ) ;
(f (x)x)2
(v) Consideramos g(x) = x f (f (x))2f (x)+x .
2 f x(x x) (f x)2
g(x) x = =
2 f x
f 00 (x) 0 0 3 3
2 (f (x) 1)f (x)(x x) + o((x x) )
= 00 =
(f 0 (x) 1)2 (x x) + f 2(x) (f 0 (x) 1)(1 + (f 0 (x) + 1))(x x)2 + o((x x)2 )
f 00 (x) 0 2 2
2 f (x)(x x) + o((x x) )
= 00 ;
(f 0 (x) 1) + f 2(x) (1 + (f 0 (x) + 1))(x x) + o(x x)
(vi)
f 00 (x) 0 o((xx)2 )
g(x) x 2 f (x) + (xx)2 f 00 (x)f 0 (x)
lm = lm f 00 (x)
= .
xx (x x)2 xx (f 0 (x) 1) + 0 x) + o(x x) 2(f 0 (x) 1)
2 (1 + (f (x) + 1))(x
Notas:
Observad que la hiptesis del teorema anterior, f 0 (x) 6= 1, es ms general que pedir que el
punto fijo x sea un atractor, tambin puede darse en repulsores.
La diferencia fundamental entre el mtodo de aceleracin de Aitken y el mtodo de Stef-
fensen aplicados a una iteracin de punto fijo, 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 Steffensen se construye directamente la sucesin acelerada.
Si las iteradas de punto fijo convergen linealmente, la acelerada de Steffensen lo hace al
menos cuadrticamente. Si las iteradas de punto fijo convergen con convergencia de orden
p > 1, las de Steffensen 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 fijos, uno atractor y el otro repulsor.
Recordad que la iteracin de punto fijo para f , con inicio x0 = 0.1 aproximamos el punto fijo
x = 0.35740295618138784 en 33 pasos, y que acelerando con Aitken este nmero de iteraciones
se reduce a 15 pasos.
El mtodo de Steffensen 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 fijos de f , podemos
comparar el mtodo de Steffensen de bsqueda de puntos fijos 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 Steffensen de f con inicio en x0 = 2.1 obtenemos el punto fijo
repulsor x = 2.1532923641103503 en 5 pasos.
56 UMU Mtodos Numricos, 2007-2008
Observad que el mtodo de Steffensen tambin permite localizar puntos fijos repulsores, tal
y como sealbamos antes.
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.
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
Este es el primer captulo de los cuatro dedicados al anlisis numrico matricial que aborda
las dos cuestiones siguientes
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 6= 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.
el lgebra matricial.
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 solu-
ciones de todas las ecuaciones al mismo tiempo (simultneamente).
Introduccin y complementos de anlisis matricial. 61
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:
Teorema 3.1.1 Al aplicar una operacin elemental a un sistema, el sistema resultante es equi-
valente al original.
3.1.2. Matrices
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
Tambin se suele decir que es una matriz de tipo (m, n), y se representa de forma abreviada
mediante su termino general aij ,
(aij )1im .
1jn
62 UMU Mtodos Numricos, 2007-2008
El conjunto de las matrices m n de escalares se suele representar por Mmn (K), o simple-
mente 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
Si tachamos la segunda la y las columnas segunda y cuarta obtenemos la submatriz:
!
0 1 2
M = .
3 0
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 :
a1j
Mi = (ai1 , . . . , ain ) Kn y M j = ..
.
amj
Introduccin y complementos de anlisis matricial. 63
Mm
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
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
xn
xt = (x1 , . . . , xn ) x = (x1 , . . . , xn ),
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 respec-
tivamente. 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 (v1 ) = a11 w1 + a21 w2 + + am1 wm
f (v2 ) = a12 w1 + a22 w2 + + am2 wm
...... ...
f (vn ) = a1n w1 + a2n w2 + + amn wm
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 ,
P
n Pn Pn
fA (x1 , . . . , xn ) = j=1 a1j xj , j=1 a2j xj , . . . , 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.
y
g(us ) = b1s v1 + + bns vn (2)
Adems se tienen las relaciones
Los parntesis de esta ltima expresin son las coordenadas de f (g(us )) = (f g)(us ) en la
base {w1 , . . . , wm } de W , y estas coordenadas son (c1s , . . . , cms por (1). Como las coordenadas
de un vector con respecto a determinada base son nicas, tenemos las igualdades
n
(4)
X
crs = b1s ar1 + b2s ar2 + + bns arn = ark bks
k=1
Es importante hacer notar que para que el producto M N est denido el nmero de columnas
de M ha de coincidir con el nmero de las de N .
Observar que con esta notacin, si identicamos los vectores x Kn con los vectores columna,
para cada matriz cuadrada fA (x) = Ax.
fA (x) = b.
Introduccin y complementos de anlisis matricial. 67
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
por
(M u, v)m = (u, M t v)n para todo u Rn y v Rm ,
y en consecuencia (M t )ij = Mji .
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.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
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.
(A) = {1 , 2 , . . . , n }.
Ejercicio 3.1.5 Comprobad que si A es simtrica o hermitiana, entonces todos sus valores
propios son nmeros reales.
Comprobad tambin que si A es ortogonal o unitaria, entonces todos sus valores propios
tienen mdulo 1.
Introduccin y complementos de anlisis matricial. 69
Sea Ax = b un sistema de ecuaciones, sea una matriz inversible P (un cambio de base en Kn )
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.
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).
Aunque no todas las matrices son diagonalizables (probad con ( 10 11 )), siempre se puede en-
contrar un buen cambio de base que las transforma en matrices triangulares:
Teorema 3.1.6
(i) Dadauna 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 .
(ii) Dada una matriz normal A, existe una matriz unitaria U tal que la matriz U 1 AU es una
matriz diagonal.
(iii) Dadauna matriz simtrica A, existe una matriz ortogonal O tal que la matriz O1 AO es
una matriz diagonal.
(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
70 UMU Mtodos Numricos, 2007-2008
Se denominan valores singulares de una matri z A a las races cuadradas positivas de los
z hermitiana
valores propios de la matri (o
A A si A es real) que siempre son positivos
At A
(comprobadlo como ejercicio). Los valores singulares son todos > 0 si A es no singular. En
efecto:
Ap = 0 A Ap = 0 p A Ap = 0 (Ap) (Ap) = 0 Ap = 0.
Teorema 3.1.7 Si 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
U t AV
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.
con V unitaria/ortogonal.
si fj es el vector columna de AV y fj 6= 0 ponemos uj = j fj .
1
En este apartado vamos a enunciar los resultados para matrices complejas hermitianas aun-
que tambin se aplican a las matrices reales simtricas simplemente sustituyendo los adjetivos
hermitiana, unitaria, adjunta y compleja por simtrica, ortogonal, traspuesta
y real.
Para caracterizar los valores propios de una matriz hermitiana (recordad que todos son n-
meros reales ) vamos a hacer uso de la siguiente denicin
Observad tambin que RA toma los mismos valores en toda la semirecta denida por v :
v
RA (v) = RA .
kvk2
Teorema 3.1.9 Sea A una matriz hermitiana de dimensin n, con valores propios
1 2 n ,
y con una base ortonormal de vectores propios p1 , ..., p2 , e.d. tales que
(pi , pj ) = ij , y Api = i pi .
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
Sk = {E0 }.
Los valores propios de A admiten las siguientes caracterizaciones
(i) k = RA (pk ).
(ii) k = m
ax{RA (v) : v Ek \ {0}}.
(iii) k = mn{RA (v) : v Ek1 }.
(iv) ax{RA (v) : v E \ {0}}. (Courant-Fischer)
k = mnESk m
(v) axESk1 mn{RA (v) : v E}. (Courant-Fischer)
k = m
Demostracin: [Prueba completa en Ciarlet [3] seccin 1.3]
Ideas que intervienen
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 = ... el vector columna de las coordenadas de v
wn
con respecto a la base {p1 , ..., p2 }, se tiene
v AV w U AU w i |wi |2
P
D
RA (v) = = = = .
w U U w w w |wi |2
P
V V
En la ltima seccin del captulo utilizaremos estas caracterizaciones para calcular nmeros
de condicin de sistemas lineales.
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. En todos los casos
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.
Problema: Encontrar u(x) C 2 ([0, 1]) tal que
(
u00 (x) + c(x)u(x) = f (x), 0 < x < 1,
u(0) = a, u(1) = b.
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 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:
(
u0 (xi ) u(xi )u(x
h
i1 )
, i = 1, 2, ..., N + 1,
u0 (xi+1 )u0 (xi ) u(xi+1 )2u(xi )+u(xi1 )
u00 (xi ) h h2
, i = 1, 2, ..., N.
(c(x1 )h2 + 2)u1 u2 = h2 f (x1 ) + a
+(c(x2 )h2 + 2)u2 = h2 f (x2 )
u1 u3
.. .. ..
. . .
uN 2 +(c(xN 1 )h2
+ 2)uN 1 uN = h2 f (xN 1 )
+(c(xN )h2 + 2)uN = h2 f (xN ) + b
uN 1
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)
En el captulo siguiente veremos mtodos para la resolucin de sistemas lineales con matrices
de coecientes 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.
Sea E un espacio vectorial sobre el cuerpo K. Una norma sobre E es una aplicacin kk :
E [0, +) que cumple las propiedades
al par (E, k k) se le llama espacio vectorial normado. La funcin d(x, y) = kx yk dene una
distanca en E, y la topologa asociada a esta mtrica.
Todas las normas denidas en un espacio de dimensin nita E son equivalentes en el sentido
de que todas denen la misma topologa.
kxk = m
ax{|xi | : i = 1, ..., n}.
74 UMU Mtodos Numricos, 2007-2008
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 mos-
traremos ms adelante.
El siguiente teorema ofrece informacin sobre las normas subordinadas a las ms usuales
Teorema 3.3.1 Sea A = (aij ) Mn (C) una matriz cuadrada. Entonces
kAxk1 X
kAk1 := sup : kxk1 = 1 = max |aij |
kxk1 j
i
kAxk X
kAk := sup : kxk = 1 = max |aij |
kxk i
j
kAxk2 p
kAk2 := sup : kxk1 = 1 = (A A) = kA k2
kxk2
Para las norma k k1 y k k slo hay que utilizar la denicin y buscar los supremos co-
rrespondientes.
Para la k k2 utilizaremos los cocientes de Rayleigh de la seccin anterior
(A Ax, x)
2 (Ax, Ax)
kAk2 = sup = = RA A (x) : kxk1 = 1 .
(x, x) (x, x)
Introduccin y complementos de anlisis matricial. 75
Observad que
kAk2 kAkE nkAk2 .
Si A es normal kAk2 = (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 k k es una norma matricial (subordinada o no),
entonces
(A) kAk.
En sentido recproco, si A es una matriz y > 0, existe una norma matricial subordinada tal
que
kAk (A) + .
Sea p 6= 0 un vector propio del valor propio , || = (A), y sea q un vector tal que la
matriz pq t 6= 0. (Escribe la matriz!)
Para la segunda parte, la idea es considerar el cambio de base que triangula la matriz A e
Tomando
Pn ji u
sucientemente pequeo se tiene j=i+1 | ij | < para i = 1, 2, .., n 1 y
por lo tanto (teorema 3.3. 1) que
Corolario 3.3.3
(A) = nf{kAk : k k es una norma matricial }.
Teorema 3.3.4 Si B es una matriz cuadrada, entonces las siguientes condiciones son equiva-
lentes:
(i) lmk B k = 0,
subordinadas .
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.
El radio espectral tambin servir para medir la rapidez con que convergen los mtodos
iterativos.
Su solucin, es x = 1 e y = 1.
Consideremos ahora el sistema perturbando un poco los trminos independientes.
(
x + y=2
x +1.00001y = 2.
Supongamos que A es una matriz invertible (no singular) y que consideramos las soluciones
de los sistemas
Ax = b y A(x + x) = b + b.
Ax = b y (A + A)(x + x) = b.
Acotando el error relativo en x (esta vez con respecto a kx + xk) en funcin del error
relativo en A se tiene
kxk kAk
kA1 k kAk = kA1 kkAk .
kx + xk kAk
Denicin 3.4.1 Dada una norma matricial subordinada k k y una matriz cuadrada invertible
A, se dene el nmero de condicin de la matriz A con respecto a esta norma por
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 6= 0 entonces
kxk kbk
cond(A) .
kxk kbk
Adems esta desigualdad es la mejor posible en el sentido de que se pueden encontrar un vector
b 6= 0 y un vector b 6= 0 para los que la desigualdad se convierte en igualdad.
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 6= 0 entonces
kxk kAk
kA1 k kAk = kA1 kkAk .
kx + xk kAk
Adems esta desigualdad es la mejor posible en el sentido de que se pueden encontrar un vector
b 6= 0 y una matriz A 6= 0 para los que la desigualdad se convierte en igualdad.
Teorema 3.4.4
donde |1 (A)| y |n (A)| son los valores propios de A de menor y mayor tamao.
(iv) Para toda matriz unitaria U u ortogonal O se cumple cond2 (U ) = cond2 (O) = 1.
(v) El nmero de condicin cond2 (A) es invariante por transformaciones unitarias (cambios
de base ortonormales):
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 complementos de anlisis matricial. 81
Hoja de problemas no 3
Bibliografa
[1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ.
2002.
Paris, 1990.
Interrogantes centrales del captulo
Mtodo de Gauss.
Factorizacin LU y Choleski.
#
Destrezas a adquirir en el captulo
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.
En los tres mtodos propuestos el nmero de operaciones para un sistema n n es del mismo
orden, 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.
a11 0 ... 0 x1 b1
0 a22 ... 0 x2 b2
=
. . ... . . .
0 0 ... ann xn bn
La solucin se reduce a
b1
x1 a11
x2 b2
a22
=
. .
bn
xn ann
y la complejidad del problema se puede medir contando las n operaciones (divisiones) nece-
sarias.
Mtodos Directos para Ecuaciones Lineales 85
bn
xn = An,n
Pn
xk = (bk j=k+1 (Ak,j xj ))/Ak,k para k = n 1, n 2, ..., 1
b1
x1 = An,n
Pk1
xk = (bk j=1 (Ak,j xj ))/Ak,k para k = 2, 3, ..., n
En este caso el mximo nmero de operaciones necesarias para encontrar la solucin tambin
es:
1 + 3 + ... + (2k 1) + .. + (2n 1) = n2
Tal y como recordaris del curso de lgebra lineal, el mtodo de Gauss para resolver sistemas
de ecuaciones
Ax = b
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 diagonal, restando a cada la i = k + 1, ..., n de A(k) y de bk , la correspondiente
(k)
aik
la k multiplicada por el cociente (k) , dejando invariantes las k primeras las.
akk
(k)
! (k)
!
(k+1) (k) aik (k) (k+1) (k) aik (k)
Ai = Ai (k)
Ak y bi = bi (k)
bk .
akk akk
88 UMU Mtodos Numricos, 2007-2008
El nmero mximo de operaciones (sin contar las permutaciones de las o el uso del puntero)
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.
Pn Pn
(iii) g(n) = 2 i=1 n
2 i=1 n n = 23 n3 + 21 n2 76 n.
Tal y como hacais en la asignatura de lgebra lineal, se puede modicar el algoritmo para
calcular la matriz inversa de A. Aunque el clculo de esta es equivalente a resolver los sistemas
Ax = ei (i = 1, ..., n) donde 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.
(k) (k)
|amp | = m
ax{|aij | : i = k, ..., n; j = k, ..., n},
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
4.3. Factorizacin LU
A.x = b LU x = b
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 mn(i,j)
X X
ai,j = li,s us,j = li,s us,j
s=1 s=1
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 colum-
nas de L.
La ecuacin correspondiente al trmino ak,k :
k1
X
ak,k = lk,s us,k + lk,k uk,k
s=1
k1
X
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 :
Una vez determinados los coecientes lk,k y uk,k , volvemos a las ecuaciones iniciales
para escribir:
P
ak,j = k1 s=1 lk,s u s,j +lk,k uk,j
P
lk,k uk,j = ak,j - k1 s=1 lk,s us,j
Pk1
ai,k = s=1 li,s us,k +li,k uk,k
P
li,k uk,k = ai,k - k1 s=1 li,s us,k
Si pk = lk,k uk,k 6=0, la la k ( uk,j ) de U y la columna k ( li,k ) de L estn denidas de forma
nica.
aux = 0. ;
for(k=0;k<n;k++){
aux = A[k][k];
for(s=0;s<k;s++){ // de Fila k de L por Columna k de U.
aux = aux L[k][s]U [s][k];
}
if(aux==0){
Parada: no hay factorizacin LU;
}
L[k][k] = 1.;
U [k][k] = aux;
for(j=k+1;j<n;j++){// de Fila k de L por Columna j de U.
aux = A[k][j];
for(s=0;s<k;s++){ aux = aux L[k][s] U [s][j];
}
U [k][j] = aux;
}
for(i=k+1;i<n;i++){// de Fila i de L por Columna k de U.
aux = A[i][k];
for(s=0;s<k;s++){ aux = aux L[i][s] U [s][k];
}
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
2
H(v) = Id vv , v 6= 0 un vector de Cn ,
vv
H(0) = Id.
~a
~v
(v a)v
H(v)~a = ~a 2 v(v
v v
a) v v
Ejercicio 4.4.1 Demuestra que las matrices H(v) son unitarias y simtricas.
Adems de por las propiedades expuestas en el ejercicio anterior, estas matrices son intere-
santes 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 = .
.
.
, e1 es el primer vector de la base can nica de Cn , y
an
R cumple a1 = |a1 |ei , entonces para v = a kak2 ei e1 se cumple
~a ~v = ~a + k~akei e~1
a1 = |a1 |ei
Demostrac in:
a=0. En el caso real e = 1 es el signo de a1 . Con esta eleccin se evita el nmero v v del
i
Pongamos A0 = A y H0 = Id.
Sea
!
Idk1 0
Hk+1 = e k+1 ,
0 H
!
0
.
Hk es la matriz de Householder H(vk ) con vk = .
.
.
ek
v
Se puede razonar por contradiccin: Si A fuese singular existira x = (x1 , .., xn )t tal que
Ax = 0.
Tomamos k tal que |xk | = kxk = max{|x1 |, ...|xn |}
P
Como j aij xj = 0 para todo i, en particular para i = k se tiene
n
X
akk xk = akj xj .
j=1;j6=k
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.
o
L s mtodos iterativos de la siguiente leccin para sistemas de ecuaciones con este tipo de
(i) A es no singular
(ii) aii > 0 para cada i = 1, ..., n.
(iii) max{|aij | : 1 i, j n} max{|aii | : 1 i n}.
(iv) a2ij < aii ajj .
Mtodos Directos para Ecuaciones Lineales 99
Una matriz simtrica A es denida positiva si y slo si todos sus valores propios son estric-
tamente positivos. Equivalentemente, si y slo si, todas las submatrices principales
a11 ... a1k
.
.
.
.
Ak = . .
ak1 ... akk
tienen determinante estrictamente positivo.
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:
Por una parte C(B t )1 es triangular superior y tiene slo unos en su diagonal. Y tambin,
B C t es triangular inferior con slo unos en la diagonal. As la igualdad de las dos matrices
1
A = B1 1 B t = LDLt .
donde y = Lt x 6= 0 si x 6= 0.
(Ver el teorema 4.4.1 de la seccin 4.4 ].
de [3 )
aux = 0. ;
for(k=0;k<n;k++){
aux = A[k][k];
for(s=0;s<k;s++){ // de Fila k de L por Columna k de L .
t
aux = A[i][k];
for(s=0;s<k;s++){ aux = aux L[i][s] L[k][s];
}
L[i][k] = aux/L[k][k];
}
}
Datos de salida:L (Factorizacin de Choleski A = LLt )o mensaje de error
zacin U de la matriz A es
L
1
1 0 c1
a2 0 1 2
c2
1 1
.. .. .. .. .. ..
A = LU =
. . .
. . .
an1 n3
n2
1
n1
n2 cn1
an n1
n2
1 n
n1
y todos los determinantes de los menores principales son positivos, Escribe una algoritmo
que proporcione la factorizacin de Choleski A = SS t
Hoja de problemas n 4
o
Bibliografa
[1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ.
2002.
Paris, 1990.
resolucin de sistemas de
ecuaciones
Interrogantes centrales del captulo
Mtodo de Jacobi.
Mtodo de Gauss-Seidel.
Mtodo de relajacin.
Destrezas a adquirir en el captulo
Proponemos tres mtodos iterativos concretos a partir de una misma idea general.
104 UMU Mtodos Numricos, 2007-2008
Idea general:
Ax = b
x = T x + c;
donde T es una aplicacin lineal. Si el radio espectral (T ) < 1, la aplicacin T x+c es contractiva
y la solucin del sistema ~x (el punto jo) se obtiene como el lmite de una sucesin de iteradas
funcionales ~xk = T ~xk1 + c, comenzando en una aproximacin inicial ~x0 a la solucin.
2x1 2x2
=1
2x1 + 3x2 + x3 =5
x1 2x3 =7
x1
= x2 + 12
x2 = 23 x1 13 x3 + 35
x3 = 21 x1 72
Denicin 5.1.2 Dado un sistema lineal Ax = b, se llama mtodo iterativo de resolucin del
sistema a cualquier par (T, c) formado por una matriz T y un vector c tales que la solucin de
Ax = b es el nico punto jo de la funcin afn (x) = T x + c, es decir
Ax = b x = T x + c.
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 105
En el siguiente teorema recogemos los resultados estudiados en el captulo 3 que dan condi-
ciones necesarias y sucientes para que un mtodo iterativo sea convergente:
Teorema 5.1.3 Sea T una matriz cuadrada de dimensin n. Entonces son equivalentes:
(iv) Las sucesiones de iteradas ~xk = T ~xk1 + c converge comenzando en cualquier vector ~x0 .
Demostracin:
pT () = 63 + 4 + 1.
Idea general:
Ax = b
1
Aunque no es facil calcular races de polinomios de tercer grado, si q
es fcil comprobar que los ceros del
3 5
polinomio caracterstico (valores propios de T) tienen mdulo menor que 6
<1
106 UMU Mtodos Numricos, 2007-2008
A = M N,
donde M 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 n, A = (aij ), tal que aii 6= 0 para todo 1 i n.
Entonces la matriz diagonal D = (aii ) es muy fcil de invertir. Escribiendo M = D y N = D A
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 = D A = (L + U ):
0 0 0 0 a12 . . . a1n
a21 0 0 0 a23 . . a2n
. . . . . .
L= U = .
. . . . . .
. . 0 . 0 a(n1)n
an1 . . . an(n1) 0 0
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 D de A consiste en construir la sucesin de iteradas
Para realizar los clculos de forma eciente y para utilizarlos en las condiciones de parada co-
menzamos analizando los vectores residuales y observando cmo pueden utilizarse para construir
cada iteracin del mtodo:
xk+1 = xk D1 rk
Cada etapa del clculo de los vectores rk = (rik )i y xk = (xki )i se realiza coordenada a
coordenada, comezando en i=1 y consecutivamente i = 2, 3, ..., n
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:
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 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 xk+1
i ya se conocen los valores de xk+1
j para j < i. La idea en la
En la pgina siguiente est el algoritmo 5.2 correspondiente a este mtodo. Observad que
para la condicin de parada hemos utilizado como vector residual el vector rk , donde cada
una de las coordenadas r
k
i se corresponde con la coordenada i de los vectores A xik b con
ik = (xk+1
x 1 , ..., x k+1 k
i1 , xi , ...xk )t (i = 1, ..., n). Si la sucesin x converge hacia la solucin del
n k
sistema lineal, tambin lo hace x
ik y rk 0.
Para las matrices especiales del captulo anterior se tienen buenos criterios de convergencia:
para todo i = 1, ..., n. Entonces el mtodo de Jacobi y el mtodo de Gauss-Seidel para resolver
el sistema Ax = b son convergentes, y el mtodo de Gauss-Seidel converge al menos a la misma
velocidad que el de Jacobi. De forma ms concreta
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
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
Teorema 5.3.2 Sea A una matriz tridiagonal. Entonces los radios espectrales de las matrices
de los mtodos de Jacobi y Gauss-Seidel cumplen:
(AG ) = (AJ )2
La demostracin de este teorema la podis seguir en el libro de Ciarlet [3, The 5.3-4].
Los mtodos de relajacin consisten en considerar un peso > 0 para corregir las coordenadas
de xk poniendo en la ecuacin 5.2
k
xk+1 = xki r
i
aii i
i1
X n
X
aii xk+1
i = aii xki (aii xki + aij xk+1
j + aij xkj bi )
j=1 j=i+1
i1
X n
X
aii xk+1
i + aij xk+1
j = (1 )aii xki ( aij xkj bi )
j=1 j=i+1
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
la precisin de 10
14 , sin embargo el mtodo de relajacin con w = 0.85 si que las rebaja
signicativamente pues alcanza la solucin en slo 34 iteraciones.
Teorema 5.4.2 Si A es una matriz simtrica denida positiva, el mtodo de relajacin converge
para 0 < < 2.
En general el radio espectral de la matriz del mtodo de relajacin AR() cumple siempre que
(R()) > | 1|. Por lo tanto el mtodo de relajacin slo puede ser convergente si 0 < < 2.
Si A es una matriz simtrica denida positiva, tridiagonal, los mtodos de Jacobi, Gauss-
Seidel y Relajacin para 0<<2 son convergentes y el mnimo de los radios espectrales de las
matrices de los mtodos de Relajacin se alcanza en
2
0 = p ,
1 + 1 (AJ )2
de manera que
La demostracin de este teorema la podis seguir en la seccin 5.3 del libro de Ciarlet [3].
Bibliografa
[1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ.
Aut. de Barcelona, Barcelona, 1993.
2002.
[4] G. Hammerlin and K.H. Homann, Numerical mathematics, Springer-Verlag, New York,
1991.
6 Valores y vectores propios
El metodo de Jacobi.
'
' Destrezas a adquirir en el captulo $
$
que se conoce como la matriz compa nera del polinomio p. Dado que no se dispone de algoritmos
(f
ormulas) que tras un numero finito de operaciones proporcionen las races 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
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 condiciona-
miento. Un buen ejemplo es la matriz
0 0 ... 0
1 0 . . . 0 0
0 1 0 . . . 0
A() = ,
.. ..
. .
0 0 ... 1 0
que en el caso = 0 tiene todas sus valores propios iguales a cero. Si embargo si = 10 40
y la dimensi on de la matriz es 40 entonces, dado que el polinomio caracterstico es 40 =
40 40
10 , todos los valores propios tienen m odulo 1/10: un error de 10 40 se amplifica a un
39
error 10 veces mayor! Debe se nalarse, no obstante, que las matrices simetricas no presentan
este tipo de problemas (la raz on se explica en [2, pp. 3435]), lo que en particular garantiza la
robustez del metodo de Jacobi que explicaremos en la u ltima secci
on de este captulo.
Los metodos numericos de b usqueda de valores y vectores propios se dividen en dos clases en
funcion 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 metodo
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 P k tal que la sucesi
on de matrices
Pk1 APk converge hacia una matriz de valores propios conocidos, es decir, diagonal o triangular.
Esta idea est a en la base de algunos metodos como el de Jacobi para las matrices simetricas que
tambien estudiaremos, o los metodos de Givens-Householder y QR para matrices arbitrarias
(vease el libro de Ciarlet [2]).
Antes de pasar a analizar estos metodos enunciamos y demostramos un resultado conocido
como teorema de los crculos 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 = (a ij ) Mnn (C)
est
a contenido en la uni
on de los discos del plano complejo
X
Di = z C : |z aii | |aij | , i = 1, 2, . . . n.
1jn,j6=i
n:
Demostracio
Sea un valor propio de A. Sea x un vector tal que kxk = 1 y Ax = x y sea k un ndice
tal que |xk | = 1. Como la coordenada k-esima de Ax es x k , tenemos que
n
X
xk = akj xj .
j=1
118 M
etodos Num
ericos (2007/2008)
En consecuencia, X
( akk )xk = akj xj .
j6=k
de modo que Dk .
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 metodo permite, bajo ciertas hipotesis, 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 numero real,
porque el polinomio caracterstico de la matriz tiene coeficientes reales y si un n
umero complejo
es raz del polinomio, es decir, un valor propio de la matriz, entonces su conjugado, que tiene
el mismo m odulo, tambien ser
a valor propio (recordaremos el motivo en el pr oximo captulo).
Supondremos en todo lo que sigue que los valores propios est
an ordenados seg
un su m
odulo:
= |1 | = m
ax{|1 | |2 | |n |}.
El metodo de la potencia tambien se conoce como el metodo del cociente de Rayleigh y consiste
en lo siguiente:
se construye un sucesi
on de vectores x k y una sucesi
on de cocientes rk como
hxk+1 , yi
xk+1 = Axk y rk = ;
hxk , yi
y hxk , yi =6 0 para cada k. Finalmente hay que suponer que | 1 | > |2 | lo que excluye la
posibilidad de que este valor propio dominante 1 sea una raz multiple o compleja del polinomio
caracterstico.
Si se cumplen las hipotesis, lo que normalmente, en la pr
actica, seremos incapaces de verificar
(ese es el principal problema del metodo de la potencia), entonces se demuestra que:
n:
Demostracio
Reescribamos (x) = y (x) = hx, yi y pongamos x0 como combinacion lineal de los elementos
de la base,
x0 = 1 v1 + 2 v2 + + n vn .
Observemos que 0 6= 0 por una de las hip otesis. Notemos que, por la forma en que est a definida
la sucesi k k
on xk , se tiene xk = A x0 , donde A es el resultado de multiplicar la matriz A por
s misma k veces. Como los vectores v j son vectores propios de A, tambien lo ser an para cada
Ak con valores propios kj , y as
n k
X j
xk = 1 k1 v1 + 2 k2 v2 + + n kn vn = k1 1 v1 + j vj =: k1 (1 v1 + k ),
1
j=2
x1 = (1, 2, 4),
x2 = (5, 4, 8),
x3 = (13, 14, 28),
x4 = (41, 40, 80),
x5 = (121, 122, 244).
120 M
etodos Num
ericos (2007/2008)
hx0 , yi = 1,
hx1 , yi = 1,
hx2 , yi = 5,
hx3 , yi = 13,
hx4 , yi = 41,
hx5 , yi = 121,
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 x k 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 x k convergen a
odulos crecen hacia infinito. En general los vectores x k = k1 (1 v1 + k ) no pueden
(1, 1, 2): sus m
converger a ning un vector propio porque o bien convergen a cero si | 1 | < 1, o bien divergen a
si |1 | > 1. Sin embargo la sucesi on
xk k1 (1 v1 + k )
yk := =
kxk k |1 |k k1 v1 + k k
converge al vector propio 1 v1 /k1 v1 k si 1 > 0 y alternativamente (en terminos pares e impa-
res) a los vectores propios 1 v1 /k1 v1 k si 1 < 0.
A la hora de escribir el algoritmo es importante evitar calcular y k obteniendo primero el
correspondiente vector xk y dividiendo luego por su norma, pues como ha quedado dicho los
vectores xk pueden diverger a infinito y los errores se dispararan. En lugar de eso se calcula la
on (yk ) por recurrencia. Partiendo de y 0 = x0 /kx0 k, y supuesto yk conocido, se tendr
sucesi a que
Tomando normas,
kxk k
1 = kyk+1 k = kA(yk )k,
kxk+1 k
es decir,
A(yk )
yk+1 = .
kA(yk )k
Por tanto la sucesi
on (yk+1 ) puede calcularse manejando siempre vectores uniformemente aco-
tados por la norma de la matriz A, con lo que los errores estar
an bajo control.
Valores y vectores propios 121
k
|2 |
|rk 1 | C
|1 |
(ver [3, pp. 236237]). Cuando |2 | est a proximo a |1 | la convergencia es muy lenta. En este
caso se puede acelerar la convergencia haciendo la sucesi on t k del metodo de la 2 de Aitken. La
velocidad de convergencia de esta sucesi on t k depende el cociente | 3|
|1 | . Si |3 | est
a muy proximo a
|2 | no se gana pr acticamente nada en velocidad; en este caso se puede volver a acelerar aplicando
el metodo de Aitken a tk . La velocidad de convergencia de esta nueva sucesi on depender a del
|4 |
cociente | 1|
. Se podra proseguir con estas aceleraciones, aunque desde el punto de vista de la
programaci on del algoritmo no es aconsejable por el riesgo de hacer demasiadas iteraciones.
En el algoritmo 6.1 describimos el metodo 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 metodo de la potencia que permitan obtener infor-
maci
on sobre otros valores propios de A. Por ejemplo, si A es invertible, entonces es valor
propio de A si y solo 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 mnimo bastara aplicar el metodo de la
1
potencia a A 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 x k+1 = A1 xk ,
es mas eficiente resolver el sistema Ax k+1 = xk (guardando las operaciones realizadas sobre la
matriz A para no repetirlas en cada iteraci on). A este metodo se le denomina el metodo 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 metodos de la potencia y de la
potencia inversa aplicados a esta matriz (a estos metodos se les llama metodos de la potencia y
la potencia inversa con desplazamiento) nos daran, respectivamente, el valor propio m as alejado
y mas cercano a . En particular, si tenemos una idea aproximada de donde puede estar situado
un cierto valor propio, el metodo de la potencia inversa con desplazamiento permitir a calcularlo
con bastante rapidez.
122 M
etodos Num
ericos (2007/2008)
1 1 v1 + 2 1 v2 + . . . + n 1 vn = 0,
1 1 v1 + 2 2 v2 + . . . + n n vn = 0.
2 (2 1 )v2 + . . . n (n 1 )vn = 0,
B = A 1 v1 xT (6.1)
n:
Demostracio
Por ser 1 valor propio de vector propio v1 , por la propiedad asociativa del producto de
otesis xT v1 = 1,
matrices y usando la hip
Demostramos a continuaci on que los vectores v j son vectores propios de A de valor propio
j , j = 2, . . . , n.
Notemos para empezar que los vectores v j son no nulos porque j 6= 0 para cada j 6= 1, cada
par de vectores wj , v1 es linealmente independiente y j 1 6= 0 . Adem as,
Avj = (A 1 v1 xT + 1 v1 xT )vj
= Bvj + 1 (v1 xT )vj
= B[(j 1 )wj + 1 (xT wj )v1 ]
+1 (v1 xT )[(j 1 )wj + 1 (xT wj )v1 ]
= j (j 1 )wj
+1 (j 1 )(v1 xT )wj + 1 (xT wj )1 (v1 xT )v1
= j (j 1 )wj
+1 (j 1 )(xT wj )v1 + 1 1 (xT wj )v1
= j (j 1 )wj
+j 1 (xT wj )v1
= j vj ;
en la tercera igualdad hemos usado que w j es vector propio de B de valor propio j y que
Bv1 = 0.
En el metodo de deflaci
on de Wielandt el vector x se elige de acuerdo con la f
ormula
ak1
a
1 k2
x= , (6.3)
1 v1,k ...
akn
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 (a k1 , ak2 , . . . , akn ) es la fila k-esima de la matriz A. En
efecto, observese que (ak1 , ak2 , . . . , akn )T v1 es la componente k-esima del vector Av 1 = 1 v1 , es
decir,
(ak1 , ak2 , . . . , akn )T v1 = 1 v1,k
Valores y vectores propios 125
y por tanto xT v1 = 1.
La ventaja de escoger x de esta manera radica en que la matriz B = A 1 v1 xT tiene ceros
en la fila k-esima, dado que la componente c kj de la matriz 1 v1 xT es el n
umero
1
1 v1,k xj = 1 v1,k akj = akj .
1v1,k
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 dimension 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 metodo de la potencia fije los vectores iniciales x 0 e y
al azar.
126 M
etodos Num
ericos (2007/2008)
x = 1/(1 v1,4 )(a41 , a42 , a43 , a44 ) = (1/(8 2))(0, 0, 0, 8) = (0, 0, 0, 1/2).
128 M
etodos Num
ericos (2007/2008)
A continuaci
on calculamos
B = A 1 (v1 xT )
4 1 0 2 0 0 0 1/2
2 5 0 1 0 0 0 0
= 8
3 1 1 3/2 0 0 0 0
0 0 0 8 0 0 0 1
4 1 0 2 0 0 0 4
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
De nuevo, supongamos que tras aplicar el metodo de la potencia obtenemos el valor propio
dominante 2 = 6 de A0 y un vector propio asociado, digamos v 20 = (1, 2, 1). En este caso
k = 2, con lo que
x0 = 1/(2 v2,2
0
)(a021 , a022 , a023 ) = (1/(6(2)))(2, 5, 0) = (1/6, 5/12, 0).
Ahora
B 0 = A0 2 (v20 (x0 )T )
4 1 0 1/6 5/12 0
= 2 5 0 6 1/3 5/6 0
3 1 1 1/6 5/12 0
4 1 0 1 5/2 0
= 2 5 0 2 5 0
3 1 1 1 5/2 0
3 3/2 0
= 0 0 0 .
2 3/2 1
A esta matriz aplicaramos de nuevo el metodo 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 obtendramos su valor propio dominante,
3 = 3, y el correspondiente vector propio asociado, v 300 = (1, 1). En este caso tomamos k = 1,
de donde
x00 = 1/(3 v3,1
00
)(a0011 , a0012 ) = (1/(3 1))(3, 0) = (1, 0).
Ahora
Tras suprimir la primera fila y columna llegamos a A 000 = (1), que tiene trivialmente como vector
propio 4 = 1 y como vector propio asociado v4000 = (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
w400 = (0, 1)
que son vectores propios de valores propios 3 = 3 y 4 = 1 para A0 , a los que tenemos que
nadir v20 = (1, 2, 1), que era el vector inicial de valor propio 2 = 6 que proporcionaba el
a
metodo 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 v20 , v30 y v40 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
6.3. El m
etodo de Jacobi
Este metodo se emplea cuando buscamos todos los valores propios y una base de vectores
propios de una matriz simetrica real.
Recordemos que las matrices simetricas son diagonalizables: existe una matriz ortogonal
(es decir, una matriz cuya traspuesta coincide con su inversa) tal que
1 0 ... 0
. .
2 . . ..
T
0
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 metodo de Jacobi consiste en ir construyendo una sucesion de matrices ortogonales ele-
mentales(por su forma simple) (Ok ) k=1 de manera que la sucesi
on de matrices:
A0 = A, Ak = OkT Ak1 Ok = (O1 Ok )T A(O1 Ok ) (k 1)
converja hacia una matriz diagonal formada por los valores propios. As, la esperanza ser
a que
on de matrices ortogonales 0 = Id y k = k1 Ok = O1 Ok converja hacia una
la sucesi
matriz ortogonal cuyas columnas formen una base ortogonal de vectores propios.
La idea de la construccion es la de ir anulando en cada paso k dos elementos de la matriz
Ak que esten fuera de la diagonal y en posiciones simetricas (los correspondientes a ciertos
coeficientes pq y qp). Para ello se utilizan rotaciones en el plano determinado por los vectores
onica de R n descritas por las matrices ortogonales:
p-esimo y q-esimo de la base can
p q
1
..
.
1
cos sen
p
1
O=
..
.
1
sen cos
q
1
..
.
1
n:
Demostracio
La norma 1/2
n
X
kAkDOS = a2ij
i,j=1
Si se multiplica una matriz A por la derecha por otra que tiene como vectores
fila, salvo los de las filas 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.
B T = (O T AO)T = O T AT (O T )T = O T AO = B,
(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 v p sen vq y
sen vp + cos vq . Analogamente, el producto O T C tiene los mismos vectores fila que C excepto
que los vectores fila p-esimo y q-esimo de C, w p y wq , son reemplazados respectivamente por
cos wp sen wq y sen wp + cos wq .
As pues, B y A tienen los mismos coeficientes salvo los de las filas y las columnas p y q.
M as a
un, los coeficientes de los lugares pp, pq, qp y qq est
an conectados por la igualdad
! ! ! !
bpp bpq cos sen app apq cos sen
= ,
bqp bqq sen cos aqp aqq sen cos
y razonando como en (i) obtenemos a2pp + a2qq + 2a2pq = b2pp + b2qq + 2b2pq independientemente de
lo que valga .
ormulas trigonometricas cos 2 = cos 2 sen2
Haciendo operaciones y usando las conocidas f
y sen 2 = 2 sen cos , obtenemos
app aqq
bpq = bqp = apq cos 2 + sen 2.
2
Valores y vectores propios 133
Por tanto, si elegimos como en el enunciado de (ii) se tendr a que b pq = bqp = 0 y en conse-
cuencia, dado que los coeficientes en las diagonales principales de A y B son los mismos excepto
los correspondientes a los lugares pp y qq, obtenemos
n
X n
X
b2ii = a2ii + 2a2pq .
i=1 i=1
2
(i) Si vemos Mnn (R) como el espacio eucldeo Rn y en el usamos la norma eucldea k kDOS
habitual, es decir,
1/2
n
X
kAkDOS = a2ij
i,j=1
y escribamos t = tg . Entonces
cos2 sen2 1 tg 2 1 t2
x = cot 2 = = = ,
2 sen cos 2 tg 2t
y de aqu t2 + 2xt 1 = 0. Despejando t en funcion de x obtenemos t = x x2 + 1, y con
el dato adicional de que |t| 1 (porque || /4) podemos precisar mas:
(
x + x2 + 1 si x 0,
t= (6.5)
x x2 + 1 si x < 0.
134 M
etodos Num
ericos (2007/2008)
De nuevo recordando que || /4 (con lo que cos > 0) y usando que tg 2 + 1 = 1/ cos 2 ,
obtenemos
1
c= (6.6)
t2+1
y
t
s= (6.7)
2
t +1
para c = cos y s = sen . Ahora podemos encontrar expresiones muy convenientes para b pp y
bqq :
an
alogamente, bqq = aqq + tapq .
Ya estamos en condiciones de describir el metodo de Jacobi:
(iv) Se calculan los coeficientes de la matriz k+1 = (ij ) a partir de los coeficientes de
k = (oij ) de acuerdo con las f
ormulas
ip = coip soiq ,
Valores y vectores propios 135
iq = soip + coiq ,
ij = oij si j 6= p, q.
(v) Como las sumas de los cuadrados de los coeficientes de las matrices A k son siempre las
mismas pero las sumas de los cuadrados de sus coeficientes diagonales son estrictamente
crecientes, esperamos que la sucesi
on (A k ) 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.
b22 = a22 = 4,
b23 = b32 = a32 = 0,
2 2
b24 = b42 = sa21 + ca24 = (1) + (1) = 2,
2 2
b33 = a33 = 0,
2 2
b34 = b43 = sa31 + ca34 = (3) + (3) = 0,
2 2
As pues,
3 0 3 2 0
0 4 0 2
A1 = .
3 2 0 0 0
0 2 0 5
c 0 0 s 2/2 0 0 2/2
0 1 0 0 0 1 0 0
1 = = .
0 0 1 0 0 0 1 0
s 0 0 c 2/2 0 0 2/2
A la hora de escribir un algoritmo con este metodo usaremos como condici on de parada
que los coeficientes de Ak fuera de la diagonal son suficientemente peque nos o bien que se
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 infinito. De hecho probaremos enseguida que la sucesion (A k ) 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
suficientemente parecidas) lanzaremos un mensaje de advertencia (que no de error) pues los
vectores de k en el momento de la parada no tienen por que aproximar a los vectores propios
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
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
Lema 6.3.3 Si (xk ) es una sucesi on acotada en un espacio vectorial normado de dimensi on
on y lm k kxk+1
finita X sobre R, (xk ) posee una cantidad finita de puntos de acumulaci
xk k = 0, entonces (xk ) es una sucesi
on convergente.
n:
Demostracio
No es restrictivo suponer X = Rn .
Usamos la hip otesis lmk kxk+1 xk k = 0 para concluir que, de hecho, los
terminos de sucesi
on estan todos en la misma bola.
Es sabido que dos espacios vectoriales normados sobre R de la misma dimensi on (finita)
son homeomorfos. Por ejemplo, es sencillo demostrar que cualquier isomorfismo lineal es un
homeomorfismo. Por tanto podemos suponer, sin perdida de generalidad, que X = R n .
Sean ai , 1 i M , los puntos de acumulaci on de la sucesi
on (x k ). Entonces, para cada
> 0, existe un natural l() tal que si k l() entonces
M
[
xk B(ai , )
i=1
para cada m. Pero sabemos que en R n cada sucesi on acotada, en particular (x km ), posee alg un
punto de acumulacion. Este punto de acumulaci on, que tambien lo es de (x k ), no puede estar en
ninguna de las bolas B(ai , ), en contradicci
on con el hecho de que los puntos a i son los u nicos
puntos de acumulacion de (xk ).
Elijamos en particular
1
0 = mn kai ai0 k > 0
3 i6=i0
y encontremos l0 tal que
M
[
xk B(ai , 0 ), kxk+1 xk k < 0
i=1
140 M
etodos Num
ericos (2007/2008)
para cada k l0 (tambien hemos usado la hip otesis lm k kxk xk+1 k = 0).
Sea i0 tal que xl0 B(ai0 , 0 ). Como kxl0 ai0 k < 0 y kxl0 +1 xl0 k < 0 , obtenemos
kxl0 +1 ai0 k < 20 por la desigualdad triangular y por tanto, gracias de nuevo a la desigualdad
triangular y a la definicion de 0 , kxl0 +1 ai k > 0 para cada i 6= i0 . Esto significa que xl0 +1
no puede pertenece a ninguna de las bolas B(a i , 0 ) excepto tal vez a la bola B(ai0 , 0 ). Como
de hecho xl0 +1 ha de estar en alguna de las bolas, la conclusi on es que x l0 +1 B(ai0 , 0 ).
Reiterando el razonamiento, concluimos que x k B(ai0 , 0 ) y xk / B(ai , 0 ) si i 6= i0 para cada
k l0 .
Vemos, pues, que ninguno de los puntos a i , i 6= i0 , puede ser punto de acumulaci on de (x k ), es
decir, ai0 es el u
nico punto de acumulaci on de (x k ). Esto equivale a decir que lmk xk = ai0 .
n:
Demostracio
Demostramos la primera parte del teorema. Para ello seguiremos el siguiente esquema:
k n(n 1)|akpq |2
an las matrices Id A k y Id A
Como las matrices Ak y A son semejantes, tambien lo ser
para cada R, con lo que deducimos que sus determinantes son los mismos y por tanto
det( Id A) = det( Id D)
para cada R.
Estamos diciendo que polinomios caractersticos 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 caractersticos 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 finito de puntos de acumulacion, cada uno de ellos de la forma
on de los ndices {1, 2, . . . , n}.
diag((1) , . . . , (n) ) para una cierta permutaci
(iii) Recordemos que
0
si i 6= p, q,
k+1 k
aii aii = tg k akpq si i = p,
tg k akpq si i = q,
donde k (/4, 0) (0, /4]. Como | tg k | 1 y |akpq | kBk kDOS para cada k, y adem
as se
tiene lmk Bk = 0 por (i), concluimos que lmk (Dk+1 Dk ) = 0.
(iv) Observemos que
kDk kDOS kAk kDOS = kAkDOS
2akpq
tg 2k =
akqq akpp
para cada k. Enfatizamos que los ndices p y q dependen de k, pero para simplificar la notaci on
no hacemos explcita esta dependencia. Como los coeficientes a kii de la diagonal principal de las
matrices Ak convergen a los valores propios (i) y dichos valores propios son distintos dos a
dos, existir umero l suficientemente alto tal que si k l entonces
a un n
1
mn |akii akjj | mn |i j | =: M > 0;
i6=j 2 i6=j
en particular, |akqq akpp | M para cada k l. Como todos los coeficientes fuera de la diagonal
principal de Ak tienden a cero, la sucesi on (akpq ) tiende a cero (aunque los ndices p y q vayan
variando con k). As pues, (tg 2 k ) tiende a cero e igualmente (k ) tiende a cero. En resumen,
hemos probado que
lm Ok = Id.
k
lm (k+1 k ) = 0.
k
(iii) En el Captulo 3 (Teorema 3.3.1) se vio que la norma kk 2 de todas las matrices ortogonales
2
es 1. Como en Mnn (R) (que puede verse como el espacio eucldeo R n ) todas las normas son
Valores y vectores propios 143
equivalentes, existe en particular una cierta constante > 0 tal que kBk DOS kBk2 para
cada B Mnn (R). De esto se deduce que kOkDOS 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 M
etodos Num
ericos (2007/2008)
Bibliografa
[1] R. L. Burden y J. D. Faires, An
alisis Numerico, Grupo Editorial Iberoamerica, Mexico,
1985.
'
7
Evaluaci
Ceros de polinomios
Ceros de polinomios. Teorema fundamental del Algebra.
Localizaci
on de ceros de polinomios.
Metodos numericos para aproximaci
on de ceros:
'
# Destrezas a adquirir en el captulo $
Definamos
c(z) = bn z n1 + bn1 z n2 + + b2 z + b1 ,
con los coeficientes 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 ,
1 4 7 5 2
2 2 4 6 2
b4 = 1 b3 = 2 b2 = 3 b1 = 1 b0 = 0
Al derivar en la expresi on (7.1) se tiene que p 0 (z) = c0 (z)(z z0 ) + c(z) y por lo tanto
p0 (z0 )
= c(z0 ). As, para evaluar la derivada p 0 (z0 ) bastar
a con aplicar el esquema de Horner
a c(z) en el punto z0 . N otese que estamos usando aqu derivaci on compleja: la definici
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 M
etodos Num
ericos (2007/2008)
El esquema de Horner aplicado a c(z) nos proporciona c(z 0 ) y el polinomio cociente m(z) de
c(z) entre (z z0 ), que sustituido en la factorizaci
on de p nos da la expresi
on
p(z) = cn (z z0 )n + cn1 z n1 + + c1 (z z0 ) + c0 .
Ve
amoslo en el siguiente ejemplo.
on el polinomio p(z) = z 4 4z 3 + 7z 2 5z 2 en
Ejemplo 7.1.2 Desarrollamos a continuaci
potencias de (z 3):
1 4 7 5 2
3 3 3 12 21
1 1 4 7 c0 = 19
3 3 6 30
1 2 10 c1 = 37
3 3 15
1 5 c2 = 25
3 3
c4 = 1 c3 = 8
As pues, p(z) = 1(z 3)4 + 8(z 3)3 + 25(z 3)2 + 37(z 3) + 19.
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 raz de p(z). La f
ormula (7.1) nos
da la factorizacion p(z) = (z z0 )c(z). A la obtenci
on del polinomio c(z) se le llama deflaci on
de p(z) en z0 (ver el Ejemplo 7.1.1).
Si c(z0 ) = 0 podemos factorizar c obteniendo c(z) = (z z 0 )c1 (z) y p(z) = (z z0 )2 c1 (z).
As seguiremos hasta llegar a una factorizaci on de p de la forma
Teorema 7.2.1 (teorema fundamental del Algebra; Gauss, 1799) Todo polinomio no
constante con coeficientes complejos tiene al menos una raz compleja.
Ceros de polinomios 151
p(z) = a0 + a1 z + + an z n
con an 6= 0.
Para ver que z0 es una raz 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 z 0 de manera que |p(z)|
restringida a esa recta tome valores estrictamente menores que |p(z 0 )|. En con-
secuencia, |p(z)| no tiene un mnimo en z 0 , en contradicci
on con la elecci
on de
z0 .
|p(z)| |p(z0 )|((1 r k |b0 |) + r k+1 |h(z)|) = |p(z0 )|(1 r k (|b0 | r|h(z)|)).
y por lo tanto
|p(z)| |p(z0 )|(1 r k (|b0 | r|h(z)|)) < |p(z0 )|(1 0,5r k |b0 |) < |p(z0 )|.
Esta u
ltima cadena de desigualdades nos da la contradicci
on esperada.
152 M
etodos Num
ericos (2007/2008)
7.3. Localizaci
on de ceros
Para aplicar alguno de los metodos que enseguida describiremos para aproximar races 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
races de un polinomio, lo que ser
autil para elegir nuestras aproximaciones iniciales.
Teorema 7.3.1 Todas las races del polinomio p(z) = a 0 + a1 z + + an z n de grado n est
an
en el disco de centro 0 y radio
1
=1+ ax{|a0 |, . . . , |an1 |}.
m
|an |
n:
Demostracio
Ceros de polinomios 153
Vamos a ver que para |z| > se tiene |p(z)| > 0. As, todas las races de p(z) est
an
dentro del disco de centro 0 y radio . Solo usamos la desigualdad triangular.
M
Sean M = m ax{|a0 |, |a1 |, . . . , |an1 |} y como en el enunciado. Entonces 1 = |an | . Por
tanto, si |z| > se tiene que
M
|an |(|z| 1) > |an |( 1) = |an | = M.
|an |
Ahora es suficiente hacer uno de la desigualdad triangular en la siguiente cadena de desigual-
dades:
|p(z)| = | a0 + a1 z + + an1 z n1 + an z n |
|z|n 1
= |an ||z|n M
|z| 1
|z|n
|an ||z|n M
|z| 1
n 1
= |z| |an | M
|z| 1
|z|n
= |an |(|z| 1) M
|z| 1
|z|n
> (M M ) = 0
|z| 1
1.5
0.5
-0.5
los valores del polinomio real |p(x)| comprendidos entre 0,5 y 2 cuando x varia en el intervalo
real [8, 8] y observamos que el polinomio s olo tiene dos races reales en los cortes de la gr
afica
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
angulo [1, 4] [2,5, 2,5] del plano complejo, contenido en el disco con centro en el origen
rect
y radio 8, y visualizamos la posici on de las cuatro races (las dos reales y las dos complejas
conjugadas).
154 M
etodos Num
ericos (2007/2008)
-1
-2
-1 0 1 2 3 4
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 tambien una acotaci
on inferior?
La respuesta a esta cuesti
on es afirmativa y para conseguir encontrar una acotaci on inferior
vamos a recurrir al habitual truco de invertir la variable, es decir, hacer el cambio z = w1 que
transforma n
umeros z peque nos en numeros 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 z 0 = 0 es una raz 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 6= 0. De la expresi
on deducimos sin m as que 0 es una raz de p de multiplicidad k y el
problema de busqueda de races 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 6= 0 y an 6= 0.
Haciendo z = w1 tenemos p(z) = p( w1 ) = w1n a0 wn + a1 wn1 + + an1 w + an . Como
1
w 6= 0, resulta que p(z) = 0 si, y s olo si, q(w) = a 0 wn + a1 wn1 + + an1 w + an = 0.
Ahora hacemos uso del teorema de localizaci on y podemos asegurar que p(z) = 0 s olo cuando
1
|w| = |z| 0 (|z| 10 ), donde
1
0 = 1 + ax{|a1 |, . . . , |an |}.
m
|a0 |
7 9
Volviendo al Ejemplo 7.3.2, para p(z) = z 4 4z 3 + 7z 2 5z 2, 0 = 1 + 2 = 2 y podemos
an en el anillo A = {z : 92 |z| 8}.
asegurar que las races de p est
Reuniendo la observaci
on con el Teorema 7.3.1, tenemos el siguiente resultado:
7.4. El m
etodo de Newton para polinomios
En un captulo anterior estudiamos el metodo de Newton para aproximar ceros de funciones
p(z), y ya sabemos que si partimos de una aproximaci on inicial x 0 suficientemente pr
oxima a
un cero simple de p, la iteraci
on de Newton dada por
p(xk )
xk+1 = xk
p0 (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
p0 , tal y como reflejamos en la versi
on del algoritmo de Newton para polinomios en la pagina
siguiente. Observese que el algoritmo tiene tambien sentido para polinomios con coeficientes
complejos, pero no que no puede utilizarse para aproximar races complejas de polinomios con
coeficientes reales a menos que partamos de una condici on inicial compleja.
Otra propiedad del metodo 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 raz del polinomio por una iterada de
Newton.
Teorema 7.4.1 Sean xk y xk+1 dos iteraciones sucesivas del metodo de Newton para un poli-
nomio p(z) de grado n 1. Entonces existe un cero de p(z) en el disco complejo de centro x k
y radio n|xk+1 xk |.
n:
Demostracio
n n n n
0
X Y X p(z) X 1
p (z) = an (z zj ) = = p(z) .
z zi z zi
i=1 j=1,j6=i i=1 i=1
p(xk ) 1
xk+1 xk = = Pn 1 .
p0 (xk ) i=1 x k zi
1
|xk+1 xk | = Pn 1
| i=1 xk zi |
1
Pn 1
i=1 |xk zi |
1 1
> Pn 1 = 1 = |xk+1 xk |.
i=1 n|xk+1 xk | |xk+1 xk |
Ejemplo 7.4.2 Calculando con ocho cifras decimales, las cinco primeras iteraciones del metodo
de Newton aplicado al polinomio de los ejemplos anteriores p(z) = z 4 4z 3 + 7z 2 5z 2 con
inicio en x0 = 0 y estimaciones del error con respecto a la raz pr
oxima a x 0 = 0 (vease la
Figura 7.1) obtenemos los siguientes datos:
En general no tenemos ningun 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 races y coeficientes reales.
Si
rn rn1 r2 r1
son los ceros de p(z) ordenados en forma decreciente y x 0 > r1 , entonces el metodo de Newton
proporciona una sucesion de iteradas x k estrictamente decreciente convergente hacia r 1 .
158 M
etodos Num
ericos (2007/2008)
n:
Demostracio
El teorema de Rolle para funciones reales de variable real nos asegura que entre
cada dos races reales consecutivas, r k y rk+1 , hay una raz sk de la derivada de
p(x),
rn sn1 rn1 r2 s1 r1 .
En consecuencia p0 (x) tiene n 1 ceros reales s1 , . . . , sn1 y todos son menores
que r1 , as que p0 (x) no se anula en [r1 , ).
Enfatizamos para empezar que todas las races de p 0 (x) (y del mismo modo las de p00 (x))
est
an entre rn y r1 incluso que el caso de que p(x) tenga races repetidas (porque si r es una raz
the p(x) de multiplicidad m entonces tambien lo es de p 0 (x) con multiplicidad al menos m 1).
Podemos suponer que p(x) > 0 para cada x > r 1 (en caso contrario, cambiaramos el signo
de p; n
otese que el metodo de Newton proporciona la misma sucesi
on de n
umeros).
Como p(x) converge a o cuando x , se tendr a en este caso lm x p(x) = . Si
an es el coeficiente principal de p(x), sabemos que el comportamiento asint otico de p(x) y a n xn
es el mismo, con lo que se concluye que a n > 0. Como los coeficientes principales de p 0 (x) y p00 (x)
son, respectivamente, nan y n(n 1)an , concluimos de igual manera lmx p0 (x), p00 (x) =
y por tanto (ya que ni p0 (x) ni p00 (x) se anulan a la derecha de r1 ) que p0 (x), p00 (x) > 0 para
cada x > r1 .
Comprobemos que en estas condiciones el metodo de Newton converge a r 1 siempre que la
condici
on inicial x0 est
a a la derecha de r1 .
on de iteradas por el metodo de Newton, es decir, x k+1 = xk p(xk )/p0 (xk ).
Sea (xk ) la sucesi
Basta demostrar que la sucesi on de errores e k = xk r1 es positiva y decreciente, pues entonces
(xk ) converge a un n umero r r1 , y de hecho r = r1 ya que de otro modo se llegara, tomando
lmites en la expresion xk+1 = xk p(xk )/p0 (xk ), a la contradicci
on r = r p(r)/p 0 (r).
Probamos a continuaci
on que (ek ) es una sucesi
on positiva y decreciente. Haciendo desarrollos
de Taylor de orden dos obtenemos 0 = p(r 1 ) = p(xk ek ) = p(xk ) p0 (xk )ek + (1/2)p00 (k )e2k
para un cierto n
umero k comprendido entre r1 y xk . Por tanto
Para el caso de polinomios con todas sus races reales, el corolario anterior nos marca un
camino a seguir para localizar todas las races. Una vez localizada la mayor raz r 1 si hacemos
on de p en r1 obtenemos un polinomio de grado n 1 con todas sus races reales al
la deflaci
cual podemos aplicar el proceso. Naturalmente para un polinomio dado no podemos saber de
antemano si todas las races son reales, pero incluso entonces esta puede ser una buena estrategia
para fijar el valor inicial.
7.5. El m
etodo de Laguerre
Este metodo se emplea en varios paquetes de c
alculo debido a que sus propiedades de conver-
gencia son muy favorables: puede probarse que tiene convergencia de orden tres para condiciones
iniciales pr
oximas a una raz simple. Ademas sus c
alculos numericos son bastante robustos.
Antes de describir este algoritmo necesitamos algunos resultados previos que nos ayudar an a
localizar las races de un polinomio. En un primer lema vamos a posicionar n n umeros reales en
un intervalo centrado en su media aritmetica y con longitud medida en terminos de su desviacion
tpica. Sin llegar a describir y usar estos estadsticos lo enunciamos como sigue:
Pn Pn 2
Lema 7.5.1 Dados n n umeros reales v1 , v2 , . . . , vn , sean = j=1 vj y= j=1 vj . Entonces
todos los n
umeros vj pertenecen al intervalo de extremos
p
(n 1)(n 2 )
.
n
n:
Demostracio
Vamos a ver que para un polinomio q(x) de grado 2 que toma valores positivos
para |x| grande, q(vj ) 0 en cada n
umero vj . Por lo tanto estos n
umeros est
an
en el intervalo cuyos extremos son las dos races del polinomio q, que van a
coincidir con los n
umeros
p
(n 1)(n 2 )
.
n
No es restrictivo trabajar s
olo con el n
umero v 1 . Para los otros n
umeros basta con permutar
las posiciones, y observar que estas permutaciones no afectan a los valores de y .
Tenemos
2 2v1 + v12 = ( v1 )2
= (v2 + + vn )2
= (1.v2 + 1.v3 + + 1.vn )2
(n 1)(v22 + v32 + + vn2 )
= (n 1)( v12 )
= (n 1) nv12 + v12 ;
160 M
etodos Num
ericos (2007/2008)
Por tanto
0 (n 1) nv12 + 2v1 2
y
nv12 2v1 + 2 (n 1) 0.
Considerese el polinomio q(x) = nx 2 2x + (2 (n 1)) y notemos que q(v1 ) 0. Como
lmx q(x) = +, q(x) cambia de signo, q tiene races reales, y v 1 est
a comprendido entre las
dos races reales
p p
2 n(2 (n 1)) (n 1)(n 2 )
x= = .
n n
En la secci
on anterior analiz
abamos las distancias de un punto a las races de un polinomio
escribiendo
n
p0 (x) X 1
= ,
p(x) x zj
j=1
Lema 7.5.2 Sea p(x) un polinomio de grado n con coeficientes reales cuyos ceros, z 1 , . . . , zn ,
1
son todos reales. Entonces para cualquier n
umero real x que no sea cero de p, los n
umeros xz j
est
an en el intervalo de extremos
p0 (x) (n 1)2 p0 (x)2 n(n 1)p(x)p00 (x)
p
.
np(x)
p0 (xi)
(ii) Se calcula A = p(xi) (A = en la discusi
on anterior).
A (n1)(nBA2 )
(iv) Se elige el signo para que C = n tenga el mayor valor absoluto.
1
(v) Se toma xf = xi C como la nueva aproximaci
on de la raz de p.
Es importante resaltar que aunque (al igual que para el metodo de Newton) s olo podremos
garantizar la convergencia cuando todas las races del polinomio sean reales, el algoritmo tiene
sentido (y a menudo converge) cuando el radicando (n 1)(nB A 2 ) se hace negativo en alg un
momento. A partir de entonces los terminos x k de la sucesion de iterados se hacen complejos.
De hecho, el algoritmo tambien sentido para condiciones iniciales complejas e incluso para
polinomios con coeficientes complejos.
El siguiente teorema asegura la convergencia global del metodo de Laguerre aplicado a po-
linomios con todas sus races reales. El metodo converge a una raz para cualquier condici
on
inicial que se tome.
Teorema 7.5.3 Sea p(x) un polinomio real cuyas races son todas reales. Entonces la sucesi
on
de iteradas de Laguerre con un punto inicial arbitrario x 0 converge mon
otonamente hacia uno
de los dos ceros de p que tiene m
as pr
oximos.
162 M
etodos Num
ericos (2007/2008)
Algoritmo 7.3 M
etodo de Laguerre
Datos de entrada:
a0 , a1 , . . . , an (coeficientes del polinomio p); z (condici on inicial);
tol (tolerancia para la parada); nmax (n umero m aximo de iteraciones);
Variables:
xini, xfin; // variables para almacenar x k y xk+1
b, c, d; // variables para almacenar p(x k ), p0 (xk ) y p00 (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), p0 (xini) y p00 (xini) con Horner.
for(k=n-1;k>=2;k--){
b = b xini + ak ;
c = c xini + b;
d = d xini + c; // d = p00 (xini)/2
}
d = 2d; // d = p00 (xini)
b = b xini + a1 ;
c = c xini + b; // c = p0 (xini)
b = b xini + a0 ; // b = p(xini)
if(b=0){
Parada: raz en xini
}
else{
(c2 b d)/b2 , C = (1/n) (A (n 1)(nB A2 ).
p
// A = c/b, B = p
1
aux1 = nb (c + (n 1)2 c2 n(n 1)bd);
1
p
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
xfin = xini Cmax ;
}
if(|xfin-xini|<tol){
Parada: raz en xini;
}
else{
xini = xfin
}
}
Parada: no hay convergencia en nmax iteraciones
Datos de salida: Raz en xini o mensaje de error.
Ceros de polinomios 163
n:
Demostracio
r x x r
j 1 0 j+1
r x x r
j 1 0 j+1
p(x)
Si por ejemplo rj < x0 < rj+1 con p(x) > 0 entre las dos races y adem as
0
p (x0 ) > 0, entonces p(x) es creciente entre r j y x0 y vamos a ver que rj
x1 < x0 < rj+1 , que p(x1 ) > 0 y que p0 (x1 ) > 0. Repitiendo el argumento,
rj x2 < x1 < x0 < rj+1 . Es decir, xk es monotona decreciente y est
a acotada
inferiormente por rj y, en consecuencia, es convergente,
Vamos a restringirnos al caso rj < x0 < rj+1 con p(x) > 0 entre las dos races y adem as
p0 (x0 ) > 0. Los otros casos se pueden analizar en la misma forma.
1
Como x0 no es una raz, el Lema 7.5.2 posiciona todas las fracciones x0 r j
en el intervalo de
extremos
p0 (x0 ) + (n 1)2 p0 (x0 )2 n(n 1)p(x0 )p00 (x0 )
p
u(x0 ) =
np(x0 )
y
p0 (x0 ) (n 1)2 p0 (x0 )2 n(n 1)p(x0 )p00 (x0 )
p
v(x0 ) = .
np(x0 )
En particular, para las dos races r j y rj+1 se tiene que
1 1
v(x0 ) <0< u(x0 ).
x0 rj+1 x0 rj
De estas desigualdades se sigue que
1 1
x0 rj+1 <0< x 0 rj
v(x0 ) u(x0 )
y
1 1
rj x0 < x0 < x0 rj+1 .
u(x0 ) v(x0 )
164 M
etodos Num
ericos (2007/2008)
Como p0 (x0 ) > 0, se tiene que |v(x0 )| < |u(x0 )| y x1 = x0 u(x1 0 ) , lo que prueba la desigualdad
buscada rj x1 < x0 . Adem as, p es creciente entre rj y x0 , por lo que tambien se tiene
p0 (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 metodo de Newton, la construcci on de
Laguerre tambien proporciona un disco donde localizar races expresado en terminos 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).
Ejemplo 7.5.5 Las cinco primeras iteraciones del metodo de Laguerre aplicado a
p(z) = z 4 4z 3 + 7z 2 5z 2
Observese como en la primera aproximacion del ejemplo anterior se tienen fijas 2 cifras
decimales, en la segunda pasan a ser 6 las cifras de precision y en la tercera se alcanza la
precisi
on de la m
aquina, en consonancia con que el orden de convergencia de este metodo es 3.
7.6. Separaci
on de races reales. Sucesiones de Sturm.
En esta seccion vamos a trabajar con polinomios con coeficientes reales buscando localizar
intervalos en los que podamos asegurar la existencia de races reales y determinar el n umero
de races 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, Seccion 5.2.4, pp. 404406].
Vamos a utilizar las sucesiones de Sturm para construir un metodo que cuenta el n umero
de races reales que un polinomio tiene en un intervalo. Despues usamos ese metodo 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 races (vease el teorema 7.3.1); este intervalo contiene a todas las
Ceros de polinomios 165
Definici
on 7.6.1 Una sucesi
on de funciones reales continuas
{f0 , f1 , . . . , fm }
La tercera condici
on implica que f 0 s olo puede tener races simples, y tanto esta condici
on como
la siguiente permiten detectar las races de f 0 observando el n umero de cambios n(x) de signo
on {f0 (x), f1 (x), . . . , fm (x)} tal y como establece el siguiente teorema.
en la sucesi
n:
Demostracio
Bastar
a con observar que n(x) se incrementa en una unidad al pasar por cada
una de las races de f0 , y permanece constante en otro caso.
x0 h x 0 x0 + h x0 h x 0 x0 + h
fi1 fi1 + + +
fi 0 fi 0
fi+1 + + + fi+1
166 M
etodos Num
ericos (2007/2008)
x0 h x 0 x0 + h x0 h x 0 x0 + h
f0 0 + (f00 (x0 ) > 0) f0 + 0 (f00 (x0 ) < 0)
f1 + + + (f1 (x0 ) > 0) f1 (f1 (x0 ) < 0)
on {f 0 , f1 } al pasar por x0 .
En los dos casos deja de haber un cambio de signo en la sucesi
En resumen, el numero de cambios de signo n(x) s olo disminuye en una unidad al pasar de
izquierda a derecha sobre cada una de las races de f 0 . De esta forma, el total n(a) n(b) mide
el n
umero de races reales de f 0 en (a, b].
Se define p1 = p0 (x).
Para i = 1, 2, 3, . . . se define 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 polino-
mio pi1 entre pi . Cuando la sucesi on de Sturm se construye con un ordenador se elige
simplemente ci+1 = 1. Cuando lo hacemos a mano, conviene elegirlo de manera que los
coeficientes del polinomio pi+1 sean tan simples como sea posible. En otros terminos:
Esta construcci
on se realiza hasta que p m+1 = 0.
En est
a construcci
on el polinomio p m es el m un divisor de p0 y p1 = p0 .
aximo com
Por u
ltimo consideramos la sucesi
on
p0 p1 pm
f0 = , f1 = , . . . , fm = =1 .
pm pm pm
Observese que f0 es un polinomio que tiene las mismas races que p 0 pero, para f0 , todas
las races son simples. En efecto, las races m ultiples de p son las races comunes de p y
0
p , es decir, son las races de pm . Si una raz x0 tiene multiplicidad k en p, entonces tiene
multiplicidad k 1 en p0 y en pm . Por consiguiente x0 es una raz simple de f0 = ppm .
Demostracio n: Todas las funciones f0 , . . . , fm son polinomios, as que en particular son fun-
ciones continuas (primera condicion en la definici on de sucesiones de Sturm).
pm
Por la definici
on, fm = pm = 1 es constante y no nula. Por tanto se cumple la segunda
condici
on de Sturm.
Supongamos que f0 (x0 ) = 0 para un cierto x0 . Ello equivale a x0 es una raz de p0 , digamos
de multiplicidad m. Entonces
p0 (x) = (x x0 )m q(x)
con q(x0 ) 6= 0. Asimismo,
p1 (x) = p00 (x) = m(x x0 )m1 q(x) + (x x0 )m q 0 (x) = (x x0 )m1 (mq(x) + (x x0 )q 0 (x))
=: (x x0 )m1 t(x)
donde c(x) es divisor de ambos polinomios q(x) y t(x). Pongamos q(x) = a(x)c(x). Entonces
f0 (x) = (x x0 )a(x) y
f00 (x) = (x x0 )a0 (x) + a(x)
con lo que en particular f00 (x0 ) = a(x0 ) 6= 0. Por otro lado
y as f1 (x0 ) = mq(x0 )/c(x0 ) = ma(x0 ). En consecuencia f1 (x0 )f00 (x) = ma(x0 )2 > 0. Esta es la
tercera condici on en las sucesiones de Sturm.
A partir de (7.2), y dividiendo por p m , obtenemos
y se anula s
olo si fi+1 (x0 ) = 0. Si esto ultimo sucediese, podemos repetir el argumento con f i+1 ,
para obtener que
fi (x0 ) = fi+1 (x0 ) = fi+2 (x0 ) = fm (x0 ) = 0.
Como fm (x0 ) = 1 esto no puede suceder. Por lo tanto tambien se cumplir a la u
ltima condici
on
on, lo que completa la prueba de que {f 0 , . . . , fm } es una sucesi
de la definici on de Sturm.
Corolario 7.6.4 Sea p(x) un polinomio con coeficientes reales y constr uyase la correspondiente
on {p0 , p1 , . . . , pm }. Sea V (x) el n
sucesi umero de cambios de signo (los ceros se ignoran) en la
sucesi
on
{p0 (x), p1 (x), . . . , pm (x)}.
Entonces, si p(a) 6= 0 6= p(q), el n
umero de races reales de p en [a, b] es igual a V (a) V (b).
168 M
etodos Num
ericos (2007/2008)
El teorema 7.3.1 localiza todas las races reales de un polinomio p(z) = a 0 +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 races reales en cada intervalo.
construir una nueva lista Lk+1 con las mitades que contienen alguna raz.
Este proceso iterativo puede detenerse cuando tengamos una sola raz en cada intervalo y
la longitud de estos intervalos sea suficientemente peque na. Como el proceso de biseccionar
intervalos no permite aproximarnos a las races de forma r
apida podemos optar por
continuar con el proceso hasta que la proximidad de los extremos de los intervalos sea tan
pequena que nos permita admitir que aproximan a una raz, o
detener la bisecci
on de los intervalos cuando cualquiera de sus extremos sirva como apro-
ximaci
on inicial para aplicar metodos m as r
apidos como el de Newton o Laguerre.
Para poder aplicar el teorema de Sturm 7.6.2 necesitamos un metodo que cuente los cambios
de signo en una sucesi
on de numeros reales sin tener en cuenta los ceros:
Ceros de polinomios 169
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 metodo 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) 6= 1){
sig = sig + 1;
psig=lista[sig];
}
if(sig = m 1 && signo(pini) signo(psig) 6= 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).
Algoritmo 7.5 M
etodo para calcular la sucesi
on de Sturm de un polinomio
Datos de entrada:
a[n] (lista con los coeficientes 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]; // p 0 = p y p1 = p0
}
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 coeficientes sturm[i][] de los polinomios de la
sucesion de Sturm; n otese que a partir de i = k los coeficientes quedan vacos).
Ceros de polinomios 171
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 coeficientes 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 raz 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){
intervalos = ; // lista de intervalos vaca
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 union de las dos listas correspondientes a a, c y b, c
Parada: devolver intervalos
}
Datos de salida: intervalos (lista de intervalos conteniendo exactamente una raz real del
polinomio).
El u
ltimo metodo 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 finalizar volviendo a visitar el polinomio utilizado en los
ejemplos anteriores:
172 M
etodos Num
ericos (2007/2008)
Si realizamos las operaciones a mano los polinomios propuestos como alternativa son m ultiplos
positivos de los otros, pero con coeficientes m
as sencillos para las evaluaciones. Por ejemplo, en
lugar de p2 (x) podramos haber multiplicado todos los coeficientes por 4 y usar 2x 2 + x + 13.
Comenzando en el intervalo (8, 8], que contiene a todas las races 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 de signo. La diferencia
del numero de cambios de signo es 2, el n umero de races 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 races es negativa y la otra positiva.
on de 10 14 obtenemos los
Aplicando el metodo descrito en el algoritmo con una precisi
intervalos
[2] J. A. Fernandez Vi
na, Analisis Matem
atico II : Topologa y C
alculo Diferencial. 2 a ed.
corr., Tecnos, Madrid, 1992.
8
Interpolaci
Interpolacion y aproximacion
Interpolaci
on de Hermite.
Aproximaci
on por mnimos cuadrados. Sistemas sobredeterminados.
Aproximacion uniforme por polinomios. El teorema de Marcinkiewicz y el
algoritmo de Rem`es.
Destrezas a adquirir en el captulo
8.1. Interpolaci
on polinomial
Los contenidos de esta seccion est
an bien explicados en el libro de Kincaid y Cheney [3]
(Secciones 6.1 y 6.2, pp. 285313).
Consideremos una familia de puntos {(x i , yi )}ni=0 con las abscisas distintas dos a dos. Lla-
mamos polinomio interpolador en los puntos {(x i , yi )} a un polinomio de grado a lo sumo n
(abreviadamente p n ) tal que p(xi ) = yi para cada i = 0, 1, . . . , n.
n:
Demostracio
yn pn1 (xn )
cn = Qn1 .
j=0 (xn xj )
denotamos por p[xi0 , xi1 , . . . , xir1 , xir ] al coeficiente principal del polinomio interpolador en
{(xik , yik )}rk=0 , entonces podra escribirse
n
X i1
Y
p(x) = p[x0 , . . . , xi ] (x xj ). (8.1)
i=0 j=0
Resulta que hay una manera muy sencilla de calcular los n umeros p[x 0 , . . . , xi ]: es el llamado
algoritmo de las diferencias divididas. Obviamente, p[x i ] = yi para cada i. En el resto de los
casos:
178 M
etodos Num
ericos (2007/2008)
n:
Demostracio
Ideas que intervienen:
(n
otese que no hay obligaci
on de escribir los puntos en ning
un orden concreto). De acuerdo con
(8.1) se tendr
a
p(x) = p[5] + p[5, 7](x 5) + p[5, 7, 6](x 5)(x + 7) + p[5, 7, 6, 0](x 5)(x + 7)(x + 6).
5 p[5]
p[5, 7]
7 p[7] p[5, 7, 6]
p[7, 6] p[5, 7, 6, 0]
6 p[6] p[7, 6, 0]
p[6, 0]
0 p[0]
p[0] p[6]
p[6, 0] = = 150.
0 (6)
En la tercera se obtiene
Por u
ltimo
p[7, 6, 0] p[5, 7, 6]
p[5, 7, 6, 0] = = 4.
05
Describimos a continuaci
on la implementaci
on numerica del algoritmo:
180 M
etodos Num
ericos (2007/2008)
Variables:
n; // grado del polinomio interpolador
p[n + 1]; // coeficientes a calcular
Una vez calculados los coeficientes ci de la forma del polinomio interpolador de Newton
n
X i1
Y
p(x) = ci (x xj ),
i=0 j=0
n
X i1
Y
s= ci dj
i=0 j=0
En pseudoc
odigo la suma se calculara como sigue:
Interpolaci
on y aproximaci
on 181
Variables:
sum; // valor del sumatorio ni=0 ci j=0
P Qn1
dj
Usamos a continuaci
on el algoritmo de anidaci on para escribir el polinomio interpolador en
la forma usual p(x) = a0 + a1 x + a2 x2 + + an1 xn1 + an xn . Para ello cubriremos n + 1 etapas
(indexadas de forma decreciente desde i = n a i = 0), de manera que en la etapa i calculamos
un polinomio pni ni a partir de otro pni1 ni1 usan la f ormula
se tendr
a
as que la relaci
on entre los coeficientes a k y bk vendr
a dada por bni = ani1 ,
bk = ak1 ak xi , k = 1, . . . , n i 1,
Variables:
n; // grado del polinomio interpolador
a[n + 1]; // coeficientes del polinomio interpolador
para calcular p(x) encontramos que en cada una de las etapas i = 0, 1, . . . , n hay que hacer
2n restas, n divisiones y n productos (n 1 correspondientes al producto de las n fracciones
(x xj )/(xi xj ) y otra m
as de multiplicar por y i ). Por tanto el total de sumas o restas es en
este caso 2n(n + 1) y el de productos o divisiones tambien 2n(n + 1).
Interpolaci
on y aproximaci
on 183
Hasta ahora hemos estudiado el polinomio interpolador de una familia de puntos sin con-
siderar la procedencia de los puntos de partida. En el caso que estos puntos sean del tipo
{(xi , f (xi ))}ni=0 para una cierta funci on f : [a, b] R definida en un intervalo [a, b] que conten-
ga a los puntos {x0 , x1 , . . . , xn } es natural preguntarse hasta que punto el polinomio interpolador
proporcionar a una buena aproximaci on de la funcion. El siguiente teorema da respuesta a esta
pregunta.
Teorema 8.1.4 Sea f : [a, b] R una funci on de clase C n+1 y sea p n el polinomio que
interpola a la funcion f en n + 1 puntos distintos {x i }ni=0 (es decir, el polinomio interpolador
en los puntos {(xi , f (xi ))}ni=0 ). Entonces para cada x [a, b] existe x [a, b] tal que
n
f (n+1) (x ) Y
f (x) p(x) = (x xi ).
(n + 1)!
i=0
n:
Demostracio
Fijemos un punto x [a, b]. Si x es alguno de los puntos x i no hay nada que demostrar. Por
tanto supondremos que x 6= xi para todo i.
Consideremos la funci
on
n
Y
(t) = f (t) p(t) (t xi ),
i=0
f (x) p(x)
= Qn .
i=0 (x xi )
Como tambien (xi ) = 0 para cada i, vemos que tiene al menos n + 2 races. Aplicando
a al menos n + 2 k races.
repetidas veces el teorema de Rolle, la derivada k-esima de tendr
En particular, (n+1) tiene alguna raz, que denotaremos por x .
Ahora bien, dado que (t) el esQresultado de restarle a f (t) un polinomio de grado a lo sumo
n, p(t), y otro de grado n + 1, ni=0 (t xi ), su derivada Q (n + 1)-esima sera el resultado de
restarle a f (n+1) el coeficiente principal del polinomio ni=0 (t xi ) multiplicado por (n + 1)!,
es decir,
(n+1) (t) = f (n+1) (t) (n + 1)!.
Sustituyendo t por x y despejando se obtiene el resultado buscado.
Por ejemplo, si [a, b] = [1, 1], f (x) = sen x, y tomamos como familia de puntos interpolado-
res, fijado un cierto entero positivo n, los puntos {(i/n, sen(i/n))} ni=0 , entonces se cumple para
184 M
etodos Num
ericos (2007/2008)
8.2. Interpolaci
on de Hermite
En esta seccion extendemos los resultados de la seccion anterior permitiendo que podamos
fijar no s
olo los valores del polinomio interpolador en ciertos puntos sino tambien los de algunas
de sus derivadas sucesivas. Obtenemos as el llamado polinomio interpolador de Hermite. Lo
que sigue es una reelaboraci on de algunos de los contenidos de la Seccion 6.3 (pp. 313323) de
[3].
Proposici on 8.2.1 Considerese la familia {(x i , yi,l )}, con i = 0, 1, . . . , m, 0 l < ki , y con las
abscisas xi distintas dos a dos. Sea n = k0 + k1 + km 1. Entonces existe un u nico polinomio
p n tal que
p(j) (xi ) = yi,l
para cada i, l.
n:
Demostracio
Dado que los coeficientes de dicha matriz no dependen de los datos y i,l , basta
demostrar la existencia y unicidad de soluciones en el caso en que todos los datos
yi,l son nulos.
Sea p(x) = a0 +a1 x+ +an xn el polinomio candidato a satisfacer las condiciones prefijadas.
Entonces estas determinar un sistema de n + 1 ecuaciones lineales donde las inc ognitas son los
coeficientes a0 , a1 , . . . , an del polinomio p(x). Por ejemplo p(x 0 ) = y0,0 equivale a
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 rede-
notamos la familia {(xi , yi,l )}, donde a partir de ahora supondremos que x 0 < x1 < < xm
para simplificar la notation, como {(x i , yi )}ni=0 , teniendose entonces x0 x1 xn . As,
(x0 , y0 ) sera (x0 , y0,0 ), y (xn , yn ) sera (xm , y0,km 1 )). Ahora demostramos por inducci
on que el
polinomio interpolador de Hermite puede escribirse como
n
X k1
Y
p(x) = ck (x xj ), (8.2)
k=0 j=0
afirmaci
on que es obvia para n = 0 y que probamos a continuaci
on para el caso n, suponiendola
verdadera para el caso n 1.
n1
Sea pn1 el polinomio interpolador de Hermite en {(x i , yi )}i=0 . Basta demostrar que el
n
polinomio interpolador de Hermite en {(x i , yi )}i=0 , pn (x), puede escribirse como
n1
Y
pn (x) = pn1 (x) + cn (x xj ) = pn1 (x) + cn (x x0 )k0 (x xm1 )km1 (x xm )km 1 .
j=0
Para empezar, observese que para cada x i , i = 0, . . . , m1, aparece en el producto de la derecha
un factor (x xi )ki , lo que significa que las derivadas de dicho producto hasta el orden k i 1
se anulan cuando se eval uan en xi . Otro tanto puede decirse para xm pero esta vez s olo hasta
el orden km 2. A la luz de la hip otesis de inducci on, y con independencia del valor de c n , se
tendra entonces
p(l)
n (xi ) = yi,l
p(k
n
m 1)
(xm ) = p(k
n
m 1)
(xm ) + cn q(xm ),
186 M
etodos Num
ericos (2007/2008)
Llegados a este punto cabra preguntarse si existe una variante del algoritmo de las diferencias
divididas en este caso. La respuesta es afirmativa y, de hecho, las diferencias son muy peque na.
Para cada subfamilia xi0 xir de x0 xn definimos, al estilo del polinomio
interpolador convencional, p[xi0 , . . . , xir ] como el coeficiente que multiplica a x r 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 (x 0 , y0,0 ), (x0 , y0,1 ) y (x1 , y1,0 )
vendra dado por
p(x) = p[x0 , x0 , x1 ]x2 + ,
el polinomio interpolador de Hermite en los puntos (x 0 , y0,0 ), (x1 , y1,0 ), (x1 , y1,1 ) y (x2 , y2,0 )
sera
p(x) = p[x0 , x1 , x1 , x2 ]x3 + ,
etc. N
otese que (8.2) puede reescribirse entonces como
n
X k1
Y
p(x) = p[x0 , x1 , . . . , xk ] (x xj ). (8.3)
k=0 j=0
n:
Demostracio
El caso m as simple es cuando x0 = xn . En este caso (x0 , y0,0 ), . . . , (x0 , y0,n ) es la familia a
interpolar 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!
Interpolaci
on y aproximaci
on 187
para cada 0 l < k0 . De igual manera se comprueba que h(l) (xm ) = ym,l , 0 l < km .
Como en el caso de las diferencias divididas de Newton, el Teorema 8.2.2 permite calcular
recursivamente, y de una manera sencilla, los coeficientes p[x 0 , 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, p0 (1) = 3, p(2) = 6, p0 (2) = 7, p00 (2) = 8. De acuerdo con (8.3) se
tendra
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).
188 M
etodos Num
ericos (2007/2008)
Ahora se tendr
a el siguiente esquema:
1 p[1]
p[1, 1]
1 p[1] p[1, 1, 2]
p[1, 2] p[1, 1, 2, 2]
2 p[2] p[1, 2, 2] p[1, 1, 2, 2, 2]
p[2, 2] p[1, 2, 2, 2]
2 p[2] p[2, 2, 2]
p[2, 2]
2 p[2]
En la tercera tendremos
En la cuarta
Finalmente
p[1, 2, 2, 2] p[1, 1, 2, 2]
p[1, 1, 2, 2, 2] = = 1.
21
Finalizamos la secci
on escribiendo el pseudoc odigo correspondiente al metodo de interpola-
ci
on de Hermite. Hemos a nadido al final el algoritmo de anidaci
on de manera que el algoritmo
arroje como resultado los coeficientes del polinomio interpolador.
Interpolaci
on y aproximaci
on 189
8.3. Aproximaci
on por mnimos cuadrados
Considerese la familia de puntos {(x i , yi )}m
i=0 con abscisas distintas dos a dos. La teor a de
la interpolacion nos dice que existe un u nico polinomio q(x) de grado a lo sumo m tal que
q(xi ) = yi para cada i. Por tanto, en general, si n < m no existir a para estos puntos un
polinomio interpolador de grado menor o igual que n. En estas condiciones tiene sentido, no
obstante, preguntarse si existir un polinomio p(x) nP
a alg que minimice la norma eucldea
k(y0 p(x0 ), . . . , ym p(xm ))k o, equivalentemente, la suma m 2
i=0 (yi p(xi )) . La respuesta a
esta pregunta es afirmativa pero para formularla adecuadamente necesitamos introducir los lla-
Interpolaci
on y aproximaci
on 191
que en forma matricial puede escribirse como Ax = b para el vector columna x R n cuyas
componentes son las incognitas x1 , . . . , xn , carecer
a de soluci
on. Mostraremos a continuaci
on
que existe u Rn tal que kAu bk < kAx bk para cada x 6= u y daremos un metodo sencillo
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:
Ahora procedemos como sigue. Vease A : R n Rm como una aplicaci on lineal y pongamos
V = Rm , W = A(Rn ). El Teorema 8.3.1 nos dice que existe w W tal que kw bk < ky bk
para cada y W distinto de w o, equivalentemente, por ser A inyectiva (recordemos que su
rango es n), que existe u Rn (el u
nico con la propiedad Au = w) tal que kAu bk < kAx bk
para cada x Rn , x 6= u.
Mas aun, sabemos que w est a caracterizado por la propiedad de que w b es ortogonal
a W , es decir, hAu b, Axi = 0 para cada x R n . Dado que hAT c, di = hc, Adi para cada
c Rm , d Rn , ello equivale a decir que hAT Au AT b, xi = 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,
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 kAu bk < kAx bk para cada x R n , x 6= u. El vector u es
la u
nica soluci on normal A T Ax = AT b.
on de la ecuaci
la matriz
1 x0 x20 xn0
1 x1 x21 xn1
A= ..
.
1 xm x2m xnm
a0 + x0 a1 + + xn0 an = y0 ,
a 0 + x 1 a1 + + xn1 an = y1 ,
a0 + x n a1 + + xnn an = yn
x 1 2 3 4 5 6 7 8 9
y 2.1 3.3 3.9 4.4 4.6 4.8 4.6 4.2 3.4
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 coeficientes (a, b, c) buscados
ser
an la soluci on normal A T Ax = AT d, donde
on de la ecuaci
9 45 285
AT A = 45 285 2025 ,
285 2025 15333
x 1 2 3 4
y 7 11 17 27
x 1 2 3 4
log y log 7 log 11 log 17 log 27
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:
Si se desprecian las perturbaciones de los planetas, las leyes de Kepler garantizan que el cometa
se movera en una orbita elptica, parab
olica o hiperb olica, que en dichas coordenadas polares
tendra en cualquier caso la ecuaci on
p
r= ,
1 + e cos
donde p es un par ametro y e la excentricidad. Ajustemos por mnimos 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 mnimos cuadra-
dos, todas validas pero no todas equivalentes entre s. Mostramos a continuaci
on dos posibles
formas de hacerlo.
Posibilidad 1. Despejando en la ecuaci
on
p
r=
1 + e cos
llegamos a
r + er cos = p
y de aqu
r = p + e(r cos ).
Por tanto se trata de minimizar kAx bk, donde
Posibilidad 2. Dividiendo en
r + er cos = p
por er y despejando se obtiene
cos 48o
0.66913
cos 67o 0.39073
b = cos 83o = 0.12187
cos 108o 0.30902
8.4. Aproximaci
on uniforme
A la vista del Teorema 8.1.4 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
(b a)i
xi = a +
n
(nodos equidistribuidos) entonces los correspondientes polinomios interpoladores de f conver-
ger
an uniformemente a la funci on. Sin embargo, como demostr o Runge en 1901, este no es ni
mucho menos el caso: un sorprendente ejemplo es la funci on f (x) = 1/(x 2 + 1) vista en el
intervalo [5, 5]. Sin embargo puede probarse que eligiendo en el intervalo [a, b] = [5, 5] los
nodos segun la regla
ba 2i + 1
xi = a + 1 + cos
2 2n + 2
(nodos de Chebyshev ) entonces los polinomios interpoladores correspondientes convergen uni-
formemente a f . Como veremos a continuaci on, los nodos de Chebyshev tienen la interesante
196 M
etodos Num
ericos (2007/2008)
ax x[a,b] | ni=0 (x xi )| lo m
Q
propiedad que hacen la cantidad m as peque
na posible (comp
arese
con el Teorema 8.1.4) pero ni siquiera para estos nodos hay garanta de convergencia: Faber
(n) (n) (n)
probo en 1914 que para cualquier sistema de nodos a x 0 < x1 < < xn b existe
una funcion continua f de manera que si p n n es el polinomio interpolador en los puntos
(n) (n) n
(xi , f (xi ))i=0 , entonces (pn ) no converge uniformemente a f .
Probamos a continuacion la mencionada propiedad de los nodos de Chebyshev, para lo que
seguiremos [3, pp. 292293].
Para empezar consideramos el caso [a, b] = [1, 1] introduciendo inductivamente los llamados
polinomios de Chebyshev :
T0 (x) = 1,
T1 (x) = x,
Tn+1 (x) = 2xTn (x) Tn1 (x), n 1.
Los polinomios de Chebyshev tienen la siguiente u
til propiedad:
deducimos
cos(n + 1) = cos cos n sen sen n,
cos(n 1) = cos cos n + sen sen n,
de donde
cos(n + 1) = 2 cos cos n cos(n 1).
Usemos la biyeccion que la funci
on cos establece entre los intervalos [0, ] y [1, 1], escribamos
cos = x, = cos1 x, y apliquemos la ultima igualdad para deducir que las funciones f n (x) =
1
cos(n cos x) (con dominio de definici on el intervalo [1, 1]) satisfacen, adem
as de las obvias
propiedades f0 (x) = 0 y f1 (x) = x, la igualdad
Tn (cos(j/n)) = (1)j , 0 j n,
Tn (cos((2j 1)/(2n))) = 0, 1 j n.
En particular, dado que (fijo n), se cumple |T n (cj )| = 1 para los puntos
cj = cos(j/n), 0 j n,
Interpolaci
on y aproximaci
on 197
se tiene que
kTn k = m
ax |Tn (x)| = 1.
x[1,1]
rj = cos((2j 1)/(2n)), 1 j n,
n: Supongamos que |p(x)| < 21n para todo x [1, 1]. Entonces
Demostracio
con lo que
(1)j (p(cj ) Pn (cj )) < 0, 0 j n.
As pues, el polinomio p Pn toma alternativamente valores negativos y positivos en los n + 1
puntos cj , lo que significa que tiene al menos n ceros distintos, cosa imposible dado que p y P n
son m onicos y por tanto p Pn tiene grado a lo sumo n 1.
En este punto retomemos el Teorema 8.1.4. Si g : [1, 1] R es de clase C n+1 , {si }ni=0
es una familia de n + 1 puntos distintos en [1, 1] y t n es el polinomio interpolador en
{si , g(si )}ni=0 , la f
ormula del teorema puede reescribirse como
kg (n+1) k
kg tk kqk ,
(n + 1)!
Teorema 8.4.3 Sean g : [1, 1] R una funci on de clase C n+1 , {si }ni=0 los nodos de Chebys-
hev y t n el correspondiente polinomio interpolador. Entonces
kg (n+1) k
kg tk .
2n (n + 1)!
Es f
acil probar un resultado an alogo para una funci on f : [a, b] R de clase C n+1 definida
en un intervalo arbitrario [a, b] y el polinomio interpolador p n en los nodos de Chebyshev
generalizados
ba 2i + 1
xi = a + 1 + cos , 0 i n.
2 2n + 2
198 M
etodos Num
ericos (2007/2008)
kf pk = m
ax |f (y) p(y)| = m
ax |g(x) t(x)| = kg tk
y[a,b] x[1,1]
y
(b a)n+1 (n+1)
kg (n+1) k = kf k ,
2n+1
deducimos del Teorema 8.4.3 que
(b a)n+1 kf (n+1) k
kf pk .
22n+1 (n + 1)!
P0 (x) = 0,
1#
Pn (x)2 + x .
Pn+1 (x) =
2
on que si 0 x 1 entonces 0 P n (x) 1 para todo n. Es
Es consecuencia obvia de la definici
igualmente obvio que Pn es una funci on creciente en el intervalo [0, 1]. Restando las f
ormulas
recursivas para n + 1 y n + 2, cancelando y factorizando obtenemos la relaci on
1
Pn+2 (x) Pn+1 (x) = (Pn+1 (x) + Pn (x))(Pn+1 (x) Pn (x)).
2
De esta concluimos que Pn+1 (x) Pn (x) para todo n y todo x en [0, 1]. Esto implica que
lmn Pn (x) existe para todo x en [0, 1]. Tomando lmitesen ambos lados de la recursion que
define Pn y simplificando, vemos que lmn Pn (x) = 1 1 x. La relaci on implica tambien
que Pn+1 (x) Pn (x) es una funci
on creciente of x en el intervalo [0, 1] para todo n. Por tanto
siempre que m > n. Tomando el lmite cuando m tiende a infinito, concluimos que
1 1 x Pn (x) 1 Pn (1).
Dado que los polinomios Pn convergen, para cada > 0, existe n tal que 1 P n (1) < . Para
este n, |f (x) Pn (x)| < , as que el teorema de aproximaci
on de Weierstrass se cumple en este
caso. Observese que se tiene igualmente que | y q(y)| < para todo y [0, 1], donde q(y) es
el polinomio 1 Pn (1 y).
El caso f (x) = |x c|.A continuaci
on consideramos el caso especial f (x) = |x c|, donde
0 < c < 1. Usando que a2 + b2 a + b obtenemos que
p
(x c)2 + 2 /4 |x c| /2.
Para cada punto x del intervalo [0, 1], existe un entero m tal que x pertenece al intervalo
[m/N, (m + 1)/M ]. Dado que una funci on lineal est
a acotada por los valores en los extremos,
a entre (m/N ) = f (m/N ) y ((m + 1)/N ) = f ((m + 1)/N ). Dado que |f (m/N )
(x) est
f ((m + 1)/N )| /2, se tiene que |f (m/N ) (x)| < /2. Como |x m/N | 1/N , tambien se
cumple |f (m/N ) f (x)| < /2. Por la desigualdad triangular, |f (x) (x)| < .
Lema 8.4.5 Sea f : [a, b] R una funci on continua y sean n + 2 puntos distintos x 0 < x1 <
< xn < xn+1 en [a, b]. Entonces existe un u
nico polinomio p n tal que
M
as a
un, este polinomio se caracteriza por la propiedad
Demostracio n: N
otese que las ecuaciones de (8.4) constituyen un sistema de n + 1 ecuaciones
lineales en las n + 1 inc ognitas a0 , a1 , . . . , an de los coeficientes del polinomio p(x) = a 0 +
a1 x + + an xn buscado. Demostramos a continuaci on que dicho polinomio, de existir, verifica
(8.5). Esto es suficiente para concluir la afirmaci 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 coeficientes del sistema lineal dado por (8.4) (que no depende de f ) es regular.
Probemos pues que de (8.4) se concluye (8.5). Sea q n con q 6= p y supongamos, por
reducci on al absurdo, que
ax |f (xi ) q(xi )|
m ax |f (xi ) p(xi )| = |f (x0 ) p(x0 )|.
m
0in+1 0in+1
Ahora existen dos posibilidades. Si q 0 p0 0 en alguno de los intervalos [xi , xi+1 ] entonces,
por ser q 0 p0 un polinomio, tendremos que q 0 p0 0 en todo R, con lo que q p es constante.
Como el signo de q p va cambiando en los puntos x i , no hay m as alternativa que q = p,
contradicci on.
Concluimos entonces que existe i (xi , xi+1 ) tal que (1)i (q 0 (i ) p0 (i )) < 0 para cada
i = 0, 1, . . . , n, con lo que por la propiedad de los valores intermedios q 0 p0 admitir a una raz
en cada uno de los intervalos (i , i+1 ), i = 0, 1, . . . , n 1. Esto hace un total de al menos n
races para el polinomio (no nulo) q 0 p0 , que tiene a lo sumo grado n 1. Hemos llegado de
nuevo a una contradicci on.
Interpolaci
on y aproximaci
on 201
Variables:
e[n + 1]; // coeficientes a calcular
b[n + 1]; // vector de terminos independientes
S[n + 1][n + 1]; // matriz del sistema a resolver
signo; // variable auxiliar para los cambios de signo
aux0, aux1: // variables auxiliares
}
}
e = S 1 b;
Se dice que una funcion continua h : [a, b] R equioscila en los puntos x 0 < x1 < <
xn < xn+1 si khk = |h(xi )|, i = 0, 1, . . . , n + 1, y h(xi ) = h(xi+1 ), i = 0, 1, . . . , n. Si p n
es un polinomio tal que f p equioscila en x 0 < x1 < < xn < xn+1 y q n es distinto de
p entonces, de acuerdo con (8.5),
Ello significa 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 ciertos puntos x 0 < x1 < < xn < xn+1
del intervalo [a, b]. Este polinomio se construye como lmite de una sucesi on de polinomios
construidos mediante el llamado (segundo) algoritmo de Rem`es. Este algoritmo funciona como
sigue.
202 M
etodos Num
ericos (2007/2008)
Variables:
on |h| alcanza el m
max; // punto donde la funci aximo
y; // variable auxiliar
on |h| alcanza el m
Datos de salida: Punto max donde la funci aximo
on. Partimos de puntos a x 00 < x01 < < x0n < x0n+1 b arbitrariamente fijados
Inicializaci
(por ejemplo, igualmente distribuidos en [a, b]).
Etapa k del algoritmo. Supongamos conocidos los puntos
a xk+1
0 < xk+1
1 < < xk+1
n < xk+1
n+1 b
reemplazando uno de los puntos xkj por y de manera que los signos de f (xk+1
i ) pk (xk+1
i ) se
vayan alternando, es decir,
xk+1
0 =y y xk+1
i = xki , i = 1, 2, . . . , n + 1.
(b) Si y [a, xk0 ) y (f (xk0 ) pk (xk0 ))(f (y) pk (y)) < 0, tomamos
xk+1
0 =y y xk+1
i = xki1 , i = 1, 2, . . . , n + 1.
xk+1
j =y y xk+1
i = xki , i 6= j.
(d) Si y (xkj , xkj+1 ) y (f (xkj ) pk (xkj ))(f (y) pk (y)) < 0, tomamos
xk+1
j+1 = y y xk+1
i = xki , i 6= j + 1.
xk+1
n+1 = y y xk+1
i = xki , i = 0, 1, . . . n.
xk+1
n+1 = y y xk+1
i = xki+1 , i = 0, 1, . . . n.
204 M
etodos Num
ericos (2007/2008)
Variables:
e[n + 1]; // coeficientes del polinomio equioscilador
x[n + 2]; // abscisas de los puntos para la equioscilaci
on
y[n + 2]; // vector auxiliar
z; // variable auxiliar
j; // variable auxiliar
for(i=0;i<=n+1;i++){
xi = a + (b a)i/(n + 1);
}
for(k=1;k<=nmax;k++){
for(i=0;i<=n+1;i++){
yi = f (xi );
}
e = primeraEquioscilacion(x, y);
// p : polinomio de coeficientes e0 , e1 , . . . , en
z = maximo(f p, a, b, malla);
if(|f (z) p(z)| |y0 p(x0 )| < tol){
Parada: p es el polinomio equioscilador
}
Interpolaci
on y aproximaci
on 205
}
else{
xj = z;
}
}
}
}
Parada: no hay convergencia en nmax iteraciones
Datos de salida: Coeficientes e0 , e1 , . . . , en del polinomio equioscilador o mensaje de
error.
donde
k = ax |f (xki ) pk (xki )|.
m
0in+1
k = ax |f (xki ) pk (xki )|
m ax |f (xki ) q(xki )| kf qk
m (8.6)
0in+1 0in+1
para cada q n , as que k nf qn kf qk para cada k. Por tanto basta demostrar que
la sucesi
on (k ) es estrictamente creciente.
Fijemos k 0 y sea xk+1i0 on a los x ki . No es restrictivo suponer
el nuevo termino con relaci
f (xk+1 k+1
i0 ) pk (xi0 ) = kf pk k (8.7)
f (xk+1
i ) pk (xk+1
i ) = (1)ii0 k , i 6= i0 . (8.8)
Asimismo
f (xk+1
i ) pk+1 (xk+1
i ) = (1)ii0 k+1 , i = 0, 1, . . . , n + 1, (8.9)
siendo
f (xk+1 k+1
i0 ) pk+1 (xi0 ) = k+1 = k+1 . (8.10)
pk+1 (xk+1
i ) pk (xk+1
i ) = (1)ii0 (k k+1 ), i 6= i0 ;
Demostracio n: Supongamos lo contrario para encontrar una subsucesi on 1 k 1 < k2 < <
kl < tal que lml xikl = xi para cada i = 0, 1, . . . , n + 1 y no todos los puntos x i 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.5) y al Lema 8.4.6
sabemos que
lm ax |f (xikl ) p(xki l )| =
m ax |f (xi ) p(xi )| = 0.
m
l 0in+1 0in+1
(b a)n
kqk k (n + 1) =: C,
n
208 M
etodos Num
ericos (2007/2008)
lm kf pk k = . (8.15)
k
lm pkl = p
l
y
lm xki l = xi , i = 0, 1, . . . , n + 1.
l
Dado que
Por (8.15), f p equioscila en los puntos {x i }, con lo que p es el polinomio de mejor aproximaci
on
en la norma uniforme. M as a
un, observese que cualquier otro punto de acumulaci on de la
sucesi
on (pk ) equioscilara en n + 2 puntos, con lo que tambien sera el polinomio de mejor
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 lmite. Hemos demostrado que (p k )
converge uniformemente a p.