A New Variant of the Bisection Method
12-29-2016, 04:56 PM (This post was last modified: 12-30-2016 02:16 AM by Namir.)
Post: #1
 Namir Senior Member Posts: 810 Joined: Dec 2013
A New Variant of the Bisection Method
Encircling-Variant of Bisection

This algorithm is inspired by the Bisection method. It requires, in general, fewer iterations than the Bisection. The basic idea is to start with x=A, such that A<Xroot, and march towards the root. As the value of A passes over the root, we change the sign of the marching step and also reduce it. This change makes the value of A move around the root and closes in on it.

Given a function f(x)=0 and x=A, such that A<Xroot, and the root bracketing interval [A,Z], and the tolerance Toler. The value of Z is needed only to calculate the initial search step. You can eliminate Z if you provide the value for the initial search step.

Removing the nested IF statement causes the algorithm to slow down and require significantly more iterations than the Bisection method.

Code:
Delta = (Z-A)/2 Fa = f(A) Do   B = A   Fb = Fa   A = A + Delta   Fa = f(A)   If Fa*Fb<0 then     Delta = -Delta/4     C = (A + B) / 2     Fc = f(C)     If Fa * Fc > 0 Then       A = C       Fa = Fc     End If   End If Loop Until Abs(Delta)<=Toler Return A as the refined root

Enjoy!

Namir
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)