Escolar Documentos
Profissional Documentos
Cultura Documentos
Soluci
on de Ecuaciones
En la solucion de muchos problemas aparece la necesidad de resolver ecuaciones de la forma
f (x) = 0
donde
f : R R.
Estas soluciones se llaman los ceros de f o races de la ecuacion. Pocos de estos problemas tienen una
solucion simple dada por una f
ormula como en el caso de las ecuaciones lineales y cuadraticas. A
un en el
caso de ecuaciones c
ubicas, para las cuales existen formulas para las soluciones, resulta mas f
acil hacerlo
numericamente porque las f
ormulas son complicadas e involucran races cuadradas y c
ubicas. Por lo tanto
es importante disponer de metodos efectivos para resolver ecuaciones. Vamos a discutir tres metodos: de
biseccion, de iteraci
on de punto fijo, y de Newton.
I.1
M
etodo de Bisecci
on
El metodo de bisecci
on (o de Bolzano) se basa en el teorema del valor intermedio (TVI) o de Bolzano:
si F C[a, b] y f (a)f (b) < 0 entonces existe x (a, b) tal que f (x) = 0
La funcion puede tener m
as de un cero en [a, b], pero al menos uno. Si c = (a + b)/2 es el punto medio
de [a, b], entonces se tiene tres posibilidades exclusivas:
a. f (c) = 0: entonces x = c es un cero
b. f (a)f (c) < 0: entonces existe al menos un cero en [a, c]
c. f (c)f (b) < 0: entonces existe al menos un cero en [c, b]
Con base en esta observaci
on se describe el metodo de la biseccion: Dado un intervalo inicial [a0 , b0 ] = [a, b]
tal que f (a)f (b) < 0 y un valor > 0 especificando el maximo error de aproximacion deseado, se repite lo
siguiente en la n-esima iteraci
on, comenzando con n = 0 mientras que bn an > :
1. cn = (an + bn )/2
2. si
a. f (cn ) = 0: entonces x = cn es un cero y termine la iteracion
b. f (an )f (cn ) < 0: entonces [an+1 , bn+1 ] = [an , cn ] y contin
ue con n + 1
c. f (cn )f (bn ) < 0: entonces [an+1 , bn+1 ] = [cn , bn ] y contin
ue con n + 1
Al final cn es una aproximaci
on a un cero de f en [a, b]. Note que en una iteracion, la mitad del intervalo
que se descarta puede realmente contener ceros que no pueden ser detectados por el criterio del TVI. Lo
importante es que el intervalo que se preserva contiene al menos un cero.
Ejemplo.
Usamos bisecci
on para determinar el menor cero positivo de f (x) = tan x x.
1
I.
DE ECUACIONES
SOLUCION
1
2
3
4
5
6
7
8
9
10
c =
4.100000
4.350000
4.475000
4.475000
4.475000
4.490625
4.490625
4.490625
4.492578
4.492578
s(a)
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
s(c)
4.350000
4.475000
4.537500
4.506250
4.490625
4.498437
4.494531
4.492578
4.493555
4.493066
-1
-1
1
1
-1
1
1
-1
1
-1
4.600000
4.600000
4.600000
4.537500
4.506250
4.506250
4.498437
4.494531
4.494531
4.493555
s(b)
1
1
1
1
1
1
1
1
1
1
4.4931
err = 9.7656e-04
yc = -0.0069
Convergencia
Es claro que para cada n 1
1
bn an = (bn1 an1 )
2
y por lo tanto
bn an =
b0 a0
ba
= n .
n
2
2
Por lo tanto
lim (bn an ) = 0
y de aqu que limn an = limn bn . El algoritmo garatiza que hay una raz r de f tal que para cada
n 0, r [an , bn ]. Por lo tanto
1
ba
|r cn | (bn an ) = n+1 .
2
2
Esto implica que
lim cn = r.
n
Error
El error es En = r cn . Entonces de acuerdo a lo anterior
|En |
ba
.
2n+1
I.1. METODO
DE BISECCION
0
0
NB = log2
1 = log2
,
2
si n NB entonces |En | . (Note que como se ha usado n, si el algoritmo decide que c0 es un cero, o una
suficiente aproximaci
on, entonces termina con c0 como resultado y el n
umero de iteraciones es n = 0.)
Ejemplo. Para la funci
on e intervalo inicial del problema anterior queremos determinar el n
umero de
iteraciones necesarias para = 103 . Entonces, 0 = b a = 0.5 y
0.5
NB = log2
= 8.
2 103
La discrepancia con el ejemplo, en el que se listan 10 iteraciones, se debe primero a que all se lista como
primera la iteraci
on 0 (antes de dividir por primera vez), y segundo a que el programa mide el error como
b a en lugar de (b a)/2 como debera ser.
Implementaci
on en Matlab
La funcion Matlab bisect implementa el metodo de biseccion. Aqu se muestra con el cambio para producir
la tabla del ejemplo en la secci
on.
function [c, err, yc] = bisect (f, a, b, delta)
% Entrada - f es la funcion introducida como una cadena de caracteres f
%
- a y b son los extremos izquierdo y derecho
%
- delta es la tolerancia
% Salida - c es el cero
%
- yc = f(c)
%
- err es el error estimado para c
ya = feval(f, a);
yb = feval(f, b);
if ya*yb > 0, return, end
max1 = 1 + round((log(b-a) - log(delta)) / log(2));
fprintf(\n n
a
s(a)
c
s(c)
b
s(b) \n\n);
for k = 1:max1
c = (a + b) / 2;
x = [k a sign(f(a)) c sign(f(c)) b sign(f(b))];
fprintf(%2i
%8.6f %2i
%8.6f %2i
%8.6f %2i \n, x);
yc = feval(f, c);
if yc == 0
a = c;
b = c;
elseif yb*yc > 0
b = c;
yb = yc;
else
a = c;
ya = yc;
end
if b-a < delta, break, end
end
c = (a + b) / 2;
x = [k+1 a sign(f(a)) c sign(f(c)) b sign(f(b))];
fprintf(%2i
%8.6f %2i
%8.6f %2i
%8.6f %2i \n, x);
err = abs(b - a);
yc = feval(f, c);
I.2
I.
DE ECUACIONES
SOLUCION
M
etodo del Punto Fijo
Aunque la forma general que nos interesa es f (x) = 0, el metodo de punto fijo resuelve ecuaciones de la forma
x = g(x)
donde
g : R R.
Si p es una soluci
on de esta ecuaci
on, es decir tal que p = g(p), entonces se dice que p es un punto fijo de g.
Dado un p0 R, una iteraci
on de punto fijo es una iteracion de la forma
pn+1 = g(pn )
para
n 0.
1
=
2
3
pn +
pn
3
g2 (x) = ,
x
1
g3 (x) =
2
3
x+
.
x
Es facil verificar que cada una de las ecuaciones de punto fijo x = gi (x), i = 1, 2, 3,es equivalente a la ecuacion
f (x) = 0 con f (x) = x2 3. As que cada una de las gi tiene puntos fijos en 3. Los primeros elementos
de las sucesiones para g1 , g2 , g3 con p0 = 2 son:
n=0
1
2
3
4
5
2.000000000000000
2.250000000000000
2.765625000000000
3.927795410156250
7.034689606167376
18.656404069947204
2.000000000000000
1.500000000000000
2.000000000000000
1.500000000000000
2.000000000000000
1.500000000000000
2.000000000000000
1.750000000000000
1.732142857142857
1.732050810014727
1.732050807568877
1.732050807568877
I.2. METODO
DEL PUNTO FIJO
g1
g2
g3
En g3 del ejemplo anterior se puede reempazar 3 con cualquier a > 0 y entonces la iteracion de punto
fijo, si converge, nos da un metodo para calcular races cuadradas usando multiplicaciones y divisiones. La
funcion g1 es un caso particular de lo siguiente: p es una solucion de f (x) = 0 si y solo si p es un punto fijo
de
g(x) = x + cf (x)
con c 6= 0. Aunque para g1 en el ejemplo no hay convegencia a 3, una eleccion diferente de c puede cambiar
la situacion (ver ejemplo m
as tarde). Esto se puede incluso extender a
g(x) = x + (x)f (x)
donde es una funci
on con (x) 6= 0 para todo x.
Existencia y Convergencia
Nos interesa entonces estudiar bajo que condiciones existen puntos fijos y bajo que condiciones se tiene
convergencia. Primero, el siguiente lema garantiza que si la iteracion de punto fijo de g converge, lo hace a
un punto fijo de g.
Lema 1 Si g : R R es continua y si la sucesi
on de punto fijo {pn }
n=0 de g converge a p, es decir
limp pn = p, entonces p es un punto fijo de g, es decir g(p) = p.
Dem. Se tiene
g(p) = g( lim pn ) = lim g(pn ) = lim pn+1 = p,
n
I.
DE ECUACIONES
SOLUCION
Teorema 2 (Existencia del punto fijo) Supongamos que g C[a, b] y que g(x) [a, b] para todo x [a, b].
Entonces g tiene un punto fijo en [a, b]. Si adem
as g 0 existe para todo x [a, b], y existe K R, 0 < K < 1,
tal que |g 0 (x)| K, entonces el punto fijo es u
nico.
Prueba. Asumiendo la primera parte primero, si g(a) = a o g(b) = b entonces ya se tiene un punto fijo.
Entonces asumiendo g(a) 6= a y g(b) 6= b esto implica que g(a) > a y g(b) < b. Definiendo f (x) = g(x) x,
se tiene entonces f (a) > 0 y f (b) < 0 y por el teorema del valor intermedio existe c (a, b) tal que f (c) = 0.
Es decir g(c) = c, as que c es un punto fijo de g. Si ademas |g 0 (x)| K < 1 para todo x [a, b] y si
p1 , p2 [a, b], p1 6= p2 , son puntos fijos, entonces por el teorema del valor medio para alg
un c (a, b)
g 0 (c) =
g(p1 ) g(p2 )
p1 p2
=
= 1.
p1 p2
p1 p2
I.2. METODO
DEL PUNTO FIJO
y entonces
|p p1 | K|p p0 |
|p p2 | K|p p1 | K(K|p p0 |) = K 2 |p p0 |
..
.
|p pn1 | K n1 |p p0 |
|p pn | K|p pn1 | K(K n1 |p p0 |) = K n |p p0 |.
Como K < 1 se tiene
lim K n = 0
y
0 lim |pn p| lim K n |p p0 | = 0
n
Por lo tanto
lim |p pn | = 0
y
lim pn = p.
Es decir, la sucesi
on de punto fijo {pn }
n=0 converge a p.
Ahora asumimos las condiciones en (b). Supongamos q esta suficientemente cerca de p de tal forma que
|g 0 (x)| > 1 para todo x entre p y q (esto es posible porque |g 0 (p)| > 1 implica que |g 0 (p)| > 1 + para alg
un
> 0). Entonces, para alg
un c entre p y q,
|p g(q)| = |g(p) g(q)| = |g 0 (c)(p q)| = |g 0 (c)||p q| > |p q|.
En el caso (b), en el cual |g 0 (p)| > K > 1, no puede decirse simplemente que nunca hay convergencia.
Puede haber convergencia no asint
otica, es decir que para alg
un n se tenga pn = p, como muestra la figura.
Por supuesto esto requiere una funci
on y una eleccion de p0 muy especiales. Es cierto por otra parte que no
puede haber convergencia asint
otica al punto fijo p (pero puede haber convergencia asintotica a otro punto
fijo).
4
5
2
1
p0 p
Ejemplo. Sea g(x) = 2x . Queremos verificar que las condiciones para existencia y convergencia al punto
fijo se dan en el intervalo [0, 1]:
(i) g es una exponencial la cual sabemos que es continua en R y en [0, 1] en particular.
(ii) 2x es decreciente (g 0 (x) < 0) y g(0) = 1 y g(1) = 1/2 entonces g(x) [0, 1] para todo x [0, 1].
I.
DE ECUACIONES
SOLUCION
(iii) g 0 (x) existe para todo x [0, 1] y esta dada por g 0 (x) = 2x ln 2.
(iv) Para acotar |g 0 (x)| en [0, 1] determinamos el maximo y el mnimo de g 0 (x) en [0, 1]. Como ya sabemos
que 2x es mon
otona entonces g 0 (x) tambien lo es y por lo tanto el max y el min estan en los extremos
0
del intervalo: g (0) = ln 2 y g 0 (1) = ln 2/2. As que |g 0 (x)| ln 2 = 0.693147 para todo x [0, 1].
Podemos concluir que existe un u
nico punto fijo de g(x) en [0, 1] y que la iteracion de punto fijo con p0 [0, 1]
converge a ese punto fijo. La iteraci
on es, para n 1,
pn = 2pn1 .
Con p0 = 0.5, en Matlab obtenemos (con tolerancia .5 104 para que las cifras obtenidas con format short
sean significativas, y m
aximo n
umero de iteraciones 20 lo cual resulta suficiente):
>> [p, k, err, P] = fixpt(f,0.5,0.5e-4,20)
p =
0.6412
k =
13
err =
2.8178e-05
P = 0.5000
0.7071
0.6125
0.6540
0.6355
0.6437
0.6401
0.6417
0.6410
0.6413
0.6411
0.6412
0.6412
Ejemplo. Veamos que podemos rescatar la idea de la funcion g1 del primer ejemplo si escogemos una
constante c apropiada en
g(x) = x + c(x2 3).
Se tiene que
g 0 (x) = 1 + 2cx.
As que podemos
tratar de escoger c de tal forma que la condicion (a) del teorema se satisfaga. En particular
conviene tener g 0 ( 3)cerca de cero (para tener un intervalo alrededor donde |g 0 (x)| K <1 para alg
un K. Es
0
decir c cerca de 1/2 3. Escojamos c = 1/4 y entonces g (x) = 1 x/2. Sabemos que 3 [3/2, 2]. Ahora
veamos que constante K en |g 0 (x)| < K podemos garantizar en este intervalo. g 0 (x) es monotona decreciente
(porque g 00 (x) = 1/2), as que es suficiente investigar los valores extremos: g 0 (3/2) = 1 (3/2)/2 = 1/4 y
g 0 (2) = 1 2/2 = 0. As que |g 0 (x)| K en [3/2, 2] con K = 1/4. Conclumos que escogiendo cualquier p0
en [3/2, 2], la secuencia de punto fijo de
1
g4 (x) = x (x2 3)
4
converge a su punto fijo en [3/2, 2] (el cual es 3). Por otra parte, observamos que para
on original
la funci
g1 , por ejemplo con p0 = 1, la secuencia de punto fijo converge, pero al punto fijo 3:
I.2. METODO
DEL PUNTO FIJO
n=0
1
2
3
4
5
6
7
8
9
-1.000000000000000
-1.500000000000000
-1.687500000000000
-1.725585937500000
-1.731174230575562
-1.731933176423340
-1.732035044524380
-1.732048695659237
-1.732050524625521
-1.732050769661635
x
g10 ( 3) = 1 + |x=3 = 0.1339..
2
Finalmente observamos que la variaci
on
1
g5 (x) = x + (x2 3)
2
-1.000000000000000
-2.000000000000000
-1.500000000000000
-1.875000000000000
-1.617187500000000
-1.809539794921875
-1.672322660218924
-1.773991120278074
-1.700468872865346
-1.754671679073376
-1.715235328402286
En este u
ltimo caso
Error
El error absoluto En es la diferencia entre el puto fijo y la aproximacion pn :
En = p pn .
Queremos estudiar como se puede garantizar que |En | donde > 0 es un dato especificado. El teorema
anterior, en el caso de convergencia, da la cota
|En | K n |p p0 |.
La constante K se determina analizando g. Pero puesto que no conocemos p, realmente no conocemos |pp0 |.
As que debemos encontrar una cota superior conocida 0 para |p p0 |. Como p0 , p [a, b] entonces
|p p0 | b a,
pero una cota posiblemente un poco mejor (es decir, menor) es
|p p0 | max{p0 a, b p0 }
10
I.
DE ECUACIONES
SOLUCION
|En | K n 0
donde
1
|p1 p0 | .
0 = min max{p0 a, b p0 },
1K
(Note por que en este caso se usa min: ambas cotas son siempre validas, entonces la mejor es la menor de
ellas.) Si se desea determinar una aproximacion pn tal que |En | para un dado > 0 peque
no entonces el
n
umero de iteraciones se debe tener que
K n 0
y por lo tanto
Kn
0
0
Dividiendo por ln K se tiene que (note que K < 1 implica ln K < 0 y por lo tanto la desigualdad se invierte)
n log K log
log(0 /)
log(/0 )
=
log K
log(1/K)
I.2. METODO
DEL PUNTO FIJO
11
log(2 106 )
= 35.8032
log 0.693147
Implementaci
on Matlab
En la librera de funciones provista con el texto [Mathews,Fink], la funcion que implementa el metodo de
punto fijo se llama fixpt y se muestra abajo. La descripcion de todos los parametros de entrada y salida de
la funcion se encuentran como comentarios despues de la primera lnea de la funcion. Y se pueden ver en la
ventana de comandos con el comando help fixpt. Como se haba mencionado antes, como el punto fijo
es desconocido, se usa m
as bien el error |pk pk1 | para decidir si se detiene la iteracion. Adem
as tambien
se examina el error relativo
|pk pk1 |
|pk |
Para evitar divisi
on por cero, se divide por abs(P(k))+eps donde eps es un n
umero muy peque
no predefinido
en Matlab. La iteraci
on se interrumpe cuando se alcance la tolerancia especificada por el parametro tol o
cuando se alcance el n
umero de m
aximo max1 de iteraciones especificadas.
function [p, k, err, P] = fixpt (g, p0, tol, max1)
% Entrada - g es la funcion iteracion
%
- p0 es el supuesto inicial para el punto fijo
%
- tol es la tolerancia
%
- max1 es el numero maximo de iteraciones
% Salida - p es la aproximacion del punto fijo
%
- k es el numero de iteraciones realizadas
%
- err es el error en la aproximacion
%
- P contiene la secuencia {pn}
P(1) = p0;
for k = 2:max1
P(k) = feval(g, P(k-1));
err = abs(P(k) - P(k-1));
relerr = err / (abs(P(k)) + eps);
p = P(k);
if (err < tol) | (relerr < tol), break; end
end
if k == max1
disp(maximum number of iterations exceeded)
end
P = P;
12
Problema.
donde
I.
DE ECUACIONES
SOLUCION
Emplear el metodo de punto fijo para determinar los ceros o races de la ecuacion f (x) = 0
f (x) = 2(1 x)ex 1.
Soluci
on. Primero analizamos las posibles posiciones de los ceros, si existen. Pusto que
f (0) = 0,
lim = ,
x+
lim = 1,
se tiene al menos un cero en (, 0) y al menos un cero en (0, +). Podemos analizar la derivada
f 0 (x) = 2ex + 2(1 x)ex = 2xex
para obtener m
as informaci
on: f 0 (x) = 0 para x = 0, f 0 (x) > 0
para x < 0 y f 0 (x) < 0 para x > 0. As que f es creciente en
(, 0) y decreciente en (0, +), y por lo tanto f tiene exactamente un cero en cada uno de esos intervalos, los que denotamos
por c1 , c2 respectivamente. El comportamiento se puede observar
en la grafica. All se puede ver que c1 [2, 1] y c2 [0.5, 1] (y si
se quiere se puede verificar calculando f (2) = 0.1880, f (1) =
0.4715 y f (0.5) = 0.6487, f (1) = 1).
Una ecuacion de punto fijo equivalente se puede obtener despejando x en f (x) = 0. Se ven dos formas
directas de hacerlo: despejando x en (1 x) y despejando x en ex . Los resultados son x = g1 (x) y x = g2 (x)
donde
1
g1 (x) = 1 ex ,
g2 (x) = ln 2(1 x).
2
Se observa que g1 est
a definida para todo x, pero g2 solo este.finida para x < 1. La figura mustra las gr
aficas
de g1 y g2 . Tambien se observa que los dos ceros aparecen como puntos fijos de g1 y de g2 , pero es evidente
Funciones g1 y g2
respectivamente. La lnea en cada caso es y = x.
que en cada gi s
olo uno de los puntos fijos exhibe convergencia (g10 (c1 ) > 1, 0 < g10 (c2 ) < 1, 0 < g20 (c1 ) < 1, y
0
g2 (c2 ) > 1). Para verificar el comportamiento encontramos las derivadas
1
g10 (x) = ex ,
2
g20 (x) =
1
.
1x
Para x 0, g10 (x) es decreciente con limx g10 (x) = 0; por lo tanto |g10 (x)| |g10 (0)| = 1/2. Por lo tanto g1
puede ser usada para aproximar c2 con p0 = 0. Para x 0, g20 (x) es creciente con limx g20 (x) = 0; por lo
tanto |g20 (x)| |g20 (0)| = 1. As que se tiene |g20 (x)| < 1 para x < 0 y solo |g20 (x)| = 1 para x = 0. Por esto
no se aplica estrictamente el teorema que garantiza la convergencia. Sin embargo, se observa que la primera
iteracion comenzando con p0 = 0 producira p1 < 0 y all ya se puede garantizar.
I.2. METODO
DEL PUNTO FIJO
13
f=@(x) 2*(1-x)*exp(x)-1
figure
hold on
fplot(f,[-3,1])
grid on
g1=@(x)1-0.5*exp(-x)
figure
hold on
fplot(g1,[-2.5 2])
fplot(x,[-2.5 2],r)
g2=@(x) -log(2*(2-x))
grid on
figure
hold on
fplot(g2,[-2.5 0.99])
fplot(x,[-2.5 0.99],r)
grid on
Las funciones tambien se pueden definir con el comando inline: por ejemplo,
f=inline(2*(1-x)*exp(x)-1);
Finalmente se determinan aproximaciones a los puntos fijos usando la funcion fixpt con p0=0, tol=106
(seleccionado arbitrariamente ya que no esta especificado), y max1=20 (que resulta suficiente para la tolerancia
especificada):
>> [p1 k1 err1 P1] = fixpt(g1,0,1e-6,20)
p1 = 7.6804e-01
k1 = 12
err1 = 4.8112e-07
P1 =
0
5.0000e-01
6.9673e-01
7.5090e-01
7.6403e-01
7.6711e-01
7.6782e-01
7.6799e-01
7.6803e-01
7.6804e-01
7.6804e-01
7.6804e-01
14
I.3
I.
DE ECUACIONES
SOLUCION
M
etodo de Newton
Motivaci
on como m
etodo de punto fijo. La ecuacion f (x) = 0 se puede transformar en un problema
de punto fijo x = g(x) definiendo
g(x) = x + (x)f (x)
donde : R R es una funci
on tal que (p) 6= 0 si f (p) = 0 (si no para todo tal p, al menos para los p
que sean de inteeres. C
omo escoger ? Para convergencia, |g 0 (p)| < 1 y cuanto mas cercano a cero mejor.
Tenemos que
g 0 (x) = 1 + 0 (x)f (x) + (x)f 0 (x)
y usando f (p) = 0 se obtiene
g 0 (p) = 1 + (p)f 0 (p).
Se observa que la elecci
on (x) = 1/f 0 (x) implica g 0 (p) = 0. As que obtenemos la funcion de punto fijo
g(x) = x
f (x)
,
f 0 (x)
f (pn )
.
f 0 (pn )
Motivaci
on geom
etrica.
La figura muestra el gr
afico de la funci
on f con la recta tangente en el punto
f(pn )
f (pn )
.
= pn 0
f (pn )
p
p
n+1
Motivaci
on con aproximaci
on de Taylor. La aproximacion de Taylor de primer orden para f alrededor
de x es
1
f (y) = f (x) + f 0 (x)(y x) + f 00 (y )(y x)2
2
para alg
un y entre x y y. Para |y x| peque
no de tal forma que 21 f 00 (y )(y x)2 0 (aproximadamente 0)
se tiene la aproximaci
on f(y) de f (y):
f (y) f(y) = f (x) + f 0 (x)(y x).
Entonces una aproximaci
on p del cero p de f se puede obtener haciendo y = p y f(
p) = 0. Es decir
0 = f(
p) = f (x) + f 0 (x)(
p x),
y de aqu
p = x
f (x)
.
f 0 (x)
f (pn )
f 0 (pn )
I.3. METODO
DE NEWTON
15
Ejemplo. Queremos aproximar la raz de f (x) = 0 para f (x) = xex (la cual podemos ver est
a en x = 0).
Tenemos que f 0 (x) = ex xex = (1 x)ex , y entonces
f (x)
xex
x
x(1 x) x
x2
=
x
=
x
=
=
.
f 0 (x)
(1 x)ex
1x
1x
1x
g(x) = x
p2n
.
1 pn
Se obtiene la secuencia
p2
p3
p4
p5
p6
p0
0.500000002
p1 = f (p0 ) =
1 0.50000000
(0.50000000)2
= f (p1 ) =
1 (0.50000000)
(0.16666667)2
= f (p2 ) =
1 (0.16666667)
(0.02380952)2
= f (p3 ) =
1 (0.02380952)
(0.00055370)2
= f (p4 ) =
1 (0.00055370)
(0.00000030)2
= f (p5 ) =
1 (0.00000030)
= 0.50000000
= 0.50000000
= 0.16666667
= 0.02380952
= 0.00055370
= 0.00000030
= 0.000000000
Orden de Convergencia
Puesto que el metodo de Newton es un metodo de punto fijo, el analisis de este da la cota
|p pn | K|p pn1 |
donde K es una cota superior de |g 0 (x)| en el intervalo de interes. Como g 0 (p) = 0 entonces K 0 a medida
que la sucesion se acerca a p. Resulta que suficientemente cerca de p un analisis mas refinado es posible: una
cota de la forma
|p pn | A |p pn1 |2
es valida suficientemente cerca del cero p de f .
Supongamos que la sucesi
on {pn }
n=0 converge a p y sea En = p pn el error para cada n 0. Se dice
que la sucesion {pn }n=0 converge a P con orden de convergencia R, donde R > 0 es una constante, si
lim
|p pn+1 |
|En+1 |
= lim
=A
n |En |R
|p pn |R
f (pn )
,
f 0 (pn )
16
I.
DE ECUACIONES
SOLUCION
f (x)
f 0 (x)
y
g 0 (x) = 1
(f 0 (x))2 f f 00 (x)
.
(f 0 (x))2
Puesto que f (p) = 0 y f 0 (p) 6= 0, entonces g 0 (p) = 0. Por lo tanto existe > 0 tal que |g 0 (x)| < 1 para x I
donde I = [p , p + ]. Por lo tanto si p0 I entonces la secuencia de punto fijo {pn }
n=0 converge a p.
Ahora consideramos el orden de convergencia. Usando la aproximacion de Taylor, con n entre x y pn ,
f (x) = f (pn ) + (x pn )f 0 (pn ) + (x pn )2
f 00 ()
.
2
p = pn 0
f (p )
2
f (pn )
|
{z n }
pn+1
= pn+1
(p pn )2 f 00 (n )
0
2
f (pn )
y entonces
p pn+1 = (p pn )2
f 00 (n )
.
f 0 (pn )
y
|p pn+1 | f 00 (n )
= 0
.
|p pn |2
f (pn )
Ahora, cuando n entonces, como ya se concluyo, pn p y por lo tanto n p. De aqu que
|p pn+1 | f 00 (p)
= 0 .
lim
n |p pn |2
2f (p)
Error
Veamos que implicaci
on tiene la convergencia cuadratica sobre el error; en particular, cuantas iteraciones se
necesitan para lograr cierto error . Sea
A =
maxxI |f 00 (x)|
,
minxI |f 0 (x)|
I.3. METODO
DE NEWTON
17
1
n
(A |p p0 |)2
A
Sea 0 tal que |p p0 | 0 (puede ser 0 = b a, la longitud del intervalo inicial) y supongamos queremos
|p pn | . Entonces se debe tener
1
n
(A 0 )2 ,
A
y de aqu
n log2
log(A )
log(A 0 )
= log2
log(1/A )
log(1/A 0 )
.
Finalmente, con
NN R = log2
log(1/A )
log(1/A 0 )
,
= dlog2 (1/k )e
= dk log2 10e
d3.32 ke
k
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PF
4
7
10
14
17
20
24
27
30
34
37
40
44
47
50
NR
3
3
4
4
5
5
5
5
5
6
6
6
6
6
6
El error especificado k es 10k . Las otras dos columnas, PF y NR, y curvas en la figura, muestran los
n
umeros de iteraciones NP F y NN R requeridos para
acotar el error con k .
Multiplicidad de la Raz
El analisis anterior no es v
alido si f 0 (p) = 0. Esto sucede cuando p es una raz m
ultiple. La raz x = p es de
orden M si
f (p) = 0, f 0 (p) = 0, f 00 (p) = 0, . . . f (M 1) (p) = 0, f (M ) (p) 6= 0.
18
I.
DE ECUACIONES
SOLUCION
f 00 (p)
f (M 1) (p)
(x p)2 + +
(x p)M 1 +
2
(M 1)!
f (M ) (p)
f (M +1) ((x))
(x p)M +
(x p)M +1
M!
(M + 1)!
f (M ) (p)
f (M +1) ((x))
(x p)M +
(x p)M +1
M!
(M + 1)!
!
(M ) (p)
(M +1) ((x))
f
f
= (x p)M
+
(x p)
M!
(M + 1)!
= (x p)M h(x)
Ejemplo.
f 0 (0) = ex + 1 |x=0 = 0;
f 0 (0) = ex |x=0 = 1.
Alternativamente, la expansi
on de Taylor de ex es
1
1
ex = 1 x + x2 x3 +
2
6
y
e
1
1
1 + x = x2 x3 + = x2
2
6
1 1
x + .
2 6
I.3. METODO
DE NEWTON
0
-0.500000000000000
-0.566311003197218
-0.567143165034862
-0.567143290409781
-0.567143290409784
19
0
-0.250000000000000
-0.398639686946376
-0.480194115423827
-0.522966807453253
-0.544876120719794
-0.555964542595883
-0.561542572005131
-0.564340088372214
-0.565740977843932
-0.566441956135348
-0.566792578761598
-0.566967923456313
-0.567055604150499
-0.567099446584479
-0.567121368323212
-0.567132329323018
-0.567137809855531
-0.567140550129940
-0.567141920269182
-0.567142605339313
-0.567142947874506
-0.567143119142134
-0.567143204775956
-0.567143247592869
-0.567143269001326
-0.567143279705555
-0.567143285057670
donde
g(x) = x
f (x)
.
f 0 (x)
(x p)M h(x)
(x p)h(x)
=x
.
M
1
0
(x p)
(M h(x) + (x p)h (x))
M h(x) + (x p)h0 (x)
g 0 (x) = 1
20
I.
DE ECUACIONES
SOLUCION
y de aqu
g 0 (p) = 1
1
.
M
1
M 1
=
.
M
M
De esto se observan dos posibles modificaciones del metodo de Newton para manejar races m
ultiples:
(i) En los calculos anteriores se observa que si g se cambia a
g(x) = x M
f (x)
f 0 (x)
entonces
1
=0
M
y se recupera la convergencia cuadr
atica. La iteracion de punto fijo con la nueva funcion g(x) se llama
la formula de iteraci
on acelerada de Newton.
g 0 (p) = 1 M
f (x)
(x p)h(x)
=
0
f (x)
M h(x) + (x p)h0 (x)
u(x)
u0 (x)
la correspondiente iteraci
on de punto fijo converge a p cuadraticamente. Esto se conoce como el metodo
de Newton modificado.
Implementaci
on en Matlab
La siguiente es la implementaci
on en Matlab provista con el texto [MF]. Las variables y son las tolerancias
en la aproximaci
on del cero y de la funcion en el cero. Usualmente debe ser mas peque
na para que la
terminacion sea por la aproximaci
on del cero.
function [p0, err, k, y] = newton (f, df, p0, delta, epsilon, max1)
% Entrada - f es la funcion objetivo introducida como cadena de caracteres
%
- df es la derivada de f introducida como cadena de caracteres
%
- p0 es la aproximacion inicial a cero de f
%
- delta es la tolerancia para p0
%
- epsilon es la tolerancia para los valores de la funcion y
%
- max1 es el numero maximo de iteraciones
% Salida - p0 es la aproximacion de Newton hacia cero
%
- err es el error estimado para p0
%
- k es el numero de iteraciones
%
- y es el valor de la funcion f(p0)
for k = 1:max1
p1 = p0 - feval(f, p0) / feval(df, p0);
err = abs(p1 - p0);
relerr = 2 * err / (abs(p1) + delta);
p0 = p1;
y = feval(f, p0);
if (err < delta) | (relerr < delta) | (abs(y) < epsilon), break, end
end
f
df