bisection.method {animation}R Documentation

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

Description

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

Usage

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').

Author(s)

Yihui Xie

References

Examples at https://yihui.name/animation/example/bisection-method/

For more information about Bisection method, please see http://en.wikipedia.org/wiki/Bisection_method

See Also

deriv, uniroot, curve


[Package animation version 2.5 Index]