derivchk <- function (x, y, Dy) { # checks that DY is the derivative of Y by comparing it # with Y's central difference estimate. # The value of |DYHAT-DY|/|DY| is returned. n <- length(x) if (n < 3) stop("X does not have enough elements") if (n != length(y) | n != length(Dy)) stop( "Lengh of Y or DY not consistent with length of X") indup <- 3:n inddn <- 1:(n-2) indct <- 2:(n-1) xdiff <- x[indup]-x[inddn] if (min(xdiff) <= 0) stop("X not strictly increasing") Dyhat <- (y[indup]-y[inddn])/xdiff ratio <- sqrt(mean((Dyhat-Dy[indct])^2))/sqrt(mean(Dy[indct]^2)) return(ratio) }