00001
00002
00003
00004
00005
00006
00007 #ifndef FITTING_STATISTICS_H
00008 #define FITTING_STATISTICS_H
00009
00010 #include "FittingCurveCoefficients.h"
00011 #include "FittingPointsConvenient.h"
00012 #include <QVector>
00013
00014 const int MAX_POLYNOMIAL_ORDER = 9;
00015
00016 class Matrix;
00017
00019 class FittingStatistics
00020 {
00021 public:
00023 FittingStatistics ();
00024 virtual ~FittingStatistics ();
00025
00035 void calculateCurveFitAndStatistics (unsigned int order,
00036 const FittingPointsConvenient &pointsConvenient,
00037 FittingCurveCoefficients &coefficients,
00038 double &mse,
00039 double &rms,
00040 double &rSquared);
00041
00042 private:
00043
00044 void calculateCurveFit (int orderReduced,
00045 const FittingPointsConvenient &pointsConvenient,
00046 FittingCurveCoefficients &coefficients);
00047 void calculateStatistics (const FittingPointsConvenient &pointsConvenient,
00048 const FittingCurveCoefficients &coefficients,
00049 double &mse,
00050 double &rms,
00051 double &rSquared);
00052 void loadXAndYArrays (int orderReduced,
00053 const FittingPointsConvenient &pointsConvenient,
00054 Matrix &X,
00055 QVector<double> &Y) const;
00056 double yFromXAndCoefficients (const FittingCurveCoefficients &coefficients,
00057 double x) const;
00058 };
00059
00060 #endif // FITTING_STATISTICS_H