Professional Documents
Culture Documents
Ecuaciones no lineales
Metodos directos
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.
1
2 Ecuaciones no lineales
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.
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.
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.
(x) = |f 0 (x)|
4 Ecuaciones no lineales
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.
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
en otras palabras,
a1 + b 1
Tomando el punto medio x1 =
2
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 ))
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
ba af (b) bf (a)
c = b f (b) =
f (b) f (a) f (b) f (a)
Si son f (c) y f (b) los que tienen signos contrarios, la raz esta en el
intervalo [c, b].
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
Error a posteriori
f (x)
f (x)
x x
xn
f (x)
f (x)
x x
xn
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)
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.
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
Demostracion.
Convergencia
(
[xn , xn+1 ]
xn+1 xn = (xn ) (xn1 ) = (xn xn1 )0 (c) con c
[xn+1 , xn ]
por lo que
|x2 x1 | q|x1 x0 |
|x3 x2 | q|x2 x1 | q 2 |x1 x0 |
..
.
|xn+1 xn | q n |x1 x0 |
..
.
S1 = x0
S2 = x0 + (x1 x0 ) = x1
..
.
Sn+1 = Sn + (xn xn1 ) = xn
..
.
es decir
Unicidad
|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 .
Dependiendo de los valores que toma 0 (x) en el intervalo [a, b], podemos
distinguir cuatro casos:
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).
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.
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
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
x3
2
x 1
(x) = en [1, 1] es contractiva: |0 (x)| = < 1 x [1, 1]
6 2 2
Como elegir una funcion de iteracion (x) que nos garantice una convergen-
cia, al menos, de segundo orden?
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.
y = f (x)
x
x2 x1 x0
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)
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
x2 3 x2 + 3
f (xn ) 1 3
xn+1 = xn 0 = xn n = n = xn +
f (xn ) 2xn 2xn 2 xn
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
9
x1 x0
x x2
y = f (x)
x x0 x1
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
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.
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.
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.
f (xn )
xn+1 = xn k (1.3)
f 0 (xn )
y=x
y = sen x
-1
0 1
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 . . .
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 )
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.
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.
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.
se verifica que:
A
|x| < 1 + siendo A = max |ai |
|a0 | i1
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
Consideremos la ecuacion
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
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.
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).
Para determinar las demas funciones de la sucesion vamos dividiendo fi1 (x)
entre fi (x) para obtener
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.
f2 (x) = 9x2 + 9x + 2.
f3 (x) = 2x + 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
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.
Algoritmo de Horner
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
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
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
c0 c1 c2 cn2 P 0 (x0 )
2 5 7 18 31
2 4 18 50
2 9 25 68
por lo que
P (2) = 31 y P 0 (2) = 68
f2 (x1 , x2 , . . . , xm ) = 0
..
.
fm (x1 , x2 , . . . , xm ) = 0
38 Ecuaciones no lineales
f : D Rm Rm
f1 (x)
t 1
t
-1 1
-2 2
-0.5
f2 (x)
-1
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
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 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
Se ha utilizado una version del teorema del valor medio para varias va-
riables al decir que
x = xn + h
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
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 . . .
[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
[5] Noble, D. y Daniel, J.W. Algebra Lineal Aplicada. Ed. Prentice-Hall. 1989.
43