You are on page 1of 43

1.

Ecuaciones no lineales

Dada una funcion no nula f : C C, resolver la ecuacion f (x) = 0 es hallar


los valores x que anulan a dicha funcion. A estos valores x se les denomina
races o soluciones de la ecuacion, o tambien, ceros de la funcion f (x).
Los metodos de resolucion de ecuaciones y sistemas de ecuaciones se clasifican
en

Metodos directos

Proporcionan la solucion mediante un numero finito de operaciones ele-


mentales.
2 b b2 4ac
ax + bx + c = 0 = x =
2a
Metodos iterados

Construyen una sucesion (xn ) convergente a la solucion x de la ecuacion


o del sistema.

Sin embargo, el siglo XIX, Abel probo que no existe ninguna formula equi-
valente (en termino de races) para resolver ecuaciones de grado superior a
cuatro.

Ademas, si la ecuacion no es polinomica no podemos resolverla mas que me-


diante metodos iterados que, incluso en el caso de las polinomicas de grado no
superior a cuatro, son mas eficientes.

Definicion 1.1 [Multiplicidad de una raz]

Una solucion x de la ecuacion f (x) = 0 se dice que tiene multiplicidad n si


f (x) = f 0 (x) = f 00 (x) = = f (n1 (x) = 0 y f (n (x) 6= 0
Si la multiplicidad es 1, diremos que se trata de una raz simple.

1
2 Ecuaciones no lineales

Todos los metodos numericos de resolucion de ecuaciones presentan dificulta-


des cuando la ecuacion tiene races multiples, ya que todos ellos se basan en
los cambios de signo de la funcion y estos son difcilmente detectables en un
entorno de una raz multiple.
Ese hecho nos lleva a un mal condicionamiento del problema.

1.1 Errores y condicionamiento en problemas


numericos
Cualquier problema numerico se resuelve a traves de un algoritmo que nos
proporciona unos resultados a partir de unos datos iniciales. Es decir, se trata
de realizar un proceso del tipo

Datos = Algoritmo = Resultados

Dado que cualquier algoritmo puede cometer errores, no solo por el algoritmo
en s, sino porque los datos pueden venir afectados de algun tipo de error
(redondeo, etc.) es muy importante el estudio de los distintos tipos de error
que puedan cometerse con vista a la fiabilidad de los resultados.

Definicion 1.2 [Errores absoluto y relativo]

Supongamos que el valor exacto de un dato es x y disponemos de un valor


aproximado x.

Se denomina error absoluto de x a la distancia que lo separa del valor


exacto x, es decir |x x|.

Observese que si solo disponemos del dato de que el error es, por ejemplo,
de 1m. no sabemos nada acerca de la fiabilidad del resultado, ya que no
es lo mismo decir que se ha cometido un error de un metro al medir la
altura de una persona que al medir la distancia entre dos galaxias.

Debemos reflejar de alguna manera lo que se esta evaluando en el dato


del error.

Se denomina error relativo de x al


cociente entre el error absoluto y el
x x
objeto evaluado, es decir, . En el caso x = 0 solo se utiliza el
x
error absoluto.
Errores y condicionamiento en problemas numericos 3

En la mayora de los procesos numericos utilizaremos como error el error abso-


luto ya que lo que nos interesa conocer es el numero de cifras decimales exactas
que posee la solucion de un determinado problema.

Evidentemente cualquier algoritmo que trabaje con unos datos afectados de


algun tipo de error nos proporcionara unos resultados que tambien vendran
afectados de errores. Estos errores pueden depender solo de los datos iniciales
o tambien del proceso que se ha realizado.
Supongamos que, queremos evaluar f (x) y damos un dato aproximado x. Es
evidente que, en general, si x 6= x sera f (x) 6= f (x).
Dado que f (x) f (x) ' (x x)f 0 (x), se tiene que

|f (x) f (x)| ' |x x| |f 0 (x)|

por lo que aunque el error del dato sea muy pequeno, si la derivada f 0 (x) es
muy grande, el resultado obtenido f (x) puede diferir mucho del valor exacto
f (x).
Para el problema inverso, es decir conocido f (x) buscar el valor de x (resolver
una ecuacion) se tendra que
1
|x x| ' |f (x) f (x)|
|f 0 (x)|

por lo que si |f 0 (x)| fuese muy pequeno el error de la solucion puede ser muy
grande.
Ademas el problema no esta en el algoritmo que se aplique para evaluar f (x)
sino en el propio problema a resolver.

Definicion 1.3 [Condicionamiento de un problema]

Diremos que un problema esta mal condicionado si pequenos errores en los


datos producen grandes errores en los resultados.

Se trata entonces de definir algun numero que nos indique el condicionamiento


del problema. A este numero lo llamaremos numero de condicion del problema
y lo denotaremos por .

En el ejemplo anterior es evidente que

(x) = |f 0 (x)|
4 Ecuaciones no lineales

As pues, un problema (en ambos sentidos) estara mejor condicionado mientras


mas se acerque a 1 su numero de condicion.

Ejemplo 1.1 Si queremos calcular la tangente de 89 590 lo primero que de-


bemos hacer es expresar el angulo en radianes, por lo que necesariamente
debemos redondear el dato (el numero hay que redondearlo), por lo que el
dato vendra afectado de un error de redondeo.
Utilicemos el metodo que utilicemos, dado que | tg xtg x| ' |1+tg 2 x||xx|
y tg x + cuando x , el problema estara mal condicionado.
tg a + tg b
Sin embargo si tenemos en cuenta que tg (a + b) = podemos
1 tg a tg b
reducir nuestro problema al calculo de la tangente de 44 590 resultando este
un proceso bien condicionado, ya que tg 45 = 1. 

Definicion 1.4 [Estabilidad de un algoritmo]

Respecto al algoritmo que se utiliza para resolver un determinado problema,


diremos que es inestable cuando los errores que se cometen en los diferentes
pasos del algoritmo hacen que el error total que se genera sea muy grande.

Si, por el contrario los errores que se producen en los distintos pasos no alteran
de forma significativa el resultado del problema, diremos que el algoritmo es
estable.

Ejemplo 1.2 Supongamos que se quiere calcular la integral


1
x10
Z
I10 = dx
0 a+x
1
xn
Z
Llamando In = dx observamos que
0 a+x
1 1
xn xn1 (x + a a)
Z Z
In = dx = dx =
0 a+x 0 a+x
Z 1 n1 Z 1 n1 Z 1 Z 1 n1
x (x + a) x n1 x
= dx a dx = x dx a dx =
0 a+x 0 a+x 0 0 a+x
 n 1
x 1
= aIn1 = aIn1
n 0 n
Errores y condicionamiento en problemas numericos 5

por lo que podemos pensar en la posibilidad de calcular I10 de forma recursiva


mediante el siguiente algoritmo:


a+1
I0 = ln


a
Algoritmo
1
In = aIn1

n

11
Sin embargo, dado que para a = 10 es I0 = ln = 0.09531017980432 . . .
10
y el numero 0.09531017980432 . . . no podemos introducirlo en el ordenador
de manera exacta, debemos cometer algun error introduciendo un numero
aproximado I 0 de tal forma que cometemos un error inicial 0 = |I 0 I0 |.
El error n que se cometera al calcular In vendra dado por

1 1
n = |I n In | = aI n1 ( aIn1 ) = | a(I n1 In1 )| = |a|n1
n n
es decir,
n = |a|n1 = |a|2 n2 = = |a|n 0
por lo que si tomamos las 10 primeras cifras decimales de I0 , es decir, si
tomamos
I 0 = 0.0953101798 con 0 < 1010
obtendremos un error en la decima iteracion

10 < 1010 1010 = 1

en otras palabras,

I 10 no tiene ninguna cifra decimal exacta

Se trata pues de un algoritmo muy inestable. 

Observese que si el algoritmo es inestable no va a generar un resultado fiable,


por lo que deberemos utilizar otro algoritmo. Sin embargo, por muy estable
que sea el algoritmo, si el problema esta mal condicionado lo unico que pode-
mos hacer es plantear un problema equivalente al nuestro pero con la seguridad
de que se trata de un problema bien condicionado.
6 Ecuaciones no lineales

1.2 Metodo y algoritmo de la biseccion: ana-


lisis de errores
Teorema 1.1 [Teorema de Bolzano]

Si f es una funcion continua en el intervalo cerrado [a, b] y f (a) f (b) < 0,


existe un punto (a, b) en el cual f () = 0.

Nuestro problema se reduce a localizarla. Para ello, supongamos que esta


separada, es decir, que en el intervalo [a, b] es la unica raz que existe. Esto
podemos garantizarlo, por ejemplo, viendo que f 0 (x) 6= 0 en todo el intervalo,
ya que entonces, el Teorema de Rolle nos garantiza la unicidad de la raz.

Teorema 1.2 [Teorema de Rolle]

Si f (x) es una funcion continua en el intervalo [a, b], derivable en (a, b) y


f (a) = f (b), existe un punto (a, b) para el que f 0 () = 0.

En efecto, si f (x) tuviese dos races 1 y 2 en el intervalo [a, b], verificara


las hipotesis del teorema de Rolle en el intervalo [1 , 2 ] [a, b], por lo que
debera existir un punto (1 , 2 ) = (a, b) en el que se anulara la
derivada, por lo que si f 0 (x) 6= 0 en todo el intervalo [a, b], no pueden existir
dos races de la ecuacion en dicho intervalo.

Metodo de la biseccion o dicotoma

Supongamos que tenemos separada una raz x de la ecuacion f (x) = 0 en el


intervalo [a1 , b1 ] = [a, b] es decir

sig f (a) 6= sig f (b) y f 0 (x) 6= 0 x [a, b]

a1 + b 1
Tomando el punto medio x1 =
2

Si f (x1 ) = 0, hemos encontrado la solucion: x = x1 .

Si f (x1 ) 6= 0, solo en uno de los dos subintervalos [a1 , x1 ] o [x1 , b1 ] se pro-


ducira un cambio de signo en los extremos y el teorema de Bolzano nos
asegura que la raz se encuentra en el subintervalo en el que se produce
dicho cambio de signo, al cual lo renombramos como [a2 , b2 ]
Metodo y algoritmo de la biseccion: analisis de errores 7

Reiterando el procedimiento podemos construir una sucesion de interva-


los [an , bn ] con amplitudes
|b a|
|bn an | = 0 cuyos puntos medios xn x
2n
Cota del error a priori

El error cometido, tomando como raz de la ecuacion el punto medio xn del


intervalo [an , bn ] obtenido en la en la iteracion n-esima, viene dado por
ba
n
2n
1
por lo que si b a = 1 y n = 10 se tiene que 10 10 < 103 , es decir,
2
en 10 iteraciones obtenemos tres cifras decimales exactas, por lo que podemos
estimar el error de una determinada iteracion sin necesidad de realizarlas pre-
viamente.

Lo verdaderamente importante de esta formula del error a priori es que nos


permite conocer el numero de iteraciones que van a ser necesarias para obtener
la raz con una determinada precision.

As, por ejemplo, si queremos obtener la solucion de la ecuacion f (x) = 0 en


el intervalo [a, b] de amplitud 1 con 14 cifras decimales exactas, debera ser
1
n n
< 1014 2n > 1014 = n 47
2
es decir, deberemos detenernos en la iteracion 47.

Algoritmo de la biseccion
ai + b i
Para i = 1, . . . , n, . . ., Ii = [ai , bi ] y mi = (punto medio de Ii ) con
2

[ai , mi ] si sig(f (ai )) 6= sig(f (mi ))
I1 = [a, b] y Ii+1 =
[mi , bi ] si sig(f (bi )) 6= sig(f (mi ))

El proceso debe repetirse hasta que

f (mi ) = 0 o bien bi ai < con > 0 prefijado.

Un algoritmo para MatLab con entradas a, b, y f (x) y salida la raz m sera


el siguiente:
8 Ecuaciones no lineales

Algoritmo de la Biseccion

while (b-a)/2>
m = a+(b-a)/2;
if f(m) == 0
a = m;
b = m;
end
if sign f(a) == sign f(m)
a = m;
else
b = m;
end
end
m

El hecho de calcular el punto medio de [a, b] como m = a + (b a)/2 es debido


a que para valores muy pequenos de a y b puede darse el caso de que (a + b)/2
se encuentre fuera del intervalo.

Metodo de la Regula falsi

Una variante del metodo de la biseccion es el metodo de la regula falsi , de la


falsa posicion o metodo de la cuerda consistente en dividir el intervalo [a, b] en
dos subintervalos [a, c] [c, b] donde el punto c, a diferencia del punto medio
del metodo de la biseccion, es el punto de corte de la recta secante que pasa
por los puntos (a, f (a)) y (b, f (b)) con el eje de abscisas OX.
Y
(b, f (b))
f (b) t



(c, 
0)
t
O 
 X


t

f (a) 
(a, f (a))

Figura 1.1: Metodo de la regula f alsi.


Metodo y algoritmo de la biseccion: analisis de errores 9

La pendiente de dicha secante viene determinada por

f (b) f (a) 0 f (b)


m= =
ba cb
Segun se utilicen los puntos (a, f (a)) y (b, f (b)) o (c, 0) y (b, f (b)) respectiva-
mente.
Despejando el valor de c obtenemos que

ba af (b) bf (a)
c = b f (b) =
f (b) f (a) f (b) f (a)

pudiendose dar los mismos casos que en el metodo de la biseccion, es decir:

Si f (c) = 0 la raz buscada es c.

Si f (a) y f (c) tienen signos contrarios, la raz se encuentra en el intervalo


[a, c].

Si son f (c) y f (b) los que tienen signos contrarios, la raz esta en el
intervalo [c, b].

El algoritmo con entradas a, b, y f (x) y salida la raz c sera el siguiente:

Algoritmo de la Regula falsi

c = a;
while abs f(c)>
c = (a*f(b)-b*f(a))/(f(b)-f(a));
if f(c) == 0
a = c;
b = c;
end
if sign f(a) == sign f(c)
a = c;
else
b =c;
end
end
c
10 Ecuaciones no lineales

En este caso las amplitudes de los intervalos [an , bn ] no se van reduciendo a la


mitad como en el caso del metodo de dicotoma, por lo que ya no es valida
la formula del error a priori, siendo necesario encontrar otra forma de poder
estimar el error que se comete en cada iteracion.

Error a posteriori

Supongamos conocido que la funcion f (x) tiene un cero en el intervalo [a, b] y


que por cualquier metodo hemos aproximado la solucion como xn .
Lo primero que se nos ocurre para comprobar si es valido el resultado es
calcular f (xn ) y, en general, obtendremos que f (xn ) 6= 0 ya que no tendremos
exactamente la raz x sino una aproximacion.
Supongamos que obtenemos f (xn ) = 2.2345.

estamos cerca o lejos de la raz buscada?

Si la pendiente de la funcion en dicho punto f 0 (xn ) es grande estaremos cerca


de ella, pero si es pequena estaremos lejos.

f (x)
f (x)

x x
xn

Figura 1.2: El error es inversamente proporcional a la pendiente.

As pues, el error es inversamente proporcional a la pendiente de la funcion,


en otras palabras,
|f (xn )|
0
|f (x)|

Donde debemos medir la pendiente?


Si la medimos en un punto en concreto puede que sea muy grande y pensemos
que estamos muy cerca de la solucion cuando aun estamos muy lejos.
Metodo y algoritmo de la biseccion: analisis de errores 11

f (x)

f (x)

x x
xn

Figura 1.3: Se debe tomar el mnimo valor de la pendiente.

Debemos, por tanto, tomar el mnimo valor de la pendiente en todo el intervalo,


para decir que
|f (xn )|
n (1.1)
mn |f 0 (x)|
x(a,b)

Veamos ahora una justificacion formal de la formula anterior.

Teorema 1.3 [Teorema del valor medio]

Si f (x) es una funcion continua en el intervalo [a, b] y derivable en (a, b),


f (b) f (a)
existe un punto c (a, b) tal que = f 0 (c).
ba

Sea x una solucion de la ecuacion f (x) = 0 y sea xn una aproximacion de ella


obtenida por un metodo iterado cualquiera.

Supongamos f (x) continua en el intervalo cerrado [xn , x] o [x, xn ] (dependiendo


de que x sea mayor o menor que xn ) y derivable en el abierto.
Existe entonces un punto c (xn , x) o c (x, xn ) tal que

f (x) f (xn )
= f 0 (c).
x xn
12 Ecuaciones no lineales

f (xn )
Como f (x) = 0, nos queda que x xn = , obteniendose:
f 0 (c)
)
|f (xn )| |f (xn )| |f (xn )| (x, xn )
n = 0 0 con (a, b)
|f (c)| mn |f (x)| mn |f 0 (x)| (xn , x)
(x, xn ) x(a,b)
x (xn , x)

Lo unico que debemos exigir es que la derivada de la funcion no se anule en


ningun punto del intervalo (a, b).

Tengase en cuenta que si la funcion esta mal condicionada es decir, si |f 0 (x)| es


muy grande, el calculo de f (xn ) estara muy mal condicionado ya que cualquier
error en el valor de xn hace que lo que estemos calculando sea f (xn ) en un
punto x0n muy cercano a xn verificandose que

|f (x0n ) f (xn )| ' |x0n xn | |f 0 (xn )|

es decir, puede que obtengamos por ejemplo que f (xn ) = k y sin embargo su
verdadero valor difiera mucho de k debido a la fuerte pendiente existente en
dicho punto, con lo que obtendremos una cota erronea del error.
Debemos, por tanto, asegurarnos de que nuestro problema esta bien condicio-
nado, es decir, no existen en el intervalo pendientes muy grandes (condiciona-
miento directo) ni muy pequenas (condicionamiento inverso) para garantizar
la fiabilidad del error a posteriori.

Aplicando el metodo de la regula falsi al calculo de la raz de 3, se obtienen


14 cifras decimales exactas, en solo 14 iteraciones frente a las 47 necesarias
mediante el metodo de la biseccion.

Sin embargo, en el metodo de la regula falsi la convergencia no tiene porque


ser mas rapida que en el de la biseccion.
Ambos metodos son de convergencia lenta siendo necesario, por tanto, buscar
otros metodos cuya convergencia sea mas rapida.
Dichos metodos estan basados en el denominado Teorema del punto fijo que
estudiamos en la siguiente seccion.
Punto fijo e iteracion funcional 13

1.3 Punto fijo e iteracion funcional


Definicion 1.5 [Funcion contractiva]

Una funcion f : R R se dice contractiva si verifica que

|f (x1 ) f (x2 )| q |x1 x2 | x1 , x2 R con q<1

q recibe el nombre de factor de contractividad.

Lema 1.4 [Caracterizacion de las funciones contractivas]

Si una funcion f (x) continua en [a, b] y derivable en (a, b) verifica que

|f 0 (x)| q < 1 x [a, b]

es contractiva en dicho intervalo.

Demostracion. Para cualquier par de puntos x1 , x2 [a, b]


(
[x1 , x2 ]
f (x1 ) f (x2 ) = (x1 x2 )f 0 (c) con c = c [a, b]
[x2 , x1 ]

|f (x1 ) f (x2 )| = |x1 x2 | |f 0 (c)| q |x1 x2 | con q < 1


por lo que es contractiva en [a, b].

Definicion 1.6 [Punto fijo]

Se dice que x es un punto fijo de la funcion f (x) si f (x) = x.

Teorema 1.5 [Teorema del punto fijo]

Sea (x) una funcion continua en [a, b], derivable en (a, b), con ([a, b]) [a, b]
tal que |0 (x)| q < 1 x [a, b], y sea x0 un punto cualquiera del intervalo
[a, b]. La sucesion

x0 , x1 , x2 , . . . , xn , . . . con xn+1 = (xn )

converge al unico punto fijo de la funcion (x) en [a, b].


14 Ecuaciones no lineales

Demostracion.

Convergencia
(
[xn , xn+1 ]
xn+1 xn = (xn ) (xn1 ) = (xn xn1 )0 (c) con c
[xn+1 , xn ]

y por tanto, con c [a, b].

|xn+1 xn | = |xn xn1 | |0 (c)| q|xn xn1 |

por lo que
|x2 x1 | q|x1 x0 |
|x3 x2 | q|x2 x1 | q 2 |x1 x0 |
..
.
|xn+1 xn | q n |x1 x0 |
..
.

|x0 | + |x1 x0 | + |x2 x1 | + + |xn+1 xn | +

|x0 | + |x1 x0 | + q|x1 x0 | + + q n |x1 x0 | + =

= |x0 | + |x1 x0 |(1 + q + + q n + ) con q < 1 =


1
|x0 | + |x1 x0 | + + |xn+1 xn | + |x0 | + |x1 x0 |
1q

por lo que la serie

Sn = x0 + (x1 x0 ) + (x2 x1 ) + + (xn+1 xn ) +

es convergente por ser absolutamente convergente. Dado que

S1 = x0
S2 = x0 + (x1 x0 ) = x1
..
.
Sn+1 = Sn + (xn xn1 ) = xn
..
.

la convergencia de Sn nos garantiza la de la sucesion (xn ).


Punto fijo e iteracion funcional 15

Convergencia al punto fijo

x = lim xn = (x) = (lim xn ) = lim (xn ) = lim xn+1 = (x)

es decir

(x) = x = x = lim xn es punto fijo de (x) en [a, b]

Unicidad

Sea x0 otro punto fijo de (x) en [a, b]].

|x x0 | = |(x) (x0 )| = |(x x0 )0 (c)| = |(x x0 )| |0 (c)| con c [a, b]

|x x0 |(1 |0 (c)|) = 0
y dado que |0 (c)| q < 1 = 1 |0 (c)| 6= 0, obtenemos que
|x x0 | = 0 y, por tanto, que x = x0 .

En otras palabras, x es el unico punto fijo de la funcion (x) en el


intervalo [a, b].

Interpretacion geometrica del teorema del punto fijo

Dependiendo de los valores que toma 0 (x) en el intervalo [a, b], podemos
distinguir cuatro casos:

a) 0 (x) < 1 b) 1 < 0 (x) < 0

