Documentos de Académico
Documentos de Profesional
Documentos de Cultura
C2 Solucion Ecuaciones Nolineales
C2 Solucion Ecuaciones Nolineales
1. Que la ecuación no sea simple de resolver explícitamente, como por ejemplo ex −2x−1 = 0,
de la cual no se puede despejar x y sin embargo, si se escribe la ecuación de la forma
ex = 2x + 1 y se grafican las funciones f (x) = ex y g(x) = 2x + 1 como se muestra en la
figura 3.1, se puede observar que esta ecuación tiene dos soluciones en [0, 2], una de ellas
es x = 0.
2. Problemas por trabajar con la aritmética de precisión finita, como se mostró en el ejemplo
2.22, de la página 128.
135
136 Capítulo 3. Solución de ecuaciones por iteraciones
En este capítulo se consideran varios métodos de gran renombre, para los cuales se define la
sucesión (xk ) de diversas formas. Estos métodos son denominados métodos iterativos y de entre
ellos se considerarán: el método de bisección y los métodos basados en la iteración de punto
fijo: Newton, Secante, Posición falsa, entre otros. Sin embargo, para todos ellos, es importante
primero garantizar que para la ecuación f (x) = 0, exista la solución ξ en un determinado
intervalo, por lo tanto, se establece el siguiente resultado.
Teorema 3.1.
Sea f una función real, definida y continua sobre un intervalo cerrado [a, b] de . Si se
cumple que f (a)f (b) ≤ 0, entonces existe ξ ∈ [a, b] tal que f (ξ) = 0.
Ejemplo 3.1.
Considere la función f (x) = ex − 2x − 1 sobre [1, 2] y nótese que f (1) < 0, mientras que
f (2) > 0. Por lo tanto, existe un ξ ∈ ]1, 2[ tal que f (ξ) = 0.
Observación: El teorema anterior establece que si f es continua en [a, b], donde f (a) y f (b)
tienen signos opuestos, entonces la ecuación f (x) = 0 tiene una solución en ]a, b[. Nótese que el
3.1. Iteración de bisección 137
teorema no brinda la solución, sólo garantiza su existencia. Además, el recíproco del teorema
es falso, ya que es posible considerar una función f continua en [a, b] tal que f (x) = 0 tiene
solución en ]a, b[, pero que f (a)f (b) > 0. Por ejemplo, considere f (x) = x2 sobre [−1, 1].
Cuando f (ak )f (mk ) = 0 se tiene que ξ = mk . Luego, para apreciar que la sucesión xk = mk =
1
(a + bk ) converge, basta considerar el error ek = xk − ξ el cual satisface que:
2 k
1
bk−1 − ak−1 (bk−2 − ak−2 ) b0 − a0
|ek | = |xk − ξ| ≤ bk − ak = = 2 = ... = .
2 2 2k
Así, ya que |ek | → 0 cuando k → +∞, entonces la iteración de bisección converge a ξ. Sin
embargo, por detalles computacionales se debe generar una forma de detener la iteración
ya que a pesar de que converge, esta podría realizar iteraciones infinitamente debido a que
puede producirse un subdesbordamiento o una cancelación catastrófica. Por esta razón para esta
iteración, así como para las iteraciones de las secciones siguientes, se consideran las siguientes
dos condiciones de parada.
138 Capítulo 3. Solución de ecuaciones por iteraciones
1. |ek | < tol, en la cual se considera una tolerancia tol con el fin de obtener una
aproximación adecuada para la solución.
1 k ← −1
2 err ← tol + 1
3 v←1
4 w ← f (a)
5 Mientras que v 6= 0 ∧ k < iterMax ∧ err ≥ tol hacer
6 x ← 12 (a + b)
7 v ← f (x)
8 err ← |b − a|
9 Si w · v > 0 entonces
10 a←x
11 w←v
12 Sino
13 b←x
14 k ←k+1
Ejemplo 3.2.
Utilice el método de bisección para aproximar la solución de la ecuación ex − 2x − 1 = 0
en el intervalo [1, 2] para una tolerancia de 10−2 .
Similarmente, se calculan x3 y x4 como se muestra en la siguiente figura, sin lograr parar aún
el método.
k ak bk xk f (xk ) bk − ak
0 1.0000 2.0000 1.5000 0.4817 1.0000
1 1.0000 1.5000 1.2500 −0.0097 0.2500
2 1.2500 1.5000 1.3750 0.2051 0.5000
3 1.2500 1.3750 1.3125 0.0905 0.1250
4 1.2500 1.3125 1.2813 0.0386 0.0625
5 1.2500 1.2813 1.2656 0.0141 0.0313
6 1.2500 1.2656 1.2578 0.0021 0.0156
7 1.2500 1.2578 1.2539 −0.0038 0.0078
Tabla 3.1: Método de bisección para f (x) = ex − 2x − 1 sobre [1, 2] con tol = 10−2 .
Ejemplo 3.3.
Utilice MATLAB y el método de bisección para aproximar la solución de la ecuación
ex = 3x en el intervalo [0, 1] para una tolerancia de 10−6 .
% Método de bisección
function [x, k] = biseccion(a, b, tol, iterMax)
k = -1;
err = tol + 1;
v = 1;
w = f( a );
while v ~= 0 && k < iterMax && err >= tol
x = (a + b) / 2;
v = f( x );
err = abs( b - a );
if w * v > 0
a = x;
w = v;
else
b = x;
end
k = k + 1;
end
return
x = k =
6.190609931945801e-001 20
Como k < iterMax = 30, entonces se dice que el método convergió con la tolerancia deseada.
En caso contrario de que k = 30, se dice que no convergió. Además, al evaluar la aproximación
en la función, es decir al ejecutar f(x), se obtiene el valor 3.354638895558537e-007.
Observación: En la iteración de bisección se tiene que |ek | = |xk − ξ| ≤ 2−k (b − a), además se
considera |ek | < tol como condición de parada, entonces despejando k se obtiene que:
b−a b−a k b−a
< tol ⇒ < 2 ⇒ log2 < k,
2k tol tol
así, si se desea utilizar una tolerancia tol, entonces el valor mínimio de iterMax para la iteración
de bisección puede ser considerado de la forma:
s {
b−a
iterMax = log2 + 1. (3.1)
tol
Por otro lado, el método de bisección considera una partición uniforme de [a0 , b0 ] al tomar el
punto medio de este intervalo. Sin embargo, también es posible considerar una partición no
uniforme como la que se muestra en la figura 3.3.
3.1. Iteración de bisección 141
y nótese que para λ = 12 se tiene que |ek | ≤ 21k (b0 − a0 ), mientras que para λ = 1
3
se tiene que
k
|ek | ≤ 32 (b0 − a0 ). Además, x0 = (1 − λ)a0 + λb0 .
Ejemplo 3.4.
Considere el polinomio de Legendre de grado 5, dado por:
x
p5 (x) = (63x4 − 70x2 + 15).
8
1
p √
Este polinomio tiene un cero en ]0.6, 1[ dado por ξ = 21 245 + 14 70 ≈ 0.9061798459.
¿Cuántas iteraciones máximas se necesitan para aproximar este cero por el método de
bisección con una tolerancia de 10−10 ? Luego, utilice MATLAB para aproximar este cero.
Así, las iteraciones máximas necesarias para aproximar el cero, por el método de bisección con
una tolerancia de 10−10 , es de al menos 32. Con ello, se cambia el archivo f.m, como se muestra:
% Función continua
function [y] = f( x )
y = ( 63*x^5 - 70*x^3 + 15*x ) / 8;
return
x = k =
9.061798459384589e-001 32
2. Verifique que las siguientes ecuaciones tienen al menos una solución en los intervalos
indicados.
a) ex = x2 , en I = [−1, 0].
b) x cos(x) − 2x2 + 3x − 1 = 0, en I1 = [0.2, 0.3] y en I2 = [1.2, 3.3].
c) (x − 2)2 − ln(x) = 0, en I1 = [1, 2] y en I2 = [e, 4].
d ) 2x cos(2x) − (x − 2)2 = 0, en I1 = [2, 3] y en I2 = [3, 4].
e) x − (ln(x))x = 0, en I = [4, 5].
3. Encuentre intervalos que garanticen, al menos, una solución para las siguientes ecuaciones
a) x − 3−x = 0 b) 4x2 = ex
6. Encuentre una solución de la ecuación x = tan(x), en el intervalo I = [4, 4.5], para una
tolerancia de 10−3.
3.2. Iteración de punto fijo 143
7. Use el método de la bisección para encontrar una solución de las siguientes ecuaciones,
utilizando una tolerancia de 10−5 .
♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ln(q) + eq = q 2 + cos(q)
tiene al menos una solución en el intervalo ]0, 1]. Utilice el método de bisección para
aproximar dicho cero con una tolerancia de 10−2 .
10. ¿Porqué el método de bisección no sirve para resolver la ecuación tan(x) = x en [1, 2],
con x en radianes?
11. Sea f una función continua definida en [0, 1], la cual tiene una única raíz α en ]0, 1[
y f (0)f (1) < 0. Diseñe un método iterativo para aproximar α, en el cual obtiene un
dígito de precisión en cada iteración. Sugerencia: considere la idea general del método
de bisección.
graficada en la figura 3.4 en el intervalo cerrado [0.8, 1.8], para M = 200. Las soluciones de
la ecuación f (x) = 0 son ξ1 = 1.05 − M1 y ξ2 = 1.05 + M1 , es decir, que ambas soluciones
se encuentran a una distancia de M2 y con ello se puede apreciar que cuando M es grande,
ambos ceros tienden a ser el mismo, lo que provoca que localizar estas soluciones sea una tarea
computacionalmente costosa.
Por ejemplo, resolver por el método de bisección la ecuación f (x) = 0 en [0.8, 1.8] para M = 200
con tol = 10−10 y iterMax = 100, se obtiene para 34 iteraciones una aproximación x34 =
1.799999999970896. Sin embargo, |x34 − ξ1 | ≈ 0.75499 y |x34 − ξ2 | ≈ 0.74499. Es decir, que el
método de bisección no converge con un error de 10−10 como se esperaba. Parte de esto se debe
144 Capítulo 3. Solución de ecuaciones por iteraciones
1 1
Figura 3.4: Gráfica de f (x) = 2
− 1+200|x−1.05|
.
a que f (0.8) ≈ 0.48 y f (1.8) ≈ 0.49 no satisfacen la condición inicial f (0.8)f (1.8) < 0, lo cual
es díficil de obtener para esta ecuación ya que ambas soluciones están muy juntas.
Así, se debe encontrar una nueva condición de existencia para la solución de la ecuación f (x) = 0
dada por el teorema 3.1, para lo cual se requiere la siguiente definición.
Demostración. Considere g(x) = ϕ(x) − x, definida y continua sobre [a, b]. Como ϕ(a) ∈ [a, b]
entonces se tiene que g(a) = ϕ(a) − a ≥ 0 y de manera similar como ϕ(b) ∈ [a, b] entonces
g(b) = ϕ(b) − b ≤ 0. Por lo tanto, se cumple que g(a)g(b) ≤ 0 y por el teorema 3.1 existe
ξ ∈ [a, b] tal que g(ξ) = 0, es decir, ϕ(ξ) − ξ = 0, con lo que ξ es punto fijo de ϕ.
En la figura 3.5 se muestra una función ϕ que posee tres puntos fijos en el intervalo [a, b].
Además, cualquier ecuación f (x) = 0 puede ser reescrita de la forma x = ϕ(x) tomando
3.2. Iteración de punto fijo 145
ϕ(x) = x + f (x), sin embargo, no hay garantía que esta nueva función cumpla las condiciones
del teorema 3.2, es decir, que cumpla que f (x) ∈ [a, b], para todo x ∈ [a, b]. Por esta razón se
consideran varias alternativas para transformar f (x) = 0 en x = ϕ(x), para luego encontrar la
que cumpla que ϕ sea continua sobre [a, b] y tal que ϕ(x) ∈ [a, b] para todo x ∈ [a, b].
Ejemplo 3.5.
Dada la ecuación ex −2x−1 = 0 para x ∈ [1, 2], encuentre ϕ(x) que cumpla las condiciones
del teorema 3.2.
ex − 2x − 1 = 0 ⇒ ex = 2x + 1 ⇒ x = ln(2x + 1),
es decir ϕ(x) = ln(2x + 1), donde se tiene que ϕ(1) ≈ 1.0986 ∈ [1, 2] y ϕ(2) ≈ 1.6094 ∈ [1, 2],
luego, como ϕ(x) es creciente (la base del logaritmo es mayor a 1), entonces se cumple que
ϕ(x) ∈ [1, 2] para todo x ∈ [1, 2], lo cual satisface las condiciones del teorema 3.2 y con ello se
tiene la existencia de ξ ∈ [1, 2] punto fijo de ϕ, tal que f (ξ) = 0.
Observación: Esta nueva forma de verificar la existencia para la solución de la ecuación f (x) =
0, al reescribirla de la forma ϕ(x) = x, también provee una nueva forma de construir una
146 Capítulo 3. Solución de ecuaciones por iteraciones
sucesión (xk ) que converge a ξ punto fijo ϕ, que a su vez es solución de f (x) = 0. Esta nueva
iteración se presenta a continuación.
Ejemplo 3.6.
Considere la ecuación x = sen(x) y determine x5 , donde (xk ) es la iteración de punto fijo
y el valor inicial corresponde a x0 = 2.
x0 = 2,
x1 = ϕ(x0 ) = sen(2) ≈ 0.9092974268,
x2 = ϕ(x1 ) = sen(sen(2)) ≈ 0.7890723436,
x3 = ϕ(x2 ) = sen(sen(sen(2))) ≈ 0.7097000402,
x4 = ϕ(x3 ) = sen(sen(sen(sen(2)))) ≈ 0.6516062636,
x5 = ϕ(x4 ) = sen(sen(sen(sen(sen(2))))) ≈ 0.6064643449.
Figura 3.6: Ruta de la iteración de punto fijo para ϕ(x) = sen(x) con x0 = 2.
3.2. Iteración de punto fijo 147
Observación: Suponiendo que la iteración xk+1 = ϕ(xk ) converge, esta debe converger a un
punto fijo ξ de ϕ, como se muestra:
ξ = lı́m xk+1 = lı́m ϕ(xk ) = ϕ lı́m xk = ϕ(ξ),
k→+∞ k→+∞ k→+∞
| {z }
(∗)
1 k←0
2 x ← x0
3 err ← tol + 1
4 Mientras que k < iterMax ∧ err ≥ tol hacer
5 x ← ϕ(x)
6 err ← |x − x0 |
7 x0 ← x
8 k ←k+1
Observación: El término “contracción” proviene del hecho de que cuando (3.2) cumple que
0 < L < 1, la distancia |ϕ(x) − ϕ(y)| entre las imágenes de x y y es más pequeña (al menos L1
veces) que la distancia |x − y| entre x y y. Además, de manera general, cuando L es un número
real positivo, la ecuación (3.2) es conocida como una condición de Lipschitz.
148 Capítulo 3. Solución de ecuaciones por iteraciones
Ejemplo 3.7.
Dada ϕ(x) = x2 − 4, se tiene que:
es decir, (1 − L)|ξ − η| ≤ 0. Además, como 1 − L > 0, pues 0 < L < 1, entonces se tiene que
ξ = η, por lo que ϕ sólo tiene un punto fijo en [a, b].
Ahora, sea x0 cualquier elemento en [a, b] y considere la sucesión (xk ) definida por xk = ϕ(xk−1 ).
A continuación se probará que (xk ) converge al punto fijo ξ, para ello nótese que
Como L ∈ ]0, 1[, entonces lı́m Lk = 0 y con ello se concluye que lı́m |xk − ξ| = 0. Por lo
k→+∞ k→+∞
tanto, la sucesión (xk ) converge a ξ.
Observación: El teorema 3.3 expresa que basta que ϕ sea contracción para que la iteración
de punto fijo converja. Además, una forma simple de verificar si una función es contracción,
cuando esta es diferenciable, consiste en utilizar el teorema de valor medio (Teorema A.3 de la
página A.3), del cual se tiene el siguiente resultado.
3.2. Iteración de punto fijo 149
Teorema 3.4.
Suponga que ϕ es una función real, definida, continua y diferenciable sobre un intervalo
cerrado [a, b] de . Entonces, si |ϕ′ (x)| ≤ L para todo x ∈ [a, b], con L < 1, se cumple que
ϕ es una contracción sobre [a, b].
Luego, ya que |ϕ′ (z)| ≤ L para todo z ∈ [a, b], se cumple que
Finalmente, como L < 1, la expresión (3.4) satisface la condición (3.2), por lo tanto se tiene
que ϕ es una contracción sobre [a, b].
Ejemplo 3.8.
En el ejemplo 3.5 se obtuvo la función ϕ(x) = ln(2x + 1), para ex − 2x − 1 = 0 sobre [1, 2].
Pruebe que ϕ una contracción sobre [1, 2] y por lo tanto la iteración de punto fijo converge
para cualquier x0 ∈ [1, 2].
2 −4
ϕ′ (x) = y ϕ′′ (x) = .
2x + 1 (2x + 1)2
Como ϕ′′ (x) < 0 para todo x ∈ [1, 2], entonces ϕ′ es decreciente sobre [1, 2]. Luego, se puede
apreciar que ϕ′ (1) ≥ ϕ′ (x) ≥ ϕ′ (2), con lo que ϕ′ (x) ∈ 25 , 23 para todo x ∈ [1, 2], es decir que
ϕ′ (x) ≤ 32 < 1 para todo x ∈ [1, 2]. Así, por el teorema anterior ϕ es una contracción sobre [1, 2]
con L = 32 . Por lo tanto, por el teorema 3.3 se tiene que la iteración de punto fijo converge a
un único punto fijo, para cualquier x0 ∈ [1, 2].
Finalmente, en la tabla 3.2 se muestran los resultados obtenidos al resolver la ecuación f (x) =
ex − 2x − 1 = 0 con la iteración de punto fijo, para x0 = 1, tol = 5 × 10−5 y iterMax = 50. De
ella, se puede apreciar que ξ ≈ 1.2563.
150 Capítulo 3. Solución de ecuaciones por iteraciones
Tabla 3.2: Iteración de punto fijo para ϕ(x) = ln(2x + 1) sobre [1, 2].
Teorema 3.5.
Considere la iteración de punto fijo xk = ϕ(xk−1 ), donde ϕ satisface las hipótesis del
teorema 3.3 sobre [a, b]. Dado x0 ∈ [a, b] y una tolerancia tol > 0, entonces el número de
iteraciones máximas puede ser considerado como:
s {
ln (tol(1 − L)) − ln |x1 − x0 |
iterMax = + 1.
ln(L)
Lk
|xk − ξ| ≤ |x1 − x0 |.
1−L
Así, dado que |ek | = |xk − ξ| < tol, entonces se puede tomar
Lk
|x1 − x0 | < tol.
1−L
Finalmente, al tomar el logaritmo natural a ambos lados de la desigualdad, teniendo el cuenta
que ln(L) < 0, se obtiene que
Por lo que, el menor entero que satisface que |ek | = |xk − ξ| < tol y por lo tanto, el menor valor
a considerar como iteraciones máximas es dado por
s {
ln (tol(1 − L)) − ln |x1 − x0 |
iterMax = + 1.
ln(L)
Ejemplo 3.9.
Considerando nuevamente los ejemplos 3.5 y 3.8. Determine el número máximo de itera-
ciones, para que con el valor inicial x0 = 1, la última iteración sea calcula con seis dígitos
correctos.
Solución. Como se desean seis dígitos correctos, entonces basta tomar tol = 12 × 10−6 . Además,
ya que L = 32 , por el teorema anterior se puede tomar que iterMax = J32.778918K + 1 = 33.
Así, utilizando esta tolerancia y número máximo de iteraciones, se obtiene x24 = 1.256431, la
cual posee seis dígitos correctos.
1. Muestre que las siguientes funciones tienen un punto fijo en ξ, exactamente cuando f (ξ) =
0. donde f (x) = x4 + 2x2 − x − 3.
r r
x + 3 − x4 x+3 3x4 + 2x2 + 3
a) ϕ1 (x) = b) ϕ2 (x) = c) ϕ3 (x) =
2 x2 + 2 4x3 + 4x − 1
2. Efectúe cuatro iteraciones del método de punto fijo a las funciones del ejercicio anterior,
para x0 = 1, siempre que sea posible hacerlo.
3. Utilice la iteración de punto fijo para determinar una solución para x4 − 3x2 − 3 = 0 en
[1, 2]. Utilice x0 = 1 y una tolerancia de 10−2 .
4. La ecuación
f (x) = x3 + 2x2 + 10x − 20 = 0
tiene una solución en ξ = 1.368808107. Reescriba esta ecuación en la forma equivalente:
20
x = ,
x2 + 2x + 10
y aplique la iteración de punto fijo, con el valor inicial x0 = 1, para determinar las primeras
tres aproximación de ξ.
5. Para cada una de las siguientes ecuaciones determine un intervalo [a, b] en el que conver-
gerá la iteración de punto fijo. Estime la cantidad de iteraciones necesarias para obtener
aproximaciones con una exactitud de 10−4 y realice los cálculos.
152 Capítulo 3. Solución de ecuaciones por iteraciones
a) x2 + 10 cos(x) = 0 c) x − 3−x = 0
b) 10−4 cos(x) = tan(x) d ) 2x − sen(x) = cos(x)
√
6. A continuación se proponen tres iteraciones de punto fijo para calcular α.
α 1 α
a) x = x2 + x − α b) x = c) x = x+
x 2 x
Sustituya el valor de α por un número real y determine con cuál de las tres iteraciones se
obtiene una mejor aproximación.
7. Considere la función f (x) = x2 + 10 cos(x), la cual posee dos raíces positivas 3.1619 y
1.9688.
♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8. La iteración de punto fijo determina el siguiente valor xk+1 de la forma xk+1 = ϕ(xk ).
Ahora considere una variante de la la forma:
v1 = xk ,
v2 = ϕ(v1 ),
v3 = ϕ(v2 ),
(v2 − v1 )2
xk+1 = v1 − ,
(v3 − 2v2 + v1 )
♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9. Puede verificarse gráficamente que la función f (x) = x3 + 4x2 − 10 admite un único cero
real α. Para encontrar α utilice la siguiente iteración de punto fijo:
2(xk )3 + 4(xk )2 + 10
xk+1 = , para k ≥ 0.
3(xk )2 + 8xk
xk [(xk )2 + 3α]
xk+1 = , para k ≥ 0.
3(xk )2 + α
Verifique que la misma puede ser utilizada para calcular la raíz cuadrada de un número
positivo.
para todo x, y ∈ [a, b] y L > 0. Entonces f es una función continua en [a, b].
solamente se supone que |ϕ′ (x)| < 1 para todo x ∈ [a, b].
15. La iteración definida por xk+1 = 12 (x2k + c), donde 0 < c < 1, tiene dos puntos fijos ξ1 y
ξ2 , donde 0 < ξ1 < 1 < ξ2 . Muestre que
1
xk+1 − ξ1 = (xk + ξ1 )(xk − ξ1 ), para 0, 1, 2, . . . ,
2
y deduzca que lı́m xk = ξ1 , si 0 ≤ x0 < ξ2 . ¿Cómo se comporta esta iteración para otros
k→+∞
valores de x0 ?
154 Capítulo 3. Solución de ecuaciones por iteraciones
para ello, determine valores de x0 con los cuales la sucesión (xk ) diverja y converja. En
cada caso de que converja, determine su límite.
17. Para todo t ∈ [−1, 1] considere la sucesión (pn (t)) obtenida a partir del método de punto
fijo:
p0 (t) = 0,
pn+1 (t) = pn (t) + 21 (t2 − p2n (t)) .
Muestre que la sucesión (pn (t)) converge para todo t ∈ [−1, 1]. Determine el valor de este
límite en función de t.
18. Para la iteración de punto fijo xk+1 = ϕ(xk ), se dice que ξ es un punto fijo estable de ϕ,
si (xk ) converge a ξ para cualquier valor inicial x0 suficientemente cerca de ξ. De manera
contraria, si (xk ) no converge a ξ para todo x0 cercano a ξ, con x0 6= ξ, se dice que ξ es
un punto fijo inestable de ϕ.
a) Muestre que f (x) = −x sen2 x1 para 0 < x ≤ 1 con f (0) = 0, es una función
continua en [0, 1] y que 0 es el único punto fijo de f en [0, 1].
b) Muestre que 0 no es punto fijo estable pero tampoco es un punto inestable.
define una iteración de punto fijo con ϕ(x) = x−λf (x). La constante λ se le denomina relajación
y tiene por objetivo mejorar la eficiencia del método iterativo. Además, esta constante puede
ser generalizada a una función λ(x) continua que no se anule.
Nótese que al ser una iteración de relajación una iteración de punto fijo con ϕ(x) = x−λ(x)f (x),
se tiene que si (xk ) converge a ξ, entonces ξ es solución de la ecuación f (x) = 0, excepto cuando
λ(ξ) = 0. Además, para garantizar la convergencia, se requiere que ϕ(x) sea una contracción
en un vecindario de ξ, lo cual es simple de verificar si f y λ son diferenciables. Así, considere
la derivada de ϕ dada por:
donde ϕ′ (ξ) = 1 − λ(ξ)f ′(ξ) y como ϕ′ es continua en [ξ − h, ξ + h], para algún h > 0, entonces
suponiendo que |ϕ′ (ξ)| < 1, se puede encontrar Iδ = [ξ − δ, ξ + δ] con 0 < δ ≤ h, tal que
|ϕ′ (x)| ≤ L en Iδ , donde L = 21 (1 + |ϕ′ (ξ)|) < 1. Para probarlo considere la definición de
continuidad de ϕ′ en ξ y tome ε = 21 (1 − |ϕ′ (ξ)|) para obtener δ ≤ h. Con ello, ϕ(x) es una
contracción en un vecindario de ξ si ϕ′ (ξ) = 1 − λ(ξ)f ′ (ξ) es pequeño, por lo que una elección
simple corresponde a tomar λ(x) = f ′1(x) , la cual deduce la iteración para el método de Newton.
f (xk )
xk+1 = xk − , para k = 0, 1, 2, . . . ,
f ′ (xk )
Newton introdujo la idea del método en “De analysi per aecquationes numero terminorum
infinitas (1666-1669)” para resolver la ecuación f (x) = y 3 − 2y − 5 = 0, mientras que Raphson
posteriormente tomó la idea utilizada por Newton, la convirtió en un algoritmo y lo presentó
en “Analysis Aequationum Universalis (1690)”.
Además, la iteración de Newton tiene una interpretación geométrica ilustrada en la figura 3.7,
donde la tangente a la curva y = f (x) en el punto (xk , f (xk )) es la recta con ecuación
Así, para localizar donde esta recta interseca al eje x, basta tomar y = 0, de donde se obtiene
f (xk )
−f (xk ) = f ′ (xk )(x − xk ) ⇒ x = xk − ,
f ′ (xk )
por lo que interseca al eje x en el punto (xk+1 , 0).
Ejemplo 3.10.
Considere la ecuación cos2 (2x) = x2 , la cual posee un cero en 0, 32 . Tomando x0 = 34 ,
determine el valor de x4 de la iteración de Newton.
Solución. Dado que f (x) = cos2 (2x) − x2 y f ′ (x) = −2 sen(4x) − 2x, entonces se tiene que:
156 Capítulo 3. Solución de ecuaciones por iteraciones
f (x0 ) f (x2 )
x1 = x0 − ≈ 0.4371935074 x3 = x2 − ≈ 0.5149332479
f ′ (x0 ) f ′ (x2 )
f (x1 ) f (x3 )
x2 = x1 − ≈ 0.5147024678 x4 = x3 − ≈ 0.5149332646
f ′ (x1 ) f ′ (x3 )
Por lo tanto, x4 = 0.5149332646, la cual es una buena aproximación a la solución dada por
ξ = 0.51493326466113 . . .. Además en la figura 3.8 se presenta el recorrido de la iteración.
Ejemplo 3.11.
Considere cos(x) = x3 y aplique cuatro iteraciones del método de Newton para aproximar
una solución de esta ecuación, utilice x0 = 12 , cuatro cifras significativas y truncamiento.
Por lo tanto, una aproximación para la solución de la ecuación cos(x) = x3 , con 4 cifras
significativas y truncamiento corresponde a ξ ≈ 0.8654.
Ejemplo 3.12.
Considere la ecuación tan(π − x) = x y utilice MATLAB para aproximar una solución de
ella, con una tolerancia de tol = 10−8 y el valor inicial x0 = 4.
1 k←0
2 x ← x0
3 err ← tol + 1
4 Mientras que k < iterMax ∧ err ≥ tol hacer
5 q ← f ′ (x)
6 Si q = 0 entonces
7 Imprimir: ¡Se anula la derivada!
8 Detener
f (x)
x←x−
9 q
|x − x0 |
err ←
10 |x|
11 x0 ← x
12 k ←k+1
|f ′′(x)|
≤ A, para todo x, y ∈ Iδ . (3.5)
|f ′(y)|
Si |ξ − x0 | ≤ mı́n δ, A1 , entonces la iteración de Newton converge a ξ.
Demostración. Suponga que |ξ − xk | ≤ mı́n δ, A1 , entonces se tiene que xk ∈ Iδ . Además,
realizando la expansión de Taylor para f alrededor de ξ, se tiene que
(ξ − xk )2 ′′
0 = f (ξ) = f (xk ) + (ξ − xk )f ′ (xk ) + f (ζk ),
2
para algún ζk entre ξ y xk . Luego, de la ecuación anterior se obtiene que
f ′′ (ζk )
ξ − xk+1 = −(ξ − xk )2 . (3.6)
2f ′(xk )
3.3. Iteración de Newton 159
1
Luego, como |ξ − xk | ≤ A
y por (3.5) se cumple que:
′′
′′
f (ζ k ) 1 f (ζ k )
|ξ − xk+1 | = (ξ − xk )(ξ − xk ) ′ ≤ (ξ − xk ) ,
2f (xk ) A 2f ′ (xk )
′′
1 f (ζk )
≤ 1 |ξ − xk |.
= |ξ − xk | ′
2A f (xk ) 2
Ahora, como |ξ − xk+1 | ≤ 12 |ξ − xk | y |ξ − x0 | ≤ mı́n δ, A1 , aplicando inducción se obtiene
|ξ − x0 | ≤ 2−k mı́n δ, A1 , para todo k ≥ 0. Por lo tanto, (xk ) converge a ξ cuando k → +∞.
(x − xk )2 ′′
f (x) = f (xk ) + (x − xk )f ′ (xk ) + f (ζk ),
2
Es decir, el valor de f ′ (xk ) puede ser aproximado por medio de la pendiente de la recta que
pasa por los puntos (xk−1 , f (xk−1)) y (xk , f (xk )), lo cual transforma la iteración de punto fijo
xk+1 = ϕ(xk ) en una nueva iteración que depende de las dos aproximaciones anteriores, es decir,
xk+1 = ϕ(xk , xk−1 ), lo que introduce la iteración para el método de la secante.
160 Capítulo 3. Solución de ecuaciones por iteraciones
donde x0 y x1 son los valores iniciales y se asume que f (xk ) −f (xk−1 ) 6= 0 para todo k ≥ 1.
La iteración o método de la secante se ilustra en la figura 3.9, donde la nueva iteración xk+1 es
obtenida de xk−1 y xk al trazar el segmento que une los puntos (xk−1 , f (xk−1)) y (xk , f (xk )).
Luego, xk+1 corresponde al punto donde el segmento interseca al eje x. Si xk−1 y xk están muy
cercanos y f es diferenciable, xk+1 es aproximadamente el mismo resultado retornado por la
iteración de Newton.
Ejemplo 3.13.
2
Considere la ecuación e−x = x y utilice el método de la secante para aproximar una
solución de esta ecuación, con error relativo (similar a Newton) menor a tol = 10−3 y
valores iniciales de x0 = 0 y x1 = 1.
−x2 xk −xk−1
Solución. Sea f (x) = e − x y |ek | = xk , con lo que:
x1 − x0 x2 − x1
= 0.632120 6< 10−3
x2 = x1 − f (x1 ) ≈ 0.612699 y |e2 | ≈
f (x1 ) − f (x0 ) x2
x2 − x1 x3 − x2
= 0.062350 6< 10−3
x3 = x2 − f (x2 ) ≈ 0.653442 y |e3 | ≈
f (x2 ) − f (x1 ) x3
3.3. Iteración de Newton 161
x3 − x2 x4 − x3
= 0.000804 < 10−3
x4 = x3 − f (x3 ) ≈ 0.652917 y |e4 | ≈
f (x3 ) − f (x2 ) x4
2
Por lo tanto, una aproximación a la solución de la ecuación e−x = x, es dada por 0.652917.
A continuación se presenta el pseudocódigo del método de la secante, así como el resultado que
describe la convergencia de su iteración.
1 k←1
2 err ← tol + 1
3 Mientras que k < iterMax ∧ err ≥ tol hacer
4 q ← f (x1 ) − f (x0 )
5 Si q = 0 entonces
6 Imprimir: ¡Pendiente indefinida!
7 Detener
8 t ← x1
x1 − x0
x1 ← x1 − f (x1 )
9 q
10 x0 ← t
|x1 − x0 |
err ←
11 |x1 |
12 k ←k+1
13 x ← x1
Así, como f (ξ) = 0, entonces la iteración de la secante puede ser reescrita como:
xk − xk−1
xk+1 = xk − f (xk ),
f (xk ) − f (xk−1 )
xk − xk−1 ′
xk+1 = xk − f (ζ k )(xk − ξ) ,
f ′ (ηk )(xk − xk−1 )
(xk − ξ)f ′ (ζk )
xk+1 = xk − ,
f ′ (ηk )
(xk − ξ)f ′(ζk )
ξ − xk+1 = ξ − xk + .
f ′ (ηk )
El método de la posición falsa o método de regula falsi, consiste en una variante del método de
la secante, donde en lugar de calcular la pendiente con los puntos (xk , f (xk )) y (xk−1 , f (xk−1 )),
se eligen los puntos (xk , f (xk )) y (xσ , f (xσ )), siendo σ ∈ {0, 1, . . . , k − 1} el índice menor que, al
igual que bisección, cumple que f (xk )f (xσ ) < 0. Es decir, este método combina la iteración de
bisección con la de la secante, con el fin de acelerar la convergencia. De esta manera, el método
de la posición falsa se ilustra en la figura 3.10 y su pseudocódigo se presenta en el algoritmo
3.5.
Ejemplo 3.14.
Considere cos(x) = x y utilice el método de la posición falsa para aproximar una solución
de esta ecuación, con una tolerancia de tol = 10−3 y valores iniciales de x0 = 12 y x1 = π4 .
Solución. Sea f (x) = cos(x) − x y |ek | = xk −x
k−1
xk , con lo que:
x2 − x1
x2 = x1 − x1 −x0
f (x1 ) = 0.736384 y |e2 | =
f (x1 )−f (x0 )
6 10−3 . Luego,
= 0.06656 <
x2
f (x0 ) > 0, f (x1 ) < 0 y f (x2 ) > 0, por lo que σ = 1
3.3. Iteración de Newton 163
1 k←1
2 err ← tol + 1
3 Mientras que k < iterMax ∧ err ≥ tol hacer
4 q ← f (x1 ) − f (x0 )
5 Si q = 0 entonces
6 Imprimir: ¡Pendiente indefinida!
7 Detener
8 t ← x1
x1 − x0
x1 ← x1 − f (x1 )
9 q
|x1 − t|
err ←
10 |x1 |
11 Si f (x1 )f (t) < 0 entonces
12 x0 ← t
13 k ←k+1
14 x ← x1
x3 − x2
x3 = x2 − x2 −x1
f (x2 ) = 0.739058 y |e3 | = = 0.00361811 6< 10−3 Luego,
f (x2 )−f (x1 )
x3
f (x1 ) < 0, f (x2 ) > 0 y f (x3 ) > 0, por lo que σ = 1
x4 − x3
x3 −x1
x4 = x3 − f (x3 )−f (x1 ) f (x3 ) = 0.739084 y |e4 | = = 0.0000361590 < 10−3
x4
164 Capítulo 3. Solución de ecuaciones por iteraciones
Por lo tanto, una aproximación a la solución de la ecuación cos(x) = x, es dada por 0.739084.
Además, si se utiliza MATLAB con tol = 10−12 , se obtienen los resultados de la tabla 3.3.
xk −xσ
k xk f (xk ) xk
0 0.500000000000 0.377582561890 × 100 −
1 0.785398163397 −0.782913822109 × 10−1 −
2 0.736384138836 0.451771852217 × 10−2 0.665604023442 × 10−1
3 0.739058139213 0.451772159637 × 10−4 0.361811911056 × 10−2
4 0.739084863814 0.450871808332 × 10−6 0.361590422541 × 10−4
5 0.739085130526 0.449964276949 × 10−8 0.360867588886 × 10−6
6 0.739085133188 0.449059678331 × 10−10 0.360141196605 × 10−8
7 0.739085133214 0.448086012738 × 10−12 0.359416960908 × 10−10
8 0.739085133215 0.455191440096 × 10−14 0.358565237031 × 10−12
Tabla 3.3: Método de la posición falsa para f (x) = cos(x) con tol = 10−12 .
Construya un cuadro,
3. Verifique que
√ 1 1 1
2 ≈ 1+ − − .
2 12 408
Sugerencia: utilice tres iteraciones de Newton, para resolver la ecuación x2 = 2.
1 x2 cos(2x)
0 = + − x sen(x) − ,
2 4 2
π
con la aproximación inicial x0 = 2
y con un error relativo menor a 10−5 .
6. La suma de dos números es 20. Si a cada número se le suma su raíz cuadrada, entonces
el producto de estos dos nuevos números es 155.55. Determine estos dos números, con un
error relativo menor a 10−4.
7. La función f (x) = ex − 2x2 posee tres ceros: x1 < 0, x2 > 0 y x3 > 0. Determine un valor
apropiado para x0 , con el cual la iteración de Newton converja a la raíz negativa.
8. Aplique el método de Newton para calcular el cero de la función f (x) = x3 − 3x2 2−x +
3x4−x − 8−x en el intervalo [0, 1].
9. Un proyectil es lanzado con una velocidad inicial v0 y con una inclinación αqen un túnel
2gh
de altura h, obtiene su máximo alcance cuando α es tal que sen(α) = v2
, donde
0
g = 9.8m/s2 corresponde a la aceleración de la gravedad. Calcule el valor de α usando el
método de Newton, cuando v0 = 10m/s y h = 1m.
10. Dada la función f (x) = x sen(x) + x2 − 1, utilice el método de la secante para aproximar
un cero de f (x) con tolerancia 10−3 y considerando x0 = 0.1 y x1 = 0.9.
12. Utilice el método de la secante para aproximar la solución de la ecuación e−x = x, con un
error relativo menor al 1 % y utilizando los valores iniciales x0 = 0 y x1 = 1.
3
13. Utilice el método de la secante para aproximar la solución de la ecuación e−x = 2x − 1,
con un error relativo menor al 1 % y utilizando los valores iniciales x0 = 0.75 y x1 = 1.
166 Capítulo 3. Solución de ecuaciones por iteraciones
Utilice el método de la secante para aproximar las dos soluciones de la ecuación con
error relativo menor que 10−6 y usando como aproximaciones iniciales (x0 , x1 ) = (0, 1) y
(x0 , x1 ) = (2.5, 3.5). Calcule la solución exacta de la ecuación y determine el error absoluto
y error relativo exacto de cada aproximación.
15. Utilice el método de la posición falsa para aproximar una solución de la ecuación ex = x2 ,
en el intervalo [−2, 0], con un error relativo menor que 10−3 .
16. Utilice el método de la posición falsa para aproximar una solución de la ecuación xex = 10,
en el intervalo [1, 2], con un error relativo menor que 10−2 .
17. Utilice el método de la posición falsa para aproximar una solución de la ecuación ex−1 =
10, en el intervalo [3.2, 3.7], utilizando cinco iteraciones. Calcule el error relativo en cada
iteración.
18. Utilice el método de la posición falsa para aproximar una solución de la ecuación sen(x3 ) =
0, en el intervalo π2 , π3 , utilizando cuatro iteraciones. Calcule el error relativo en la última
iteración.
19. Encuentre en (10, 5, −∞, +∞), el punto más cercano a (0, 0) desde el gráfico de y = ex .
Justifique la elección del método usado, indicando las ventajas que tiene sobre otros
métodos para esta ecuación particular.
♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21. Modifique los algoritmos 3.4 y 3.5 para que, similar al algoritmo 3.1, realicen sólo una
evaluación de f en cada iteración. Luego, implemente ambos métodos en MATLAB y
verifique que efectivamente dan los mismos resultados que los algoritmos 3.4 y 3.5, res-
pectivamente.
♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22. Considere método de la cuerda para aproximar una solución de f (x) = 0 en [a, b], el cual
consiste en una iteración de relajación para
b−a
λ(x) = λ = .
f (b) − f (a)
c) Determine condiciones, para que la iteración (xk ) de la cuerda converja para cualquier
x0 ∈ [a, b].
23. El método de Newton para resolver ecuaciones de la forma f (x) = 0 funciona extendiendo
una recta tangente al gráfico de f en un punto inicial y converge en un paso si f es lineal.
a) Derive una variante del método que extienda una parábola tangente al gráfico en el
punto inicial y que converja en un paso si f es cuadrática.
x3 − α = 0.
Definición 3.9.
Sea (xk ) una sucesión que converge hacia ξ. Se dice que la sucesión converge por lo menos
de orden q, con q > 1, si y sólo si existe µ > 0 y una sucesión (εk ) de número positivos
que converge a 0, tales que
εk+1
|xk − ξ| ≤ εk y lı́m q = µ, para k = 0, 1, 2, . . .
k→+∞ ε
k
si µ = 0 la convergencia es superlineal,
si µ = 1 la convergencia es sublineal.
La noción de orden de convergencia se puede interpretar como sigue. Suponga que una sucesión
(xk ) converge con orden q > 1 hacia ξ, entonces existe α ∈ ]0, 1[ y kα ∈ para los cuales el
error se comporta como:
k
∀ k ≥ kα , εk = |xk − ξ| ≈ αq .
Nótese que entre más grande sea el valor q, menor será el valor de εk , debido a que 0 < α < 1,
por lo que la (xk ) convergerá hacia ξ a mayor rapidez, con lo que es posible obtener una
aproximación a ξ con la precisión deseada, en menos iteraciones. Luego, debido a que en la
práctica es más fácil probar la desigualdad |xk − ξ| ≤ εk que la igualdad, que se considera la
noción de convergencia de por lo menos orden q.
Para la convergencia lineal, al número ρ = − log(µ) se le llama radio de convergencia asintótico,
y mide el número de dígitos decimales correctos ganados en una iteración.
Ejemplo 3.15.
En este ejemplo se ilustra el comportamiento de varias sucesiones en que convergen a 0
con diferentes ordenes de convergencia.
1 1
wk = , orden sublineal, yk = , orden superlineal,
k3 k!
k
xk = 2−k , orden lineal, zk = 2−2 , orden cuadrático.
Ejemplo 3.16.
Considere la sucesión en definida por
xk (x2k + 3α) √
xk+1 = , donde x0 ≥ α,
3x2k + α
ξ(ξ 2 + 3α)
ξ = ,
3ξ 2 + α
√ √
de donde se tiene que ξ ∈ {− α, 0, α}. Ahora, considere las funciones
−2xk (x2k − α)
xk+1 − xk = ϕ(xk ) − xk = ≤ 0,
3x2k + α
170 Capítulo 3. Solución de ecuaciones por iteraciones
√
por lo que la sucesión (xk ) es decreciente y como es acotada inferiormente por α, entonces se
√
tiene que (xk ) converge a α.
Finalmente, para determinar el orden de convergencia, nótese que:
√ 3
√ (xk − α)
xk+1 − α = ,
3x2k + α
con lo que:
√
|xk+1 − α| 1 1
lı́m √ 3 = lı́m = ,
k→+∞ |xk − α| k→+∞ 3x2
k +α 4α
por lo que la sucesión converge y tiene exactamente orden 3.
yk2 + α
yk+1 = ,
2yk
√ √
para y0 ≥ α. Esta sucesión también converge hacia α. Además observe que
√
√ (yk − α)2
yk+1 − α = .
2yk
De donde se tiene √
|yk+1 − α| 1 1
lı́m √ 2 = lı́m = √ ,
k→+∞ |yk − α| k→+∞ 2yk 2 α
por lo que (yk ) converge cuadráticamente. Así, considerando las sucesiones (xk ) y (yk ), en la
tabla 3.4 se pueden apreciar los valores de xk y yk , así como el comportamiento del error para
algunos valores de k. En ambas sucesiones se tomó el mismo valor inicial, x0 = y0 = 1000 y el
√
valor de α = 49 por lo que el límite es α = 7. Nótese que el error en la sucesión (xk ) de mayor
orden, decrece con mayor velocidad.
√ √
k xk yk |xk − α| |yk − α|
0 1.000000 × 103 1.000000 × 103 9.93 × 102 9.93 × 102
1 3.333768 × 102 5.000244 × 102 3.26 × 102 4.93 × 102
2 1.112562 × 102 2.500612 × 102 1.04 × 102 2.43 × 102
3 3.747639 × 101 1.251285 × 102 3.05 × 101 1.18 × 102
4 1.364098 × 101 6.276009 × 101 6.64 × 100 5.58 × 101
5 7.482330 × 100 3.177042 × 101 4.82 × 10−1 2.48 × 101
6 7.000517 × 100 1.665636 × 101 5.17 × 10−4 9.66 × 100
7 7.000000 × 100 9.799093 × 100 7.05 × 10−13 2.80 × 100
8 6.999999 × 100 7.399778 × 100 8.88 × 10−16 4.00 × 10−1
9 7.000000 × 100 7.010799 × 100 8.88 × 10−16 1.08 × 10−2
εk+1 1
lı́m = ,
k→+∞ εk 2
por lo tanto, la convergencia de la iteración de bisección es al menos lineal.
Solución. De la demostración del teorema 3.6, se tiene la expresión (3.6) dada por:
f ′′ (ζk )
ξ − xk+1 = −(ξ − xk )2 ,
2f ′ (xk )
además, como ζk esta entre ξ y xk , entonces la sucesión (ζk ) también converge a ξ cuando
k → +∞. Entonces, dado que f ′ y f ′′ son continuas en Iδ , entonces de la ecuación (3.6) se
obtiene que:
′′
′′ f lı́m ζk ′
|xk+1 − ξ| f (ζ k ) k→+∞ f (ξ)
lı́m = lı́m ′ = = ′′ ,
k→+∞ |xk − ξ|2 k→+∞ 2f (xk )
2f ′ lı́m x 2f (ξ)
k
k→+∞
Observación: También se puede apreciar que para la iteración de la secante, el radio de con-
vergencia es de al menos log 32 ≈ 0.176. Además, se puede probar (Ejercicio 5, página 173)
que
|xk+1 − ξ|
lı́m = µ,
k→+∞ |xk − ξ|q
√
donde µ es una constante positiva y q = 12 (1 + 5) ≈ 1.6, así la convergencia de (xk ) a ξ es
mayor que lineal, pero no tan rápida como la cuadrática.
Para finalizar, en la tabla 3.5 se presenta una comparación del método de Newton y de la
secante para encontrar una solución de la ecuación ex − x − 2 = 0. El método de Newton tiene
como valor inicial x0 = 1, mientras que el método de la secante los valores iniciales x0 = 1
y x1 = 3. El experimento muestra, tal y como se espera, que el método de Newton converge
más rápido, sin embargo, recuerde que este método calcula el valor f ′ , lo cual demanda mayor
trabajo, por lo que es un método computacionalmente más costoso.
k
c) zk = 10−3×2
♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Considere la iteración
[f (xk )]2
xk+1 = xk − , para k = 0, 1, 2, . . . ,
f (xk + f (xk )) − f (xk )
xk+1 − ξ
ϕ(xk , xk−1 ) = ,
(xk − ξ)(xk−1 − ξ)
donde xk+1 ha sido expresado en términos de xk y xk−1 . Encuentre una expresión para
f ′′ (ξ)
lı́m ϕ(xk , xk−1 ) = .
xk ,xk−1 →ξ 2f ′ (ξ)
174 Capítulo 3. Solución de ecuaciones por iteraciones
Ejemplo 3.21.
Considere el polinomio p(x) = 7x4 − 19x3 + 86x2 − 6x + 11. Al evaluar en x = 5, se tiene:
· 5}4 − 19
p(5) = |7 {z · 5}3 + |86{z
| {z · 5}2 − |{z}
6 · 5 + 11 = 4375 + (−2375) + 2150 + (−30) + 11,
| {z }
4 multip. 3 multip. 2 multip. 1 multip. 4 sumas
Una forma de reducir la cantidad de operaciones al evaluar el polinomio p del ejemplo 3.21,
consiste en ir factorizando x localmente, de la forma:
p(x) = 7x4 − 19x3 + 86x2 − 6x + 11 = x(7x3 − 19x2 + 86x − 6) + 11,
= x(x(7x2 − 19x + 86) − 6) + 11 = x(x(x(7x − 19) + 86) − 6) + 11,
debido a que de esta forma se tiene que
Ejemplo 3.22.
Considerando p(x) = x3 − 3x2 − x + 2 = x(x(x − 3) − 1) + 2 y evaluando en x = 7, se tiene
que
1 −3 −1 2 7
↓ 7 28 189
1 4 27 191
1 p ← c1
2 Para k ← 2 hasta n + 1 hacer
3 p ← ck + p · x
Observación: El algoritmo de Horner se usa a menudo para convertir algún valor en su equi-
valente en distintos sistemas numéricos posicionales, en cuyo caso x es la base del sistema y los
coeficientes ai son los dígitos de la representación del número dado en la base x, además puede
usarse también siendo x una matriz, reduciendo aún más el costo computacional. Por otro lado,
MATLAB cuenta con su versión del algoritmo de Horner, denominada polyval().
Así, para n ≥ 1 la ecuación pn (x) = 0 tiene por lo menos una raíz, sea esta r1 tal que pn (r1 ) = 0
y por el teorema del factor se tiene que p(x) = (x − r1 )pn−1 (x), donde pn−1 es un polinomio de
grado n − 1. Luego, siguiendo este proceso se puede factorizar pn de la forma:
n
Y
pn (x) = an (x − r1 )(x − r2 ) · . . . · (x − rn ) = an (x − ri ),
i=1
Ahora, se encuentra r2 una solución de pn−1 (x) = 0, de manera análoga a r1 y luego se considera
el polinomio:
n
pn−1 (x) Y
pn−2 (x) = = an (x − ri ).
x − r2 i=3
A este proceso se le conoce como método de deflación y puede ser utilizado para encontrar
todas las raíces de un polinomio.
3.5. Iteraciones específicas para polinomios 177
Ejemplo 3.23.
Encuentre todos las raíces del polinomio p(x) = x4 − 5x3 + 5x2 + 5x − 6.
Solución. Una raíz de p4 (x) = x4 − 5x3 + 5x2 + 5x − 6 es dada por r1 = 1, por lo que se debe
encontrar p3 (x) = px−1
4 (x)
, para ello se tiene que:
1 −5 5 5 −6 1
↓ 1 −4 1 6
1 −4 1 6 0
con lo que p3 (x) = x3 − 4x2 + x + 6. Este proceso es consecuencia del teorema del factor y el
teorema del residuo, además nótese la relación con el algoritmo de Horner.
Ahora, una raíz de p3 es dada por r2 = −1, con lo que:
1 −4 1 6 −1
↓ −1 5 −6
1 −5 6 0
y con ello p2 (x) = x2 − 5x + 6. Finalmente, este polinomio tiene las raíces r3 = 2 y r4 = 3, por
lo tanto, el conjunto de las raíces de p4 es dado por {−1, 1, 2, 3}.
Observación: Del ejemplo anterior, se puede apreciar que los valores de (3.10) del algoritmo
de Horner, son necesarios para realizar fácilmente la división pn+1−i
x−ri
(x)
. Por esta razón, se puede
considerar una modificación del algoritmo 3.6 que retorne los valores bi , como se muestra en el
algoritmo 3.7. A este proceso se le conoce como división sintética.
Algoritmo 3.7: DivisiónSintética.
Recibe: c = (an , an−1 , . . . , a1 , a0 )T ∈ n+1
, coeficientes de un polinomio, x ∈ .
Retorna: b = (b1 , b2 , . . . , bn−1 , bn )T .
1 b1 ← c1
2 Para k ← 2 hasta n hacer
3 bk ← ck + bk−1 · x
Con esta nueva modificación se puede considerar el algoritmo 3.8, el cual aproxima todas las
raíces de un polinomio. En él es necesario resolver, para las primeras n − 2 raíces, una ecuación
p(x) = 0, mientras que para las restantes dos, como se obtiene un polinomio cuadrático, se
utiliza la forma cuadrática usual. Del proceso de deflación presente en el algoritmo 3.8, es
importante resaltar que si se usa Newton para resolver la ecuación p(x) = 0, entonces no se
pueden considerar polinomios que contengan raíces no simples (raíces repetidas), pues
en ese caso p′ se anularía, produciendo un error.
178 Capítulo 3. Solución de ecuaciones por iteraciones
Generalmente, resolver p(x) = 0 con los métodos de las secciones anteriores (bisección, pun-
to fijo, Newton, secante) tienen el inconveniente de que si el polinomio contiene alguna raíz
compleja, no será encontrada. Sin embargo, si el polinomio es cuadrático, como por ejemplo
p(x) = x2 + 1, con ayuda de la fórmula cuadrática es posible obtener sus raíces complejas
r = ±i. Un manera de aproximar las raíces de un polinomio de grado n, sean estas complejas
o no, es por medio del método de Müller, el cual se describe a continuación.
Método de Müller
El método de Müller calcula las raíces de la ecuación f (x) = 0 en el intervalo [a, b], de manera
semejante al método de la secante, de hecho es conocido como una extensión del mismo, ya que
considera tres aproximaciones iniciales x0 , x1 , x2 y luego se construye la cuarta aproximación,
como la intersección con el eje x de la parábola que pasa por lo puntos (x0 , f (x0 )), (x1 , f (x1 )),
(x2 , f (x2 )), tal y como se muestra en la figura 3.12.
Sin pérdida de generalidad, suponga que la aproximación x2 es la que está más cerca de la
solución ξ de f (x) = 0. De esta forma, se puede considerar la forma de la parábola dada por:
donde la siguiente aproximación x3 satisface que p(x3 ) = 0. Ahora, como p(x0 ) = f (x0 ),
p(x1 ) = f (x1 ) y p(x2 ) = f (x2 ), entonces las constantes a, b y c pueden ser determinadas
resolviendo el sistema:
f (x0 ) = a(x0 − x2 )2 + b(x0 − x2 ) + c,
f (x1 ) = a(x1 − x2 )2 + b(x1 − x2 ) + c,
f (x2 ) = c,
Luego, como x3 es raíz de p(x), ecuación cuadrática, se puede utilizar la fórmula cuadrática
racionalizada (2.4), para evitar la propagación de errores (sobre todo si 4ac es muy cercano a
cero). Así, de esta forma se tiene que:
−2c
x3 − x2 = √ ,
b + sgn(b) b2 − 4ac
2c
x3 = x2 − √ .
b + sgn(b) b2 − 4ac
Así, si x3 es solución de la ecuación, o si x3 está muy cercano a x2 , el método se detiene. En caso
contrario, se repite el proceso anterior con x1 , x2 y x3 . El pseudocódigo de este procedimiento
se presenta en el algoritmo 3.9
Ejemplo 3.24.
Realice una iteración del método de Müller para el polinomio f (x) = 16x4 − 40x3 + 5x2 +
20x + 6, utilizando los valores: x0 = 21 , x1 = − 12 y x2 = 0.
180 Capítulo 3. Solución de ecuaciones por iteraciones
h1 = x1 − x2 = − 12 − 0 = − 12 ,
53 29
e0 = f (x0 ) − f (x2 ) = 4
−6 = 4
,
13
e1 = f (x1 ) − f (x2 ) = 4
−6 = − 11
4
.
Así, con estos valores se obtienen los coeficientes para el polinomio cuadrático, dados por:
c = 6,
1 2
2
− 11
4 2
− 29
4
− 21
b = 2 = 10,
1 2
− 21 2
− 1
2
− 12
29
4
· − 12 + 11
4
· 12
a = 2 2 = 9.
− 12 12 − 12 − 21
De esta manera, se tiene la parábola p(x) = 9(x − x2 )2 + 10(x − x2 ) + 6 = 9x2 + 10x + 6, cuyo
discriminante corresponde a △ = −116, por lo que esta parábola contiene las raíces:
√ √
−5 + i 29 −5 − i 29
x̂1 = y x̂2 = .
9 9
Basta tomar una de estas raíces, ya que como se ilustra, si un polinomio tiene una raíz compleja
z = a + bi, entonces su conjugado z = a − bi también es una raíz del polinomio. Por lo tanto,
considere √
−5 + i 29
x3 = ≈ −0.555556 + 0.598352i.
9
La ilustración de esta iteración, se muestra en la figura 3.13, mientras que en la tabla 3.6 se
presentan los resultados de las siguientes iteraciones con una tolerancia tol = 4 × 10−2 . Para el
error |xk − xk−1 |, donde en el caso que xk sea complejo, | · | corresponde al módulo.
Tabla 3.6: Método de Müller para f (x) = 16x4 − 40x3 + 5x2 + 20x + 6.
3.5. Iteraciones específicas para polinomios 181
Figura 3.13: Método de Müller para f (x) = 16x4 − 40x3 + 5x2 + 20x + 6.
donde q ≈ 1.84, es la raíz positiva de q 3 − q 2 − q − 1 = 0. Con lo que, este método es más veloz
que el de la secante, con orden aproximado de 1.62, pero más lento que el método de Newton,
de orden cuadrático.
1 k←2
2 err ← tol + 1
3 Mientras que k < iterMax ∧ err ≥ tol hacer
4 h0 ← x0 − x2
5 h1 ← x1 − x2
6 c ← f (x2 )
7 e0 ← f (x0 ) − c
8 e1 ← f (x1 ) − c
e1 h20 − e0 h21
b←
9 h1 h20 − h0 h21
e0 h1 − e1 h0
a←
10 h1 h20 − h0 h21
√
11 q ← b + sgn(b) b2 − 4ac
12 Si q = 0 entonces
13 Imprimir: ¡Denominador cero!
14 Detener
2c
t ← x2 −
15 q
16 err ← |t − x2 |
17 x0 ← x1
18 x1 ← x2
19 x2 ← t
20 k ←k+1
21 x ← x2
♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Implemente en MATLAB una extensión del método de Müller, para encontrar todas las
raíces reales y complejas de un polinomio de grado n.
5. El método de Müller puede ser utilizado para encontrar la solución de una ecuación
no polinomial. Implemente el método de Müller que reciba una función cualquiera y
encuentre un cero para las siguientes funciones, dado los valores de x0 , x1 y x3 . Considere
una tolerancia de 10−5 .
6. Sea p(x) un polinomio de grado n, se dice que x0 es una raíz múltiple de pn (x) si pn (x) =
(x − x0 )k pn−k (x), con k > 1 y pn−k (x) un polinomio de grado n − k. Por ejemplo, p4 (x) =
x4 − 6x3 + 12x2 − 10x + 3 tiene una raíz múltiple x0 = 1, ya que p4 (x) = (x − 1)3 (x − 3).
Para este tipo de polinomios el método de Newton tiene una convergencia lenta, por este
motivo se introduce la siguiente modificación en su iteración, para p un polinomio:
p(x) = x6 − 12x5 + 63x4 − 216x3 + 567x2 − 972x + 729 = (x2 + 9)(x − 3)4 .