ES272 ch3b
ES272 ch3b
– Roots of Polynomials:
– Müller’s Method
– Bairstow’s Method
– Matlab Functions for
Root Finding
Roots of Polynomials:
An order-n polynomial
f n ( x) a0 a1 x a2 x 2 ... an x n
where r1, r2 and r3 are the roots. To remove the root x=r1, divide
the polynomial by (x-r1). The remaining polynomial will be a
second order polynomial:
f 2 ( x) ( x r2 )( x r3 )
The remainder of this divison will be zero (R=0) since you divide by
its root. If it was not a root, R=consant (a 0th order polynomial).
In general, if an n-th order polyomial (dividend) is divided by an
m-th order polynomail (divisor), the resulting polynomial
(quotient) is an (n-m)th order polynomail. The reminder will be
an (m-1)th order polynomial.
x6
Reminder (R) 0 quotient
In computer the polynomial deflation is done by a process called
synthetic divison.
Synthetic division by a linear factor (x-t):
bn an an .. a0 : coefficients of the dividend
bi ai bi 1t for i n 1 to 0 bn .. b1 : coefficients of the quotient
b0 : coefficient of the reminder
For example above: a2=1, a1=2, a0=-24, t=4 > b2=1, b1=6, b0=0
dividend divisor
x 2 x 2 x 24
4 3
x 2x 3
2
x2 3
quotient
Reminder (R) 6x 9
Secant Müller
xr
x1 x0 xr x x1 x0
2
Parabolic fit function facilitates finding both real and complex roots.
Define the parabola as
f 2 ( x ) a ( x x2 ) 2 b ( x x 2 ) c
f ( x1 ) f ( x2 ) a ( x1 x2 ) 2 b( x1 x2 )
Define
h0 x1 x0 h1 x2 x1 f ( x1 ) f ( x0 ) f ( x2 ) f ( x1 )
0 1
x1 x0 x2 x1
Then
(h0 h1 )b (h0 h1 ) 2 a h0 0 h11
h1b h1 a h11
2
The coefficients a,b,c are determined as
1 0 h1 x2 x1
a h0 x1 x0
h1 h0
f ( x1 ) f ( x0 ) f ( x2 ) f ( x1 )
b ah1 1 0 1
x1 x0 x2 x1
c f ( x2 )
A problem arises for which of the two estimated roots (xr) will be
used for the next iteration.
> choose the one that makes the error smaller.
Once x3 is determined the process is repeated. For the three
points of the next iteration, two suggested strategies are:
> choose other two points that are nearest to the estimated root
(If estimated roots are real).
> just follow the method sequentially, i.e., drop x0, and take x1 , x2
, x3 (if a complex root is located).
Once a root is located, it is removed from the polynomial by
synthetic divison.
EX: Use Müller’s method to determine a root of the equation
f ( x) x 3 13 x 12
n=1:
f (4.5) 20.625 f (5.5) 82.875 f (5) 48
If you divide the polynomial by its factor (x-t), you get a new
polynomial of the form
with a reminder R b1 ( x r ) b0
r r 2 4s
x1, 2
2
Both real and complex roots are obtained.
Once the roots are located, these roots are removed, and the
same procedure is applied to locate other roots.
Second iteration:
b5=1 ; b4=-4.1442 ; b3=5.5578 ; b2=-2.0276 ; b1=-1.8013 ; b0=2.1304
c5=1 ; c4=-4.7884 ; c3=8.7806 ; c2=-8.3454 ; c1=4.7874
Solution of the simultaneous equations: r=0.1331 and s=0.3316.
Revise (r, s) values: r+r=-0.5111 and s+s=0.4697
Error : a,r=26.0% and a,s=70.6%
Third iteration:
Forth iteration:
r=-0.5 with a,r=0.063%
s=0.5 with a,s=0.040%
Errors satisfy the error criterion. Then, we obtain first two roots as:
0.5 (0.5) 2 4(0.5) 0.5
r1, 2
2 1.0