Este documento describe el método de Muller para encontrar las raíces de ecuaciones polinomiales. El método involucra proyectar una parábola a través de tres puntos para estimar la raíz. Se obtienen los coeficientes de la parábola y se resuelve para encontrar el punto donde intercepta el eje x, proporcionando una aproximación a la raíz. El método se implementa de forma iterativa hasta minimizar el error. También se presenta el método de Newton para encontrar máximos y mínimos de funciones.
1. Método de Muller
Este es un método para encontrar las raíces de
ecuaciones polinomiales de la forma general:
n
nn xaxaxaaxf ++++= .......)( 2
210
Donde n es el orden del polinomio y las a son
coeficientes constantes. Continuando con los
polinomios, estos cumplen con las siguientes reglas:
• Para la ecuación de orden n, hay n raíces reales o
complejas. Se debe notar que esas raíces no son
necesariamente distintas.
• Si n es impar, hay al menos una raíz real.
• Si las raíces complejas existen, existe un par
conjugado.
Antecedentes
Los polinomios tienen muchas aplicaciones en ciencia
e ingeniería, como es el caso de su utilización en
ajuste de curvas. Sin embargo, se considera que una
de las aplicaciones mas interesantes y potentes es en
los sistemas dinámicos, particularmente en los
lineales.
El polinomio mas conocido en el mundo científico, es
el denominado, ecuación característica, que es de la
forma:
001
2
2 =++ axaxa
Donde las raíces de este polinomio satisfacen:
0
02
2
11
2,1
2
4
a
aaaa
x
−±−
=
También denominados eigenvalores del sistema. Los
eigenvalores pueden utilizarse para analizar un
sistema, para nuestro caso es muy útil en lo
concerniente a la estabilidad. Con base en lo anterior,
encontrar las raíces en sistemas de segundo orden es
prácticamente sencillo, pero para sistemas de orden
superior, puede resultar en un arduo trabajo.
El método
Un predecesor del método de Muller, es el método de
la secante, el cual obtiene raíces, estimando una
proyección de una línea recta en el eje x, a través de
dos valores de la función (Figura 1). El método de
Muller toma un punto de vista similar, pero proyecta
una parábola a través de tres puntos (Figura 2).
El método consiste en obtener los coeficientes de los
tres puntos, sustituirlos en la fórmula cuadrática y
obtener el punto donde la parábola intercepta el eje x.
La aproximación es fácil de escribir, en forma
conveniente esta sería:
cxxbxxaxf +−+−= )()()( 2
2
22
Figura 1
Figura 2
Así, se busca esta parábola para intersectar los tres
puntos [x0, f(x0)], [x1, f(x1)] y [x2, f(x2)]. Los coeficientes
de la ecuación anterior se evalúan al sustituir uno de
esos tres puntos para dar:
cxxbxxaxf +−+−= )()()( 20
2
200
cxxbxxaxf +−+−= )()()( 21
2
211
cxxbxxaxf +−+−= )()()( 22
2
222
La última ecuación genera que, cxf =)( 2 , de
esta forma, se puede tener un sistema de dos
ecuaciones con dos incógnitas:
)()()()( 20
2
2020 xxbxxaxfxf −+−=−
)()()()( 21
2
2121 xxbxxaxfxf −+−=−
Definiendo de esta forma:
010 xxh −= 121 xxh −=
01
21
0
)()(
xx
xfxf
−
−
=δ
12
12
1
)()(
xx
xfxf
−
−
=δ
Sustituyendo en el sistema:
1100
2
1010 )()( δδ hhahhbhh +=+−−
11
2
11 δhahbh =−
Teniendo como resultado los coeficientes:
01
01
hh
a
+
−
=
δδ
11 δ+= ahb
)( 2xfc =
Hallando la raiz, se implementar la solución
convencional, pero debido al error de redondeo
potencial, se usará una formulación alternativa:
acbb
c
xx
4
2
2
23
−±
−
=− despejando
acbb
c
xx
4
2
2
23
−±
−
+=
La gran ventaja de este método es que se pueden
localizar tanto las raíces reales como las imaginarias.
Hallando el error este será:
%100
3
23
⋅
−
=
x
xx
Ea
Al ser un método de aproximación, este se realiza de
forma secuencial e iterativamente, donde x1, x2, x3
f(x)
XX1
X0
x
x
x
Línea recta
Raíz
estimada
Raíz
Raíz
estimada
f(x)
XX2
X0
0
0
0
X1
Raíz
Parábola
x x
2. reemplazan los puntos x0, x1, x2 llevando el error a un
valor cercano a cero
Programa
Por ser un método que trabaja de forma lineal, es
posible una aplicación computacional en forma
sencilla, la cual sería:
SubMuller (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 I b+ rad I > l b - rad l then
den = b + rad
Else
den = b – rad
End if
dxr = -2*c/den
xr = x2 + dxr
Print iter, xr
IF (Idxrl<eps*xr or iter>maxit) exit
x0 = x1
x1 = x2
x2 = xr
End do
End Muller
Ejemplo
1213)( 3
−−= xxxf h =
0,1
x2 = 5 x1 = 5,5 x0 =4,5
Con un análisis previo, las raíces son –3, -1 y 4
Solución
625,20)5,4( =f 875,82)5,5( =f
48)5( =f
Calculando
15,45,50 =−=h 5,05,551 −=−=h
25,62
5,45,5
625,20875,82
0 =
−
−
=δ
75,69
5,55
875,8248
1 =
−
−
=δ
Hallando los coeficientes
15
15,0
25,6275,69
=
+−
−
=a
25,6275,69)5,0(15 =+−=b
48=c
La raíz cuadrada del discriminante es:
544,314815425,62 2
=⋅⋅−
Así
9765,3
544,3125,62
482
53 =
+
⋅−
+=x
Y el error estimado
%74,25%100
0235,1
3
=⋅
−
=
x
Ea
Ahora
x2 = 3,9765 x1 = 5 x0 =5,5
Haciendo uso de un programa y realizando diferentes
iteraciones:
i xr Ea %
0 5
1 3,9465 25,740
2 4,0011 0,614
3 4,0000 0,026
4 4,0000 0,000
Método de Newton
Es una técnica para encontrar el valor óptimo (máximo
o mínimo), de una función de una variable, f(x). Para
esta clase de análisis se debe tener cuidado con los
sistemas multimodal, en los cuales existen valores
óptimos globales y locales. Para la gran mayoría de
los casos, los estudios se centran en los globales.
El método
Como antecedente para la explicación del método, se
tiene el método de Newton-Raphson, el cual es un
método abierto que encuentra la raíz de x, tal que f(x)
= 0, el método se resume así:
)´(
)(
1
i
i
ii
xf
xf
xx −=+
Haciendo uso de este planteamiento para hallar un
óptimo de f(x), al definir una nueva función g(x) = f´(x),
así, como el mismo valor óptimo x*, satisface:
0*)(*)´( == xgxf
Se utilizará la siguiente formulación, para hallar
máximos o mínimos:
)´´(
)´(
1
i
i
ii
xf
xf
xx −=+
Este es un método abierto y similar al Newton-
Raphson, ya que no requiere valores iniciales que
contengan el óptimo. Además, comparte la desventaja
de poder ser divergente.
Como anotación, es conveniente verificar que la
segunda derivada tenga el signo correcto, para
confirmar que la técnica converge sobre el valor
deseado.
Programa
El mayor problema a afrontar es la no-linealidad que
involucra la derivada, la ventaja es que algunas
herramientas computacionales tienen directamente la
función de la derivada, por lo cual el seudocódigo es
de muy fácil implementación
SubNewton (xi, xr, eps, maxit)
xr = xi
Do
iter = iter + 1
gx = f’x
hx = g’x
div = gx / hx
xi = xr - div
dxi = (xi – xr) / xi
Print (iter, xr)
IF (Idxil<eps*xr or iter>maxit) exit
Xr = xi
End do
3. End Newton
Ejemplo
Hallar el máximo de:
10
)(2)(
2
x
xsenxf −= con un valor
inicial de x0 = 2,5
Solución
5
)cos(2)´(
x
xxf −=
5
1
)(2)´´( −−= xsenxf
Sustituyendo en la formulación de Newton:
5/1)(2
5/)cos(2
1
−−
−
−=+
i
ii
ii
xsen
xx
xx
995,0
5/1)5,2(2
5/5,2)5,2cos(2
5,21 =
−−
−
−=
sen
x
Reemplazando en la ecuación, f(0,995)=1,579; la
segunda iteración será:
469,1
5/1)995,0(2
5/995,0)995,0cos(2
995,01 =
−−
−
−=
sen
x
Realizando diferentes iteraciones:
i x f(x) f´(x) f´´(x)
0 2,5 0,572 -2,102 -1,379
1 0,995 1,579 0,890 -1,878
2 1,469 1,774 -0,091 -2,190
3 1,427 1,776 -0,000 -2,180