c) 0 < 0 (x) < 1 d) 0 (x) > 1

pudiendose observar (vease la Fig. 1.4) que en los casos (a) y (d) la sucesion
resulta ser divergente ya que |0 (x) > 1|.
En los casos (b) y (c), en los que |0 (x)| q < 1 el metodo converge
monotonamente en (b) y de forma oscilatoria en (c).

Aplicacion a la resolucion de ecuaciones

Si se desea resolver la ecuacion f (x) = 0, se escribe esta de la forma x = (x),


donde (x) es una funcion contractiva, y partiendo de un determinado valor
inicial x0 , se construye la sucesion xn+1 = (xn ).
16 Ecuaciones no lineales

Figura 1.4: Esquema de la convergencia para el teorema del punto fijo.

El teorema del punto fijo nos garantiza la convergencia de esta sucesion al


punto fijo de la funcion (x) o lo que es lo mismo, a la raz de la ecuacion
f (x) = 0.

Para acotar el error de una determinada iteracion utilizamos la formula (1.1)


del error a posteriori.

Ejemplo 1.3 El calculo de la raz cuadrada de 3 equivale al calculo de la raz


positiva de la ecuacion x2 = 3. Aunque mas adelante veremos metodos cuya
convergencia es mas rapida, vamos a realizar los siguientes cambios:
3+x
x2 = 3 = x + x2 = x + 3 = x(1 + x) = 3 + x = x =
1+x
Es decir, hemos escrito la ecuacion de la forma x = (x) con
3+x
(x) =
1+x
Dado que sabemos que la raz de 3 esta comprendida entre 1 y 2 y que
2 2 1
|0 (x)| = 2
2 = < 1 para cualquier x [1, 2]
(1 + x) 2 2
Punto fijo e iteracion funcional 17

