\name{deval}
\alias{deval}
\title{
Evaluate ODE Solution
}
\description{
Evaluate solution of a differential equation solver.
}
\usage{
deval(x, y, xp, idx = NULL)
}
\arguments{
\item{x}{vector of (time) points at which the differential equation
has been solved.}
\item{y}{values of the function(s) that have been computed for the
given (time) points.}
\item{xp}{point or numeric vector at which the solution is wanted;
must be sorted.}
\item{idx}{index of functions whose vales shall be returned.}
}
\details{
Determines where the points \code{xp} lie within the vector \code{x}
and interpolates linearly.
}
\value{
An \code{length(xp)}-by-\code{length(idx)} matrix of values at points
\code{xp}.
}
\author{
HwB email: <hwborchers@googlemail.com>
}
\note{
The interpolation is linear only for the moment.
}
\seealso{
\code{\link{deeve}}
}
\examples{
## Free fall: v' = -g - cw abs(v)^1.1, cw = 1.6 drag coefficien
f <- function(t, y) -9.81 + 1.6*abs(y)^1.1
sol <- rk4(f, 0, 10, 0, 100)
# speed after 0.5, 1, 1.5, 2 seconds
cbind(c(0.5,1,1.5,2), -deval(sol$x, sol$y, c(0.5, 1, 1.5, 2)))
# 0.5 3.272267 m/s
# 1.0 4.507677
# 1.5 4.953259
# 2.0 5.112068
# plot(sol$x, -sol$y, type="l", col="blue"); grid()
}
\keyword{ math }