Sei sulla pagina 1di 3

Muller’s Method

In this method, instead of a linear interpolation using the function values at x i-1 and xi, the
function value at xi-2 is also utilized to perform a quadratic interpolation (A side benefit of
using a quadratic interpolation is that we may obtain complex roots also). Starting from three
points, x0, x1, and x2, the iterative sequence is written as
� b 2 - 4ac - b
xi +1 = xi + (2.21)
2a
where the coefficients are given by
a = f [ xi , xi -1 , xi - 2 ] b = f [ xi , xi -1 ] + ( xi - xi -1 ) f [ xi , xi -1 , xi - 2 ] c = f i , and the divided
fi - f i -1 f [ xi , xi -1 ] - f [ xi -1 , xi -2 ]
differences are f [ xi , xi -1 ] = and f [ xi , xi -1, xi - 2 ] = . Since the
xi - xi -1 xi - xi - 2
form of eq (2.21) is subject to severe round-off errors, an alternative form is used for the
iterative sequence as
2c
xi +1 = xi - (2.22)
b � b2 - 4ac
The sign of the square root is chosen in such a way as to make the magnitude of the
denominator large (for b 2 - 4ac < 0 , i.e., complex denominator, both the signs will give the
same magnitude, for real values we choose the negative sign if b is negative and vice versa),
thereby choosing xi+1 closer to xi. As in the Secant method, we again have a choice in
discarding one of the three points, x i-2, xi-1, and xi, for the next iteration. We may discard x i-2,
or the point farthest from xi+1, or the point at which the function has the largest magnitude.
Performing an analysis of interpolation error, similar to that done for the Secant method, we
obtain
f��
�(x )
lim Ei +1 �- Ei - 2 Ei -1Ei (2.23)
i �� 6f� (x )
If p denotes the order of the Muller method, we get p3=p2+p+1 implying that the order is
1.839 (better than Secant but not as good as Newton Raphson). The asymptotic error constant
( p -1) / 2
(x )
f�

is given by C = .
6f�(x )
Bairstow method

Before describing the Bairstow method, it is helpful to look at its counterpart for obtaining a
n

single root of a polynomial. Expressing the polynomial as f ( x ) = �c j x , one way of


j

j =0

finding a root is to divide it by the term (x-r) and obtain a remainder, R, which would be a
function of r. If R is zero, r would be a root of the polynomial. If not, we could try changing r
n -1

by an amount r in such a way as to make R equal to zero. Writing the quotient as �d


j =0
j +1 xj

and the residual as d0 (in order to enable us to write a recursive relationship), we have
n n -1 n -1

�c x j
j
= ( x - r )�d j +1x j + d 0 = d n x n + �( d j - rd j +1 ) x j (2.28)
j =0 j =0 j=0

Equating the coefficients of different powers of x, we obtain the recursive relations


d n = cn
(2.29)
d j = c j + rd j +1 for j = n - 1 to 0
which provides us with the residual, d0, as a function of the assumed value of the root, r. If we
use the Newton-Raphson method to find r from
dd ( r )
d0 ( r ) + 0 r = d 0 ( r + r ) = 0 (2.30)
dr
it can be easily verified that we get the same equation for the iterative scheme, since d0(r) is
same as f(r).

In the Bairstow method, instead of the synthetic division by (x-r), we carry out a division by
the quadratic term (x-r1)(x-r2), and aim to make the remainder zero. Whether these two roots
are real or complex conjugates, the quadratic term may be written in terms of real coefficients
n-2

( )
as x - a1 x - a 0 , the quotient as
2
�d
j =0
j+2 x j , and the remainder as d 0 + d1 ( x - a1 ) . We then

have
n n- 2

�c x j
j
= ( x 2 - a1 x - a 0 )�d j + 2 x j + d1 ( x - a1 ) + d 0
j =0 j =0
n-2
(2.31)
= d n x + ( d n -1 - a1d n ) x
n n -1
+ �( d j - a1d j +1 - a 0d j + 2 ) x j

j =0

giving us the recursive relations


d n = cn
d n -1 = cn -1 + a1d n (2.32)
d j = c j + a1d j +1 + a 0 d j + 2 for j = n - 2 to 0
We now aim at making the remainder zero by making d0 and d1 equal to zero (note that both
d0 and d1 are functions of the guess values of a0 and a1). A Newton scheme could be written
as
d 0 ( a 0 , a1 )
� �d ( a ,a )
d 0 ( a 0 , a1 ) + a 0 + 0 0 1 a1 = d 0 ( a 0 + a 0 ,a1 + a1 ) = 0
� a0 � a1
(2.33)
d1 ( a 0 , a 1 )
� �d1 ( a 0 ,a1 )
d1 ( a 0 , a 1 ) + a 0 + a1 = d1 ( a 0 + a 0 ,a1 + a1 ) = 0
� a0 � a1
to iteratively improve the guessed values till the changes, a 0 and a1 are very small. In
order to compute the partial derivatives in Eq. (2.33), it is easy to see from Eq. (2.32) that
� dn �d n -1 �dj � d �d
=0 =0 = d j + 2 + a 0 j + 2 + a1 j +1 for j = n - 2 to 0
�a0 �a0 �a0 � a0 � a0
(2.34)
and, similarly,
�dn �d n -1 �dj �d � d
=0 = dn = d j +1 + a 0 j + 2 + a1 j +1 for j = n - 2 to 0 (2.35)
�a1 � a1 �a1 � a1 � a1
which provides the following algorithm for computing the derivatives required in Eq. (2.33):
d n-1 = d n d n - 2 = d n -1 + a1d n -1 d j = d j +1 + a1d j +1 + a 0d j + 2 for j = n - 3 to 0
where

d j -1 �d
dj = = j
�a0 � a1
Eq. (2.33) can be written as
d1a 0 + d 0a1 = - d 0
(2.36)
d 2 a 0 + d1a1 = - d1
and solved to obtain the desired increments. After the iterations converge, the two roots, r1 and
r2, are obtained from
(
r1,2 = 0.5 a1 � a12 + 4a 0 ) (2.37)
Since the coefficients of the quotient (dj) are easily obtainable using Eq. (2.32), the quadratic
factorization may be repeated (till the quotient becomes quadratic or linear) to find all the
roots of the polynomial, f(x).

Potrebbero piacerti anche