Mantid
|
Cost function for Rwp = (sum_i (( obs_i - cal_i )/sigma_i)**2 ) / (sum_i (obs_i/sigma_i)**2) More...
#include <CostFuncRwp.h>
Public Member Functions | |
CostFuncRwp () | |
Constructor. More... | |
std::string | name () const override |
Get name of minimizer. More... | |
std::string | shortName () const override |
Get short name of minimizer - useful for say labels in guis. More... | |
Public Member Functions inherited from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares | |
CostFuncLeastSquares () | |
Constructor. More... | |
std::string | name () const override |
Get name of minimizer. More... | |
std::string | shortName () const override |
Get short name of minimizer - useful for say labels in guis. More... | |
Public Member Functions inherited from Mantid::CurveFitting::CostFunctions::CostFuncFitting | |
void | applyTies () |
Apply ties in the fitting function. More... | |
virtual void | calCovarianceMatrix (EigenMatrix &covar, double epsrel=1e-8) |
Calculates covariance matrix. More... | |
virtual void | calFittingErrors (const EigenMatrix &covar, double chi2) |
Calculate fitting errors. More... | |
CostFuncFitting () | |
Constructor. More... | |
virtual void | deriv (std::vector< double > &der) const override |
Calculate the derivatives of the cost function. More... | |
void | drop () |
Discard saved parameters, derivatives and hessian. More... | |
const EigenVector & | getDeriv () const |
Return cached or calculate the drivatives. More... | |
API::FunctionDomain_sptr | getDomain () const |
Get the domain the fitting function is applied to. More... | |
virtual API::IFunction_sptr | getFittingFunction () const |
Get fitting function. More... | |
const EigenMatrix & | getHessian () const |
Return cached or calculate the Hessian. More... | |
double | getParameter (size_t i) const override |
Get i-th parameter. More... | |
void | getParameters (EigenVector ¶ms) const |
Get all parameters into a GSLVector. More... | |
API::FunctionValues_sptr | getValues () const |
Get FunctionValues where function values are stored. More... | |
size_t | nParams () const override |
Number of parameters. More... | |
std::string | parameterName (size_t i) const |
Get name of i-th parameter. More... | |
void | pop () |
Restore saved parameters, derivatives and hessian. More... | |
void | push () |
Save current parameters, derivatives and hessian. More... | |
void | reset () const |
Reset the fitting function (neccessary if parameters get fixed/unfixed) More... | |
virtual void | setFittingFunction (API::IFunction_sptr function, API::FunctionDomain_sptr domain, API::FunctionValues_sptr values) |
Set fitting function. More... | |
void | setParameter (size_t i, const double &value) override |
Set i-th parameter. More... | |
void | setParameters (const EigenVector ¶ms) |
Set all parameters. More... | |
virtual double | val () const override |
Calculate value of cost function. More... | |
virtual double | valAndDeriv (std::vector< double > &der) const override |
Calculate the value and the derivatives of the cost function. More... | |
virtual double | valDerivHessian (bool evalDeriv=true, bool evalHessian=true) const |
Calculate the value, the first and the second derivatives of the cost function. More... | |
Public Member Functions inherited from Mantid::API::ICostFunction | |
virtual void | deriv (std::vector< double > &der) const =0 |
Calculate the derivatives of the cost function. More... | |
virtual double | getParameter (size_t i) const =0 |
Get i-th parameter. More... | |
virtual std::string | name () const =0 |
Get name of minimizer. More... | |
virtual size_t | nParams () const =0 |
Number of parameters. More... | |
virtual void | setParameter (size_t i, const double &value)=0 |
Set i-th parameter. More... | |
virtual std::string | shortName () const |
Get short name of minimizer - useful for say labels in guis. More... | |
virtual double | val () const =0 |
Calculate value of cost function. More... | |
virtual double | valAndDeriv (std::vector< double > &der) const =0 |
Calculate the value and the derivatives of the cost function. More... | |
virtual | ~ICostFunction ()=default |
Virtual destructor. More... | |
Private Member Functions | |
double | calSqrtW (const API::FunctionValues_sptr &values) const |
Calcualte sqrt(W). More... | |
std::vector< double > | getFitWeights (API::FunctionValues_sptr values) const override |
Get mapped weights from FunctionValues. More... | |
double | getWeight (const API::FunctionValues_sptr &values, size_t i, double sqrtW=1.0) const |
Get weight (1/sigma) More... | |
Friends | |
class | CurveFitting::ParDomain |
class | CurveFitting::SeqDomain |
Additional Inherited Members | |
Protected Member Functions inherited from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares | |
void | addVal (API::FunctionDomain_sptr domain, API::FunctionValues_sptr values) const override |
Add a contribution to the cost function value from the fitting function evaluated on a particular domain. More... | |
void | addValDerivHessian (API::IFunction_sptr function, API::FunctionDomain_sptr domain, API::FunctionValues_sptr values, bool evalDeriv=true, bool evalHessian=true) const override |
Update the cost function, derivatives and hessian by adding values calculated on a domain. More... | |
void | calActiveCovarianceMatrix (EigenMatrix &covar, double epsrel=1e-8) override |
Calculates covariance matrix for fitting function's active parameters. More... | |
virtual std::vector< double > | getFitWeights (API::FunctionValues_sptr values) const |
Get mapped weights from FunctionValues. More... | |
Protected Member Functions inherited from Mantid::CurveFitting::CostFunctions::CostFuncFitting | |
virtual void | addVal (API::FunctionDomain_sptr domain, API::FunctionValues_sptr values) const =0 |
Increment to the cost function by evaluating it on a domain. More... | |
virtual void | addValDerivHessian (API::IFunction_sptr function, API::FunctionDomain_sptr domain, API::FunctionValues_sptr values, bool evalDeriv=true, bool evalHessian=true) const =0 |
Increments the cost function and its derivatives by evaluating them on a domain. More... | |
virtual void | calActiveCovarianceMatrix (EigenMatrix &covar, double epsrel=1e-8) |
Calculates covariance matrix for fitting function's active parameters. More... | |
void | calTransformationMatrixNumerically (EigenMatrix &tm) |
Calculate the transformation matrix T by numeric differentiation. More... | |
void | checkValidity () const |
Throw a runtime_error if function is invalid. More... | |
bool | isValid () const |
Is the function set and valid? More... | |
void | setDirty () |
Set all dirty flags. More... | |
Protected Attributes inherited from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares | |
double | m_factor |
Protected Attributes inherited from Mantid::CurveFitting::CostFunctions::CostFuncFitting | |
EigenVector | m_der |
bool | m_dirtyDeriv |
dirty derivatives flag More... | |
bool | m_dirtyHessian |
dirty hessian flag More... | |
bool | m_dirtyVal |
dirty value flag More... | |
API::FunctionDomain_sptr | m_domain |
Shared pointer to the function domain. More... | |
API::IFunction_sptr | m_function |
Shared pointer to the fitting function. More... | |
EigenMatrix | m_hessian |
bool | m_includePenalty |
Flag to include constraint in cost function value. More... | |
std::vector< size_t > | m_indexMap |
maps the cost function's parameters to the ones of the fitting function. More... | |
size_t | m_numberFunParams |
Number of all parameters in the fitting function. More... | |
bool | m_pushed |
EigenVector | m_pushedParams |
double | m_pushedValue |
double | m_value |
API::FunctionValues_sptr | m_values |
Shared poinetr to the function values. More... | |
Cost function for Rwp = (sum_i (( obs_i - cal_i )/sigma_i)**2 ) / (sum_i (obs_i/sigma_i)**2)
Copyright ©
This file is part of Mantid.
Mantid is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
Mantid is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
File change history is stored at: https://github.com/mantidproject/mantid. Code Documentation is available at: http://doxygen.mantidproject.org
Definition at line 52 of file CostFuncRwp.h.
Mantid::CurveFitting::CostFunctions::CostFuncRwp::CostFuncRwp | ( | ) |
|
private |
Calcualte sqrt(W).
Get square root of normalization weight (W)
Final cost function = sum_i [ (obs_i - cal_i) / (sigma
Definition at line 54 of file CostFuncRwp.cpp.
Referenced by getFitWeights().
|
overrideprivatevirtual |
Get mapped weights from FunctionValues.
Reimplemented from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares.
Definition at line 33 of file CostFuncRwp.cpp.
References calSqrtW(), and getWeight().
|
private |
Get weight (1/sigma)
Get weight of data point i(1/sigma)
Definition at line 47 of file CostFuncRwp.cpp.
Referenced by getFitWeights().
|
inlineoverridevirtual |
Get name of minimizer.
Reimplemented from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares.
Definition at line 58 of file CostFuncRwp.h.
|
inlineoverridevirtual |
Get short name of minimizer - useful for say labels in guis.
Reimplemented from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares.
Definition at line 61 of file CostFuncRwp.h.
|
friend |
Definition at line 74 of file CostFuncRwp.h.
|
friend |
Definition at line 73 of file CostFuncRwp.h.