R: Symbolic Differentiation

Deriv-package {Deriv} | R Documentation

## Symbolic Differentiation

### Description

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.

### Details

Package: | Deriv
Type: | Package
Version: | 3.8.4
Date: | 2018-02-15
License: | GPL (>= 3)

Two main functions are Deriv() for differentiating and Simplify() for simplifying symbolically.

### Author(s)

Andrew Clausen, Serguei Sokol

Maintainer: Serguei Sokol (sokol at insa-toulouse.fr)

### References

https://andrewclausen.net/computing/deriv.html

### See Also

`D`, `deriv`, packages Ryacas, rSymPy

### Examples

    ## Not run: f <- function(x) x^2
    ## Not run: Deriv(f)
    # function (x)
    # 2 * x

[Package Deriv version 3.8.4 Index]