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,
...
)
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 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
Yihui Xie
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