2. Bisection Method
The bisection method (sometimes called the midpoint method for equations) is a
method used to estimate the solution of an equation.
Like the Regula-Falsi Method (and others) we approach this problem by writing
the equation in the form f(x) = 0 for some function f(x). This reduces the problem
to finding a root for the function f(x).
Like the Regula-Falsi Method the Bisection Method also needs a closed interval
[a,b] for which the function f(x) is positive at one endpoint and negative at the
other. In other words f(x) must satisfy the condition f(a)⋅f(b) < 0. This means that
this algorithm can not be applied to find tangential roots.
There are several advantages that the Bisection method has over the Regula-
Falsi Method.
The number of steps required to estimate the root within the desired error
can be easily computed before the algorithm is applied. This gives a way to
compute how long the algorithm will compute. (Real-time applications)
The way that you get the next point is a much easier computation than how
you get the regula-falsi point (rfp).
3. Definition:-
• Given a closed interval [a,b] on which f changes sign, we
divide the interval in half and note that f must change
sign on either the right or the left half (or be zero at the
midpoint of [a,b].) We then replace [a,b] by the half-
interval on which f changes sign. This process is
repeated until the interval has total length less than
E(error) . In the end we have a closed interval of length
less than E on which f changes sign. The IVT
guarantees that there is a zero of f in this interval. The
endpoints of this interval, which are known, must be
within of this zero.
4. Bisection Algorithm
The idea for the Bisection Algorithm is to cut the interval [a,b] you are given in half
(bisect it) on each iteration by computing the midpoint xmid. The midpoint will
replace either a or b depending on if the sign of f(xmid) agrees with f(a) or f(b).
Step 1: Compute xmid = (a+b)/2
Step 2: If sign(f(xmid)) = 0 then end algorithm
else If sign(f(xmid)) = sign(f(a)) then a = xmid
else b = xmid
Step 3: Return to step 1
f(a)
f(b)
a b
root
xmid This shows how the points a, b
and xmid are related.
f(x)
5. Lets apply the Bisection Method to the same function as we did for the Regula-
Falsi Method. The equation is: x3
-2x-3=0, the function is: f(x)=x3
-2x-3.
This function has a root on the interval [0,2]
Iteration
a b xmid f(a) f(b) f(xmid)
1 0 2 1 -3 1 -4
2 1 2 1.5 -4 1 -2.262
3 1.5 2 1.75 -2.262 1 -1.140
4 1.75 2 1.875 -1.140 1 -.158
6. As we mentioned earlier we mentioned that we could compute exactly how many
iterations we would need for a given amount of error.
The error is usually measured by looking at the width of the current interval you
are considering (i.e. the distance between a and b). The width of the interval at
each iteration can be found by dividing the width of the starting interval by 2 for
each iteration. This is because each iteration cuts the interval in half. If we let the
error we want to achieve err and n be the iterations we get the following:
1log
2
21
2
2
1
1
1
−
−
=
−
=
−
=
−
=
+
+
+
err
ab
n
err
ab
aberr
ab
err
n
n
n
7. Example 1
Starting with the interval [1,2], find srqt(2) to within
two decimal places (to within an error of .01). The
function involved is f(x) = x2
-2. The following table
steps through the iteration until the size of the
interval, given in the last column, is less than .01.
The final result is the approximation 1.41406 for
the sqrt(2). This is guaranteed by the algorithm to
be within .01 (actually, to within 1/128) of sqrt(2).
In reality it agrees with sqrt(2) to three decimal
places, not just two.
9. Example 2
•Consider finding the root of f(x) = e-x
(3.2 sin(x)
- 0.5 cos(x)) on the interval [3, 4], this time
with εstep = 0.001, εabs = 0.001.
•Table 1. Bisection method applied to f(x) = e-
x
(3.2 sin(x) - 0.5 cos(x)).
10. a b f(a) f(b) c = (a + b)/2 f(c) Update new b − a
3.0 4.0 0.047127 -0.038372 3.5 -0.019757 b = c 0.5
3.0 3.5 0.047127 -0.019757 3.25 0.0058479 a = c 0.25
3.25 3.5 0.0058479 -0.019757 3.375 -0.0086808 b = c 0.125
3.25 3.375 0.0058479 -0.0086808 3.3125 -0.0018773 b = c 0.0625
3.25 3.3125 0.0058479 -0.0018773 3.2812 0.0018739 a = c 0.0313
3.2812 3.3125 0.0018739 -0.0018773 3.2968 -0.000024791 b = c 0.0156
3.2812 3.2968 0.0018739 -0.000024791 3.289 0.00091736 a = c 0.0078
3.289 3.2968 0.00091736 -0.000024791 3.2929 0.00044352 a = c 0.0039
3.2929 3.2968 0.00044352 -0.000024791 3.2948 0.00021466 a = c 0.002
3.2948 3.2968 0.00021466 -0.000024791 3.2958 0.000094077 a = c 0.001
3.2958 3.2968 0.000094077 -0.000024791 3.2963 0.000034799 a = c 0.0005