Welcome to the Exelis VIS product documentation center! Here you will find reference guides, help documents, and product libraries. Discover the products ENVI, IDL, ENVI LiDAR, and ESE, developed by Exelis VIS.
﻿

### NEWTON

NEWTON

The NEWTON function solves a system of n non-linear equations in n dimensions using a globally-convergent Newton’s method.

NEWTON is based on the routine newt described in section 9.7 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission.

## Examples

Use NEWTON to solve an n-dimensional system of n non-linear equations. Systems of non-linear equations may have multiple solutions; starting the algorithms with different initial guesses enables detection of different solutions.

`FUNCTION newtfunc, XRETURN, [X[0] + X[1] - 3, X[0]^2 + X[1]^2 - 9]ENDPRO TEST_NEWTON; Provide an initial guess as the algorithm's starting point:X = [1d, 5d]; Compute the solution:result = NEWTON(X, 'newtfunc'); Print the result:PRINT, 'For X=[1.0, 5.0], result = ', result;Try a different starting point.X = [1d, -1d]; Compute the solution:result = NEWTON(X,'newtfunc');Print the result.PRINT, 'For X=[1.0, -1.0], result = ', resultENDTEST_NEWTON`

IDL prints:

`For X=[1.0, 5.0], result =  -2.4871776e-006       3.0000025`
`For X=[1.0, -1.0], result =        3.0000000 -2.9985351e-008`

## Syntax

Result = NEWTON( X, Vecfunc [, CHECK=variable] [, /DOUBLE] [, ITMAX=value] [, STEPMAX=value] [, TOLF=value] [, TOLMIN=value] [, TOLX=value] )

## Return Value

The result is an n-element vector containing the solution.

## Arguments

### X

An n-element vector containing an initial guess at the solution of the system.

Note: If NEWTON is complex then only the real part is used for the computation.

### Vecfunc

A scalar string specifying the name of a user-supplied IDL function that defines the system of non-linear equations. This function must accept an n-element vector argument X and return an n-element vector result.

For example, suppose the non-linear system is defined by the following equations:

y0 = x0 + x1 - 3,     y1 = x02 + x12 - 9

We write a function NEWTFUNC to express these relationships in the IDL language:

`FUNCTION newtfunc, X`
`   RETURN, [X[0] + X[1] -3.0, X[0]^2 + X[1]^2 - 9.0]`
`END`

## Keywords

### CHECK

NEWTON calls an internal function named fmin() to determine whether the routine has converged to a local minimum rather than to a global minimum (see Numerical Recipes, section 9.7). Use the CHECK keyword to specify a named variable which will be set to 1 if the routine has converged to a local minimum or to 0 if it has not. If the routine does converge to a local minimum, try restarting from a different initial guess to obtain the global minimum.

### DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

### ITMAX

The maximum allowed number of iterations. The default value is 200.

### STEPMAX

The scaled maximum step length allowed in line search. The default value is 100.0.

### TOLF

Set the convergence criterion on the function values. The default value is 1.0 x 10-4.

### TOLMIN

Set the criterion for deciding whether spurious convergence to a minimum of the function fmin() has occurred. The default value is 1.0 x 10-6.

### TOLX

Set the convergence criterion on X. The default value is 1.0 x 10-7.

## Version History

 4 Introduced

﻿

## Notes

###### This information is not subject to the controls of the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). However, it may be restricted from transfer to various embargoed countries under U.S. laws and regulations.
 PRODUCTS & SERVICES ENVI IDL Professional Services

 INDUSTRIES Defense & Intelligence Environmental Monitoring Academic
 LEARN Code Videos Events & Training Case Studies Whitepapers Resources
 SUPPORT Forums Help Articles Reference Guides Updates & Maintenance
 COMPANY Mission Careers Press Room Legal Exelis, Inc
© 2014 Exelis Visual Information Solutions