18 std::vector<std::vector<double>>
X;
22 std::vector<double>
Z;
26 std::vector<double>
A;
51 std::vector<double>
ERR;
80 : ALPHA_PRIME(apMatrix){}
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);
MarquardtFitter(std::vector< std::vector< double >> &apMatrix)
Base constructor for MarquardtFitter.
Definition: MarquardtFitter.h:79
std::vector< double > getParameters()
Obtain marquardt fitter current arguments/parameters.
Definition: MarquardtFitter.cpp:347
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
void calculateDerivatives()
Compute matrix of partial derivatives.
Definition: MarquardtFitter.cpp:88
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 createBetaMatrix()
Create the beta matrix.
Definition: MarquardtFitter.cpp:111
void setParameters(const std::vector< double > ¶meters)
Set the arguments/parameters for the fitter.
Definition: MarquardtFitter.cpp:32
void fitData()
Iterate until fitting is finished.
Definition: MarquardtFitter.cpp:292
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< std::vector< double > > X
X input vector.
Definition: MarquardtFitter.h:18
std::vector< std::vector< double > > DERIVATIVES
Vector containing derivatives (jacobian vector)
Definition: MarquardtFitter.h:39
double DELTA
Delta for numerical derivatives.
Definition: MarquardtFitter.h:57
std::vector< double > A
A arguments vector.
Definition: MarquardtFitter.h:26
void calculateDerivativeFast(double x, double c, double d, double coefficient, std::vector< double > &dvec)
Alternative method for faster derivative computation.
Definition: MarquardtFitter.cpp:67
double evaluate(const std::vector< double > &values, const std::vector< double > ¶ms)
Evaluate the marquardt fitter.
Definition: MarquardtFitter.cpp:11
void initializeWorkspace()
Initializes the workspace for the Marquardt fitter.
Definition: MarquardtFitter.cpp:283
double MINCHANGE
Minimum change. It is no longer used and it might be removed in the future.
Definition: MarquardtFitter.h:67
std::vector< double > BETA
Beta vector.
Definition: MarquardtFitter.h:43
double calculateErrors()
Compute the cumulative error for current values.
Definition: MarquardtFitter.cpp:38
std::vector< std::vector< double > > & ALPHA_PRIME
Reference to alpha prime vector.
Definition: MarquardtFitter.h:35
void calculateDerivativesFast()
Alternative method for faster computation of partial derivatives matrix.
Definition: MarquardtFitter.cpp:97
std::vector< double > Z
Z output vecctor.
Definition: MarquardtFitter.h:22
std::vector< double > ERR
Error vector.
Definition: MarquardtFitter.h:51
size_t alphaPrimeN
Alpha prime vector dimensionality.
Definition: MarquardtFitter.h:31
void createAlphaPrimeMatrix()
Create the alpha prime matrix.
Definition: MarquardtFitter.cpp:120
void iterateValues()
Iterate over values considering the current error and arguments/parameters and compute the changes...
Definition: MarquardtFitter.cpp:146
Class to compute Marquardt fitter.
Definition: MarquardtFitter.h:9
std::string printMatrix()
Build a string representing the alpha prime matrix together with beta vector for debugging purposes...
Definition: MarquardtFitter.cpp:354
void updateLambda(double value)
Update lambda.
Definition: MarquardtFitter.cpp:332
std::vector< double > LAMBDA
Lambda vector.
Definition: MarquardtFitter.h:47
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