Está en la página 1de 4

142 Capítulo 7 Raíces de polinomios

parar cada raíz pulida con las que se han calculado anteriormente. Press et al. (2007) analizan el
problema con mayor detalle.

7.3 MÉTODOS CONVENCIONALES

Ahora que se ha visto algún material de apoyo sobre polinomios, empezaremos a describir los mé-
todos para localizar sus raíces. Es obvio que el primer paso sería investigar la posibilidad de usar los
métodos cerrados y abiertos, descritos en los capítulos 5 y 6.
La eficacia de dichos métodos depende de que el problema a resolver tenga raíces complejas.
Si sólo existen raíces reales, cualquiera de los métodos descritos anteriormente puede utilizarse.
Sin embargo, el problema de encontrar un buen valor inicial complica tanto los métodos cerrados
como los abiertos; además que los métodos abiertos podrían ser susceptibles a problemas de di-
vergencia.
Cuando existen raíces complejas, los métodos cerrados obviamente no se pueden usar, ya que el
criterio para definir el intervalo (que es el cambio de signo) no puede trasladarse a valores complejos.
De los métodos abiertos, el método convencional de Newton-Raphson llega a ofrecer una aproxi-
mación viable. En particular, es posible desarrollar un código conciso que comprenda deflación. Si
se usa un lenguaje que permite manipular variables complejas (como Fortran), entonces el algoritmo
localizará tanto raíces reales como complejas. Sin embargo, como es de esperarse, podría ser sus-
ceptible a tener problemas de convergencia. Por tal razón, se han desarrollado métodos especiales
para encontrar raíces reales y complejas de polinomios. Se describen dos de estos métodos, el mé-
todo de Müller y el de Bairstow, en las siguientes secciones. Como se verá, ambos están relacionados
con los métodos abiertos convencionales descritos en el capítulo 6.

7.4 MÉTODO DE MÜLLER

Recuerde que el método de la secante obtiene una aproximación de la raíz dirigiendo una línea
recta hasta el eje x con dos valores de la función (figura 7.3a). El método de Müller es similar; pero
se construye una parábola con tres puntos (figura 7.3b).
El método consiste en obtener los coeficientes de la parábola que pasa por los tres puntos. Dichos
coeficientes se sustituyen en la fórmula cuadrática para obtener el valor donde la parábola interseca
al eje x; es decir, la raíz estimada. La aproximación se facilita al escribir la ecuación de la parábola
en una forma conveniente,

f2(x) = a(x – x2)2 + b(x – x2) + c (7.17)

Queremos que esta parábola pase por tres puntos [x0, f(x0)], [x1, f(x1)] y [x2, f(x2)]. Los coeficientes
de la ecuación (7.17) se evalúan sustituyendo cada uno de esos tres puntos para dar

f(x0) = a(x0 – x2)2 + b(x0 – x2) + c (7.18)

f (x) f (x)
Línea
recta

Raíz Parábola
estimada

x1 x0 x x2 x1 x0 x Figura 7.3
Raíz Una comparación de dos métodos relacio-
Raíz Raíz estimada nados para encontrar raíces: a) el método
a) b) de la secante y b) el método de Müller.

www.full-ebook.com
7.4 Método de Müller 143

f(x1) = a(x1 – x2)2 + b(x1 – x2) + c (7.19)


f(x2) = a(x2 – x2)2 + b(x2 – x2) + c (7.20)

Observe que se ha eliminado el subíndice “2” de la función por brevedad. Debido a que se tienen
tres ecuaciones, es posible encontrar los tres coeficientes desconocidos a, b y c. Debido a que dos
términos de la ecuación (7.20) son cero, se encuentra inmediatamente que c = f(x2). Así, el coefi-
ciente c es igual al valor de la función evaluada en el tercer valor inicial, x2 . Este resultado se susti-
tuye en las ecuaciones (7.18) y (7.19) para tener dos ecuaciones con dos incógnitas:

f(x0) − f(x2) = a(x0 − x2)2 + b(x0 − x2) (7.21)


f(x1) − f(x2) = a(x1 − x2) + b(x1 − x2)
2
(7.22)

Una manipulación algebraica permite encontrar los coeficientes restantes a y b. La manera de


hacer esto consiste en definir las diferencias:

h0 = x1 − x0 h1 = x2 − x1

f ( x1 ) − f ( x 0 ) f ( x 2 ) − f ( x1 )
δ0 = δ1 = (7.23)
x1 − x 0 x 2 − x1

Éstas se sustituyen en las ecuaciones (7.21 ) y (7.22) para dar


(h0 + h1)b − (h0 + h1)2a = h0d0 + h1d1
h1 b− h12 a= h1d1

de donde se despejan a y b. El resultado se resume como

δ1 − δ 0
a= (7.24)
h1 − h0

b = ah1 + d1 (7.25)

c = f(x2) (7.26)

Para encontrar la raíz se aplica la fórmula cuadrática a la ecuación (7.17). Sin embargo, debido
al error de redondeo potencial, en lugar de usar la forma convencional, se usará la fórmula alterna-
tiva [ecuación (3.13)], es decir,

−2c
x3 − x 2 = (7.27a)
b ± b 2 − 4 ac

o despejando la incógnita x3 del lado izquierdo del signo igual,

−2c
x3 = x 2 + (7.27b)
b ± b 2 − 4 ac