2 2 2
|0 (x)| = 2
2 = para cualquier x [1, 2]
(1 + x) 3 9
podemos garantizar que partiendo de x0 = 1 el metodo convergera a la raz
cuadrada de 3 y que el error a posteriori sera fiable.
3 + xn
As pues, partiendo de x0 = 1 y haciendo xn+1 = obtenemos:
1 + xn

x1 = 2 x14 = 1.73205079844084
x2 = 1.66666666666667 x15 = 1.73205081001473
x3 = 1.75000000000000 x16 = 1.73205080691351
x4 = 1.72727272727273 x17 = 1.73205080774448
x5 = 1.73333333333333 x18 = 1.73205080752182
x6 = 1.73170731707317 x19 = 1.73205080758148
x7 = 1.73214285714286 x20 = 1.73205080756550
x8 = 1.73202614379085 x21 = 1.73205080756978
x9 = 1.73205741626794 x22 = 1.73205080756863
x10 = 1.73204903677758 x23 = 1.73205080756894
x11 = 1.73205128205128 x24 = 1.73205080756886
x12 = 1.73205068043172 x25 = 1.73205080756888
x13 = 1.73205084163518 x26 = 1.73205080756888

|f (xn )|
El error vendra dado por n < donde f (x) = x2 3, por lo que
mn |f 0 (x)|
x[1,2]

