ブレント法
3回目の収束計算:(a2, f(a2)) = (−4, −25) と (b1, f(b1)) = (1.23256, 0.22891) と (b2, f(b2)) = (1.14205, 0.083582) で逆2次補間を行う。収束値として (3a2 + b2) / 4 と b2 の間にある 1.09032 が得られる。しかし、ここでブレントによる追加条件が加わる。不等式 1.09032 − b2 ≤ b1 − b0 / 2 を満たさないため、この値は採用されない。代わりに、区間 [a2, b2] の中間点 m = −1.42897 を計算しこれを採用する。f(m) = 9.26891 であり、a3 = a2、b3 = −1.42897 となる。
4回目の収束計算:(a3, f(a3)) = (−4, −25) と (b2, f(b2)) = (1.14205, 0.083582) と (b3, f(b3)) = (−1.42897, 9.26891) で逆2次補間を行う。収束値として 1.15448 が得られるが、この値は区間 (3a3 + b3) / 4 と b3) には存在しない。したがって、中間点 m = −2.71449 に置き換わる。f(m) = 3.93934 であり、したがって a4 = a3、b4 = −2.71449 となる。
5回目の収束計算:逆2次補間により、区間内にある −3.45500 を得る。しかし、1つ前の計算に二分法を用いたため、不等式 −3.45500 − b4 ≤ b4 − b3 / 2 を満たす必要がある。この不等式は偽であるため、中間点 m = −3.
1つ前が補間であった場合は、 | s − b k | < 1 2 | b k − 1 − b k − 2 | {\displaystyle |s-b_{k}|<{\begin{matrix}{\frac {1}{2}}\end{matrix}}|b_{k-1}-b_{k-2}|}
が使用される。この修正により、k番目の収束計算で二分法が使用される場合、追加で行われる収束計算は多くとも 2 l o g 2 ( | b k − 1 − b k − 2 | / δ ) {\displaystyle 2log_{2}(|b_{k-1}-b_{k-2}|/\delta )} 回に収まる、という点が保証される。なぜなら、上記の条件によって、2回連続して行われる補間計算の回数を半分にでき、その後、多くとも 2 l o g 2 ( | b k − 1 − b k − 2 | / δ ) {\displaystyle 2log_{2}(|b_{k-1}-b_{k-2}|/\delta )} 回の収束計算により、値の変化は δ {\displaystyle \delta } よりも小さくでき、二分法に切り替えられるためである。ブレントは、二分法を使用する収束計算回数を N 回とするとき、必要な収束計算回数が多くとも合計 N 回であることを証明した。関数 f が滑らかな形状であれば、ブレント法は逆2次補間または線形補間を使用し、 収束速度は超線形となる。
さらにブレント法では、もし f(bk)、f(ak)、f(bk−1) が明確な差があれば、(割線法で使用される)線形補間の代わりに逆2次補間を使用する。これにより収束性がわずかに上がる。結果として、s(線形補間または逆2次補間で得られる値)が採用される条件は、以下のように変更される:s が (3ak + bk) / 4 と bkの間に存在するかどうか
デッカー法では、関数 f が滑らかな形状であれば、効率的に解が求められる。しかし、毎回の収束計算で割線法が選択される場合もあるが、このときは bk の収束が非常に遅い(特に bk − bk−1 が任意に小さい)この場合、デッカー法を用いると、二分法よりも非常に多くの収束計算が必要となる。
ブレントは、この問題を解決する小さな修正を提案した。割線法で得られた値が次の収束値として採用される前に、満たすべき判定式を追加した。具体的には、以下の2つの不等式である:
与えられた許容値 δ {\displaystyle \delta } に対し、もし1つ前のステップで二分法を用いた場合は、不等式
| δ | < | b k − b k − 1 | {\displaystyle |\delta |<|b_{k}-b_{k-1}|}
による判定が行われ、満たしていなければ二分法が選択され、得た値を次の収束値とする。もし1つ前のステップが補間である場合は、不等式 | δ | < | b k − 1 − b k − 2 | {\displaystyle |\delta |<|b_{k-1}-b_{k-2}|}
が使用される。
また、1つ前のステップが二分法の場合は、同じく
| s − b k | < 1 2 | b k − b k − 1 | {\displaystyle |s-b_{k}|<{\begin{matrix}{\frac {1}{2}}\end{matrix}}|b_{k}-b_{k-1}|}
を満たす必要がある。偽であれば二分法が使用され、得た値が次の収束値となる。