0% found this document useful (0 votes)
71 views16 pages

Roots: Open Methods: Powerpoints Organized by Dr. Michael R. Gustafson Ii, Duke University

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views16 pages

Roots: Open Methods: Powerpoints Organized by Dr. Michael R. Gustafson Ii, Duke University

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Part 2

Chapter 6
Roots: Open Methods

PowerPoints organized by Dr. Michael R. Gustafson II, Duke University


All images copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter Objectives
• Recognizing the difference between bracketing and open
methods for root location.
location
• Understanding the fixed-point iteration method and how you
can evaluate its convergence characteristics.
• Knowing
K i h
how tto solve
l a roots
t problem
bl with
ith th
the N
Newton-
t
Raphson method and appreciating the concept of quadratic
convergence.
• Knowing how to implement both the secant and the modified
secant methods.
• Knowing how to use MATLAB’s
MATLAB s fzero function to estimate
roots.
• Learning how to manipulate and determine the roots of
pol nomials with
polynomials ith MATLAB
MATLAB.
Open Methods
• Open methods differ from bracketing
methods, in that open methods require only a
single starting value or two starting values
that do not necessarily bracket a root.
• Open
p methods may y diverge
g as the
computation progresses, but when they do
g they
converge, y usually
y do so much faster
than bracketing methods.
Graphical Comparison of Methods

a) Bracketing method
b)) Diverging
g g open
p method
c) Converging open method - note speed!
Simple Fixed-Point Iteration
• Rearrange the function f(x)=0 so that x is on
the left-hand side of the equation: x=g(x)
• Use the new function g to p predict a new
value of x - that is, xi+1=g(xi)
• The approximate error is given by:
x i+1 − x i
εa = 100%
x i+1
Example
• Solve f(x)=e-x-x
• Re-write
R it as x=g(x)( )bby iisolating
l ti x
(example: x=e-x)
• Start with an initial guess (here
(here, 0)
i xi |εa| % |εt| % |εt|i/|εt|i-1
0 0.0000 100.000
1 1.0000 100.000 76.322 0.763
2 0.3679 171.828 35.135 0.460
3 0 6922
0.6922 46 854
46.854 22 050
22.050 0 628
0.628
4 0.5005 38.309 11.755 0.533

• Continue until some tolerance


is reached
Convergence
• Convergence of the simple
fixed point iteration method
fixed-point
requires that the derivative
of g(x) near the root has a
magnitude less than 1.
a) Convergent, 0≤g’<1
b) Convergent,
Convergent -1<g 1<g’≤0
≤0
c) Divergent, g’>1
d) Divergent,
Divergent g <1
g’<-1
Newton-Raphson Method
• Based on forming the tangent line to the f(x)
curve at some guess x, then following the
tangent line to where it crosses the x-axis.

f (x i ) − 0
f (x i ) =
'

x i − x i+1
f (x
( i)
x i+1 = x i −
f ' (x i )
Pros and Cons
• Pro: The error of the i+1th iteration
is roughly proportional to the
square of the error of the ith
iteration - this is called quadratic
convergence
• Con: Some functions show slow or
poor convergence
Secant Methods
• A potential problem in implementing the
Newton-Raphson method is the evaluation of
the derivative - there are certain functions
whose derivatives may be difficult or
inconvenient to evaluate.
• For these cases, the derivative can be
pp
approximated byy a backward finite divided
difference:
f (x i−1 ) − f (x i )
f (x i ) ≅
'

x i−1 − x i
Secant Methods (cont)
• Substitution of this approximation for the
derivative to the Newton-Raphson method
equation gives:
f (x i )(x i−1 − x i )
x i+1 = x i −
f (x i−1 ) − f (x i )

• Note - this method requires two initial


q
estimates of x but does not require an
analytical expression of the derivative.
MATLAB’s fzero Function
• MATLAB’s fzero provides the best qualities of
both bracketing methods and open methods
methods.
– Using an initial guess:
x = fzero(function, x0)
[x, fx] = fzero(function, x0)
• function is the name of the function being evaluated
• x0 is the initial guess
• x is the location of the root
• fx is the function evaluated at that root
– Using an initial bracket:
x = fzero(function, [x0 x1])
[x, fx] = fzero(function, [x0 x1])
• As above,
above except x0 and x1 are guesses that must bracket a
sign change
fzero Options
• Options may be passed to fzero as a third input
argumentt - the
th options
ti are a d
data
t structure
t t created
t d
by the optimset command
• options = optimset(‘par
optimset( par1’, val1, ‘par
par2’, val2,…)
)
– parn is the name of the parameter to be set
– valn is the value to which to set that p
parameter
– The parameters commonly used with fzero are:
• display: when set to ‘iter’ displays a detailed record of all the
iterations
• tolx: A positive scalar that sets a termination tolerance on x.
fzero Example
• options = optimset(‘display’, ‘iter’);
– Sets
S options to display each iteration off root
finding process
• [x,
[x fx] = fzero(@(x) x^10
x 10-1,
1 00.5,
5 options)
– Uses fzero to find roots of f(x)=x10-1 starting with
an initial guess of x=0.5.
x=0 5
• MATLAB reports x=1, fx=0 after 35
function counts
Polynomials
• MATLAB has a built in program called roots to
d t
determine
i allll th
the roots
t off a polynomial
l i l - including
i l di
imaginary and complex ones.
• x = roots(c)
– x is a column vector containing the roots
– c is a row vector containing the polynomial coefficients
• Example:
– Find the roots of
f(x)=x5-3.5x4+2.75x3+2.125x2-3.875x+1.25
– x = roots([1 -3.5 2.75 2.125 -3.875 1.25])
Polynomials (cont)
• MATLAB’s poly function can be used to determine
polynomial coefficients if roots are given:
– b = poly([0.5 -1])
• Finds f(x) where f(x) =0 for x=0.5 and x=-1
• MATLAB reports b = [1.000 0.5000 -0.5000]
• This corresponds to f(x)=x2+0.5x-0.5
• MATLAB’s
MATLAB s polyval function can evaluate a
polynomial at one or more points:
– a = [1 -3.5 2.75 2.125 -3.875 1.25];
• If used as coefficients of a polynomial, this corresponds to
f(x)=x5-3.5x4+2.75x3+2.125x2-3.875x+1.25
– polyval(a, 1)
• This calculates f(1), which MATLAB reports as -0.2500

You might also like