bisection.method {animation}R Documentation

Demonstration of the Bisection Method for root-finding on an interval


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?

xlab, ylab, main

axis and main titles to be used in the plot


other arguments passed to curve


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.


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


The maximum number of iterations is specified in ani.options('nmax').


Yihui Xie


Examples at

For more information about Bisection method, please see

See Also

deriv, uniroot, curve

[Package animation version 2.5 Index]