jacobian {calculus} R Documentation

## Numerical and Symbolic Jacobian

### Description

Computes the numerical Jacobian of `functions` or the symbolic Jacobian of `characters` in arbitrary orthogonal coordinate systems.

### Usage

```jacobian(
f,
var,
params = list(),
coordinates = "cartesian",
accuracy = 4,
stepsize = NULL
)

f %jacobian% var
```

### Arguments

 `f` array of `characters` or a `function` returning a `numeric` array. `var` vector giving the variable names with respect to which the derivatives are to be computed and/or the point where the derivatives are to be evaluated. See `derivative`. `params` `list` of additional parameters passed to `f`. `coordinates` coordinate system to use. One of: `cartesian`, `polar`, `spherical`, `cylindrical`, `parabolic`, `parabolic-cylindrical` or a vector of scale factors for each varibale. `accuracy` degree of accuracy for numerical derivatives. `stepsize` finite differences stepsize for numerical derivatives. It is based on the precision of the machine by default.

### Details

The function is basically a wrapper for `gradient` with `drop=FALSE`.

`array`.

### Functions

• `%jacobian%`: binary operator with default parameters.

### References

Guidotti, E. (2020). "calculus: High dimensional numerical and symbolic calculus in R". https://arxiv.org/abs/2101.00086

Other differential operators: `curl()`, `derivative()`, `divergence()`, `gradient()`, `hessian()`, `laplacian()`

### Examples

```### symbolic Jacobian
jacobian("x*y*z", var = c("x", "y", "z"))

### numerical Jacobian in (x=1, y=2, z=3)
f <- function(x, y, z) x*y*z
jacobian(f = f, var = c(x=1, y=2, z=3))

### vectorized interface
f <- function(x) x*x*x
jacobian(f = f, var = c(1, 2, 3))

### symbolic vector-valued functions
f <- c("y*sin(x)", "x*cos(y)")
jacobian(f = f, var = c("x","y"))

### numerical vector-valued functions
f <- function(x) c(sum(x), prod(x))
jacobian(f = f, var = c(0,0,0))

### binary operator
"x*y^2" %jacobian% c(x=1, y=3)

```

[Package calculus version 0.3.1 Index]