Click or drag to resize
ZeroSystem Class
Solves a system of n nonlinear equations f(x) = 0 using a modified Powell hybrid algorithm.
Inheritance Hierarchy
SystemObject
  Imsl.MathZeroSystem

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.2.0
Syntax
[SerializableAttribute]
public class ZeroSystem

The ZeroSystem type exposes the following members.

Constructors
  NameDescription
Public methodZeroSystem
Creates an object to find the zeros of a system of n equations.
Top
Methods
  NameDescription
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodSetGuess
Sets initial guess for the the solution.
Public methodSolve
Solve a system of nonlinear equations using the Levenberg-Marquardt algorithm.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Properties
  NameDescription
Public propertyLogger
The Logger associated with this object.
Public propertyMaximumIterations
The maximum number of iterations allowed.
Public propertyRelativeError
The relative error tolerance.
Top
Remarks

ZeroSystem is based on the MINPACK subroutine HYBRD1, which uses a modification of M.J.D. Powell's hybrid algorithm. This algorithm is a variation of Newton's method, which uses a finite-difference approximation to the Jacobian and takes precautions to avoid large step sizes or increasing residuals. For further description, see More et al. (1980).

A finite-difference method is used to estimate the Jacobian. Whenever the exact Jacobian can be easily provided, f should implement ZeroSystem.IJacobian.

Note that one can use logging to generate intermediate output for the solver. Accumulated levels of detail correspond to Config, Fine, Finer, and Finest logging levels with Config yielding the smallest amount of information and Finest yielding the most. The levels of output yield the following:

LevelOutput
Config Iteration increments are printed.
Fine Prints convergence tests.
Finer Intermediate solution values are provided.
Finest Tracks progress through internal methods.

See Also