m´etodos iterativos para ecuaciones no · pdf filethis is page i printer: opaque this...

34
This is page i Printer: Opaque this etodos Iterativos para Ecuaciones no Lineales Oldemar Rodr´ ıguez Rojas Septiembre 2008

Upload: dolien

Post on 28-Feb-2018

223 views

Category:

Documents


5 download

TRANSCRIPT

This is page iPrinter: Opaque this

Metodos Iterativos para Ecuaciones no

Lineales

Oldemar Rodrıguez Rojas

Septiembre 2008

ii

This is page iiiPrinter: Opaque this

Contents

1 Metodos iterativos para ecuaciones no lineales v1 El metodo de aproximaciones sucesivas . . . . . . . . . . . . v

1.1 Teoremas de convergencia y del error . . . . . . . . . v1.2 El metodo de punto fijo para resolver ecuaciones de

una variable . . . . . . . . . . . . . . . . . . . . . . . xi2 Metodo de la Biseccion . . . . . . . . . . . . . . . . . . . . . xiv

2.1 Estudio del error en el metodo de la biseccion . . . . xvii3 Metodo de Newton–Raphson . . . . . . . . . . . . . . . . . xviii4 Metodo de la Secante . . . . . . . . . . . . . . . . . . . . . . xxii5 Orden de convergencia . . . . . . . . . . . . . . . . . . . . . xxv6 Convergencia acelerada y el metodo de Steffensen . . . . . . xxx

6.1 El metodo 42 de Aitken . . . . . . . . . . . . . . . . xxx6.2 El metodo de Steffensen . . . . . . . . . . . . . . . . xxxi

iv

This is page vPrinter: Opaque this

Metodos iterativos paraecuaciones no lineales

1 El metodo de aproximaciones sucesivas

1.1 Teoremas de convergencia y del error

Teorema 1 Sea U un subconjunto completo de un espacio normado X yA : U → U una contraccion. Entonces las aproximaciones sucesivas:

xn+1 = Axn, para n = 0, 1, 2, . . . ,

con x0 arbitrario en U, convergen al punto fijo unico x de A.

Prueba Sea x0 ∈ U entonces definimos recursivamente la siguiente sucesionen U :

xn+1 := Axn, para n = 0, 1, 2, . . . .

De donde se tiene que:

‖xn+1 − xn‖ = ‖Axn −Axn−1‖ ≤ q ‖xn − xn−1‖ ,

luego por induccion se deduce que:

‖xn+1 − xn‖ ≤ qn ‖x1 − x0‖ , para n = 0, 1, 2, . . . .

Por lo tanto para m > n se tiene que:

‖xn − xm‖ ≤ ‖xn − xn+1‖+ ‖xn+1 − xn+2‖+ · · ·+ ‖xm−1 − xm‖ (1.1)

≤(qn + qn+1 + · · ·+ qm−1

)‖x1 − x0‖

≤ qn

1− q‖x1 − x0‖ .

Como qn → 0 cuando n→∞, entonces (xn) es una sucesion de Cauchy ycomo U es completo existe x ∈ U tal que xn → x cuando n→∞.

Corolario 1 [Cota del Error a Priori] Con las mismas hipotesis del Teo-rema 1 se tiene el siguiente estimado para el error a priori:

‖xn − x‖ ≤ qn

1− q‖x1 − x0‖ .

Prueba Es evidente de la desigualdad (1.1).

vi 1. Metodos iterativos para ecuaciones no lineales

Corolario 2 [Cota del Error a Posteriori] Con las mismas hipotesis delTeorema 1 se tiene el siguiente estimado para el error a posteriori:

‖xn − x‖ ≤ q

1− q‖xn − xn−1‖ .

Prueba Se deduce del error a priori iniciando con x0 = xn−1.

Teorema 2 [Version 1] Sea D ⊂ R un cerrado y sea g : D → D unafuncion continuamente diferenciable con la siguiente propiedad:

q := supx∈D|g′(x)| < 1.

Entonces la ecuacion g(x) = x tiene solucion unica x ∈ D y la sucesion deaproximaciones sucesivas:

xn+1 := g(xn), para n = 0, 1, 2, . . .

con x0 arbitrario en D converge a esta solucion. Ademas se tiene el siguienteestimado para el error a priori:

|xn − x| ≤ qn

1− q|x1 − x0| , (1.2)

y el siguiente estimado para el error a posteriori:

|xn − x| ≤ q

1− q|xn − xn−1| . (1.3)

Ademas si D = [a, b] entonces se tiene tambien la siguiente cota del error:

|xn − x| ≤ qn max{x0 − a, b− x0}. (1.4)

Prueba El espacio R equipado de la norma valor absoluto | · | es un espaciode Banach. Por el teorema del valor medio, para todo x, y ∈ D con x < yse tiene que:

g(x)− g(y) = g′(ξ)(x− y)

