https://github.com/cran/pracma
Tip revision: 03698027c2d84118bd0c53c4a9a5b5d23676f388 authored by HwB on 01 October 2012, 00:00:00 UTC
version 1.2.0
version 1.2.0
Tip revision: 0369802
findzeros.Rd
\name{findzeros}
\alias{findzeros}
\title{
Find All Roots
}
\description{
Finding all roots of a unvariate function in an interval by splitting
the interval in many small subintervals.
}
\usage{
findzeros(f, a, b, n = 100, tol = .Machine$double.eps^(2/3), ...)
}
\arguments{
\item{f}{functions whose roots shall be found.}
\item{a, b}{endpoints of the interval.}
\item{n}{number of subintervals to generate and search.}
\item{tol}{tolerance for identifying zeros.}
\item{\ldots}{Additional parameters to be passed to the function.}
}
\details{
Roots, i.e. zeros in a subinterval will be found by applying \code{uniroot}
to any subinterval where the sign of the function changes. The endpoints of
the interval will be tested separately.
The function need not be vectorized.
}
\value{
Numeric vector with the x-positions of all roots found in the interval.
}
\seealso{
\code{\link{uniroot}}
}
\examples{
f1 <- function(x) sin(pi/x)
findzeros(f1, 1/10, 1)
# 0.1000000 0.1111028 0.1250183 0.1428641 0.1666655
# 0.2000004 0.2499867 0.3333441 0.4999794 1.0000000
f2 <- function(x) 0.5*(1 + sin(10*pi*x))
findzeros(f2, 0, 1)
# 0.15 0.35 0.55 0.75 0.95
\dontrun{
# Dini function
Dini <- function(x) x * besselJ(x, 1) + 3 * besselJ(x, 0)
findzeros(Dini, 0, 100, n = 128)
ezplot(Dini, 0, 100, n = 512)
}
}
\keyword{ math }