Theory and Proof

for

Brent's Method

   

Theorem (Secant Method).  Assume that [Graphics:Images/BrentMethodProof_gr_1.gif] and there exists a number [Graphics:Images/BrentMethodProof_gr_2.gif], where [Graphics:Images/BrentMethodProof_gr_3.gif].  If   [Graphics:Images/BrentMethodProof_gr_4.gif], then there exists a [Graphics:Images/BrentMethodProof_gr_5.gif] such that the sequence [Graphics:Images/BrentMethodProof_gr_6.gif] defined by the iteration  

    [Graphics:Images/BrentMethodProof_gr_7.gif]   

    [Graphics:Images/BrentMethodProof_gr_8.gif]    

for  [Graphics:Images/BrentMethodProof_gr_9.gif]  will converge to [Graphics:Images/BrentMethodProof_gr_10.gif] for certain initial approximations  [Graphics:Images/BrentMethodProof_gr_11.gif].  

Proof

 

Theorem (Inverse Quadratic Method).  Assume that [Graphics:Images/BrentMethodProof_gr_33.gif] and there exists a number [Graphics:Images/BrentMethodProof_gr_34.gif], where [Graphics:Images/BrentMethodProof_gr_35.gif].  If [Graphics:Images/BrentMethodProof_gr_36.gif], then there exists a [Graphics:Images/BrentMethodProof_gr_37.gif] such that the sequence [Graphics:Images/BrentMethodProof_gr_38.gif] defined by the iteration  

    [Graphics:Images/BrentMethodProof_gr_39.gif]
      
    [Graphics:Images/BrentMethodProof_gr_40.gif]  

for  [Graphics:Images/BrentMethodProof_gr_41.gif]  will converge to [Graphics:Images/BrentMethodProof_gr_42.gif] for certain initial approximations  [Graphics:Images/BrentMethodProof_gr_43.gif].  

Remark.  An efficient computation for [Graphics:Images/BrentMethodProof_gr_44.gif] is the following equivalent procedure:

    [Graphics:Images/BrentMethodProof_gr_45.gif]  
    
    for    [Graphics:Images/BrentMethodProof_gr_46.gif].

Proof

 

More Background

    We will now review some root bracketing methods.  The regula falsi method usually converge faster than the bisection method bisection.  However, examples can be found when the bisection method converges faster.  To speed things up, Brent included inverse quadratic interpolation and his method combines the root bracketing methods: bisection, regula falsi; and inverse quadratic interpolation.  

 

Theorem (Bisection Method). Assume that  [Graphics:Images/BrentMethodProof_gr_87.gif] and that there exists a number [Graphics:Images/BrentMethodProof_gr_88.gif] such that [Graphics:Images/BrentMethodProof_gr_89.gif].  If  [Graphics:Images/BrentMethodProof_gr_90.gif] have opposite signs, and [Graphics:Images/BrentMethodProof_gr_91.gif] represents the sequence of midpoints generated by the bisection process, then  

        [Graphics:Images/BrentMethodProof_gr_92.gif]   for   [Graphics:Images/BrentMethodProof_gr_93.gif],

and the sequence [Graphics:Images/BrentMethodProof_gr_94.gif] converges to the zero  [Graphics:Images/BrentMethodProof_gr_95.gif].  

That is,      [Graphics:Images/BrentMethodProof_gr_96.gif].  

Proof Bisection Method  

 

Theorem (Regula Falsi Method). Assume that  [Graphics:Images/BrentMethodProof_gr_97.gif] and that there exists a number [Graphics:Images/BrentMethodProof_gr_98.gif] such that [Graphics:Images/BrentMethodProof_gr_99.gif].  
If  [Graphics:Images/BrentMethodProof_gr_100.gif] have opposite signs, and

        [Graphics:Images/BrentMethodProof_gr_101.gif]  

represents the sequence of points generated by the Regula Falsi process, then the sequence [Graphics:Images/BrentMethodProof_gr_102.gif] converges to the zero  [Graphics:Images/BrentMethodProof_gr_103.gif].  

That is,      [Graphics:Images/BrentMethodProof_gr_104.gif].  

