FittedBondDiscountCurve::FittingMethod Class Reference
Base fitting method used to construct a fitted bond discount curve. More...
#include <ql/termstructures/yield/fittedbonddiscountcurve.hpp>

Public Member Functions | |
| virtual Size | size () const =0 |
| total number of coefficients to fit/solve for | |
| Array | solution () const |
| output array of results of optimization problem | |
| Integer | numberOfIterations () const |
| final number of iterations used in the optimization problem | |
| Real | minimumCostValue () const |
| final value of cost function after optimization | |
|
virtual std::auto_ptr < FittingMethod > | clone () const =0 |
| clone of the current object | |
Protected Member Functions | |
| FittingMethod (bool constrainAtZero=true) | |
| constructor | |
| void | init () |
| rerun every time instruments/referenceDate changes | |
| virtual DiscountFactor | discountFunction (const Array &x, Time t) const =0 |
| derived classes must set this | |
Protected Attributes | |
| bool | constrainAtZero_ |
constrains discount function to unity at , if true | |
| FittedBondDiscountCurve * | curve_ |
| internal reference to the FittedBondDiscountCurve instance | |
| Array | solution_ |
| solution array found from optimization, set in calculate() | |
| Array | guessSolution_ |
| optional guess solution to be passed into constructor. | |
| boost::shared_ptr< FittingCost > | costFunction_ |
| base class sets this cost function used in the optimization routine | |
Friends | |
| class | FittedBondDiscountCurve |
Detailed Description
Base fitting method used to construct a fitted bond discount curve.This base class provides the specific methodology/strategy used to construct a FittedBondDiscountCurve. Derived classes need only define the virtual function discountFunction() based on the particular fitting method to be implemented, as well as size(), the number of variables to be solved for/optimized. The generic fitting methodology implemented here can be termed nonlinear, in contrast to (typically faster, computationally) linear fitting method.
- Possible enhancements:
- derive the special-case class LinearFittingMethods from FittingMethod. A linear fitting to a set of basis functions
is any fitting of the form
i.e., linear in the unknown coefficients
. Such a fitting can be reduced to a linear algebra problem
, and for large numbers of bonds, would typically be much faster computationally than the generic non-linear fitting method.
- Warning:
- some parameters to the Simplex optimization method may need to be tweaked internally to the class, depending on the fitting method used, in order to get proper/reasonable/faster convergence.
Member Function Documentation
| virtual DiscountFactor discountFunction | ( | const Array & | x, | |
| Time | t | |||
| ) | const [protected, pure virtual] |
derived classes must set this
user-defined discount curve, as a function of time and an array of unknown fitting coefficients
.
Member Data Documentation
Array guessSolution_ [protected] |
optional guess solution to be passed into constructor.
The idea is to use a previous solution as a guess solution to the discount curve, in an attempt to speed up calculations.
, if true