Extreme Optimization >
User's Guide >
Mathematics Library >
Solving Equations >
The EquationSolver Class
Extreme Optimization User's Guide
User's Guide
Up: Solving Equations Next: Root Bracketing Solvers Previous: Solving Equations Contents
The EquationSolver class
The EquationSolver class is the abstract
base class for all root finder classes. Each root finding algorithm is implemented by a different class, derived from
EquationSolver.
EquationSolver inherits from the IterativeAlgorithm class. The AbsoluteTolerance and RelativeTolerance properties set the desired
precision as specified by the ConvergenceCriterion property. The default
value for both tolerances is MachineConstants.SqrtEpsilon (roughly 10-8).
MaxIterations sets the maximum number of
iterations. The default value for this property depends on the algorithm used. IterationsNeeded returns the actual number of
iterations performed after the algorithm has completed.
The function to solve is passed as a RealFunction
delegate to a constructor, or it can be set later using the TargetFunction property.
The Solve method does the
actual work of solving the equation. When called without parameters, it returns the approximation to the zero of the
target function. When called with a single Double argument, it attempts
to find a point where the target function equals the specified value.
Result codes
The Solve method always
returns the best estimate for the root of the target function. Successive calls to the Result property will also return this value, until the next
call to Solve. An optional parameter lets you specify the right-hand side of the equation
TargetFunction(x) = rightHandSide that is to be solved. The default is zero.
If the ThrowExceptionOnFailure
property is set to true, an exception is thrown if the algorithm has failed to converge to a solution
within the desired accuracy. If false, the Solve method returns the best approximation to
the zero, regardless of whether it is within the requested tolerance.
The Status property indicates how the algorithm
terminated. Its possible values and their meaning are listed below.
| Value |
Description |
| NoResult
|
The algorithm has not been executed. |
| Normal
|
The algorithm ended normally. The desired accuracy has been achieved. |
IterationLimitExceeded
|
The number of iterations needed to achieve the desired accuracy is greater than MaxIterations. |
| RoundOffError
|
Round-off prevented the algorithm from achieving the desired accuracy. |
| BadFunction
|
Bad behavior of the target function prevented the algorithm from achieving the desired accuracy. |
| Divergent
|
Doesn't apply. |
Equation solvers fall in two basic categories: those that use root bracketing, and those that use the derivative
of the target function. Root bracketing solvers require an interval that is known to contain a zero of the target
function. The interval is reduced in successive iterations until it is within the desired tolerance. Other algorithms
require only a single starting value, but require the derivative of the function.
References
Chabert, J.-L. (Ed.). A History of Algorithms: From the Pebble to the Microchip. New York:
Springer-Verlag, 1999.
Up: Solving Equations Next: Root Bracketing Solvers Previous: Solving Equations Contents
Copyright 2004-2008,
Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M
Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual
Studio.NET, and the Visual Studio Logo are registered trademarks of Microsoft Corporation