|x226 3|
26 < = 4.884981308350688 1015 < 1014
2

es decir, 3 = 1.73205080756888 con todas sus cifras decimales exactas. 

Habamos visto que el metodo de la regula falsi solo necesitaba de 14 iteraciones


mientras que ahora hemos necesitado 26.

A que se debe que la convergencia haya sido muy lenta?

La respuesta es bien sencilla: a la mala eleccion de la funcion (x).

De que dependera la velocidad de convergencia?


18 Ecuaciones no lineales

Orden de convergencia
x 1
(x) = en [1, 1] es contractiva ya que |0 (x)| = < 1 x [1, 1]
2 2
x0 = 1 = x1 = 00 5 x2 = 00 25 x3 = 00 125 = x4 = 00 0625

Observamos que la convergencia a cero es lenta y ello es debido a que

0 (0) 6= 0 = convergencia lineal o de primer orden.

x2 x 1
(x) = en [1, 1] es contractiva: |0 (x)| = < 1 x [1, 1]

4 2 2
x0 = 1 x1 = 00 25 x2 = 00 015625 x3 = 60 105 . . . 105

La convergencia a cero es ahora rapida debido a que


x
0 (x) = 0 (0) = 0
2 convergencia de segundo orden.
1
00
(x) = 00 (0) 6= 0
2

x3
2
x 1
(x) = en [1, 1] es contractiva: |0 (x)| = < 1 x [1, 1]
6 2 2

x0 = 1 x1 = 00 16666 x2 = 00 00077 x3 = 70 6565 1011

La convergencia a cero es ahora muy rapida debido a que


x2

0 0
(x) = (0) = 0
2


(x) = x (0) = 0 = convergencia de tercer orden.
00 00


000 000
(x) = 1 (0) 6= 0

EL orden de convergencia nos lo da el orden de la primera derivada de la


funcion (x) que no se anula en su punto fijo x.
3+x
La funcion (x) = que obtuvimos para calcular 3 en el Ejemplo 1.3
1+x
verifica que
1 1
0 (x) = 2
= 0
( 3) = 6= 0
(1 + x) (1 + 3)2
por lo que ha resultado una convergencia de primer orden (similar a la de los
metodos de la biseccion y la regula falsi).
Analisis del metodo de Newton-Raphson 19

Como elegir una funcion de iteracion (x) que nos garantice una convergen-
cia, al menos, de segundo orden?

Vamos a ver como el metodo de Newton-Raphson, generalmente conocido como


metodo de Newton, nos permite escribir la ecuacion f (x) = 0 de la forma
x = (x) de tal manera que la convergencia sea, al menos de segundo orden.

1.4 Analisis del metodo de Newton-Raphson


Si tratamos de resolver la ecuacion f (x) = 0 y lo que obtenemos no es la
solucion exacta x sino solo una aproximacion xn tal que x = xn + h tendremos
que
f (xn ) f (xn )
f (x) ' f (xn ) + h f 0 (xn ) = h ' = x ' xn
f 0 (xn ) f 0 (xn )
obteniendose la denominada formula de Newton-Raphson
f (xn )
xn+1 = xn (1.2)
f 0 (xn )

Hemos transformado la ecuacion f (x) = 0 en x = (x) con


f (x)
(x) = x
f 0 (x)

f (xn )
Si partiendo de x0 [a, b] la sucesion (xn ) con xn+1 = (xn ) = xn
f 0 (xn )
converge entonces (x) es contractiva.
Ademas:
f (lim xn ) f (lim xn )
lim xn+1 = lim xn 0
= = 0 = f (lim xn ) = 0
lim f (xn ) lim f 0 (xn )
es decir, lim xn = x.

Interpretacion geometrica: Metodo de la tangente

Si trazamos la tangente a la curva y = f (x) en el punto (xn , f (xn )) obtenemos


la recta
y = f (xn ) + f 0 (xn )(x xn )
20 Ecuaciones no lineales

que corta al eje y = 0 en el punto de abscisa


f (xn )
x = xn
f 0 (xn )
que es precisamente el valor de xn+1 de la formula de Newton-Raphson.
En otras palabras, xn+1 viene determinado por el punto en el que la tangente
a la curva y = f (x) en (xn , f (xn )) corta al eje de abscisas, por lo que este
metodo es tambien conocido como metodo de la tangente.

y = f (x)

x
x2 x1 x0

Figura 1.5: Interpretacion geometrica del metodo de Newton.

Orden de convergencia
f (x)
Si el metodo converge, (x) = x es contractiva y ademas
f 0 (x)
f 02 (x) f (x)f 00 (x) f (x)f 00 (x)
0 (x) = 1 = con f 0 (x) 6= 0 = 0 (x) = 0
f 02 (x) f 02 (x)

El metodo de Newton es, al menos, de segundo orden.

Cota del error: Error a priori

La diferencia entre la solucion exacta x y la aproximacion xn+1 viene dada por


