7 namespace ublas = boost::numeric::ublas;
10 gplib::rvec
CalcGradient(GeneralObjective &Objective,
const gplib::rvec &Model);
13 const gplib::rvec &Model,
const gplib::rvec varfactor);
25 bool changedThreshold;
27 GeneralObjective &Objective;
29 gplib::rmat OldSensitivityMatrix;
30 gplib::rmat SensitivityMatrix;
31 gplib::rmat SensitivityInv;
34 gplib::rmat vnull, unull;
36 gplib::rvec varfactor;
37 void CalcSensitivityMatrix();
39 void ApplyThreshold();
45 void SetModel(
const gplib::rvec &TheModel);
48 changedThreshold =
true;
53 CalcSensitivityMatrix();
54 return SensitivityMatrix;
58 return SensitivityInv;
67 haveModel(false), haveSVD(false), changedThreshold(true), Objective(
68 TheObjective), SVDThreshold(0.0)
gplib::rmat GetModelCorrelation(const gplib::rmat &DataCovar)
gplib::rvec CalcGradient(GeneralObjective &Objective, const gplib::rvec &Model)
Calculate the model gradient vector df(m)/dm.
gplib::rmat CalcPartialDerivs(GeneralObjective &Objective, const gplib::rvec &Model, const gplib::rvec varfactor)
Calculate the model sensitivity matrix.
gplib::rmat GetDataResolution()
gplib::rmat GetModelNullspace()
void SetVariationFactor(const gplib::rvec varfac)
gplib::rvec GetSingularValues()
void SetModel(const gplib::rvec &TheModel)
gplib::rmat GetModelCovariance(const gplib::rmat &DataCovar)
The calculation of the Model Covariance is based on Menke, p. 122 formula 7.37.
const gplib::rmat & GetSensitivityMatrix()
void SetRelativeSVDThreshold(const double t)
ModelAnalysis(GeneralObjective &TheObjective)
gplib::rmat GetModelResolution()
The class ModelAnalysis is used to calculate resolution matrix, nullspace and other parameters for mo...
const gplib::rmat & GetSensitivityInverse() const