Learn R Programming

pracma (version 1.8.8)

fsolve: 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.

Value

  • List with
  • xlocation of the solution.
  • fvalfunction value at the solution.

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.

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

Run this code
# 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

Run the code above in your browser using DataLab