# bisection.method: Demonstration of the Bisection Method for root-finding on an... In animation: A Gallery of Animations in Statistics and Utilities to Create Animations

## Description

This is a visual demonstration of finding the root of an equation f(x) = 0 on an interval using the Bisection Method.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10``` ```bisection.method( FUN = function(x) x^2 - 4, rg = c(-1, 10), tol = 0.001, interact = FALSE, main, xlab, ylab, ... ) ```

## Arguments

 `FUN` the function in the equation to solve (univariate) `rg` a vector containing the end-points of the interval to be searched for the root; in a `c(a, b)` form `tol` the desired accuracy (convergence tolerance) `interact` 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`

## Details

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.

## Value

A list containing

 `root ` the root found by the algorithm `value ` the value of `FUN(root)` `iter` 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

## Note

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

Yihui Xie

## References

`deriv`, `uniroot`, `curve`