f (xn ) f (xn )
en+1 = x xn+1 = x xn + 0
= en + 0
f (xn ) f (xn )
Dado que
(
f 00 (t) 2 (x, xn )
0 = f (x) = f (xn + en ) = f (xn ) + f 0 (xn )en + en con t
2 (xn , x)
Analisis del metodo de Newton-Raphson 21

Si f 0 (x) 6= 0 x [a, b] podemos dividir entre f 0 (xn ) 6= 0 obteniendose

f (xn ) f 00 (t) 2 f 00 (t) 2


0= + en + en = en+1 + en
f 0 (xn ) 2 2

Tomando valores absolutos:

|f 00 (t)| 2 2 max |f 00 (x)|


n+1 = n k n con k
2|f 0 (xn )| 2 mn |f 0 (x)|

es decir, en cada iteracion dispondremos, aproximadamente, del doble de cifras


decimales exactas que en la iteracion anterior, que es lo que significa el hecho
de ser una convergencia de segundo orden.
Ademas, podemos obtener, multiplicando por k,
n+1
kn+1 k 2 2n = (kn )2 (kn1 )4 (kn2 )8 (k0 )2 =

1 n max |f 00 (x)|
n (k0 )2 con k
k 2 mn |f 0 (x)|
lo que nos proporciona una cota del error a priori, pudiendose garantizar la
1
convergencia siempre que k0 < 1 es decir, si 0 .
k

Algoritmo
Una vez realizado un estudio previo para ver que se cumplen las condiciones
que requiere el metodo, establecer el valor inicial x0 y calcular el valor de
m = mn |f 0 (x)|, el algoritmo, que tiene por entradas los valores de a, b, x, ,
x[a,b]
f (x) y m y por salida la raz x, es el siguiente:

Algoritmo de Newton

e = abs (f(x)/m);
while e>
x = x-f(x)/f0 (x);
e = abs (f(x)/m);
end
x
22 Ecuaciones no lineales

Ejemplo 1.4 En el Ejemplo 1.3 calculamos la raz de 3 con 14 cifras decimales


exactas en 26 iteraciones. Vamos a ver como se disminuye considerablemente
el numero de iteraciones cuando se utiliza la formula de Newton-Raphson.
Partimos de la ecuacion f (x) = x2 3 = 0, por lo que la formula de Newton-
Raphson nos dice que

x2 3 x2 + 3
 
f (xn ) 1 3
xn+1 = xn 0 = xn n = n = xn +
f (xn ) 2xn 2xn 2 xn

Dado que la raz de 3 es un numero comprendido entre 1 y 2 y la funcion


f 0 (x) = 2x no se anula en dicho intervalo, podemos aplicar el metodo de
Newton tomando como valor inicial x0 = 2. (Mas adelante veremos porque
debemos tomar 2 como valor inicial), obteniendose:

x0 =2
x1 = 1.75000000000000
x2 = 1.73214285714286
x3 = 1.73205081001473
x4 = 1.73205080756888

|f (xn )|
El error vendra dado, al igual que en el Ejemplo 1.3 por n < ,
mn |f 0 (x)|
x[1,2]
por lo que

|x24 3|
4 < = 4.884981308350688 1015 < 1014
2

es decir, 3 = 1.73205080756888 con todas sus cifras decimales exactas. 

 
1 A
La formula xn+1 = xn + es conocida como formula de Heron ya que
2 xn
este matematico la utilizaba para aproximar la raz cuadrada de un numero
real positivo A hacia el ano 100 a.C. pues saba que si dispona de un valor
aproximado xn y este fuese mayor que la raz buscada, necesariamente A/xn
sera menor que su raz y viceversa, por lo que la media entre ambos deba ser
una mejor aproximacion que xn . En otras palabras, en cada iteracion tomaba
como aproximacion de la raz la media aritmetica entre el valor xn anterior y
el cociente A/xn .
Analisis del metodo de Newton-Raphson 23

Analisis de la convergencia: Regla de Fourier


Hay que tener en cuenta que la naturaleza de la funcion puede originar difi-
cultades, llegando incluso a hacer que el metodo no converja.

Ejemplo 1.5 Tratemos de determinar, por el metodo de Newton-Raphson, la


raz positiva de la funcion f (x) = x10 1, tomando como valor inicial x0 = 0.5.
La formula de Newton-Raphson es, en este caso,
x10
n 1
xn+1 = xn .
10x9n
Aplicando el algoritmo se obtienen los valores

x1 = 51.65 x20 = 6.97714912329906


x2 = 46.485 x30 = 2.43280139954230
x3 = 41.8365 x40 = 1.00231602417741
x4 = 37.65285 x41 = 1.00002393429084
x5 = 33.887565 x42 = 1.00000000257760
x10 = 20.01026825685012 x43 =1

Puede observarse que la convergencia es muy lenta y solo se acelera (a partir


de x40 ) cuando estamos muy cerca de la raz buscada. 

Si en las proximidades de la raz existe un punto de inflexion, las itera-


ciones divergen progresivamente de la raz.


  

 
  
9
  
x1  x0
 
x x2

Figura 1.6: En las proximidades de un punto de inflexion puede diverger.


24 Ecuaciones no lineales

El metodo de Newton-Raphson oscila en los alrededores de un maximo


o un mnimo local, persistiendo o llegando a encontrarse con pendientes
cercanas a cero, en cuyo caso la solucion se aleja del area de interes.

y = f (x)

x x0 x1

Figura 1.7: En las proximidades de un extremo local puede oscilar o diverger.

Quiere decir eso que el metodo de Newton puede ser divergente?

El metodo de Newton siempre converge en las proximidades de la raz. El


problema surge cuando se toma un valor inicial x0 inadecuado (proximo a un
punto crtico).

Como podemos saber que el valor inicial x0 es adecuado?

La eleccion de x0 : Regla de Fourier

Si la funcion f (x) cambia de signo en los extremos de un intervalo [a, b] y


ademas, en dicho intervalo, no se anulan ni f 0 (x) ni f 00 (x), nos aseguramos
de que en [a, b] existe una unica raz de la ecuacion f (x) = 0 y no existen
extremos locales ni puntos de inflexion.

Por otra parte, como no nos interesa que x0 este situado cerca de un extremo
local, vamos a estudiar los diferentes casos con que podemos encontrarnos
y elegir, en cada uno de ellos, un valor adecuado para x0 (aquel que no se
encuentre cercano a un extremo local).
Analisis del metodo de Newton-Raphson 25

a a b b
b b a a

f 0 (x) > 0 f 0 (x) > 0 f 0 (x) < 0 f 0 (x) < 0


f 00 (x) < 0 f 00 (x) > 0 f 00 (x) > 0 f 00 (x) < 0
x0 = a x0 = b x0 = a x0 = b
Figura 1.8: Los cuatro casos posibles

Observese que en cualquiera de los cuatro casos (vease la Figura 1.8) hemos
optado por elegir, como valor inicial x0 , el extremo en el que la funcion tiene
el mismo signo que su segunda derivada.
Este resultado, que formalizamos a continuacion en forma de teorema es co-
nocido como regla de Fourier.

Teorema 1.6 [Regla de Fourier]

Sea f (x) una funcion continua y dos veces derivable [a, b]. Si sig f (a) 6= sig f (b)
y sus dos primeras derivadas f 0 (x) y f 00 (x) no se anulan en [a, b] existe una
unica raz de la ecuacion f (x) = 0 en dicho intervalo y se puede garantizar la
convergencia del metodo de Newton tomando como valor inicial x0 el extremo
del intervalo en el que la funcion y su segunda derivada tienen el mismo signo.

1.4.1 Metodo de Newton generalizado

Cuando el metodo de Newton converge lentamente se debe a que la raz que


estamos aproximando es multiple.
Supongamos que x fuese una raz doble de f (x). La funcion de iteracion
f (x)
(x) = x 0 del metodo de Newton verifica que
f (x)

f 0 2 (x) f (x)f 00 (x) f (x)f 00 (x)


0 (x) = 1 =
f 0 2 (x) f 0 2 (x)

0 (x) es una indeterminacion del tipo 0


0
que resulta ser distinta de cero, por lo
26 Ecuaciones no lineales

que la convergencia es de primer orden. De ah su lentitud.

Sera posible alguna modificacion en el metodo para que la convergencia


volviese a ser, al menos, de segundo orden?

f (x)
La raz x de f (x) tambien lo es de g(x) = pero con la particularidad
f 0 (x)
de que
g(x)
(x) = x
g 0 (x)
verifica que 0 (x) y 00 (x) tienden a cero cuando x lo hace a x, por lo
que al aplicar el metodo de Newton a la funcion g(x) obtenemos x con
una convergencia de, al menos, tercer orden.
Este proceso tiene el inconveniente de que si f (x) es, por ejemplo, un
polinomio, g(x) es una funcion racional, por lo que se complican los
calculos.

Sea x una raz de multiplicidad k de la ecuacion f (x) = 0.


f (xn )
Si en vez de hacer xn+1 = xn hacemos
f 0 (xn )

f (xn )
xn+1 = xn k (1.3)
f 0 (xn )

donde k representa el orden de la primera derivada que no se anula para


x = x (multiplicidad de la raz x), la convergencia vuelve a ser, al menos,
de segundo orden.

En la practica, el problema es que no conocemos k pero podemos determinar


su valor estudiando las derivadas de la funcion f (x).

Ejemplo 1.6 Para resolver la ecuacion x sen x = 0 comenzamos por ex-


presarla de la forma x = sen x, por lo que las soluciones seran los puntos de
interseccion de la curva y = sen x con y = x (Fig.1.9).
Aunque es conocido que la solucion de la ecuacion es x = 0, supondremos que
solo conocemos que esta comprendida entre -1 y 1 y vamos aplicar el metodo
de Newton.
xn sen xn sen xn xn cos xn
xn+1 = xn =
1 cos xn 1 cos xn
Analisis del metodo de Newton-Raphson 27

y=x

y = sen x
-1

0 1

Figura 1.9: Las graficas de y = x e y = sen x.

Comenzando con x0 = 1 se obtiene:

x0 = 1
.....................


f 0 (x10 ) = 0.0001 . . .

x10 = 0.016822799 . . . f 00 (x10 ) = 0.016 . . .


f 000 (x ) = 0.9998 . . .

10

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


f 0 (x20 ) = 0.00000001 . . .

x20 = 0.0000194 . . . f 00 (x20 ) = 0.0019 . . .


f 000 (x ) = 0.9999 . . .

20

Como la convergencia es muy lenta, hace pensar que se trata de una raz
multiple. Ademas, como la primera y la segunda derivadas tienden a cero y
la tercera lo hace a 1, parece que nos encontramos ante una raz triple, por lo
que aplicamos el metodo generalizado de Newton.
xn sen xn
xn+1 = xn 3
1 cos xn
que comenzando, al igual que antes, por x0 = 1 se obtiene:

x0 =1
x1 = 0.034 . . .
x2 = 0.000001376 . . .
x3 = 0.00000000000009 . . .

que se ve que converge rapidamente a x = 0. 


28 Ecuaciones no lineales

1.5 Un problema mal condicionado: ceros de


un polinomio
Si queremos resolver la ecuacion P (x) = 0 el problema viene condicionado por
los valores de |P 0 (x)| (su numero de condicion), por lo que si la derivada es
muy pequena el problema estara mal condicionado, pero si la derivada es muy
grande cualquier metodo se hace muy lento, por lo que lo ideal sera que la
derivada estuviese muy proxima a 1, pero claro esta, ese derivada ha de estar
muy proxima a 1 en todas las races del polinomio, cosa que es estadsticamente
casi imposible. Por tanto, el calculo de los ceros de un polinomio es un ejemplo
de problema mal condicionado. Sin embargo, vamos a estudiar como podemos
aproximar un determinado cero del polinomio.
Hemos visto que uno de los mayores problemas que presenta la resolucion de
una ecuacion es encontrarnos que posee races multiples ya que, en un entorno
de ellas, o bien la funcion no cambia de signo, o bien se aproxima demasiado
a cero y, por tanto, cualquier metodo puede dar soluciones erroneas.
En el caso de las ecuaciones algebraicas (Pn (x) = 0) este problema puede
solventarse buscando otra ecuacion que posea las mismas races que la dada
pero todas ellas simples, es decir, eliminando las races multiples.

Eliminacion de las races multiples

Por el teorema fundamental del Algebra sabemos que Pn (x) posee n races y,
por tanto, puede ser factorizado de la forma

Pn (x) = a0 (x x1 )(x x2 ) (x xn )

donde {x1 , x2 , . . . , xn } son los ceros del polinomio.


Si existen races multiples, las podemos agrupar para obtener:

Pn (x) = a0 (x x1 )m1 (x x2 )m2 (x xk )mk

donde mi (i = 1, 2, . . . k) representa la multiplicidad de la raz xi y verificando-


se que m1 + m2 + mk = n
Derivando esta expresion obtenemos:

P 0 (x) = na0 (x x1 )m1 1 (x xk )mk 1 Qk1 (x)

con Qk1 (xi ) 6= 0 i = 1, 2, . . . , k


Un problema mal condicionado: ceros de un polinomio 29

Por tanto, si x es una raz de la ecuacion P (x) = 0 con multiplicidad k, es


tambien una raz de P 0 (x) = 0 pero con multiplicidad k 1.

D(x) = mcd [P (x), P 0 (x)] = (x x1 )m1 1 (x xk )mk 1

por lo que
P (x)
Q(x) = = a0 (x x1 )(x x2 ) (x xk )
D(x)

Es decir, hemos encontrado un polinomio cuyas races son las mismas que las
de P (x) pero todas ellas simples.

Ejemplo 1.7 El polinomio P (x) = x3 5x2 + 8x 4 = (x 1)(x 2)2 tiene


la raz 1 simple y la 2 doble.

D(x) = mcd (P (x), P 0 (x)) = mcd (x3 5x2 + 8x 4, 3x2 10x + 8) = x 2

por lo que
P (x)
Q(x) = = x3 3x + 2 = (x 1)(x 2)
D(x)
que tiene las mismas races que P (x) pero todas simples. 

Acotacion de las races

Si ya conocemos que una ecuacion solo tiene races simples y queremos calcu-
larlas, parece apropiado que un primer paso consista en detectar donde pueden
encontrarse. As por ejemplo, si son reales, determinar intervalos de una am-
plitud reducida en los que se encuentren las races de la ecuacion.

Dada una ecuacion f (x) = 0 (en general com-


pleja) se denomina acotar las races a bus-
car dos numeros reales positivos r y R tales
que r |x| R para cualquier raz x de la
ecuacion.
Geometricamente consiste en determinar una
corona circular de radios r y R dentro de la
cual se encuentran todas las races.
En el caso real se reduce a los intervalos
(R, r) y (r, R).
30 Ecuaciones no lineales

Proposicion 1.7 Si x es una raz de la ecuacion

P (x) = a0 xn + a1 xn1 + + an1 x + an = 0

se verifica que:

A
|x| < 1 + siendo A = max |ai |
|a0 | i1

Demostracion. Sea P (x) = a0 xn + a1 xn1 + + an1 x + an . Tomando


modulos tenemos
|P (x)| = |a0 xn + a1 xn1 + + an1 x + an |
|a0 xn | |a1 xn1 + + an1 x + an |
i
+ + |an1 x| + |an | =
h i
= |a0 xn | |a1 | |xn1 | + + |an1 | |x| + |an |
|a0 xn | A [|x|n1 + + |x| + 1]
(Para considerar el ultimo parentesis como una progresion geometrica habra
que anadir los terminos que, probablemente, falten en P (x) y suponer que,
ademas, es |x| =
6 1).
|x|n 1
|P (x)| |a0 | |x|n A
|x| 1
Dado que el teorema es trivial para |x| < 1, supondremos que |x| > 1 y
entonces:
|x|n
 
n n A
|P (x)| > |a0 | |x| A = |x| |a0 |
|x| 1 |x| 1
Como la expresion anterior es cierta para cualquier |x| > 1, sea |x| > 1 con
P (x) = 0. Entonces
 
n A A
0 > |x| |a0 | = |a0 | < 0 =
|x| 1 |x| 1
A A
|a0 | < = |x| 1 < =
|x| 1 |a0 |

A
|x| < 1 + con |x| > 1
|a0 |

Es evidente que esta cota tambien la verifican las races x con |x| < 1.
Un problema mal condicionado: ceros de un polinomio 31

Proposicion 1.8 [Regla de Laguerre]

Consideremos la ecuacion

P (x) = a0 xn + a1 xn1 + + an1 x + an = 0

Sean C(x) = b0 xn1 + + bn2 x + bn1 el cociente y r el resto de la division


de P (x) entre x c.

Si r 0 y bi 0 para 0 i n 1, el numero real c es una cota superior


para las races positivas de la ecuacion. (Trivialmente lo es tambien para las
races negativas).

El procedimiento consiste en comenzar con la cota obtenida anteriormente


(que no suelen ser muy buena) e ir disminuyendola hasta afinarla todo lo que
podamos.

Ejemplo 1.8 Consideremos la ecuacion 2x4 9x3 x2 + 24x + 12 = 0.


Sabemos que
A 24
|x| < 1 + siendo A = max |ai | = |x| < 1 + = 13
|a0 | i1 2

por lo que cualquier raz real del polinomio debe estar en el intervalo (13, 13).
Aplicando la regla de Laguerre obtenemos:

2 9 1 24 12
4 8 4 20 16
2 1 5 4 28

2 9 1 24 12
5 10 5 20 240
2 1 4 48 252

Dado que para x = 4 se obtienen valores negativos no podemos garantizar que


4 sea una cota superior para las races positivas de la ecuacion, pero para x = 5
todos los valores obtenidos han sido positivos, por lo que podemos garantizar
que las races reales de la ecuacion se encuentran en el intervalo (13, 5).
No debemos confundir el hecho de que la regla de Laguerre no nos garantice
que 4 sea una cota superior de las races positivas y 5 s lo sea, con que la
32 Ecuaciones no lineales

ecuacion deba tener alguna raz en el intervalo (4, 5). En otras palabras, 4
puede ser una cota superior para las races positivas de la ecuacion aunque la
regla de Laguerre no lo garantice. De hecho, la mayor de las races positivas
de nuestra ecuacion es x = 3.56155281280883 . . . < 4. 

Separacion de las races

Las cotas obtenidas anteriormente nos delimitan la zona en la que debemos


estudiar la existencia de soluciones de la ecuacion pero, en realidad, lo que mas
nos acerca a nuestro problema (resolver la ecuacion) es separar cada raz en un
intervalo. A este proceso se le conoce como separacion de races y estudiaremos
un metodo que se conoce como metodo de Sturm que nos permite separar las
races de una ecuacion.

1.5.1 Sucesiones de Sturm


Definicion 1.7 [Sucesion de Sturm]

Una sucesion de Sturm en [a, b] es un conjunto de funciones continuas en dicho


intervalo f0 (x), f1 (x), . . . , fn (x) que cumplen las siguientes condiciones:

fn (x) 6= 0 cualquiera que sea x [a, b]. Es decir, el signo de fn (x)


permanece constante en el intervalo [a, b].

Las funciones fi (x) y fi+1 (x) no se anulan simultaneamente. En otras


palabras, si fi (c) = 0 entonces fi1 (c) 6= 0 y fi+1 (c) 6= 0.

Si fi (c) = 0 entonces fi1 (c) y fi+1 (c) tienen signos opuestos, es decir,
fi1 (c) fi+1 (c) < 0. (Engloba al apartado anterior).
f0 (x)
Si f0 (c) = 0 con c [a, b] entonces pasa de negativa a positiva
f1 (x)
en c. (Esta bien definida en c por ser f1 (c) 6= 0 y es creciente en dicho
punto).

Construccion de una sucesion de Sturm para un polinomio

La construccion de una sucesion de Sturm es, en general, complicada. Sin


embargo, cuando se trabaja con funciones polinomicas, el problema es mucho
mas simple ademas de que siempre es posible construir una sucesion de Sturm
valida para cualquier intervalo.
Un problema mal condicionado: ceros de un polinomio 33

Dada la ecuacion algebraica Pn (x) = 0, partimos de

f0 (x) = Pn (x) y f1 (x) = Pn0 (x)

Para determinar las demas funciones de la sucesion vamos dividiendo fi1 (x)
entre fi (x) para obtener

fi1 (x) = ci (x) fi (c) + ri (x)

donde ri (x) tiene grado inferior al de fi (x) y hacemos

fi+1 (x) = ri (x)

Como el grado de fi (x) va decreciendo, el proceso es finito. Si se llega a un


resto nulo (el proceso que estamos realizando es precisamente el del algoritmo
de Euclides) la ecuacion posee races multiples y se obtiene el maximo comun
divisor D(x) de Pn (x) y Pn0 (x). Dividiendo Pn (x) entre D(x) obtenemos una
nueva ecuacion que solo posee races simples.
fi (x) P (x)
La sucesion es una sucesion de Sturm para la ecuacion = Q(x) = 0
D(x) D(x)
que posee las mismas races que P (x) = 0 pero todas simples.

Si llegamos a un resto constante, no nulo, es este quien nos determina la


finalizacion del proceso. Hemos obtenido, de esta manera, una sucesion de
Sturm valida para cualquier intervalo [a, b].

Teorema 1.9 [Teorema de Sturm]

Sea f0 (x), f1 (x), . . . , fn (x) una sucesion de Sturm en el intervalo [a, b] y


consideremos las sucesiones

sig[f0 (a)] sig[f1 (a)] sig[fn (a)]

sig[f0 (b)] sig[f1 (b)] sig[fn (b)]

teniendo en cuenta que si alguna de las funciones se anula en uno de los


extremos del intervalo [a, b] pondremos en su lugar, indistintamente, signo +
o - y denotemos por N1 al numero de cambios de signo de la primera sucesion
y por N2 al de la segunda (siempre es N1 N2 ).
En estas condiciones, el numero de races reales existentes en el intervalo [a, b]
de la ecuacion f0 (x) = 0 viene dado por N1 N2 .
34 Ecuaciones no lineales

Ejemplo 1.9 Vamos a construir una sucesion de Sturm que nos permita se-
parar las races de la ecuacion x4 + 2x3 3x2 4x 1 = 0.
f0 (x) = x4 + 2x3 3x2 4x 1. f00 (x) = 4x3 + 6x2 6x 4.
f1 (x) = 2x3 + 3x2 3x 2.

2x4 + 4x3 6x2 8x 2 |2x3 + 3x2 3x 2


2x4 3x3 + 3x2 + 2x xk1
x3 3x2 6x 2 multiplicando por 2
2x3 6x2 12x 4
2x3 3x2 + 3x + 2
9x2 9x 2

f2 (x) = 9x2 + 9x + 2.

18x3 + 27x2 27x 18 |9x2 + 9x + 2


18x3 18x2 4x 2x + 1
9x2 31x 18
9x2 9x 2
40x 20

f3 (x) = 2x + 1.

18x2 + 18x + 4 |2x + 1


18x2 9x 9x k 9
9x + 4 multiplicando por 2
18x + 8
18x 9
1

f4 (x) = 1.

3 2 1 0 1 2 +
4 3 2
f0 (x) = x + 2x 3x 4x 1 + + + +
f1 (x) = 2x3 + 3x2 3x 2 0 + 0 + +
2
f2 (x) = 9x + 9x + 2 + + + + + + + +
f3 (x) = 2x + 1 + + + +
f4 (x) = 1 + + + + + + + +
cambios de signo 4 4 3 3 1 1 0 0
Un problema mal condicionado: ceros de un polinomio 35

Sabemos, por ello, que existe una raz en el intervalo (3, 2), dos races en
el intervalo (1, 0) y una cuarta raz en el intervalo (1, 2).
Como f0 (1) = 1 < 0, f0 (0.5) = 0.0625 > 0 y f0 (0) = 1 < 0 podemos
separar las races existentes en el intervalo (1, 0) y decir que las cuatro races
de la ecuacion dada se encuentran en los intervalos

(3 2) (1, 0.5) (0.5, 0) y (1, 2)




Si, una vez eliminadas las races multiples y separadas las races, queremos
resolver la ecuacion, utilizaremos el metodo de Newton.
Al aplicarlo nos encontramos con que tenemos que calcular, en cada paso, los
valores de P (xn ) y P 0 (xn ) por lo que vamos a ver, a continuacion, un algo-
ritmo denominado algoritmo de Horner que permite realizar dichos calculos
en tiempo lineal.

1.5.2 Algoritmo de Horner

Supongamos un polinomio P (x) y un numero real (en general tambien puede


ser complejo) x0 R. Si dividimos P (x) entre x x0 sabemos que el resto es
un polinomio de grado cero, es decir, un numero real, por lo que


rR
P (x) = (x x0 )Q(x) + r con y

gr[Q(x)] = gr[P (x)] 1

Haciendo x = x0 obtenemos que

P (x0 ) = 0 Q(x0 ) + r = P (x0 ) = r

Este resultado es conocido como teorema del resto y lo enunciamos a conti-


nuacion.

Teorema 1.10 [Teorema del resto]

El valor numerico de un polinomio P (x) para x = x0 viene dado por el resto


de la division de P (x) entre x x0 .
36 Ecuaciones no lineales

Algoritmo de Horner

Consideremos el polinomio P (x) = a0 xn + a1 xn1 + + an1 x + an .


Si llamamos bi (0 i n 1) a los coeficientes del polinomio cociente

P (x) P (x0 )
= Q(x) = b0 xn1 + b1 xn2 + + bn2 x + bn1
x x0
se tiene que
b 0 = a0
b 1 = a1 + x 0 b 0
b 2 = a2 + x 0 b 1
..
.
bn1 = an1 + x0 bn2
r = P (x0 ) = an + x0 bn1

Este procedimiento para calcular el polinomio cociente Q(x) y el valor nume-


rico de P (x0 ) es conocido como algoritmo de Horner.

Ademas, dado que

P (x) = Q(x)(x x0 ) + P (x0 ) = P 0 (x) = Q0 (x)(x x0 ) + Q(x)

se tiene que
P 0 (x0 ) = Q(x0 )
y el calculo de Q(x0 ) es analogo al que hemos realizado para P (x0 ), es decir,
aplicando el algoritmo de Horner a Q(x) obtenemos

Q(x) = C(x)(x x0 ) + Q(x0 ) donde Q(x0 ) = P 0 (x0 ).

Regla de Ruffini

Una regla util para hacer los calculos a mano es la conocida regla de Ruffini
que consiste en disponer las operaciones como se indica a continuacion.

a0 a1 a2 an1 an
x0 x0 b0 x0 b1 x0 bn2 x0 bn1

b0 b1 b2 bn1 P (x0 )
Sistemas de ecuaciones no lineales 37

Si utilizamos la regla de Ruffini solo tenemos que volver a dividir por x0 , como
se muestra a continuacion, para obtener el valor de P 0 (x0 ).

a0 a1 a2 an2 an1 an
x0 x0 b0 x0 b1 x0 bn3 x0 bn2 x0 bn1

b0 b1 b2 bn2 bn1 P (x0 )


x0 x0 c0 x0 c1 x0 cn3 x0 cn2

c0 c1 c2 cn2 P 0 (x0 )

Ejemplo 1.10 Consideremos el polinomio P (x) = 2x4 + x3 3x2 + 4x 5


y vamos a calcular los valores de P(2) y P(2). Aplicando reiteradamente al
regla de Ruffini obtenemos
2 1 3 4 5
2 4 10 14 36

2 5 7 18 31
2 4 18 50

2 9 25 68
por lo que
P (2) = 31 y P 0 (2) = 68 

Evidentemente, la regla de Ruffini nos es util para realizar calculos a mano


con una cierta facilidad, pero cuando los coeficientes de P (x) y el valor de x0
no son enteros sino que estamos trabajando con varias cifras decimales, deja
de ser efectivo y debemos recurrir al algoritmo de Horner en una maquina.

1.6 Sistemas de ecuaciones no lineales


Dado un sistema de ecuaciones no lineales
f1 (x1 , x2 , . . . , xm ) = 0

f2 (x1 , x2 , . . . , xm ) = 0
..
.
fm (x1 , x2 , . . . , xm ) = 0
38 Ecuaciones no lineales

podemos expresarlo de la forma f (x) = 0 donde x es un vector de Rm y f una


funcion vectorial de variable vectorial, es decir:

f : D Rm Rm

o lo que es lo mismo, f = (f1 , f2 , . . . , fm ) con fi : Rm R para 1 i m.

Ejemplo 1.11 Considerese el sistema



x2 2x y + 0.5 = 0
x2 + 4y 2 4 = 0

f1 (x)

t 1

t
-1 1
-2 2
-0.5
f2 (x)
-1

Figura 1.10: Grafica del sistema.

Podemos considerarlo como la ecuacion f (x) = 0 (observese que 0 representa


ahora al vector nulo, es decir, que 0 = (0, 0)T ) con x = (x, y)T y f = (f1 , f2 )
siendo
f1 (x) = x2 2x y + 0.5

f2 (x) = x2 + 4y 2 4 

Como hemos transformado el sistema en una ecuacion del tipo f (x) = 0, parece
logico que tratemos de resolverla por algun metodo paralelo a los estudiados
para ecuaciones no lineales como puedan ser la iteracion funcional o el metodo
de Newton.
Sistemas de ecuaciones no lineales 39

Si buscamos un metodo iterado basado en el teorema del punto fijo, debemos


escribir la ecuacion f (x) = 0 de la forma x = F (x) (proceso que puede rea-
lizarse de muchas formas, la mas sencilla es hacer F (x) = x + f (x)) para,
partiendo de un vector inicial x0 construir la sucesion de vectores


x1n+1 = F1 (x1n , x2n , . . . , xm
n)




x2 = F2 (x1 , x2 , . . . , xm )

n+1 n n n
xn+1 = F (xn )
..



.


m
xn+1 = Fm (x1n , x2n , . . . , xm n)

En el Ejemplo 1.11 podemos hacer

x2 y + 0.5
x2 2x y + 0.5 = 0 = 2x = x2 y + 0.5 = x =
2

x2 + 4y 2 4 = 0 = x2 + 4y 2 + y 4 = y = y = x2 + 4y 2 + y 4

es decir,



x = (x, y)T



x = F (x) con y

x2 y + 0.5 2


, x + 4y 2 + y 4)T

