18 std::vector<std::vector<double>>
X;
22 std::vector<double>
Z;
26 std::vector<double>
A;
51 std::vector<double>
ERR;
89 void setData(
const std::vector<double> & zvalues);
108 std::vector<std::vector<double>>
getMatrix(
109 std::vector<std::vector<double>> &
A,
110 std::vector<int> & r,
124 double evaluate(
const std::vector<double> & values,
const std::vector<double> & params);
145 double calculateDerivative(
int k, std::vector<double> & values, std::vector<double> & params);
163 std::vector<double>& dvec
218 std::string
printMatrix(std::vector<std::vector<double>> & matrix);
Class to compute Marquardt fitter.
Definition: MarquardtFitter.h:9
void initializeWorkspace()
Initializes the workspace for the Marquardt fitter.
Definition: MarquardtFitter.cpp:283
double MINERROR
Mnimum error for evaluating. It is no longer used and it might be removed in the future.
Definition: MarquardtFitter.h:62
std::vector< double > ERR
Error vector.
Definition: MarquardtFitter.h:51
double DELTA
Delta for numerical derivatives.
Definition: MarquardtFitter.h:57
void setData(const std::vector< double > &zvalues)
Set the values of the original data points that are going to be fit.
Definition: MarquardtFitter.cpp:23
void calculateDerivativesFast()
Alternative method for faster computation of partial derivatives matrix.
Definition: MarquardtFitter.cpp:97
void createAlphaPrimeMatrix()
Create the alpha prime matrix.
Definition: MarquardtFitter.cpp:120
double calculateDerivative(int k, std::vector< double > &values, std::vector< double > ¶ms)
Given a set of parameters, and inputs, calculates the derivative of the k'th parameter.
Definition: MarquardtFitter.cpp:48
double calculateErrors()
Compute the cumulative error for current values.
Definition: MarquardtFitter.cpp:38
void calculateDerivatives()
Compute matrix of partial derivatives.
Definition: MarquardtFitter.cpp:88
void updateLambda(double value)
Update lambda.
Definition: MarquardtFitter.cpp:332
std::vector< double > LAMBDA
Lambda vector.
Definition: MarquardtFitter.h:47
void setParameters(const std::vector< double > ¶meters)
Set the arguments/parameters for the fitter.
Definition: MarquardtFitter.cpp:32
std::vector< std::vector< double > > getMatrix(std::vector< std::vector< double >> &A, std::vector< int > &r, int j0, int j1)
Get a submatrix.
Definition: MarquardtFitter.cpp:264
std::vector< std::vector< double > > DERIVATIVES
Vector containing derivatives (jacobian vector)
Definition: MarquardtFitter.h:39
std::vector< std::vector< double > > X
X input vector.
Definition: MarquardtFitter.h:18
std::vector< double > A
A arguments vector.
Definition: MarquardtFitter.h:26
double evaluate(const std::vector< double > &values, const std::vector< double > ¶ms)
Evaluate the marquardt fitter.
Definition: MarquardtFitter.cpp:11
std::string printMatrix()
Build a string representing the alpha prime matrix together with beta vector for debugging purposes.
Definition: MarquardtFitter.cpp:354
std::vector< double > getParameters()
Obtain marquardt fitter current arguments/parameters.
Definition: MarquardtFitter.cpp:347
std::vector< std::vector< double > > & ALPHA_PRIME
Reference to alpha prime vector.
Definition: MarquardtFitter.h:35
MarquardtFitter(std::vector< std::vector< double >> &apMatrix)
Base constructor for MarquardtFitter.
Definition: MarquardtFitter.h:79
std::vector< double > Z
Z output vecctor.
Definition: MarquardtFitter.h:22
size_t alphaPrimeN
Alpha prime vector dimensionality.
Definition: MarquardtFitter.h:31
void iterateValues()
Iterate over values considering the current error and arguments/parameters and compute the changes.
Definition: MarquardtFitter.cpp:146
void calculateDerivativeFast(double x, double c, double d, double coefficient, std::vector< double > &dvec)
Alternative method for faster derivative computation.
Definition: MarquardtFitter.cpp:67
std::vector< double > BETA
Beta vector.
Definition: MarquardtFitter.h:43
void createBetaMatrix()
Create the beta matrix.
Definition: MarquardtFitter.cpp:111
std::string printMatrix(std::vector< std::vector< double >> &matrix)
Build a string representing given matrix for debugging purposes.
void fitData()
Iterate until fitting is finished.
Definition: MarquardtFitter.cpp:292
double MINCHANGE
Minimum change. It is no longer used and it might be removed in the future.
Definition: MarquardtFitter.h:67