PARP Research Group University of Murcia, Spain


src/qvmath/qvnumericalanalysis.h

00001 /*
00002  *      Copyright (C) 2007, 2008, 2009. PARP Research Group.
00003  *      <http://perception.inf.um.es>
00004  *      University of Murcia, Spain.
00005  *
00006  *      This file is part of the QVision library.
00007  *
00008  *      QVision is free software: you can redistribute it and/or modify
00009  *      it under the terms of the GNU Lesser General Public License as
00010  *      published by the Free Software Foundation, version 3 of the License.
00011  *
00012  *      QVision is distributed in the hope that it will be useful,
00013  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  *      GNU Lesser General Public License for more details.
00016  *
00017  *      You should have received a copy of the GNU Lesser General Public
00018  *      License along with QVision. If not, see <http://www.gnu.org/licenses/>.
00019  */
00020 
00021 #ifndef NUMERICALANALYSIS_H
00022 #define NUMERICALANALYSIS_H
00023 
00027 
00028 #include <QVVector>
00029 #include <QVMatrix>
00030 #include <QVFunction>
00031 
00045 const QVVector qvEstimateGradient(      const QVFunction<QVVector, double> &function,
00046                                         const QVVector &point, const double h = 1e-6);
00047 
00067 const QVMatrix qvEstimateHessian(       const QVFunction<QVVector, double> &function,
00068                                         const QVVector &point, const double h = 1e-3);
00069 
00077 enum GSLMultiminFDFMinimizerType
00078         {
00080         ConjugateFR = 0,
00082         ConjugatePR = 1,
00084         VectorBFGS = 2,
00086         SteepestDescent = 3
00087         };
00088 
00153 const bool qvGSLMinimizeFDF (   QVFunction<QVVector, double> & function, QVVector &point,
00154                                 const GSLMultiminFDFMinimizerType gslMinimizerAlgorithm = ConjugateFR,
00155                                 const int maxIterations = 100, const double maxGradientNorm = 1e-3,
00156                                 const double step = 0.01, const double tol = 1e-4);
00157 
00245 const bool qvGSLMinimizeFDF (   QVFunction<QVVector, double> & function,
00246                                 QVFunction<QVVector, QVVector> & gradientFunction,
00247                                 QVVector &point, const GSLMultiminFDFMinimizerType gslMinimizerAlgorithm = ConjugateFR,
00248                                 const int maxIterations = 100, const double maxGradientNorm = 1e-3,
00249                                 const double step = 0.01, const double tol = 1e-4);
00250 #endif



QVision framework. PARP research group, copyright 2007, 2008.