Understanding Brent's root finding method

  • Thread starter Thread starter phantomvommand
  • Start date Start date
Click For Summary
SUMMARY

Brent's root finding method optimizes performance by balancing efficiency and reliability, particularly in well-behaved functions. The discussion highlights the importance of the bisect_flag parameter, which determines whether to perform bisection based on previous iterations. Specifically, when bisect_flag is False, the method checks the difference between b-1 and b-2 to avoid unnecessary bisections that could slow convergence. This approach is essential for maintaining speed while ensuring accuracy in root finding.

PREREQUISITES
  • Understanding of Brent's root finding method
  • Familiarity with numerical analysis concepts
  • Knowledge of algorithm performance optimization
  • Experience with programming in Python or similar languages
NEXT STEPS
  • Study the implementation details of Brent's root finding method in Python
  • Explore numerical analysis techniques for root finding
  • Learn about performance optimization strategies in algorithms
  • Review case studies on the application of Brent's method in various functions
USEFUL FOR

Mathematicians, software developers, and data scientists interested in numerical methods and algorithm optimization will benefit from this discussion.

phantomvommand
Messages
287
Reaction score
39
TL;DR
I am unsure about the conditions for rejecting the secant or IQI method in favour of bisection
Screenshot 2025-07-13 at 3.31.49 PM.webp


I am unsure about why in the case where bisect_flag == False, we should check b-1 - b-2. Is the objective not to check that we are halving the interval between our best guesses b, so it should be abs(b - b-1), regardless of whether the previous step was a bisection or not?
 
Technology news on Phys.org
phantomvommand said:
I am unsure about why in the case where bisect_flag == False, we should check b-1 - b-2. Is the objective not to check that we are halving the interval between our best guesses b, so it should be abs(b - b-1), regardless of whether the previous step was a bisection or not?

According to p.50 of Brent's original publication (it is available on archive.org): "practical tests show that this [would slow down] convergence for well-behaved functions by performing unnecessary bisections".

Like many practical algorithms this is a compromise between optimizing performance in the majority of situations whilst avoiding poor performance (or even failure) in pathological cases.

Note that this question probably belongs in the Programming and Computer Science forum. I'll get it moved.
 
Last edited:
  • Like
Likes   Reactions: jim mcnamara, Baluncore and berkeman

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 11 ·
Replies
11
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
6
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 0 ·
Replies
0
Views
2K
  • · Replies 21 ·
Replies
21
Views
2K
  • · Replies 30 ·
2
Replies
30
Views
3K
  • · Replies 13 ·
Replies
13
Views
3K