bisectj: Rootfinding Through Bisection

Description Usage Arguments Details Value References See Also Examples

Description

Finding roots of univariate functions in bounded intervals.

Usage

1
2
3
4
5
bisect(f, a, b, maxiter = 100, tol = NA, ...)

regulaFalsi(f, a, b, maxiter = 100, tol = .Machine$double.eps^0.5, ...)

secant(f, a, b, maxiter = 100, tol = .Machine$double.eps^0.5, ...)

Arguments

f

Function or its name as a string.

a, b

interval end points.

maxiter

maximum number of iterations; default 100.

tol

absolute tolerance; default eps^(1/2)

...

Additional arguments to f()

Details

“Bisection” is a well known root finding algorithms for real, univariate, continuous functions. Bisection works in any case if the function has opposite signs at the endpoints of the interval.

bisect stops when floating point precision is reached, attaching a tolerance is no longer needed. This version is trimmed for exactness, not speed. Special care is taken when 0.0 is a root of the function. Argument 'tol' is deprecated and not used anymore.

“Regula falsi” combines bisection and secant methods. The so-called ‘Illinois’ improvement is used.

Value

Return a list with components root, f.root, the function value at the found root, iter, the number of iterations done, and root, and the estimated accuracy estim.prec

References

Quarteroni, A., R. Sacco, and F. Saleri (2007). Numerical Mathematics. Second Edition, Springer-Verlag, Berlin Heidelberg.

See Also

ridders

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
bisect(sin, 3.0, 4.0)
# $root             $f.root             $iter   $estim.prec
# 3.1415926536      1.2246467991e-16    52      4.4408920985e-16

bisect(sin, -1.0, 1.0)
# $root             $f.root             $iter   $estim.prec
# 0                 0                   2       0

# Legendre polynomial of degree 5
lp5 <- c(63, 0, -70, 0, 15, 0)/8

f <- function(x) {pracma::polyval(lp5, x)}
bisect(f, 0.6, 1)       # 0.9061798453      correct to 15 decimals
regulaFalsi(f, 0.6, 1)  # 0.9061798459      correct to 10 decimals

rootoned documentation built on May 2, 2019, 6:48 p.m.