F (x) = (

2
Si x es una solucion de la ecuacion y xn+1 es una aproximacion obtenida, se
tiene que

kx xn+1 k = kF (x) F (xn )k = kF 0 ()(x xn )k kF 0 ()k kx xn k

por lo que si kF 0 (x)k q < 1 para cualquier punto de un determinado entorno


de la solucion, se tiene que

kx xn+1 k kx xn k

y la sucesion
x0 , x1 , . . . , x n , . . .
converge a la unica raz de la ecuacion x = F (x) en la bola considerada
(intervalo de Rm ).
40 Ecuaciones no lineales

Es importante observar que:

Se ha utilizado el concepto de norma vectorial al hacer uso de kx xn k.

Se ha utilizado una version del teorema del valor medio para varias va-
riables al decir que

kF (x) F (xn )k kF 0 ()k k(x xn )k

Se ha utilizado el concepto de norma matricial al hacer uso de kF 0 ()k


ya que F 0 (x) es la matriz jacobiana de la funcion F , es decir
F F1
1

x1 xm

0
.. .. ..
.
F (x) = . .


F Fm
m

x1 xm

Se supone que kF 0 ()(x xn )k kF 0 ()k kx xn k o de forma mas


general, que para cualquier matriz A (cuadrada de orden n) y cualquier
vector de Rn se verifica que

kAxk kAk kxk

Que el teorema del punto fijo es generalizable a funciones vectoriales de


variable vectorial.

1.6.1 Metodo de Newton para sistemas


Consideremos la ecuacion f (x) = 0 (donde f es una funcion vectorial de
variable vectorial) equivalente a un sistema de ecuaciones no lineales.
Sea x la solucion exacta del sistema y xn una aproximacion de ella. Si deno-
tamos por h = x xn se tiene que

x = xn + h

y haciendo uso del desarrollo de Taylor obtenemos que

0 = f (x) = f (xn + h) ' f (xn ) + f 0 (xn )h


Sistemas de ecuaciones no lineales 41

de donde
h ' f 01 (xn )f (xn )
y, por tanto
x ' xn f 01 (xn )f (xn ).
Esta aproximacion es que utilizaremos como valor de xn+1 , es decir

xn+1 = xn f 01 (xn )f (xn )

Observese entonces que cada iteracion del metodo de Newton se reduce al


calculo del vector h correspondiente y este no es mas que la solucion del sistema
de ecuaciones lineales
f 0 (xn )h + f (xn ) = 0
En el Ejemplo 1.11 se tiene que f (x) = 0 con x = (x, y)T y f = (f1 , f2 )T donde

f1 (x) = x2 2x y + 0.5 y f2 (x) = x2 + 4y 2 4

Tomando como valor inicial x0 = (0.5, 1)T se tiene que

f (x0 ) = (0.75, 0.25)T



2x 2 1 3 1
J(x) = = f 0 (x0 ) = J(x0 ) =
2x 8y 1 8

por lo que debemos resolver el sistema


1
3 1 h1 0.75
=
2
1 8 h1 0.25

h11 0.25
cuya solucion es h1 = = y, por tanto
h21 0

0.25
x1 = x0 + h1 =
1

Aplicando de nuevo el metodo se obtiene



0.0625 0.25 1
f (x1 ) = f 0 (x1 ) = J(x1 ) =
0.0625 0.5 8
42 Ecuaciones no lineales

obteniendose el sistema
1
0.25 1 h2 0.0625
=
0.5 8 h22 0.0625

h12 0.022561 . . .
cuya solucion es h2 = = y, por tanto
h22 0.006 . . .

0.227439 . . .
x2 = x1 + h2 =
0.994 . . .

En definitiva, podemos observar que la resolucion de un sistema de ecuaciones


no lineales mediante el metodo de Newton se reduce, en cada iteracion, a la
resolucion de un sistema de ecuaciones lineales por lo que el tema siguiente lo
dedicaremos al estudio de dichos sistemas de ecuaciones.
Bibliografa

[1] Burden, R.L. y Faires, J.D. Analisis Numerico (Sexta edicion). Interna-
cional Thomson Ed. 1998.

[2] Golub, G.H. y Van Loan, C.F. Matrix Computations (Third edition). Johns
Hopkins University Press

[3] Hager, W. Applied Numerical Linear Algebra. Ed. Prentice-Hall Interna-


tional. 1988.

[4] Kincaid, D. y Cheney, W. Analisis Numerico. Ed. Addison-Wesley Ibe-


roamericana. 1994.

[5] Noble, D. y Daniel, J.W. Algebra Lineal Aplicada. Ed. Prentice-Hall. 1989.

[6] Watkins, D.S. Fundamentals of MATRIX Computations. John Wiley &


Sons. 1991.

43

You might also like