R already contains two differentiation functions: D and deriv.
R's existing functions have several limitations:
the derivatives table can't be modified at runtime, and is only available
in C.
function cannot substitute function calls. eg:
f <- function(x, y) x + y; deriv(~f(x, x^2), "x")
The advantages of this package include:
It is entirely written in R, so would be easier to maintain.
Can differentiate function calls:
if the function is in the derivative table, then the chain rule
is applied.
if the function is not in the derivative table (or it is anonymous),
then the function body is substituted in.
these two methods can be mixed. An entry in the derivative table
need not be self-contained -- you don't need to provide an infinite
chain of derivatives.
It's easy to add custom entries to the derivatives table, e.g.
drule[["cos"]] <- alist(x=-sin(x))
The output can be an executable function, which makes it suitable for use in
optimization problems.
Arguments
Details
Package:
Deriv
Type:
Package
Version:
3.8.2
Date:
2017-10-16
License:
GPL (>= 3)
Two main functions are Deriv() for differentiating
and Simplify() for simplifying symbolically.