para algun punto ξ ∈ ]x, y[. Por lo tanto:

|g(x)− g(y)| ≤ supξ∈D|g′(ξ)| · |x− y| = q |x− y| ,

lo cual tambien es valido para x, y ∈ D con x ≥ y. Por lo tanto g es unacontraccion, luego aplicando el Teorema de Banach o el Teorema 1 se tienela existencia y unicidad del punto fijo. De los corolarios 1 y 2 se tienenobviamente las desigualdades (1.2) y (1.3). Para probar la cota del error(1.4) note que:

|xn − x| = |g(xn−1)− g(x)| = |g′(ξ1)| · |xn−1 − x| ≤ q |xn−1 − x|= q |g(xn−2)− g(x)| = q |g′(ξ2)| · |xn−2 − x| ≤ q2 |xn−2 − x|≤ · · ·≤ qn |x0 − x|≤ qn max{x0 − a, b− x0}.

1. Metodos iterativos para ecuaciones no lineales vii

Teorema 3 [Version 2] Sea g ∈ C[a, b], con g : [a, b]→ [a, b]. Entonces:

1. g tiene un punto fijo en [a, b].

2. Ademas si g′(x) existe en ]a, b[ y |g′(x)| ≤ q < 1, para todo x ∈ ]a, b[entonces g tiene un punto fijo unico en [a, b].

Prueba

1. I Caso: Si g(a) = a o g(b) = b se tiene la prueba.

II Caso: Si g(a) 6= a y g(b) 6= b⇒ g(a) > a y g(b) < b

Tome h(x) = g(x)− x, note que:

h es continua en [a, b],

h(a) = g(a)− a > 0,

h(b) = g(b)− b < 0,

luego h(a) y h(b) tienen signos opuestos, usando el teorema de losvalores intermedios, se tiene que existe x ∈ [a, b] tal que h(x) = 0⇒g(x)− x = 0⇒ g(x) = x, por lo x es el punto fijo de g.

2. Suponga que g tiene dos puntos fijos en [a, b], sean estos x y y, conx 6= y, entonces por el Teorema del Valor Medio existe ξ ∈ ]a, b[ talque:

|x− y| = |g(x)− g(y)| = g′(ξ) |x− y| ≤ q |x− y| < |x− y|

de donde |x− y| < |x− y| , lo cual es una contradiccion, luego setiene que x = y.

Ejemplo 1 Pruebe que f(x) =x2 − 2x

6, x ∈ [−1, 1] tiene un punto fijo en

[−1, 1].

Solucion: Se debe probar que f(x) ∈ [−1, 1] para todo x ∈ [−1, 1]. Como

f ′(x) =16(2x− 2) =

x− 13

= 0⇔ x = 1 entonces los maximos o mınimos

posibles estan en x = −1 o x = 1. Como f(−1) =12

es maximo y f(1) =

−16

es mınimo entonces para todo x ∈ [−1, 1] se tiene que f(x) ∈ [−1, 1],

de donde f tiene un punto fijo en [−1, 1]. Solo se ha probado que existe porlo menos un punto fijo, ahora tenemos que probar que es unico. Se debeprobar que existe q < 1 tal que |f ′(x)| ≤ q < 1, para todo x ∈ ] − 1, 1[.Note que:

viii 1. Metodos iterativos para ecuaciones no lineales

| f ′(x)| =∣∣∣∣ x− 1

3

∣∣∣∣ ≤ ∣∣∣∣ −1− 13

∣∣∣∣ =23

< 1, para todo x ∈ ]− 1, 1[,

Luego f(x) tiene un punto fijo unico en [−1, 1].

Teorema 4 Sea x un punto fijo de una funcion continuamente diferen-ciable g tal que |g′(x)| < 1. Entonces el metodo de la aproximacionessucesivas xn+1 := g(xn), para n = 0, 1, 2, . . . es localmente convergente,es decir existe un vecindario B del punto fijo x de g tal que el metodo deaproximaciones sucesivas converge a x, para x0 ∈ B.

Prueba Como g′ es continua y |g′(x)| < 1 entonces existe una constante0 < q < 1 y δ > 0 tal que |g′(y)| < q para todo y ∈ B := [x − δ, x + δ].Entonces se tiene que:

|g(y)− x| = |g(y)− g(x)| ≤ q |y − x| < |y − x| ≤ δ

para todo y ∈ B, por lo que se deduce que g mapea B en si mismo, o sea queg : B → B es una contraccion, por lo que el resultado se tiene del Teorema1.El Teorema 4 se ilustra en la Figura 1.

FIGURE 1. El metodo de aproximaciones sucesivas.

Seguidamente se presenta un algoritmo en seudocodigo para el metodo delas aproximaciones sucesivas.

Algoritmo 1 [Para encontrar puntos fijos]Entrada: x0 (aproximacion inicial), Tol,N, g(x)

1. Metodos iterativos para ecuaciones no lineales ix

Salida: x (punto fijo aproximado) o mensaje de errorPaso 1. i← 1Paso 2. Mientras i ≤ N siga los pasos 3–6

Paso 3. x← g(x0)Paso 4. Si |x− x0| < Tol

Salida xParar

Paso 5. i← i + 1Paso 6 x0 ← x

Paso 7. Mensaje de error (“Numero maximo de iteraciones excedido”)Parar

Una implementacion iterativa en Mathematica es la siguiente:

PuntoFijo[X0 ,Tol , n , G ]:=Module[{i=1,X0Tem=X0,X},

While[i<=n,X=G[X0Tem];Print[‘‘En la iteracion ’’,i,

‘‘el valor de X es ’’,N[X,15]];If[Abs[X-X0Tem]<Tol,

Return[X]];i++;X0Tem=X;

];If[i==n+1,Print[‘‘Numero maximo de iteraciones excedido’’]

];];

Una implementacion recursiva en Mathematica es la siguiente:

PuntoFijoRecursivo[X0 ,Tol ,N ,F ]:=Module[{X1},

X1=F[X0];If[(Abs[(X0-X1)]<Tol)||(N<1),

If[N>=1,X1,Print[‘‘Numero maximo de iteraciones excedido’’];

]PuntoFijoRecursivo[X1,Tol,N-1,F]

]];

x 1. Metodos iterativos para ecuaciones no lineales

Ejemplo 2 Sea f(x) = e−x, es facil probar que f(x) mapea A = [0.5, 0.69]en si mismo (ejercicio). Como f es continuamente diferenciable tome

q = maxx∈A| f ′(x)| = max

x∈A

∣∣−e−x∣∣ ≈ 0.606531 < 1

Si se ejecuta el programa iterativo en Mathematica como sigue:

In[1]:=[PuntoFijo[0.55, 0.000001, 30, G], 15]

es decir, tomando x0 = 0.55 como aproximacion inicial, con ε = Tol =10−6 para el algoritmo anterior obtenemos que el “punto fijo” de F es x =x19 = 0.567143650676, pues en x19 se termino la ejecucion del programa,como se aprecia en la salida del programa:

En la iteracion 1 el valor de X es 0.576949810380487En la iteracion 2 el valor de X es 0.561608769952327En la iteracion 3 el valor de X es 0.570290858658895En la iteracion 4 el valor de X es 0.565360974647922En la iteracion 5 el valor de X es 0.568155020178646En la iteracion 6 el valor de X es 0.566569784824922En la iteracion 7 el valor de X es 0.567468643541252En la iteracion 8 el valor de X es 0.566958798578383En la iteracion 9 el valor de X es 0.567247933366687En la iteracion 10 el valor de X es 0.567083945963931En la iteracion 11 el valor de X es 0.567176948212764En la iteracion 12 el valor de X es 0.567124201933893En la iteracion 13 el valor de X es 0.567154116414135En la iteracion 14 el valor de X es 0.567137150547289En la iteracion 15 el valor de X es 0.567146772602292En la iteracion 16 el valor de X es 0.567141315511106En la iteracion 17 el valor de X es 0.567141315511106En la iteracion 18 el valor de X es 0.567142655180367En la iteracion 19 el valor de X es 0.567143650676Out[1]:=0.567143650676

Por otro lado el error absoluto al calcular x12 = 0.567124201933893 iguala:

|x− x12| ≈ 1.91 ∗ 10−5,

mientras que usando el error a priori se obtiene:

|x− x12| ≤q12

1− q|x1 − x0| = 1.70 ∗ 10−4

y usando el error a posteriori se obtiene que:

|x− x12| ≤q

1− q|x12 − x11| = 8.13 ∗ 10−5

1. Metodos iterativos para ecuaciones no lineales xi

que es una mejor estimacion del verdadero error. Usando el error a priori sededuce que para obtener una precision de ε = 10−6 se requieren al menosde:

n ≥ log(

ε(1− q)|x1 − x0|

)/ log(q) ≈ 22.3 ≤ 23 iteraciones,

pero se observa que el programa requirio de 19 iteraciones.Ejecutando la version recursiva se obtiene el mismo resultado:

N[PuntoFijoRe cursivo[0.55, 0.000001, 30, G], 15]

es decir, x = 0.567143650676.

1.2 El metodo de punto fijo para resolver ecuaciones de unavariable

Ejemplo 3 Resuelva la ecuacion x3 − x− 1 = 0 en el intervalo [1, 2].

Solucion: Se debe plantear un problema de encontrar los puntos fijos deuna funcion g(x) que sea equivalente a resolver la ecuacion x3 − x− 1 = 0.Resolver x3 − x − 1 = 0 es equivalente a resolver la ecuacion x3 − 1 = x,entonces se puede tratar de encontrar los puntos de g(x) := x3 − 1. Perog(x) no cumple las hipotesis del Teorema de Punto Fijo de Banach, puesg′(x) = 3x2 > 0⇒ g(x) es creciente en [1, 2], luego g(1) = 0 y g(2) = 7 sonel mınimo y el maximo de g(x) en el intervalo [1, 2] respectivamente, por loque g(x) /∈ [1, 2] ∀x ∈ [1, 2]. Otro intento se puede hacer usando el hechode que:

x3 − x− 1 = 0⇔ x = ±√

1 +1x

,

luego tome g(x) :=√

1 +1x

, g′(x) = − 1

2x2√

1 + 1x

< 0 en [1, 2], esto

implica que g(x) es decreciente en [1, 2], luego g(1) =√

2 ≈ 1.41, g(2) =√32 ≈ 1.22 son el maximo y el mınimo respectivamente de g(x) en [1, 2],

por lo que g(x) ∈ [1, 2] ∀x ∈ [1, 2], luego la funcion g(x) tiene al menos unpunto fijo en [1, 2].Se probo que g : [1, 2]→ [1, 2], falta probar que g es una contraccion en elintervalo [1, 2]. Veamos

g′(x) = − 1

2x2√

1 + 1x

⇒ |g′(x)| = 1

2x2√

1 + 1x

≤ 12

:= q < 1

de donde se puede tomar q :=12.

Ejecutando el programa de punto fijo con x0 = 2 y ε = 10−5 se obtiene:

xii 1. Metodos iterativos para ecuaciones no lineales

G[x ] := Sqrt[1 + 1/x]N[PuntoFijo[2,0.00001,30,G],15]En la iteracion 1 el valor de X es 1.22474487139159En la iteracion 2 el valor de X es 1.3477746773581En la iteracion 3 el valor de X es 1.31983475643837En la iteracion 4 el valor de X es 1.32577170214339En la iteracion 5 el valor de X es 1.32449147872207En la iteracion 6 el valor de X es 1.32476667564583En la iteracion 7 el valor de X es 1.32470747924203En la iteracion 8 el valor de X es 1.32472021086795En la iteracion 9 el valor de X es 1.32471747253653

Luego el punto fijo de g(x) y solucion de la ecuacion x3 − x − 1 = 0 en elintervalo [1, 2] es: x = 1.32471747253653. Ejecutando la version recursivase obtiene la misma solucion:

In[9]:=N[PuntoFijoRecursivo[2,0.00001,30,G],15]Out[9]:=1.32471747253653

Usando el comando Solve de Mathematica se obtiene:

N[Solve[x^3 - x - 1 == 0, x]]{{x->1.32472},{x->-0.662359+0.56228 I},{ x->-0.662359-0.56228I}}

Que coincide con la solucion encontrada por nuestro programa. Graficamentese ilustra el la Figura 2 usando el comando de Plot[{G[x],x},{x,0.1,3}]de Mathematica.

1. Metodos iterativos para ecuaciones no lineales xiii

FIGURE 2. Grafico de g(x) y de la funcion identidad.

Ejemplo 4 Dada la ecuacion del ejemplo anterior x3 − x − 1 = 0 en elintervalo [1, 2], ¿Cuantas iteraciones se requieren para obtener un errorabsoluto menor que 10−5?

Solucion: Recuerde que q =12

de donde se tiene que:

|xn − x| ≤ qn max{x0 − a, b− x0}

=(

12

)n

max{1, 0} (con x0 = 2)

≤(

12

)n

.

Luego:

|xn − x| ≤ 10−5 ⇔(

12

)n

≤ 10−5 ⇔ n ≥ 16.6.

Tome n = 17.

Observacion 1 En la practica el programa requirio solamente 9 itera-ciones.

Ejemplo 5 Para la ecuacion x3−x−1 = 0 en el intervalo [1, 2], con x0 = 2estime usando el error a priori (1.2) ¿Cuantas iteraciones se requieren paraobtener un error absoluto menor que 10−5?

Solucion: Se tiene que

q =12, x0 = 2, g(x) =

√1 +

1x

.

xiv 1. Metodos iterativos para ecuaciones no lineales

De donde se obtiene que x1 =√

1 +12

=√

32≈ 1.2 entonces:

|xn − x| ≤(

12

)n

1− 12

|2− 1.2|

=(

12

)n−1

· 0.8,

entonces:

|xn − x| ≤ 10−5 ⇔(

12

)n−1

· 0.8 ≤ 10−5

⇔ (n− 1)(− log(2)) ≤ −5− log(0.8),

esto implica que n ≥ 17.28, por lo que se puede tomar n = 18.

Observacion 2 En la practica el programa requirio solamente 9 itera-ciones.

2 Metodo de la Biseccion

Las hipotesis de este metodo son:

• f debe ser continua en el intervalo [a, b].

• f(a) y f(b) deben tiener signos opuestos.

Luego por el Teorema de los Valores Intermedios existe x ∈ [a, b] tal quef(x) = 0, graficamente se ilustra en la Figura 3.

FIGURE 3. El metodo de la biseccion.

1. Metodos iterativos para ecuaciones no lineales xv

La idea es encontrar una sucesion (xn) tal que xn → x cuando n→∞ talque f(x) = 0. Para encontrar la sucesion (xn) la idea es la siguiente:

• Tome a1 = a, b1 = b, x1 =a1 + b1

2.

• Si f(x1) = 0 entonces ya se tiene el cero de la ecuacion x = x1.

• Si no:

– Si f(x1) y f(a) tienen el mismo signo se toma:

a2 = x1, b2 = b1, x2 =a2 + b2

2.

– Si no se toma:

a2 = a1, b2 = x1, x2 =a2 + b2

2,

y ası sucesivamente hasta que f(xi) ≈ 0 o hasta superar elnumero maximo de iteraciones. El pseudocodigo de puede es-cribir como sigue:

Algoritmo 2 [Metodo de la Biseccion]Entrada: a, b, Tol (tolerancia), N, f .Salida: Aproximacion de x (cero de la ecuacion) o mensaje de error

Paso 1. i← 1Paso 2. Mientras i ≤ N, siga los pasos 3–6

Paso 3. x← a + b

2Paso 4. Si f(x) = 0 o |b− a| < Tol

Salida (x)Parar

Paso 5. i← i + 1Paso 6. Si f(a) · f(x) > 0

a← xSi no

b← xPaso 7. Salida ( “Numero maximo de iteraciones excedido”)

Parar

Este algoritmo se puede programar iterativamente en Mathematica comosigue:

Biseccion[a ,b ,Tol ,n ,G ]:=Module[{i = 1, a1 = a, b1 = b, X},

If[G[a]G[b] > 0,Print[‘‘El metodo no Converge],

xvi 1. Metodos iterativos para ecuaciones no lineales

While[i<=n,X=N[(a1 + b1)/2,15];Print[‘‘En la iteracion ’’, i,

‘‘ el valor de X es ’’,X];If[G[a]G[X]>0, a1 = X,b1 = X];If[(G[X] == 0)||((b1 - a1) < Tol),Return[X]];i++;

];If[i==n+1,

Print[‘‘El metodo no Converge’’]];

];];

Este algoritmo se puede programar recursivamente en Mathematica comosigue:

BiseccionRecursivo[a ,b ,Tol ,F ] :=Module[{A=a,B=b,X},

X=(A+B)/2;If[(F[X]<=0)||(Abs[B-A]<Tol),

Return[X],If[F[A]*F[X]>0,

BiseccionRecursivo[X,B,Tol,F],BiseccionRecursivo[A,X,Tol,F]

]]

];

Ejemplo 6 Resuelva la ecuacion x3 + 4x2 − 10 = 0 en el intervalo [1, 2]con una tolerancia de ε = 10−6.

Solucion: Usando en Mathematica los comandos:

In[20]:=G[x ] := x^3 + 4 x^2 - 10;Out[20]:=N[Biseccion[1,2,0.000001,50,G],15];

se obtiene la siguiente sucesion:

En la iteracion 1 el valor de X es 1.5En la iteracion 2 el valor de X es 1.25En la iteracion 3 el valor de X es 1.375En la iteracion 4 el valor de X es 1.3125En la iteracion 5 el valor de X es 1.34375En la iteracion 6 el valor de X es 1.359375En la iteracion 7 el valor de X es 1.3671875

1. Metodos iterativos para ecuaciones no lineales xvii

En la iteracion 8 el valor de X es 1.36328125En la iteracion 9 el valor de X es 1.365234375En la iteracion 10 el valor de X es 1.3642578125En la iteracion 11 el valor de X es 1.36474609375En la iteracion 12 el valor de X es 1.364990234375En la iteracion 13 el valor de X es 1.3651123046875En la iteracion 14 el valor de X es 1.36517333984375En la iteracion 15 el valor de X es 1.36520385742188En la iteracion 16 el valor de X es 1.36521911621094En la iteracion 17 el valor de X es 1.36522674560547En la iteracion 18 el valor de X es 1.36523056030273En la iteracion 19 el valor de X es 1.3652286529541En la iteracion 20 el valor de X es 1.36522960662842

Ejecutando la version recursiva se obtiene:

In[21]:=N[BiseccionRecursivo[1,2,0.000001,G],15]Out[21]:=1.36523008346558

2.1 Estudio del error en el metodo de la biseccion

Teorema 5 Sea f ∈ C[a, b], con f(a)f(b) < 0. Entonces el algoritmo dela biseccion produce una sucesion (xn) que aproxima a x, el cero de laecuacion f(x) = 0, con un error absoluto tal que:

|xn − x| < b− a

2npara n ≥ 1. (1.5)

Prueba

|b1 − a1| = |b− a|

|b2 − a2| =12|b− a|

|b3 − a3| =122|b− a|

...

|bn − an| =1

2n−1|b− a|

como x ∈ ]an, bn[ y xn =an + bn

2se tiene que:

|xn − x| ≤ |bn − an|2

=12· 12n−1

|b− a| = 12n

(b− a).

xviii 1. Metodos iterativos para ecuaciones no lineales

Observacion 3 |xn − x| <b− a

2n⇒ |xn − x|

12n

< b − a = k, esto implica

que la sucesion (xn) es O(

12n

), es decir, xn → x con rapidez

12n

, lo cual

es bastante rapido.

Ejemplo 7 Para f(x) = x3 + 4x2 − 10, con a = 1 y b = 2; usando (1.5)hallar el n ∈ N necesario para tener un error absoluto menor a ε = 10−6.

Solucion:

|xn − x| <b− a

2n< 10−6

⇔ 2−n < 10−6

⇔ −n log 2 < −6

⇔ n >6

log 2⇔ n > 19.9

Entonces se puede escoger n = 20.

Observacion 4 n = 20 fue exactamente lo que requirio el programa.

3 Metodo de Newton–Raphson

El metodo de Newton–Raphson es uno de los mas poderosos para resolverla ecuacion f(x) = 0. Si f es una funcion de una variable y x0 es unaaproximacion a cero de la funcion f, entonces en un vecindario de x0 porla formula de Taylor se tiene que:

f(x) ≈ f(x0) + f ′(x0)(x− x0).

Si se define g(x) := f(x0) + f ′(x0)(x − x0) entonces el cero de la funcionafın g(x) se puede considerar como una nueva aproximacion al cero de f(x)el cual denotamos por x1. Luego se tiene que:

g(x1) = f(x0) + f ′(x0)(x1 − x0) = 0,

despejando se tiene:

x1 = x0 −f(x0)f ′(x0)

. (1.6)

Geometricamente la funcion afın g(x) representa la recta tangente a f(x)en el punto x0, esto se ilustra en la Figura 4.

1. Metodos iterativos para ecuaciones no lineales xix

FIGURE 4. Metodo de Newton.

De la Figura 4 tambien se puede deducir el metodo de Newton–Raphason,notese que:

f ′(xi) =f(xi)− 0xi − xi+1

lo cual implica que:

xi − xi+1 =f(xi)f ′(xi)

de donde:

xi+1 = xi −f(xi)f ′(xi)

que es la sucesion del metodo de Newton–Raphson.

Observacion 5 El metodo de Newton–Raphson consiste en disenar unalgoritmo que calcule la sucesion:

xn =

x0 si n = 0

xn−1 −f(xn−1)f ′(xn−1)

si n > 0

Algoritmo 3 [Metodo de Newton–Raphson]Entrada: x0, N, Tol, f .Salida: La solucion x aproximada de la ecuacion f(x) o mensaje de error.

Paso 1. i← 1Paso 2. Mientras i ≤ N, pasos 3-6

Paso 3. x← x0 −f(x0)f ′(x0)

Paso 4. Si |x− x0| < Tol

xx 1. Metodos iterativos para ecuaciones no lineales

Salida (x)Parar.

Paso 5. i← i + 1Paso 6. x0 ← x

Paso 7. Salida ( “Numero maximo de iteraciones excedido”)Parar

El metodo de Newton–Raphson se puede implementar iterativamente enMathematica como sigue:

NewtonRaphson[x0 , Tol , n , F ] :=Module[{i = 1, X0Tem = x0, x},

G[X ] = D[F[X],X];While[(i <= n),

x = N[X0Tem - F[X0Tem]/G[X0Tem],15];Print[‘‘En la iteracion ’’, i,

‘‘ el valor de x es ’’, x];If[Abs[x - X0Tem] < Tol, Return[x]];i++;X0Tem = x;

];If[i <= n,

Return[x],Print[‘‘Numero maximo de iteraciones excedido’’]

];];

El metodo de Newton–Raphson se puede implementar recursivamente enMathematica como sigue:

NewtonRaphsonRecursivo[x0 , Tol , n , F ] :=Module[{X0Tem = x0, x},

G[X ] = D[F[X],X];x = X0Tem - F[X0Tem]/G[X0Tem];If[(Abs[x - X0Tem] < Tol) || (n == 0),

If[n > 0,Return[x],Print[‘‘Numero maximo de iteraciones excedido’’]]

NewtonRaphsonRecursivo[x, Tol, n-1, F]]

];

Ejemplo 8 Ejecutando el programa iterativo para resolver la ecuacione−x − x = 0 con x0 = 1 como aproximacion inicial y con una tolereacia de

1. Metodos iterativos para ecuaciones no lineales xxi

ε = 10−6 se obtiene la siguiente:

In[2]:=F[x ]:=N[Exp[-x]-x];In[3]:=N[NewtonRaphson[1,0.000001,20,F],15]En la iteracion 1 el valor de x es 0.53788284273999En la iteracion 2 el valor de x es 0.566986991405413En la iteracion 3 el valor de x es 0.567143285989123En la iteracion 4 el valor de x es 0.567143290409784Out[3]:=0.567143290409784

Mientras que ejecutando el programa recursivo se obtiene:

In[5]:=N[NewtonRaphsonRecursivo[1,0.000001,20,F],15]Out[5]:=0.567143290409784

Teorema 6 Sea f ∈ C2[a, b]. Si x ∈ [a, b] con f(x) = 0 y f ′(x) 6= 0,entonces existe ε > 0 tal que el metodo de Newton–Raphson:

xn+1 := xn −f(xn)f ′(xn)

genera una sucesion que esta bien definida y converge a x cuando n→∞,para todo x0 ∈ [x− ε, x + ε].

Prueba Sea

g(x) := x− f(x)f ′(x)

.

Notese que si x ∈ [a, b] con f(x) = 0 entonces g(x) ∈ [a, b] y g(x) = x. Sedefine:

pn :={

p0 si n = 0g(pn−1) si n ≥ 1

Es claro que la (pn) es la sucesion de Newton–Rapson, entonces bastaprobar que g cumple las hipotesis del Teorema de punto fijo de Banach, asaber que:

∃ ε > 0 y q ∈ ]0, 1[ tal que ∀ x ∈ ]x− ε, x + ε[ ⇒ |g′(x)| ≤ q < 1,

y que g mapea el intervalo [x− ε, x + ε] en si mismo.Como f ′(x) 6= 0 y f ′ es continua se tiene que existe un ε1 > 0 tal quef ′(x) 6= 0 para todo x ∈ ]x − ε1, x + ε1[ ⊂ [a, b], de esta manera g estadefinida y es continua en ]x− ε1, x + ε1[. Tambien lo esta:

g′(x) =f(x)f ′′(x)[f ′(x)]2

para todo x ∈ ]x− ε1, x + ε1[.

xxii 1. Metodos iterativos para ecuaciones no lineales

Como f ∈ C2[a, b] entonces g ∈ C1[x − ε1, x + ε1]. Como por hipotesisf(x) = 0 entonces:

g′(x) =f(x)f ′′(x)[f ′(x)]2

= 0.

Luego como g′ es continua, esto implica que para cualquier constante q < 1existe un ε, con 0 < ε < ε1 y tal que:

|g′(x)| ≤ q < 1 para todo x ∈ ]x− ε, x + ε[.

Solo falta probar que g : ]x−ε, x+ε[→]x−ε, x+ε[, pero si x ∈ ]x−ε, x+ε[por el Teorema del Valor Medio para algun ξ entre x y x se tiene que:

|g(x)− g(x)| = |g′(ξ)| |x− x| ,

entonces:

|g(x)− x| = |g(x)− g(x)| = |g′(ξ)| |x− x| ≤ q |x− x| < |x− x| . (1.7)

Como x ∈ ]x − ε, x + ε[ entonces |x− x| < ε luego por (1.7) se tiene que|g(x)− x| < ε lo cual implica que g(x) ∈ ]x− ε, x+ ε[ con lo que se pruebaque g : ]x− ε, x + ε[→]x− ε, x + ε[.

Ejemplo 9 Hallar un metodo para calcular√

A, con A ≥ 0.

Solucion: Probaremos que la sucesion (xn) definida por xn+1 =12

(xn +

A

xn

)converge a

√A. Notese que calcular

√A es equivalente a resolver la ecuacion:

x2 −A = 0,

usando el metodo de Newton–Raphson con f(x) = x2 −A y f ′(x) = 2x setiene que:

xn+1 = xn −f(xn)f ′(xn)

= xn −x2

n −A

2xn

=12

(xn +

A

xn

).

De donde es claro que la sucesion xn →√

A cuando n→∞.

4 Metodo de la Secante

El problema con el metodo de Newton–Rapson es que requiere la derivadade f(x) la cual en muchos casos no se tiene. La idea del metodo de la

1. Metodos iterativos para ecuaciones no lineales xxiii

secante es usar una aproximacion para esta derivada, como se ilustra en laFigura 5.

FIGURE 5. Metodo de la secante.

La deduccion del metodo es la siguiente:

f ′(xn−1) = limn→xn−1

f(x)− f(xn−1)x− xn−1

≈ f(xn−2)− f(xn−1)xn−2 − xn−1

. (1.8)

Si en el metodo de Newton–Rapson xn = xn−1 −f(xn−1)f ′(xn−1)

sustituimos

f ′(xn−1) por la aproximacion dada en (1.8) se tiene que:

xn ≈ xn−1 −f(xn−1)

f(xn−2)− f(xn−1)xn−2 − xn−1

,

simplificando se obtiene el Metodo de la Secante:

xn ≈ xn−1 −(xn−2 − xn−1)f(xn−1)

f(xn−2)− f(xn−1).

Entonces el metodo de la secante consiste en calcular la sucesion (xn)definida por:

xn =

x0 si n = 0x1 si n = 1

xn−1 −(xn−2 − xn−1)f(xn−1)

f(xn−2)− f(xn−1)si n ≥ 2

El siguiente algoritmo permite calcular esta sucesion:

xxiv 1. Metodos iterativos para ecuaciones no lineales

Algoritmo 4 [Metodo de la Secante]Entrada: N,Tol, x0, x1

Salida: Aproximacion de x, con f(x) = 0 o mensaje de errorPaso 1. i← 2Paso 2. Mientras i ≤ N, pasos 3–6

Paso 3. x← x1 −(x0 − x1)f(x1)f(x0)− f(x1)

Paso 4. Si |x− x0| < TolSalida (x)

PararPaso 5. x0 ← x1

x1 ← xPaso 6. i← i + 1

Paso 7. Salida (“Numero maximo de iteraciones excedido”)Parar

Una implementacion iterativa en Mathematica del algoritmo anterior esla siguiente:

Secante[X0 ,X1 ,Tol ,N ,F ]:=Module[{i=2,X0Tem=X0,X1Tem=X1,X},

While[(i<=N),X=X1Tem-((X0Tem-X1Tem)*F[X1Tem]/(F[X0Tem]-F[X1Tem]));Print[‘‘En la iteracion ’’,i,‘‘ el valor de X es ’’,X];If[(Abs[X-X1Tem])<Tol,Return[X]];X0Tem=X1Tem;X1Tem=X;i++;

];If[i==N+1,

Print[‘‘Numero maximo de iteraciones excedido’’]];

];

Una implementacion recursiva en Mathematica del algoritmo anterior esla siguiente:

SecanteRecursivo[X0 ,X1 ,Tol ,N ,F ]:=Module[{X0Tem=X0,X1Tem=X1,X},

X=X1Tem-((X0Tem-X1Tem)*F[X1Tem]/(F[X0Tem]-F[X1Tem]));If[((Abs[X-X1Tem])<Tol)||(N==0),

If[N>=1,Return[X],Print[‘‘Numero maximo de iteraciones excedido’’]],

SecanteRecursivo[X1,X,Tol,N-1,F]]

1. Metodos iterativos para ecuaciones no lineales xxv

];

Ejemplo 10 Ejecutando el programa iterativo para resolver la ecuacione−x − x = 0 con x0 = 1 y x1 = 1

2 como aproximaciones iniciales y con unatolereacia de ε = 10−6 se obtiene la siguiente:

In[1]:=F[x ]:=Exp[-x]-xIn[2]:=N[Secante[1,0.5,0.000001,100,F],15]En la iteracion 2 el valor de P es 0.572112En la iteracion 3 el valor de P es 0.567204En la iteracion 4 el valor de P es 0.567143En la iteracion 5 el valor de P es 0.567143Out[2]:=0.567143290410387

Mientras que ejecutando la version recursiva se obtiene:

In[3]:=N[SecanteRecursivo[1,0.5,0.000001,100,F],15]Out[3]:=0.567143290410387

Teorema 7 Sea f una funcion de clase C2[a, b] con a < b. Si existe unpunto x tal que f(x) = 0 y f ′(x) 6= 0 entonces existe un numero ε > 0 talque si x0 y x1 estan dentro del intervalo [x− ε, x + ε] la sucesion generadapor el metodo de la secante

xn = xn−1 −(xn−2 − xn−1)f(xn−1)

f(xn−2)− f(xn−1).

esta bien definida dentro del intervalo [x− ε, x + ε] y converge a x (cero dela ecuacion f(x) = 0).

Prueba Ejercicio.

5 Orden de convergencia

Definicion 1 Sea (xn) una sucesion que converge a x, se denota en :=xn − x para n ≥ 0. Si existen constantes α y λ positivas, tal que:

limn→∞

|xn+1 − x||xn − x|α

= limn→∞

|en+1||en|α

= λ,

entonces se dice que la sucesion (xn) converge a x con orden α y conconstante asintotica λ.

Observacion 6 • Entre mayor sea el orden de convergencia, o sea en-tre mayor sea α, mayor sera la “velocidad” de convergencia.

• Si α = 1, se dice que el metodo tiene orden lineal.

xxvi 1. Metodos iterativos para ecuaciones no lineales

• Si α = 2, se dice que el metodo tiene orden cuadratico.

Ejemplo 11 Suponga que tenemos dos esquemas (sucesiones) xn y xn talque:

• limn→∞

|en+1||en|

= 0.75 (metodo lineal).

• limn→∞

|en+1||en|2

= 0.75 (metodo cuadratico).

• Se supone ademas que e0 = 0.5 y e0 = 0.5

¿Cuantas iteraciones requieren xn y xn para converger con un error abso-luto menor a 10−8?Solucion:

1. Analicemos primero la sucesion (esquema) xn:

|xn+1 − x| < 10−8 ⇔ |en+1| < 10−8.

Pero|en+1||en|

≈ 0.75 de donde |en+1| ≈ 0.75 |en| ≈ 0.752 |en−1| ≈ · · · ≈

0.75n |e0| = 0.75n · 0.5, esto implica que:

|en+1| < 10−8 ⇔0.75n · 0.5 < 10−8 ⇔n log(0.75) < −8− log(0.5)⇔

n >−8− log(0.5)

log(0.75)≈ 61.62.

Se puede tomar n = 62, por lo tanto xn requiere aproximadamente62 iteraciones para converger a x.

2. Analicemos ahora la sucesion xn:

|xn+1 − x| < 10−8 ⇔ |en+1| < 10−8.

Pero|en+1||en|2

≈ 0.75 de donde |en+1| ≈ 0.75 |en|2 ≈ 0.75[0.75 |en−1|2

]2

=

0.753 |en−1|4 ≈ 0.753[0.75 |en−2|2

]4

= 0.757 |en−2|8 ≈ · · · ≈ 0.752n+1−1 |e0|2n+1

,

1. Metodos iterativos para ecuaciones no lineales xxvii

de donde

|en+1| < 10−8 ⇔

0.752n+1−1 |e0|2n+1

< 10−8 ⇔0.752n+1−1 · 0.52n+1

< 10−8 ⇔0.75−1 · 0.3752n+1

< 10−8 ⇔2n+1 log(0.375) < −8 + log(0.75)⇔

2n+1 >−8 + log(0.5)

log(0.375)⇔

(n + 1) log(2) > log(19.07)⇔

n >log(19.07)

log(2)− 1 ≈ 3.24,

luego n = 4, por lo que xn requiere solamente de n = 4 iteracionespara converger a x mientras que esquema lineal requirio de aproxi-madamente 62 iteraciones para converger a x.

Teorema 8 Sea xn ={

x0 si n = 0g(xn−1) si n ≥ 1 el esquema (la sucesion)

de punto fijo visto en la seccion 1. Si ademas se supone que:

• g : [a, b]→ [a, b].

• g ∈ C2[a, b].

• Existe q tal que 0 ≤ q < 1 y |g′(x)| ≤ q < 1 para todo x ∈ ]a, b[.

• g′(x) 6= 0 para x el punto fijo de g.

Entonces (xn) converge al menos linealmente a x, cuando n→∞.

Prueba

|en+1| = |xn+1 − x| = |g(xn)− g(x)| = |g′(ξn)(xn − x)| = |g′(ξn)en|

con ξn entre xn y x. Como xn → x cuando n→∞ y ξn esta entre xn y xentonces la sucesion (ξn) tambien converge a x cuando n→∞. Luego

limn→∞

|en+1||en|

= limn→∞

|g′(ξn)en||en|

= limn→∞

|g′(ξn)| =∣∣∣g′ ( lim

n→∞(ξn)

)∣∣∣ = g′(x).

Por lo tanto limn→∞

|en+1||en|

= g′(x) := λ < 1, de donde la convergencia es

lineal.

xxviii 1. Metodos iterativos para ecuaciones no lineales

Teorema 9 Sea x un punto fijo de g, ademas g′(x) = 0, g′′ es continua enun intervalo abierto I que contiene a x y g′′(x) 6= 0. Entonces existe ε > 0

tal que para x0 ∈ [x− ε, x + ε] la sucesion xn ={

x0 si n = 0g(xn−1) si n ≥ 1

converge al menos cuadraticamente a x.

Prueba Escoja ε tal que intervalo [x−ε, x+ε] este contenido en I, |g′(x)| ≤q < 1 y g′′ sea continua. Como |g′(x)| ≤ q < 1 se tiene que los terminos dela sucesion (xn) estan contenidos en [x− ε, x + ε]. Expandiendo g(x) en supolinomio de Taylor para x ∈ [x− ε, x + ε] se tiene que:

g(x) = g(x) + g′(x)(x− x) +g′′(ξ)

2(x− x)2,

con ξ entre x y x. Por hipotesis g(x) = x y g′(x) = 0, esto implica que:

g(x) = x +g′′(ξ)

2(x− x)2.

En particular si se toma x = xn entonces:

xn+1 = g(xn) = x +g′′(ξn)

2(xn − x)2.

con ξn entre xn y x. Luego

xn+1 − x =g′′(ξn)

2(xn − x)2. (1.9)

Como |g′(x)| ≤ q < 1 y g mapea [x − ε, x + ε] en si mismo es claro que(xn) converge a x punto fijo de g, entonces como ξn esta entre xn y x lasucesion (ξn) converge tambien a x. Luego usando (1.9) se deduce que:

limn→∞

|xn+1 − x||xn − x|2

=|g′′(x)|

2= λ 6= 0.

Entonces la sucesion (xn) converge cuadraticamente x.

Corolario 3 Sea f ∈ C3[a, b]. Si x ∈ [a, b] con f(x) = 0, f ′(x) 6= 0 yf ′′(x) 6= 0, entonces existe ε > 0 tal que el metodo de Newton–Raphson:

xn+1 := xn −f(xn)f ′(xn)

genera una sucesion que converge al menos cuadraticamente a x cuandon→∞, para todo x0 ∈ [x− ε, x + ε].

Prueba La convergencia de (xn) se demostro en el Teorema 6. Usando el

teorema anterior se concluye el corolario, pues si se toma g(x) := x− f(x)f ′(x)

1. Metodos iterativos para ecuaciones no lineales xxix

entonces g(x) = x− f(x)f ′(x)

= x pues f(x) = 0 y f ′(x) 6= 0. Ademas

g′(x) = 1− f ′(x)f ′(x)− f(x)f ′′(x)(f ′(x))2

= 1− 1− f(x)f ′′(x)[f ′(x)]2

= −f(x)f ′′(x)[f ′(x)]2

de donde g′(x) = 0, pues f(x) = 0. Como:

g′′(x) =[f ′(x)]2 f ′′(x) + f(x)f ′(x)f (3)(x)− 2f(x) [f ′′(x)]2

[f ′(x)]3,

entonces g′′(x) =f ′′(x)f ′(x)

6= 0. Es claro que g′′ es continua en un intervalo

que contiene a x dado que f ∈ C3[a, b]. Entonces g(x) cumple todas lashipotesis del teorema anterior por lo que (xn) converge cuadraticamente ax.

Teorema 10 Sea f una funcion de clase C2[a, b]. Si existe un punto x talque f(x) = 0, f ′(x) 6= 0 y f ′′(x) 6= 0 entonces existe un numero ε > 0 talque si x0 y x1 estan dentro del intervalo [x− ε, x + ε] la sucesion generadapor el metodo de la secante

xn = xn−1 −(xn−2 − xn−1)f(xn−1)

f(xn−2)− f(xn−1).

converge a x con orden de al menos1 +√

52

≈ 1.618.

Prueba (Ejercicio) Sugerencias: Pruebe que

|en+1| ≈ C · |en| · |en−1| , (1.10)

con C :=|f ′′(x)||2f ′(x)|

. Por la definicion 1 se busca una solucion aproximada a

la ecuacion|en| = λ |en−1|α , (1.11)

con λ > 0 y α ≥ 1. Pero considerando (1.10) como una ecuacion y susti-tuyendo en (1.11) se tiene que:

λ |en|α = λλα |en−1|α2

= Cλ |en−1|α+1. (1.12)

La ecuacion (1.12) es valida solamente para n suficientemente grandes si:

λα = C y α2 = α + 1,

de donde α =1 +√

52

y λ = C1/α.

xxx 1. Metodos iterativos para ecuaciones no lineales

6 Convergencia acelerada y el metodo deSteffensen

6.1 El metodo 42 de Aitken

El metodo 42 de Aitken tiene las siguientes hipotesis:

1. (xn) converge linealmente a x con constante asıntotica λ tal que 0 <λ < 1.

2. Los signos de xn − x, xn+1 − x y xn+2 − x son iguales.

3. Se asume que para n suficientemente grande:

xn+1 − x

xn − x≈ xn+2 − x

xn+1 − x. (1.13)

La idea es encontrar una sucesion (xn) la cual converge “mas rapidamente”a x que la sucesion (xn). Note que de (1.13):

⇒ (xn+1 − x)(xn+1 − x) ≈ (xn − x)(xn+2 − x)⇒ x2

n+1 − 2xxn+1 + x2 ≈ xn+2xn − xxn+2 − xxn + x2

⇒ −2xxn+1 + xxn+2 + xxn ≈ −x2n+1 + xn+2xn

⇒ (−2xn+1 + xn+2 + xn)x ≈ −x2n+1 + xn+2xn

⇒ x ≈−x2

n+1 + xn+2xn

(−2xn+1 + xn+2 + xn)

⇒ x ≈xn+2xn − x2

n+1

xn+2 − 2xn+1 + xn

⇒ x ≈x2

n + xn+2xn − 2xnxn+1 − x2n + 2xnxn+1 − x2

n+1

xn+2 − 2xn+1 + xn

⇒ x ≈ xn(xn + xn+2 − 2xn+1)− (xn+1 − xn)2

xn+2 − 2xn+1 + xn

⇒ x ≈ xn −(xn+1 − xn)2

xn+2 − 2xn+1 + xn

El metodo de 42 de Aitken se basa en el hecho de que la sucesion (xn)definida por:

xn+3 := xn −(xn+1 − xn)2

xn+2 − 2xn+1 + xn,

bajo ciertas condiciones, converge “mas rapidamente” a x que la sucesion(xn).

Notacion 1 Diferencia Progresiva

1. Metodos iterativos para ecuaciones no lineales xxxi

• 4(xn) := xn+1 − xn para n ≥ 0.

• 4k(xn) = 4k−1(4xn) para k ≥ 2.

Observacion 7 Notese que con esta notacion se tiene:

42(xn) = 4(4xn)= 4xn+1 −4xn

= xn+2 − xn+1 − (xn+1 − xn)= xn+2 − 2xn+1 + xn.

Por lo que el metodo 42de Aitken se puede escribir como:

xn+3 := xn −(4xn)2

42xn. (1.14)

Pero ¿que quiere decir que una sucesion (xn) converge mas rapido a x quela sucesion (xn)?

Definicion 2 Sean (xn) y (xn) dos sucesiones que convergen a x, se diceque la sucesion (xn) converge mas rapido a x que la sucesion (xn) si:

limn→∞

xn − x

xn − x= 0.

Teorema 11 Sea (xn) una sucesion que converge a x con orden lineal conconstante asintotica λ < 1, ademas se asume que en = xn − x 6= 0 paratodo n. Entonces la sucesion (xn), definida en (1.14), converge a x masrapido que (xn).

Prueba Ejercicio.

6.2 El metodo de Steffensen

Por el Teorema 8 la sucesion de aproximaciones sucesivas (xn) convergelinealmente a x, cuando n → ∞ con constante asintotica λ < 1, entoncestiene sentido aplicar el metodo 42 de Aitken a esta sucesion. Es ası comouna combinacion entre el metodo de aproximaciones sucesivas y el metodo42 de Aitken producen un metodo conocido como el Metodo de Steffensen,el cual consiste en calcular la sucesion:

xn+1 := xn −[g(xn)− xn]2

g(g(xn))− 2g(xn) + xn. (1.15)

Algoritmicamente el Metodo de Steffensen para acelerar el metodo de puntofijo se puede expresar de la siguiente manera. Sea x0 la aproximacion inicialen el metodo de punto fijo, entonces se toma:

xxxii 1. Metodos iterativos para ecuaciones no lineales

x(0)0 = x0

x(0)1 = g

(x

(0)0

)x

(0)2 = g

(x

(0)1

)x

(1)0 = 42

(x

(0)0

)= x

(0)0 −

[x

(0)1 − x

(0)0

]2

x(0)2 − 2x

(0)1 + x

(0)0

x(1)1 = g

(x

(1)0

)x

(1)2 = g

(x

(1)1

)x

(2)0 = 42

(x

(1)0

)= x

(1)0 −

[x

(1)1 − x

(1)0

]2

x(1)2 − 2x

(1)1 + x

(1)0

...

En pseudocodigo el Metodo de Steffensen se puede expresar como sigue:

Algoritmo 5 [Metodo de Steffensen]Entrada: N,Tol, x0, gSalida: Aproximacion de x o mensaje de error

Paso 1. i← 2Paso 2. Mientras i ≤ N, siga los pasos 3–6

Paso 3. x1 = g(x0)x2 = g(x1)

x = x0 −(x1 − x0)2

x2 − 2x1 + x0Paso 4. Si |x− x0| < Tol

Salida (x)Parar

Paso 5. i← i + 1Paso 6. x0 ← x

Paso 7. Salida ( “Numero maximo de iteraciones excedido”)Parar

Este algoritmo se puede programar iterativamente en Mathematica comosigue:

Steffensen[x0 ,Tol ,n ,G ]:=Module[{i=1,x0Tem=x0,x,x1,x2},

While[i≤n,x1=N[G[x0Tem]];x2=N[G[x1]];

1. Metodos iterativos para ecuaciones no lineales xxxiii

x=N[x0Tem-(x1-x0Tem)^2/(x2-2*x1+x0Tem)];Print[‘‘En la iteracion ’’, i, ‘‘

el valor de x es ’’,N[x,15]];If[Abs[x-x0Tem]<Tol,Return[x]];i++;x0Tem=x;

];If[i==n+1,

Print[‘‘Numero maximo de iteraciones excedido’’]];];

Este algoritmo se puede programar recursivamente en Mathematica comosigue:

SteffensenRecursivo[x0 ,Tol ,n ,G ]:=Module[{x1,x2,x},

x1=N[G[x0]];x2=N[G[x1]];x=N[x0Tem-(x1-x0Tem)^2/(x2-2*x1+x0Tem)];If[(Abs[(x-x0)]<Tol)||(n < 1),

If[n>=1,x,Print[‘‘Numero maximo de iteraciones excedido’’]

],SteffensenRecursivo[x,Tol,n-1,G]

]];

Ejemplo 12 Resuelva la ecuacion x3 − x− 1 = 0 en el intervalo [1, 2] conε = 10−5.

Solucion: Como se mostro en el ejemplo 3, utilizando g(x) =√

1 +1x

el

metodo de punto fijo requirıo de 9 iteraciones para resolver esta ecuacion,con una tolerancia de ε = 10−5, mientras que el Metodo de Steffensenrequiere solamente de 5 iteraciones, como se muestra seguidamente:

In[32]:=G[x ]:=Sqrt[1+1/x]In[33]:=N[Steffensen[2,0.00001,100,G],15]En la iteracion 1 el valor de x es 1.37502En la iteracion 2 el valor de x es 1.32478En la iteracion 3 el valor de x es 1.32472En la iteracion 4 el valor de x es 1.32472Out[33]:=1.32472

Teorema 12 Si el metodo de punto fijo xn+1 = g(xn) converge lineal-

xxxiv 1. Metodos iterativos para ecuaciones no lineales

mente entonces el orden de convergencia del metodo de Steffensen es almenos dos.

Prueba (Ejercicio) Suponga que g(x) es un numero suficiente de vecesderivable, luego pruebe que:

limn→∞

|xn+1 − x||xn − x|2

=12

∣∣∣∣g′(x)g′′(x)g′(x)− 1

∣∣∣∣ := λ 6= 0.