Octave can solve sets of nonlinear equations of the form

using the function `fsolve`

, which is based on the MINPACK
subroutine `hybrd`

.

__Loadable Function:__[`x`,`info`] =**fsolve***(*`fcn`,`x0`)-
Given
`fcn`, the name of a function of the form`f (`

and an initial starting point`x`)`x0`,`fsolve`

solves the set of equations such that`f(`

.`x`) == 0

__Loadable Function:__**fsolve_options***(*`opt`,`val`)-
When called with two arguments, this function allows you set options
parameters for the function
`fsolve`

. Given one argument,`fsolve_options`

returns the value of the corresponding option. If no arguments are supplied, the names of all the available options and their current values are displayed.

Here is a complete 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

Go to the first, previous, next, last section, table of contents.