Bisection Method

In [1]:
import numpy as np
import matplotlib.pyplot as pt
In [2]:
a = 2
b = 6

x = np.linspace(a, b)

def f(x):
    return 1e-2 * np.exp(x) - 2

pt.grid()
pt.plot(x, f(x))
Out[2]:
[<matplotlib.lines.Line2D at 0x7f429c3f2438>]

Write code for the bisection method and run it in-place many times: (Ctrl-Enter)

In [25]:
m = (a+b)/2

if np.sign(f(a)) == np.sign(f(m)):
    a = m
else:
    b = m
        
print(a, b)
5.298316955566406 5.2983174324035645