# Nonlinear Equations

Octave can solve sets of nonlinear equations of the form

using the function `fsolve`, which is based on the MINPACK subroutine `hybrd`.

For example, to solve the set of equations

you first need to write a function to compute the value of the given function. For example:

```function y = f (x)

y(1) = -2*x(1)^2 + 3*x(1)*x(2)   + 4*sin(x(2)) - 6;
y(2) =  3*x(1)^2 - 2*x(1)*x(2)^2 + 3*cos(x(1)) + 4;

endfunction
```

Then, call `fsolve` with a specified initial condition to find the roots of the system of equations. For example, given the function `f` defined above,

```[x, info] = fsolve ("f", [1; 2])
```

results in the solution

```x =

0.57983
2.54621

info = 1
```

A value of `info = 1` indicates that the solution has converged.

The function `perror` may be used to print English messages corresponding to the numeric error codes. For example,

```perror ("fsolve", 1)
```

prints

```solution converged to requested tolerance
```

Tolerances and other options for `fsolve` may be specified using the function `fsolve_options`.