This is a visual demonstration of finding the root of an equation \(f(x) = 0\) on an interval using the Bisection Method.
bisection.method(
FUN = function(x) x^2 - 4,
rg = c(-1, 10),
tol = 0.001,
interact = FALSE,
main,
xlab,
ylab,
...
)
the function in the equation to solve (univariate)
a vector containing the end-points of the interval to be searched
for the root; in a c(a, b)
form
the desired accuracy (convergence tolerance)
logical; whether choose the end-points by cliking on the curve (for two times) directly?
axis and main titles to be used in the plot
other arguments passed to curve
A list containing
the root found by the algorithm
the value of FUN(root)
number of
iterations; if it is equal to ani.options('nmax')
, it's quite likely
that the root is not reliable because the maximum number of iterations has
been reached
Suppose we want to solve the equation \(f(x) = 0\). Given two points a and b such that \(f(a)\) and \(f(b)\) have opposite signs, we know by the intermediate value theorem that \(f\) must have at least one root in the interval \([a, b]\) as long as \(f\) is continuous on this interval. The bisection method divides the interval in two by computing \(c = (a + b) / 2\). There are now two possibilities: either \(f(a)\) and \(f(c)\) have opposite signs, or \(f(c)\) and \(f(b)\) have opposite signs. The bisection algorithm is then applied recursively to the sub-interval where the sign change occurs.
During the process of searching, the mid-point of subintervals are annotated in the graph by both texts and blue straight lines, and the end-points are denoted in dashed red lines. The root of each iteration is also plotted in the right margin of the graph.
Examples at https://yihui.org/animation/example/bisection-method/
For more information about Bisection method, please see https://en.wikipedia.org/wiki/Bisection_method