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

Overview
Introduction
Features
Documentation
QuickStart Samples
Sample Applications
Downloads
Get it now!
Download trial version
How to Buy
Information
Resources
Contact Us
Search

"The Extreme Optimization Statistics Library for .NET is a major boon for those doing statistical work in .NET. I strongly recommend this product."
- Marc Brooks

"I have made it my mission to institutionalize the value of good API design.  I strongly believe that this is key to making developers more productive and happy on our platform. It is clear that you value good API design in your work, and take to heart developer productivity and synergy with the .NET framework."
- Brad Abrams,
Lead Program Manager, Microsoft.

This is a partial list of companies who are using our libraries:
ABB Robotics
Allstate
Applied Materials
Arcam
Astra Schedule
Babson College
Canadian Council on Learning
Canyon Associates
Caxton Associates
CECity
Constellation Energy
CreditSights
DeepOcean
Duke University
Dynamotive
Elecsoft
Engelhard Corporation
Epcor
Equipoise Software
Galileo International
GAM UK
Gammex
GlaxoSmithKline
Global Matrix
The Hartford
Infinera Corporation
Intel
JDS Uniphase
LaBranche & Co.
Learning & Skills Council
Jacobs Consultancy
Litman Gregory
Lucas Systems
Malvern Instruments
Medrio
Merck & Co.
Mintera.
Monitor Software
MorningStar
NanoString Technologies
Paletta Invent
Parametric Portfolio Associates
Prosanos
RATA Associates
RiskShield
Ramboll
Standard & Poor's
Strategic Analysis Corporation
Univ. of Alicante
Univ. of South Carolina
vielife
Xerox
US Army