Finding the Roots of f(x) = 0. Gerald W. Recktenwald Department of Mechanical Engineering Portland State University

Similar documents
Finding the Roots of f(x) = 0

Numerical Solution of f(x) = 0

MATH 3795 Lecture 12. Numerical Solution of Nonlinear Equations.

Lecture Notes to Accompany. Scientific Computing An Introductory Survey. by Michael T. Heath. Chapter 5. Nonlinear Equations

Outline. Scientific Computing: An Introductory Survey. Nonlinear Equations. Nonlinear Equations. Examples: Nonlinear Equations

Scientific Computing: An Introductory Survey

Solving Linear Systems of Equations

A Review of Linear Algebra

CS 450 Numerical Analysis. Chapter 5: Nonlinear Equations

INTRODUCTION TO NUMERICAL ANALYSIS

Numerical Analysis Fall. Roots: Open Methods

Solution of Algebric & Transcendental Equations

Numerical Methods I Solving Nonlinear Equations

Numerical Methods. Root Finding

Numerical Integration of Ordinary Differential Equations for Initial Value Problems

CLASS NOTES Models, Algorithms and Data: Introduction to computing 2018

Root Finding: Close Methods. Bisection and False Position Dr. Marco A. Arocha Aug, 2014

Chapter 3: Root Finding. September 26, 2005

Bisection and False Position Dr. Marco A. Arocha Aug, 2014

MATH 3795 Lecture 13. Numerical Solution of Nonlinear Equations in R N.

Lecture 8. Root finding II

3.1 Introduction. Solve non-linear real equation f(x) = 0 for real root or zero x. E.g. x x 1.5 =0, tan x x =0.

PART I Lecture Notes on Numerical Solution of Root Finding Problems MATH 435

SOLVING EQUATIONS OF ONE VARIABLE

Computational Methods CMSC/AMSC/MAPL 460. Solving nonlinear equations and zero finding. Finding zeroes of functions

Chapter 6. Nonlinear Equations. 6.1 The Problem of Nonlinear Root-finding. 6.2 Rate of Convergence