Proof False Position or Regula Falsi Method  

 

Brent's Method

    The secant method and inverse quadratic interpolation method can be used to find a root  [Graphics:Images/BrentMethodProof_gr_105.gif]  of the function  [Graphics:Images/BrentMethodProof_gr_106.gif].  Combining these methods and making variations which include inverse interpolation have been presented by A. van Wijngaarden, J. A. Zonneveld and E. W. Dijkstra (1963), J. H. Wilkinson (1967), G. Peters and J. H. Wilkinson (1969), T. J. Dekker (1969) and were improved by R. P. Brent (1971).  

    Brent's method can be used to find a root  [Graphics:Images/BrentMethodProof_gr_107.gif]  provided that  [Graphics:Images/BrentMethodProof_gr_108.gif]  have opposite signs.  At a typical step we have three points  [Graphics:Images/BrentMethodProof_gr_109.gif]  such that  [Graphics:Images/BrentMethodProof_gr_110.gif],  and the point  a  may coincide with the point  c.  The points  [Graphics:Images/BrentMethodProof_gr_111.gif]  change during the algorithm, and the root always lies in either  [Graphics:Images/BrentMethodProof_gr_112.gif]  or  [Graphics:Images/BrentMethodProof_gr_113.gif].  The value  b  is the best approximation to the root and  a  is the previous value of  b.  The method uses a combination of three methods: bisection, regula falsi, and inverse quadratic interpolation.  It is difficult to see how each of these ideas are incorporated into the subroutine.  To assist with locating the lines that must be used in logical sequence some of the lines have been color coded.  But some lines are used in more than one method so look carefully at the subroutine and the portions listed below.  

 

Bisection Method Part of Brent's Method

    The following portions of the Mathematica code in  BrentMethod  will perform one step of the Bisection Method.

[Graphics:Images/BrentMethodProof_gr_114.gif]

 

 

[Graphics:Images/BrentMethodProof_gr_115.gif]

 

 

The next part of the subroutine in this thread is:
If   [Graphics:Images/BrentMethodProof_gr_116.gif]  evaluates true, then

[Graphics:Images/BrentMethodProof_gr_117.gif]

 

 

[Graphics:Images/BrentMethodProof_gr_118.gif]

 

 

The next part of the subroutine in this thread is:
If   [Graphics:Images/BrentMethodProof_gr_119.gif]  evaluates true, then  [Graphics:Images/BrentMethodProof_gr_120.gif]  evaluates as  [Graphics:Images/BrentMethodProof_gr_121.gif]  

[Graphics:Images/BrentMethodProof_gr_122.gif]

 

 

[Graphics:Images/BrentMethodProof_gr_123.gif]

 

 

 

Regula Falsi or Linear Interpolation part of Brent's Method

    The following portions of the Mathematica code in  BrentMethod  will perform one step of the Regula-Falsi Method.

[Graphics:Images/BrentMethodProof_gr_124.gif]

[Graphics:Images/BrentMethodProof_gr_125.gif]

 

 

 

[Graphics:Images/BrentMethodProof_gr_126.gif]

[Graphics:Images/BrentMethodProof_gr_127.gif]

 

 

 

Inverse Quadratic Interpolation Part of Brent's Method

    Brent's method uses a slightly different, computation.  Using the notation  [Graphics:Images/BrentMethodProof_gr_128.gif],  we use Mathematica to establish that it is equivalent.  The following portions of the Mathematica code in  BrentMethod  will perform one step of the Inverse Quadratic Interpolation Method.

[Graphics:Images/BrentMethodProof_gr_129.gif]

[Graphics:Images/BrentMethodProof_gr_130.gif]

 

 

 

[Graphics:Images/BrentMethodProof_gr_131.gif]

 

 

References

    The details regarding the proof and the original ALGOL 60 procedure are given in the book and article below.

  1. An algorithm with guaranteed convergence for finding a zero of a function
    R. P. Brent
    Computer Journal, 14 (1971) 422-425.
  2. Algorithms for Minimization Without Derivatives  
    Brent, R.  
    Prentice-Hall, 1973.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(c) John H. Mathews 2005