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 packages:
* 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 cusomization, 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) {        public double evaluate (
                final double X)
                throws java.lang.Exception
        {
                if (!org.drip.math.common.IsValid (X)) throw new java.lang.Exception ("Invalid variate!");

                 // 1 + 3x  - 2sinx

                return 1. + 3. * X - 2. * java.lang.Math.sin (X);
        }
};


# 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.

Contributors

Lakshmi Krishnamurthy

Last edited Jan 23 at 6:58 PM by Lakshmik, version 7