2.6 M Uller's Method: Chapter 2. Solutions of Equations of One Variable
2.6 M Uller's Method: Chapter 2. Solutions of Equations of One Variable
Figure 2.8
y y
x0 x1 x2 x x0 x1 x2 x3 x
f f
(a) (b)
Suppose that three initial approximations, p0 , p1 , and p2 , are given for a so-
lution of f (x) = 0. The derivation of Müller’s method for determining the next
approximation p3 begins by considering the quadratic polynomial
that passes through (p0 , f (p0 )), (p1 , f (p1 )), and (p2 , f (p2 )). The constants a, b, and
c can be determined from the conditions
and
f (p2 ) = a · 02 + b · 0 + c.
To determine p3 , the root of P (x) = 0, we apply the quadratic formula to
P (x). Because of round-off error problems caused by the subtraction of nearly equal
numbers, however, we apply the formula in the manner prescribed in Example 1 of
Section 1.4:
−2c
p3 − p 2 = √ .
b ± b2 − 4ac
This gives two possibilities for p3 , depending on the sign preceding the radical
term. In Müller’s method, the sign is chosen to agree with the sign of b. Chosen in
this manner, the denominator will be the largest in magnitude, which avoids the
possibility of subtracting nearly equal numbers and results in p3 being selected as
the closest root of P (x) = 0 to p2 .
where
c = f (p2 ),
(p0 − p2 )2 [f (p1 ) − f (p2 )] − (p1 − p2 )2 [f (p0 ) − f (p2 )]
b = ,
(p0 − p2 )(p1 − p2 )(p0 − p1 )
EXAMPLE 1 Consider the polynomial f (x) = 16x4 − 40x3 + 5x2 + 20x + 6. Using the program
MULLER25 with accuracy tolerance 10−5 and various inputs for p0 , p1 , and p2
produces the results in Tables 2.9, 2.10, and 2.11.
Table 2.9
p0 = 0.5, p1 = −0.5, p2 = 0
72 CHAPTER 2. SOLUTIONS OF EQUATIONS OF ONE VARIABLE
n pn f (pn )
Table 2.10
p0 = 0.5, p1 = 1.0, p2 = 1.5
n pn f (pn )
3 1.28785 −1.37624
4 1.23746 0.126941
5 1.24160 0.219440 × 10−2
6 1.24168 0.257492 × 10−4
7 1.24168 0.257492 × 10−4
Table 2.11
p0 = 2.5, p1 = 2.0, p2 = 2.25
n pn f (pn )
3 1.96059 −0.611255
4 1.97056 0.748825 × 10−2
5 1.97044 −0.295639 × 10−4
6 1.97044 −0.295639 × 10−4
To use Maple to generate the first entry in Table 2.9 we define f (x) and the
initial approximations with the Maple statements
>f:=x->16*x^4-40*x^3+5*x^2+20*x+6;
>p0:=0.5; p1:=-0.5; p2:=0.0;
>c:=f2;
>b:=((p0-p2)^2*(f1-f2)-(p1-p2)^2*(f0-f2))/((p0-p2)*(p1-p2)*(p0-p1));
>a:=((p1-p2)*(f0-f2)-(p0-p2)*(f1-f2))/((p0-p2)*(p1-p2)*(p0-p1));
>p3:=p2-(2*c)/(b+(b/abs(b))*sqrt(b^2-4*a*c));
>f3:=f(p3);
which gives f3 = −29.40070112 − 3.898724738i.
The actual values for the roots of the equation are −0.356062 ± 0.162758i,
1.241677, and 1.970446, which demonstrate the accuracy of the approximations
from Müller’s method.
Example 1 illustrates that Müller’s method can approximate the roots of poly-
nomials with a variety of starting values. In fact, the technique generally converges
to the root of a polynomial for any initial approximation choice. General-purpose
software packages using Müller’s method request only one initial approximation per
root and, as an option, may even supply this approximation.
Although Müller’s method is not quite as efficient as Newton’s method, it is
generally better than the Secant method. The relative efficiency, however, is not
as important as the ease of implementation and the likelihood that a root will be
found. Any of these methods will converge quite rapidly once a reasonable initial
approximation is determined.
When a sufficiently accurate approximation p∗ to a root has been found, f (x)
is divided by x − p∗ to produce what is called a deflated equation. If f (x) is a
polynomial of degree n, the deflated polynomial will be of degree n − 1, so the
computations are simplified. After an approximation to the root of the deflated
equation has been determined, either Müller’s method or Newton’s method can be
used in the original function with this root as the initial approximation. This will
ensure that the root being approximated is a solution to the true equation, not to
the less accurate deflated equation.
74 CHAPTER 2. SOLUTIONS OF EQUATIONS OF ONE VARIABLE
2. Find approximations to within 10−5 to all the zeros of each of the following
polynomials by first finding the real zeros using Newton’s method and then
reducing to polynomials of lower degree to determine any complex zeros.
(a) Use Newton’s method with p0 = 0.28 to attempt to find this root.
(b) Use Müller’s method with p0 = 0.275, p1 = 0.28, and p2 = 0.285 to
attempt to find this root.
(c) Explain any discrepancies in parts (a) and (b).
x2
x1
10. Two ladders crisscross an alley of width W . Each ladder reaches from the
base of one wall to some point on the opposite wall. The ladders cross at a
height H above the pavement. Find W given that the lengths of the ladders
are x1 = 20 ft and x2 = 30 ft and that H = 8 ft. (See the figure on page 58.)
r 1 0.25
h
involving the intersection of a circle and a parabola. His answer was given in
the base-60 number system as
2 3 4 5 6
1 1 1 1 1 1
1 + 22 +7 + 42 + 33 +4 + 40 .
60 60 60 60 60 60
Maple has the procedure fsolve to find roots of equations. For example,
>fsolve(x^2 - x - 1, x);
returns the numbers −.6180339887 and 1.618033989. You can also specify a partic-
ular variable and interval to search. For example,
>fsolve(x^2 - x - 1,x,1..2);
returns only the number 1.618033989. The command fsolve uses a variety of spe-
cialized techniques that depend on the particular form of the equation or system of
equations.
Notice that in spite of the diversity of methods, the professionally written pack-
ages are based primarily on the methods and principles discussed in this chapter.
You should be able to use these packages by reading the manuals accompanying the
packages to better understand the parameters and the specifications of the results
that are obtained.
There are three books that we consider to be classics on the solution of nonlinear
equations, those by Traub [Tr], by Ostrowski [Os], and by Householder [Ho]. In
addition, the book by Brent [Bre] served as the basis for many of the currently
used root-finding methods.