
rootfinder
RootFinder
Lakshmi Krishnamurthy v2.3 23 January 2014
RootFinder provides the implementation of all the standard bracketing and open root finding techniques, along with a customizable and configurable framework that separates the initialization/bracketing functionality from the eventual root search.
RootFinder achieves its design goal by implementing its functionality over several parts: * Root Finder Framework: Framework to accommodate bracketing/open convergence initialization, execution customization/configuration, iterative variate evolution, and search termination detection * Bracket Initialization Techniques: Implementation of the different techniques for the initial bracket extraction. * Open Method Convergence Zone Initialization Techniques: Implementation of the different techniques for the convergence zone starting variate extraction. * Iterative Open Methods: Implementation of the iterative Open Methods - Newton-Raphson and Secant Methods * Iterative Bracketing Primitive Methods: Implementation of the iterative bracketing primitives – Bisection, False Position, Quadratic Interpolation, Inverse Quadratic Interpolation, and Ridder. * Iterative Bracketing Compound Methods: Implementation of the iterative bracketing compound methodologies – Brent’s and Zheng’s methods. * Search Initialization Heuristics: Implementation of a number of search heuristics to make the search targeted and customized. * Samples: Samples for the various bracketing and the open methods, their customization, and configuration. * Documentation: Literature review, framework description, mathematical and formulation details of the different components, root finder synthetic knowledge unit (SKU) composition, and module and API usage guide. * Regression Tests: Statistical regression analysis and dispersion metric evaluation for the initialization and the iteration components of the different bracketing and open root finder methodologies.
Download RootFinder binary along with the complete DRIP CreditSuite source from the link here.
RootFinder is installed by simply placing the jar file it into the class-path.
RootFinder is part of DRIP CreditSuite – open suite analytics and trading/valuation system for credit products. Detailed documentation and downloads may be found here.
Usage
- First implement ObjectiveFunction
``` org.drip.math.function.AbstractUnivariate of = new org.drip.math.function.AbstractUnivariate (null) { @Override public double evaluate ( final double X) throws java.lang.Exception { if (!org.drip.math.common.IsValid (X)) throw new java.lang.Exception ("Invalid variate!");
return 1. + 3. * X - 2. * java.lang.Math.sin (X); // 1 + 3x - 2sinx
}
}; ```
- Construct the root finder of choice and invoke findRoot()
``` org.drip.math.solver1D.FixedPointFinderOutput fpop = new org.drip.math.solver1D.FixedPointFinderBrent (0., of).findRoot();
if (null != fpop && fpop.containsRoot()) System.out.println ("Root: " + fpop.getRoot); ```
- RootFinder.java in the examples folder shows a detailed example.
Licence
RootFinder is distributed under the Apache 2.0 licence - please see the attached Licence for details.
Project Information
The project was created on Dec 7, 2012.
- License: Apache License 2.0
- 2 stars
- hg-based source control
Labels:
RootFinder
root
rootfinder
Newton
NewtonRaphson
Bisection
Secant
FalsePosition
Brent
Ridder
Quadratic
InverseQuadratic
Bracketing
OpenMethod
Open