| deriv {base} | R Documentation |
Symbolic and Algorithmic Derivatives of Simple Expressions
Description
D is modelled after its S pendant for taking simple symbolic
derivatives.
deriv is a generic function with a default and a
formula method. It returns a call for
computing the expr and its (partial) derivatives,
simultaneously. It uses so-called “algorithmic
derivatives”.
Currently, deriv.formula just calls deriv.default after
extracting the expression to the right of ~.
Usage
D(expr, namevec)
deriv(expr, namevec, function.arg = NULL, tag = ".expr")
Arguments
expr |
expression which should be derivated |
namevec |
character vector, giving the variable names with respect to which derivatives will be computed. |
function.arg |
... ?? ... |
tag |
... ?? ... |
Value
D returns an expression and therefore can easily be iterated
for higher derivatives.
deriv returns a call object which becomes an
expression when evaluated once. Evaluation of the
latter expression returns the function values with a
".gradient" attribute containing the gradient matrix.
Note
This help page should be fixed up by one of R\&R or someone else who
fluently speaks the language in RHOME/src/main/deriv.c.
It's author, MM, has only got a vague idea and thinks that a help page is better than none.
References
A. Griewank, G. F. Corliss (1991). Automatic Differentiation of Algorithms: Theory, Implementation, and Application. SIAM proceedings, Philadelphia.
See Also
nlm for numeric minimization which should make use of
derivatives.
Examples
## formula argument :
dx2x <- deriv(~ x^2, "x") ; dx2x
##- expression({
##- .value <- x^2
##- .grad <- array(0, c(length(.value), 1), list(NULL, c("x")))
##- .grad[, "x"] <- 2 * x
##- attr(.value, "gradient") <- .grad
##- .value
##- })
mode(dx2x)
e.dx2x <- eval(dx2x); mode(e.dx2x)
x <- -1:2
eval(e.dx2x)
## Something `tougher':
trig.exp <- expression(sin(cos(x + y^2)))
D(trig.exp, c("x", "y"))
dxy <- deriv(trig.exp, c("x", "y"))
dxy
y <- 1
eval(eval(dxy))