Understanding Brent's root finding method

  • Thread starter Thread starter phantomvommand
  • Start date Start date
Click For Summary
The discussion centers on the logic behind checking the difference between b-1 and b-2 when bisect_flag is set to False. The main point raised is whether the goal should be to assess the halving of the interval between the best guesses b, suggesting that the focus should be on abs(b - b-1) instead. A reference to Brent's original publication indicates that unnecessary bisections could slow down convergence for well-behaved functions, highlighting the balance between optimizing performance in typical scenarios while managing potential failures in edge cases. The conversation also notes that this topic is more suited for the Programming and Computer Science forum.
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 jim mcnamara, Baluncore and berkeman
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

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