Next: Sparse Matrices, Previous: Linear Algebra, Up: Top
Octave can solve sets of nonlinear equations of the form
F (x) = 0
using the function fsolve
, which is based on the Minpack
subroutine hybrd
.
Given fcn, the name of a function of the form
f (
x)
and an initial starting point x0,fsolve
solves the set of equations such thatf(
x) == 0
.If fcn is a two-element string array, the first element names the function f described above, and the second element names a function of the form
j (
x)
to compute the Jacobian matrix with elementsdf_i jac(i,j) = ---- dx_jYou can use the function
fsolve_options
to set optional parameters forfsolve
.
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.Options include
"tolerance"
- Nonnegative relative tolerance.
Here is a complete example. To solve the set of equations
-2x^2 + 3xy + 4 sin(y) = 6 3x^2 - 2xy^2 + 3 cos(x) = -4
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) -| solution converged to requested tolerance