Observe que al usar la fórmula cuadrática, es posible localizar tanto las raíces reales como las com-
plejas. Ésta es la mayor ventaja del método.
Además, la ecuación (7.27a) proporciona una forma directa para determinar el error de aproxi-
mación. Debido a que el lado izquierdo representa la diferencia entre la raíz estimada actual (x3) y
la raíz estimada anterior (x2), el error se calcula como

x3 − x 2
εa = 100%
x3

www.full-ebook.com
144 Capítulo 7 Raíces de polinomios

Ahora, un problema de la ecuación (7.27a) es que produce dos raíces, correspondientes a los
términos ± del denominador. En el método de Müller, se escoge el signo que coincida con el signo
de b. Esta elección proporciona como resultado el denominador más grande y, por lo tanto, dará la
raíz estimada más cercana a x2.
Una vez que se determinó x3, el proceso se repite. Esto trae el problema de que un valor es des-
cartado. En general, dos estrategias son comúnmente usadas:
1. Si sólo se localizan raíces reales, elegimos los dos valores originales más cercanos a la nueva
raíz estimada, x3.
2. Si se localizan raíces reales y complejas, se emplea un método secuencial. Es decir, como en el
método de la secante, x1, x2 y x3 toman el lugar de x0, x1 y x2.

EJEMPLO 7.2 Método de Müller

Planteamiento del problema Utilice el método de Müller con valores iniciales x0, x1 y x2 =
4.5, 5.5 y 5, respectivamente, para determinar la raíz de la ecuación

f(x) = x3 – 13x – 12

Observe que las raíces de la ecuación son –3, –1 y 4.

Solución Primero se evaluará la función con los valores iniciales

f(4.5) = 20.625   f(5.5) = 82.875   f(5) = 48

que se emplean para calcular

h0 = 5.5 – 4.5 = 1 h1 = 5 – 5.5 = –0.5

82.875 − 20.625 48 − 82.875


δ0 = = 62.25 δ1 = = 69.75
5.5 − 4.5 5 − 5.5
Estos valores, a su vez, se sustituyen con las ecuaciones (7.24) a (7.26) para calcular
69.75 − 62.25
a= = 15    b = 15(–0.5) + 69.75 = 62.25   c = 48
−0.5 + 1
La raíz cuadrada del discriminante se evalúa como

62.252 − 4(15)48 = 31.54461

Luego, como |62.25 + 31.54451| > |62.25 – 31.54451|, se emplea un signo positivo en el denominador
de la ecuación (7.27b), y la nueva raíz estimada se determina como

−2( 48)
x3 = 5 + = 3.976487
62.25 + 31.54451
y desarrollando el error estimado

−1.023513
εa = 100% = 25.74%
3.976487
Debido a que el error es grande, se asignan nuevos valores: x0 se reemplaza por x1, x1 se reemplaza
por x2 y x2 se reemplaza por x3. Por lo tanto, para la nueva iteración,

x0 = 5.5   x1 = 5   x2 = 3.976487

y se repite el cálculo. Los resultados, tabulados a continuación, muestran que el método converge
rápidamente a la raíz xr = 4:

www.full-ebook.com
7.5 Método de Bairstow 145

i xr a (%)
0 5
1 3.976487 25.74
2 4.00105 0.6139
3 4 0.0262
4 4 0.0000119

El pseudocódigo del método de Müller para raíces reales se presenta en la figura 7.4. Observe
que esta rutina toma un valor inicial único diferente de cero, que después se altera por el factor h
para generar los otros dos valores iniciales. Por supuesto, el algoritmo puede programarse para
considerarse tres valores iniciales. Con lenguajes parecidos a Fortran, el programa encontrará raíces
complejas si las variables adecuadas se declaran como complejas.

SUB Müller(xr, h, eps, maxit)


x2 = xr
x1 = xr + h*xr
x0 = xr – h*xr
DO
iter = iter + 1
h0 = x1 – x0
h1 = x2 – x1
d0 = (f(x1) – f(x0)) / h0
d1 = (f(x2) – f(x1)) / h1
a = (d1 – d0) /(h1 + h0)
b = a*h1 + d1
c = f(x2)
rad = SQRT(b*b – 4*a*c)
If |b+rad| > |b–rad| THEN
den = b + rad
ELSE
den = b – rad
END IF
dxr = –2*c /den
xr = x2 + dxr
PRINT iter, xr
IF (|dxr| < eps*xr OR iter >= maxit) EXIT
x0 = x1
x1 = x2 Figura 7.4
x2 = xr Pseudocódigo para el método
END DO de Müller.
END Müller

7.5 MÉTODO DE BAIRSTOW


El método de Bairstow es un método iterativo relacionado de alguna manera con los métodos de
Müller y de Newton-Raphson. Antes de hacer la descripción matemática de éste, recuerde la forma
factorizada de un polinomio, por ejemplo

ƒ5(x) = (x + l)(x – 4)(x – 5)(x + 3)(x – 2) (7.28)

Si se divide entre un factor que no es una raíz (por ejemplo, x + 6), el cociente es un polinomio de
cuarto grado. Aunque, en este caso, habrá un residuo.
Con estas consideraciones se puede elaborar un algoritmo para determinar la raíz de un polino-
mio: 1) dé un valor inicial para la raíz x = t; 2) divida el polinomio entre el factor x – t, y 3) deter-

www.full-ebook.com

También podría gustarte