STOP, a i+ 1 is the desired root. )f(a i) > 0. Else If f(a i+ 1. Set a i+1 = a i+ 1 and b i+1 = b Else Set a i+1 = a i and b i+1 = a i+ 1

Lecture 7. Root finding I. 1 Introduction. 2 Graphical solution

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane.

Root-finding and nonlinear systems. Unit II. Root-Finding and Nonlinear Systems. Numerical equation solving. Single-variable (nonlinear) equations

Numerical Methods with Matlab: Implementations and Applications. Gerald W. Recktenwald

Numerical Methods Lecture 3

Computational Methods. Solving Equations

Midterm Review. Igor Yanovsky (Math 151A TA)

Line Search Methods. Shefali Kulkarni-Thaker

Unit 2: Solving Scalar Equations. Notes prepared by: Amos Ron, Yunpeng Li, Mark Cowlishaw, Steve Wright Instructor: Steve Wright

TWO METHODS FOR OF EQUATIONS

Variable. Peter W. White Fall 2018 / Numerical Analysis. Department of Mathematics Tarleton State University

Numerical solutions of nonlinear systems of equations

Outline. Math Numerical Analysis. Intermediate Value Theorem. Lecture Notes Zeros and Roots. Joseph M. Mahaffy,

Motivation: We have already seen an example of a system of nonlinear equations when we studied Gaussian integration (p.8 of integration notes)

Math Numerical Analysis

Math Numerical Analysis Mid-Term Test Solutions

Solution of Nonlinear Equations

Intro to Scientific Computing: How long does it take to find a needle in a haystack?

Roots of Equations. ITCS 4133/5133: Introduction to Numerical Methods 1 Roots of Equations

Solving Non-Linear Equations (Root Finding)

Nonlinear Equations and Continuous Optimization

Figure 1: Graph of y = x cos(x)

Today s class. Numerical differentiation Roots of equation Bracketing methods. Numerical Methods, Fall 2011 Lecture 4. Prof. Jinbo Bi CSE, UConn

Scientific Computing. Roots of Equations

Outline. Additional Nonlinear Systems. Abstract. Finding Equilibrium Points Numerically. Newton s Method

Chapter 1. Root Finding Methods. 1.1 Bisection method

CLASS NOTES Computational Methods for Engineering Applications I Spring 2015

Zeros of functions with Matlab: Bisection method and fixed point iteration

If you need the source code from the sample solutions, copy and paste from the PDF should work. If you re having trouble, send me an .

SOLUTION OF ALGEBRAIC AND TRANSCENDENTAL EQUATIONS BISECTION METHOD

1. Method 1: bisection. The bisection methods starts from two points a 0 and b 0 such that

Jim Lambers MAT 460/560 Fall Semester Practice Final Exam

Nonlinearity Root-finding Bisection Fixed Point Iteration Newton s Method Secant Method Conclusion. Nonlinear Systems

Nonlinear Equations. Chapter The Bisection Method

Two hours. To be provided by Examinations Office: Mathematical Formula Tables. THE UNIVERSITY OF MANCHESTER. 29 May :45 11:45

Finding Roots of Equations

Goals for This Lecture:

Chapter 5 Roots of Equations: Bracketing Models. Gab-Byung Chae

Numerical Methods in Informatics

Chapter 4. Solution of Non-linear Equation. Module No. 1. Newton s Method to Solve Transcendental Equation

5. Hand in the entire exam booklet and your computer score sheet.

Optimization and Calculus

1-D Optimization. Lab 16. Overview of Line Search Algorithms. Derivative versus Derivative-Free Methods

1 The best of all possible worlds

Solutions of Equations in One Variable. Newton s Method

CHAPTER 4 ROOTS OF EQUATIONS

UNCONSTRAINED OPTIMIZATION

GENG2140, S2, 2012 Week 7: Curve fitting

NUMERICAL AND STATISTICAL COMPUTING (MCA-202-CR)

Chapter 2 Solutions of Equations of One Variable

5 Finding roots of equations

Scientific Computing. Roots of Equations

A Review of Bracketing Methods for Finding Zeros of Nonlinear Functions

REVIEW OF DIFFERENTIAL CALCULUS

MATH 350: Introduction to Computational Mathematics

CS 221 Lecture 9. Tuesday, 1 November 2011

INTRODUCTION, FOUNDATIONS

you expect to encounter difficulties when trying to solve A x = b? 4. A composite quadrature rule has error associated with it in the following form

Lecture 5. September 4, 2018 Math/CS 471: Introduction to Scientific Computing University of New Mexico

Introduction to Numerical Analysis

Solution of Nonlinear Equations

15 Nonlinear Equations and Zero-Finders

6.1 The function can be set up for fixed-point iteration by solving it for x

Optimization. Totally not complete this is...don't use it yet...

Lecture 9. Polynomials. x+c 3. c 1. x 2 +c 4. +c 2. x 2 =0. c 3. 4 c 1. , c 2

MATH 350: Introduction to Computational Mathematics

Halley s Method: A Cubically Converging. Method of Root Approximation

Some MATLAB Programs and Functions. Bisection Method

Root Finding (and Optimisation)

Review. Numerical Methods Lecture 22. Prof. Jinbo Bi CSE, UConn

Math 473: Practice Problems for Test 1, Fall 2011, SOLUTIONS

Numerical Methods 5633

ME 535 Project Report Numerical Computation of Plastic Zone Shapes in Fracture Mechanics. V.V.H. Aditya ( ) Rishi Pahuja ( ) June 9, 2014

Transcription:

Finding the Roots of f(x) = 0 Gerald W. Recktenwald Department of Mechanical Engineering Portland State University gerry@me.pdx.edu

These slides are a supplement to the book Numerical Methods with Matlab: Implementations and Applications, by Gerald W. Recktenwald, c 2000 2006, Prentice-Hall, Upper Saddle River, NJ. These slides are copyright c 2000 2006 Gerald W. Recktenwald. The PDF version of these slides may be downloaded or stored or printed for noncommercial, educational use. The repackaging or sale of these slides in any form, without written consent of the author, is prohibited. The latest version of this PDF file, along with other supplemental material for the book, can be found at www.prenhall.com/recktenwald or web.cecs.pdx.edu/~gerry/nmm/. Version 1.12 August 11, 2006

Overview Topics covered in this chapter Preliminary considerations and bracketing. Fixed Point Iteration Bisection Newton s Method The Secant Method Hybrid Methods: the built in fzero function Roots of Polynomials NMM: Finding the Roots of f(x) = 0 page 2

Example: Picnic Table Leg Computing the dimensions of a picnic table leg involves a root-finding problem. Leg assembly Detail of one leg b c d 1 a b 2 h 2α d 1 d 2 b θ α θ α d 2 d 2 θ w NMM: Finding the Roots of f(x) = 0 page 3

Example: Picnic Table Leg Dimensions of a the picnic table leg satisfy w sin θ = h cos θ + b Given overall dimensions w and h, and the material dimension, b, what is the value of θ? An analytical solution for θ = f(w, h, b) exists, but is not obvious. Use a numerical root-finding procedure to find the value of θ that satisfies f(θ) = w sin θ h cos θ b = 0 NMM: Finding the Roots of f(x) = 0 page 4

Roots of f(x) = 0 Any function of one variable can be put in the form f(x) = 0. Example: To find the x that satisfies cos(x) = x, find the zero crossing of f(x) = cos(x) x = 0 1.5 1 0.5 0-0.5 y = x y = cos(x) f = cos(x) - x Solution -1 0 0.2 0.4 0.6 0.8 1 1.2 1.4 NMM: Finding the Roots of f(x) = 0 page 5

General Considerations Is this a special function that will be evaluated often? How much precision is needed? How fast and robust must the method be? Is the function a polynomial? Does the function have singularities? There is no single root-finding method that is best for all situations. NMM: Finding the Roots of f(x) = 0 page 6

Root-Finding Procedure The basic strategy is 1. Plot the function. The plot provides an initial guess, and an indication of potential problems. 2. Select an initial guess. 3. Iteratively refine the initial guess with a root-finding algorithm. NMM: Finding the Roots of f(x) = 0 page 7

Bracketing A root is bracketed on the interval [a, b] if f(a) and f(b) have opposite sign. A sign change occurs for singularities as well as roots f(a) f(a) 0 a b 0 a b f(b) f(b) Bracketing is used to make initial guesses at the roots, not to accurately estimate the values of the roots. NMM: Finding the Roots of f(x) = 0 page 8

Bracketing Algorithm (1) Algorithm 6.1 Bracket Roots given: f(x), x min, x max, n dx = (x max x min )/n x left = x min i = 0 while i < n i i + 1 x right = x left + dx if f(x) changes sign in [x left, x right ] save [x left, x right ] for further root-finding end x left = x right end NMM: Finding the Roots of f(x) = 0 page 9

Bracketing Algorithm (2) A simple test for sign change: f(a) f(b) < 0? or in Matlab if fa =... fb =... if fa*fb < 0 save bracket end but this test is susceptible to underflow. NMM: Finding the Roots of f(x) = 0 page 10

Bracketing Algorithm (3) A better test uses the built-in sign function fa =... fb =... if sign(fa)~=sign(fb) save bracket end See implementation in the brackplot function NMM: Finding the Roots of f(x) = 0 page 11

The brackplot Function brackplot is a NMM toolbox function that Looks for brackets of a user-defined f(x) Plots the brackets and f(x) Returns brackets in a two-column matrix Syntax: brackplot( myfun,xmin,xmax) brackplot( myfun,xmin,xmax,nx) where myfun xmin, xmax nx is the name of an m-file that evaluates f(x) define range of x axis to search is the number of subintervals on [xmin,xmax] used to check for sign changes of f(x). Default: nx= 20 NMM: Finding the Roots of f(x) = 0 page 12

Apply brackplot Function to sin(x) (1) >> Xb = brackplot( sin,-4*pi,4*pi) Xb = -12.5664-11.2436-9.9208-8.5980-7.2753-5.9525-3.3069-1.9842-0.6614 0.6614 1.9842 3.3069 5.9525 7.2753 8.5980 9.9208 11.2436 12.5664 f(x) defined in sin.m 1 0.5 0-0.5-1 -10-5 0 5 10 x NMM: Finding the Roots of f(x) = 0 page 13

Apply brackplot to a user-defined Function (1) To solve f(x) = x x 1/3 2 = 0 we need an m-file function to evaluate f(x) for any scalar or vector of x values. File fx3.m: Note the use of the array operator. function f = fx3(x) % fx3 Evaluates f(x) = x - x^(1/3) - 2 f = x - x.^(1/3) - 2; Run brackplot with fx3 as the input function >> brackplot( fx3,0,5) ans = 3.4000 3.6000 NMM: Finding the Roots of f(x) = 0 page 14

Apply brackplot to a user-defined Function (2) >> Xb = brackplot( fx3,0,5) Xb = 3.4211 3.6842 f(x) defined in fx3.m 1.5 1 0.5 0-0.5-1 -1.5-2 -2.5 0 1 2 3 4 5 x NMM: Finding the Roots of f(x) = 0 page 15

Apply brackplot to a user-defined Function (3) Instead of creating a separate m-file, we can use an in-line function object. >> f = inline( x - x.^(1/3) - 2 ) f = Inline function: f(x) = x - x.^(1/3) - 2 >> brackplot(f,0,5) ans = 3.4000 3.6000 Note: When an inline function object is supplied to brackplot, the name of the object is not surrounded in quotes: brackplot(f,0,5) instead of brackplot( fun,0,5) NMM: Finding the Roots of f(x) = 0 page 16

Root-Finding Algorithms We now proceed to develop the following root-finding algorithms: Fixed point iteration Bisection Newton s method Secant method These algorithms are applied after initial guesses at the root(s) are identified with bracketing (or guesswork). NMM: Finding the Roots of f(x) = 0 page 17

Fixed Point Iteration Fixed point iteration is a simple method. It only works when the iteration function is convergent. Given f(x) = 0, rewrite as x new = g(x old ) Algorithm 6.2 Fixed Point Iteration initialize: x 0 =... for k = 1, 2,... x k = g(x k 1 ) if converged, stop end NMM: Finding the Roots of f(x) = 0 page 18

Convergence Criteria An automatic root-finding procedure needs to monitor progress toward the root and stop when current guess is close enough to the desired root. Convergence checking will avoid searching to unnecessary accuracy. Convergence checking can consider whether two successive approximations to the root are close enough to be considered equal. Convergence checking can examine whether f(x) is sufficiently close to zero at the current guess. More on this later... NMM: Finding the Roots of f(x) = 0 page 19

Fixed Point Iteration Example (1) To solve rewrite as or or x x 1/3 2 = 0 x new = g 1 (x old ) = x 1/3 old + 2 x new = g 2 (x old ) = `x old 2 3 x new = g 3 (x old ) = 6 + 2x1/3 old 3 x 2/3 old Are these g(x) functions equally effective? NMM: Finding the Roots of f(x) = 0 page 20

Fixed Point Iteration Example (2) g 1 (x) = x 1/3 + 2 g 2 (x) = `x 2 3 g 3 (x) = 6 + 2x1/3 3 x 2/3 k g 1 (x k 1 ) g 2 (x k 1 ) g 3 (x k 1 ) 0 3 3 3 1 3.4422495703 1 3.5266442931 2 3.5098974493 1 3.5213801474 3 3.5197243050 27 3.5213797068 4 3.5211412691 24389 3.5213797068 5 3.5213453678 1.451 10 13 3.5213797068 6 3.5213747615 3.055 10 39 3.5213797068 7 3.5213789946 2.852 10 118 3.5213797068 8 3.5213796042 3.5213797068 9 3.5213796920 3.5213797068 Summary: g 1 (x) converges, g 2 (x) diverges, g 3 (x) converges very quickly NMM: Finding the Roots of f(x) = 0 page 21

Bisection Given a bracketed root, halve the interval while continuing to bracket the root f (x 1 ) f (b 1 ) a x 2 x 1 b f (a 1 ) NMM: Finding the Roots of f(x) = 0 page 22

Bisection (2) For the bracket interval [a, b] the midpoint is x m = 1 (a + b) 2 A better formula, one that is less susceptible to round-off is x m = a + b a 2 NMM: Finding the Roots of f(x) = 0 page 23

Bisection Algorithm Algorithm 6.3 Bisection initialize: a =..., b =... for k = 1, 2,... x m = a + (b a)/2 if sign (f(x m )) = sign (f(x a )) a = x m else b = x m end if converged, stop end NMM: Finding the Roots of f(x) = 0 page 24

Bisection Example Solve with bisection: x x 1/3 2 = 0 k a b x mid f(x mid ) 0 3 4 1 3 4 3.5-0.01829449 2 3.5 4 3.75 0.19638375 3 3.5 3.75 3.625 0.08884159 4 3.5 3.625 3.5625 0.03522131 5 3.5 3.5625 3.53125 0.00845016 6 3.5 3.53125 3.515625-0.00492550 7 3.51625 3.53125 3.5234375 0.00176150 8 3.51625 3.5234375 3.51953125-0.00158221 9 3.51953125 3.5234375 3.52148438 0.00008959 10 3.51953125 3.52148438 3.52050781-0.00074632 NMM: Finding the Roots of f(x) = 0 page 25

Analysis of Bisection (1) Let δ n be the size of the bracketing interval at the n th stage of bisection. Then δ 0 = b a = initial bracketing interval δ 1 = 1 2 δ 0 δ 2 = 1 2 δ 1 = 1 4 δ 0. δ n = «1 n = δ 0 2 or δ n δ 0 = «1 n = 2 n 2 n = log 2 δn δ 0 «NMM: Finding the Roots of f(x) = 0 page 26

Analysis of Bisection (2) δ n δ 0 = «1 n «= 2 n δn or n = log 2 2 δ 0 n δ n δ 0 function evaluations 5 3.1 10 2 7 10 9.8 10 4 12 20 9.5 10 7 22 30 9.3 10 10 32 40 9.1 10 13 42 50 8.9 10 16 52 NMM: Finding the Roots of f(x) = 0 page 27

Convergence Criteria An automatic root-finding procedure needs to monitor progress toward the root and stop when current guess is close enough to the desired root. Convergence checking will avoid searching to unnecessary accuracy. Check whether successive approximations are close enough to be considered the same: Check whether f(x) is close enough zero. x k x k 1 < δ x f(x k ) < δ f NMM: Finding the Roots of f(x) = 0 page 28

Convergence Criteria on x f (x) true root tolerance on f (x) tolerance on x x Absolute tolerance: xk x k 1 < δx x k x k 1 Relative tolerance: b a < ˆδ x x k = current guess at the root x k 1 = previous guess at the root NMM: Finding the Roots of f(x) = 0 page 29

Convergence Criteria on f(x) f (x) true root Absolute tolerance: f(xk ) < δf tolerance on f (x) tolerance on x x Relative tolerance: f(x k ) < ˆδ n o f max f(a 0 ), f(b 0 ) where a 0 and b 0 are the original brackets NMM: Finding the Roots of f(x) = 0 page 30

Convergence Criteria on f(x) If f (x) is small near the root, it is easy to satisfy a tolerance on f(x) for a large range of x. A tolerance on x is more conservative. If f (x) is large near the root, it is possible to satisfy a tolerance on x when f(x) is still large. A tolerance on f(x) is more conservative. f (x) f (x) x x NMM: Finding the Roots of f(x) = 0 page 31

Newton s Method (1) For a current guess x k, use f(x k ) and the slope f (x k ) to predict where f(x) crosses the x axis. f(x 1 ) f(x 2 ) x 2 x 3 x 1 NMM: Finding the Roots of f(x) = 0 page 32

Newton s Method (2) Expand f(x) in Taylor Series around x k f(x k + x) = f(x k ) + x df + ( x)2 dx xk 2 d 2 f +... dx 2 xk Substitute x = x k+1 x k and neglect second order terms to get f(x k+1 ) f(x k ) + (x k+1 x k ) f (x k ) where f (x k ) = df dx xk NMM: Finding the Roots of f(x) = 0 page 33

Newton s Method (3) Goal is to find x such that f(x) = 0. Set f(x k+1 ) = 0 and solve for x k+1 0 = f(x k ) + (x k+1 x k ) f (x k ) or, solving for x k+1 x k+1 = x k f(x k) f (x k ) NMM: Finding the Roots of f(x) = 0 page 34

Newton s Method Algorithm Algorithm 6.4 initialize: x 1 =... for k = 2, 3,... x k = x k 1 f(x k 1 )/f (x k 1 ) if converged, stop end NMM: Finding the Roots of f(x) = 0 page 35

Newton s Method Example (1) Solve: First derivative is The iteration formula is x x 1/3 2 = 0 f (x) = 1 1 3 x 2/3 x k+1 = x k x k x 1/3 k 2 1 1 3 x 2/3 k NMM: Finding the Roots of f(x) = 0 page 36

Newton s Method Example (2) x k+1 = x k x k x 1/3 k 2 1 1 3 x 2/3 k k x k f (x k ) f(x) 0 3 0.83975005-0.44224957 1 3.52664429 0.85612976 0.00450679 2 3.52138015 0.85598641 3.771 10 7 3 3.52137971 0.85598640 2.664 10 15 4 3.52137971 0.85598640 0.0 Conclusion Newton s method converges much more quickly than bisection Newton s method requires an analytical formula for f (x) The algorithm is simple as long as f (x) is available. Iterations are not guaranteed to stay inside an ordinal bracket. NMM: Finding the Roots of f(x) = 0 page 37

Divergence of Newton s Method f(x 1 ) f '(x 1 ) 0 Since x k+1 = x k f(x k) f (x k ) x 1 the new guess, x k+1, will be far from the old guess whenever f (x k ) 0 NMM: Finding the Roots of f(x) = 0 page 38

Secant Method (1) Given two guesses x k 1 and x k, the next guess at the root is where the line through f(x k 1 ) and f(x k ) crosses the x axis. f(b) f(x 1 ) x 2 a x 1 b f(a) NMM: Finding the Roots of f(x) = 0 page 39

Secant Method (2) Given Approximate the first derivative with x k = current guess at the root x k 1 = previous guess at the root f (x k ) f(x k) f(x k 1 ) x k x k 1 Substitute approximate f (x k ) into formula for Newton s method x k+1 = x k f(x k) f (x k ) to get» x k x k 1 x k+1 = x k f(x k ) f(x k ) f(x k 1 ) NMM: Finding the Roots of f(x) = 0 page 40

Secant Method (3) Two versions of this formula are equivalent in exact math:» x k x k 1 x k+1 = x k f(x k ) f(x k ) f(x k 1 ) ( ) and x k+1 = f(x k)x k 1 f(x k 1 )x k f(x k ) f(x k 1 ) ( ) Equation ( ) is better since it is of the form x k+1 = x k +. Even if is inaccurate the change in the estimate of the root will be small at convergence because f(x k ) will also be small. Equation ( ) is susceptible to catastrophic cancellation: f(x k ) f(x k 1 ) as convergence approaches, so cancellation error in the denominator can be large. f(x) 0 as convergence approaches, so underflow is possible NMM: Finding the Roots of f(x) = 0 page 41

Secant Algorithm Algorithm 6.5 initialize: x 1 =..., x 2 =... for k = 2, 3... x k+1 = x k f(x k )(x k x k 1 )/(f(x k ) f(x k 1 )) if converged, stop end NMM: Finding the Roots of f(x) = 0 page 42

Secant Method Example Solve: x x 1/3 2 = 0 k x k 1 x k f(x k ) 0 4 3 0.44224957 1 3 3.51734262 0.00345547 2 3.51734262 3.52141665 0.00003163 3 3.52141665 3.52137970 2.034 10 9 4 3.52137959 3.52137971 1.332 10 15 5 3.52137971 3.52137971 0.0 Conclusions Converges almost as quickly as Newton s method. No need to compute f (x). The algorithm is simple. Two initial guesses are necessary Iterations are not guaranteed to stay inside an ordinal bracket. NMM: Finding the Roots of f(x) = 0 page 43

Divergence of Secant Method f(x 2 ) f(x 3 ) f (x 1 ) x 3 f '(x) 0 x 1 x 2 Since» x k x k 1 x k+1 = x k f(x k ) f(x k ) f(x k 1 ) the new guess, x k+1, will be far from the old guess whenever f (x k ) f(x k 1 ) and f(x) is not small. NMM: Finding the Roots of f(x) = 0 page 44

Summary of Basic Root-finding Methods Plot f(x) before searching for roots Bracketing finds coarse interval containing roots and singularities Bisection is robust, but converges slowly Newton s Method Requires f(x) and f (x). Iterates are not confined to initial bracket. Converges rapidly. Diverges if f (x) 0 is encountered. Secant Method Uses f(x) values to approximate f (x). Iterates are not confined to initial bracket. Converges almost as rapidly as Newton s method. Diverges if f (x) 0 is encountered. NMM: Finding the Roots of f(x) = 0 page 45

fzero Function (1) fzero is a hybrid method that combines bisection, secant and reverse quadratic interpolation Syntax: r = fzero( fun,x0) r = fzero( fun,x0,options) r = fzero( fun,x0,options,arg1,arg2,...) x0 can be a scalar or a two element vector If x0 is a scalar, fzero tries to create its own bracket. If x0 is a two element vector, fzero uses the vector as a bracket. NMM: Finding the Roots of f(x) = 0 page 46

Reverse Quadratic Interpolation 20 Find the point where the x axis intersects the sideways parabola passing through three pairs of (x, f(x)) values. 15 10 5 0 5 0 0.5 1 1.5 2 NMM: Finding the Roots of f(x) = 0 page 47

fzero Function (2) fzero chooses next root as Result of reverse quadratic interpolation (RQI) if that result is inside the current bracket. Result of secant step if RQI fails, and if the result of secant method is in inside the current bracket. Result of bisection step if both RQI and secant method fail to produce guesses inside the current bracket. NMM: Finding the Roots of f(x) = 0 page 48

fzero Function (3) Optional parameters to control fzero are specified with the optimset function. Examples: Tell fzero to display the results of each step: >> options = optimset( Display, iter ); >> x = fzero( myfun,x0,options) Tell fzero to use a relative tolerance of 5 10 9 : >> options = optimset( TolX,5e-9); >> x = fzero( myfun,x0,options) Tell fzero to suppress all printed output, and use a relative tolerance of 5 10 4 : >> options = optimset( Display, off, TolX,5e-4); >> x = fzero( myfun,x0,options) NMM: Finding the Roots of f(x) = 0 page 49

fzero Function (4) Allowable options (specified via optimset): Option type Value Effect Display iter Show results of each iteration final Show root and original bracket off Suppress all print out TolX tol Iterate until x < max [tol,tol a,tol b] where x = (b a)/2, and [a, b] is the current bracket. The default values of Display and TolX are equivalent to options = optimset( Display, iter, TolX,eps) NMM: Finding the Roots of f(x) = 0 page 50

Roots of Polynomials Complications arise due to Repeated roots Complex roots Sensitivity of roots to small perturbations in the polynomial coefficients (conditioning). y = f(x) 3 2 1 0-1 f 1 (x) distinct real roots f 2 (x) repeated real roots f 3 (x) complex roots 0 2 4 6 8 10 x (arbitrary units) NMM: Finding the Roots of f(x) = 0 page 51

Algorithms for Finding Polynomial Roots Bairstow s method Müller s method Laguerre s method Jenkin s Traub method Companion matrix method NMM: Finding the Roots of f(x) = 0 page 52

roots Function (1) The built-in roots function uses the companion matrix method No initial guess Returns all roots of the polynomial Solves eigenvalue problem for companion matrix Write polynomial in the form Then, for a third order polynomial >> c = [c1 c2 c3 c4]; >> r = roots(c) c 1 x n + c 2 x n 1 +... + c n x + c n+1 = 0 NMM: Finding the Roots of f(x) = 0 page 53

roots Function (2) The eigenvalues of A = 2 3 c 2 /c 1 c 3 /c 1 c 4 /c 1 c 5 /c 1 6 1 0 0 0 7 4 0 1 0 0 5 0 0 1 0 are the same as the roots of c 5 λ 4 + c 4 λ 3 + c 3 λ 2 + c 2 λ + c 1 = 0. NMM: Finding the Roots of f(x) = 0 page 54

roots Function (3) The statements c =... % vector of polynomial coefficients r = roots(c); are equivalent to c =... n = length(c); A = diag(ones(1,n-2),-1); A(1,:) = -c(2:n)./ c(1); r = eig(a); % ones on first subdiagonal % first row is -c(j)/c(1), j=2..n NMM: Finding the Roots of f(x) = 0 page 55

roots Examples Roots of f 1 (x) = x 2 3x + 2 f 2 (x) = x 2 10x + 25 f 3 (x) = x 2 17x + 72.5 are found with >> roots([1-3 2]) ans = 2 1 >> roots([1-10 25]) ans = 5 5 >> roots([1-17 72.5]) ans = 8.5000 + 0.5000i 8.5000-0.5000i NMM: Finding the Roots of f(x) = 0 page 56