R: Solve System of Nonlinear Equations

fsolve {pracma} | R Documentation

## Solve System of Nonlinear Equations

### Description

Solve a system of `m` nonlinear equations of `n` variables.

### Usage

    fsolve(f, x0, J = NULL,
           maxiter = 100, tol = .Machine$double.eps^(0.5), ...)

### Arguments

`f` | function describing the system of equations.
`x0` | point near to the root.
`J` | Jacobian function of `f`, or `NULL`.
`maxiter` | maximum number of iterations in `gaussNewton`.
`tol` | tolerance to be used in Gauss-Newton.
`...` | additional variables to be passed to the function.

### Details

`fsolve` tries to solve the components of function `f` simultaneously and uses the Gauss-Newton method with numerical gradient and Jacobian. If `m = n`, it uses `broyden`.

### Value

List with

`x` | location of the solution.
`fval` | function value at the solution.

### Note

`fsolve` mimics the Matlab function of the same name.

### References

Antoniou, A., and W.-S. Lu (2007). Practical Optimization: Algorithms and Engineering Applications. Springer Science+Business Media, New York.

### See Also

`broyden`, `gaussNewton`

### Examples

    ## Not run:
    # Find a matrix X such that X * X * X = [1, 2; 3, 4]
      F <- function(x) {
        a <- matrix(c(1, 3, 2, 4), nrow = 2, ncol = 2, byrow = TRUE)
        X <- matrix(x,             nrow = 2, ncol = 2, byrow = TRUE)
        return(c(X %*% X %*% X - a))
      }
      x0 <- matrix(1, 2, 2)
      X  <- matrix(fsolve(F, x0)$x, 2, 2)
      X
      # -0.1291489  0.8602157
      #  1.2903236  1.1611747

    ## End(Not run)

[Package pracma version 2.0.4 Index]