FittedBondDiscountCurve::FittingMethod Class Reference
#include <ql/termstructures/yield/fittedbonddiscountcurve.hpp>
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.
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 |
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.