Mantid
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Friends | List of all members
Mantid::CurveFitting::CostFunctions::CostFuncRwp Class Reference

Cost function for Rwp = (sum_i (( obs_i - cal_i )/sigma_i)**2 ) / (sum_i (obs_i/sigma_i)**2) More...

#include <CostFuncRwp.h>

Inheritance diagram for Mantid::CurveFitting::CostFunctions::CostFuncRwp:
Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares Mantid::CurveFitting::CostFunctions::CostFuncFitting Mantid::API::ICostFunction

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 EigenVectorgetDeriv () 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 EigenMatrixgetHessian () const
 Return cached or calculate the Hessian. More...
 
double getParameter (size_t i) const override
 Get i-th parameter. More...
 
void getParameters (EigenVector &params) 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 &params)
 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...
 

Detailed Description

Cost function for Rwp = (sum_i (( obs_i - cal_i )/sigma_i)**2 ) / (sum_i (obs_i/sigma_i)**2)

Author
Date

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.

Constructor & Destructor Documentation

◆ CostFuncRwp()

Mantid::CurveFitting::CostFunctions::CostFuncRwp::CostFuncRwp ( )

Constructor.

Definition at line 26 of file CostFuncRwp.cpp.

References m_value.

Member Function Documentation

◆ calSqrtW()

double Mantid::CurveFitting::CostFunctions::CostFuncRwp::calSqrtW ( const API::FunctionValues_sptr values) const
private

Calcualte sqrt(W).

Get square root of normalization weight (W)

Final cost function = sum_i [ (obs_i - cal_i) / (sigma

  • sqrt(W))]**2

Definition at line 54 of file CostFuncRwp.cpp.

Referenced by getFitWeights().

◆ getFitWeights()

std::vector< double > Mantid::CurveFitting::CostFunctions::CostFuncRwp::getFitWeights ( API::FunctionValues_sptr  values) const
overrideprivatevirtual

Get mapped weights from FunctionValues.

Reimplemented from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares.

Definition at line 33 of file CostFuncRwp.cpp.

References calSqrtW(), and getWeight().

◆ getWeight()

double Mantid::CurveFitting::CostFunctions::CostFuncRwp::getWeight ( const API::FunctionValues_sptr values,
size_t  i,
double  sqrtW = 1.0 
) const
private

Get weight (1/sigma)

Get weight of data point i(1/sigma)

Definition at line 47 of file CostFuncRwp.cpp.

Referenced by getFitWeights().

◆ name()

std::string Mantid::CurveFitting::CostFunctions::CostFuncRwp::name ( ) const
inlineoverridevirtual

Get name of minimizer.

Reimplemented from Mantid::CurveFitting::CostFunctions::CostFuncLeastSquares.

Definition at line 58 of file CostFuncRwp.h.

◆ shortName()

std::string Mantid::CurveFitting::CostFunctions::CostFuncRwp::shortName ( ) const
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.

Friends And Related Function Documentation

◆ CurveFitting::ParDomain

friend class CurveFitting::ParDomain
friend

Definition at line 74 of file CostFuncRwp.h.

◆ CurveFitting::SeqDomain

friend class CurveFitting::SeqDomain
friend

Definition at line 73 of file CostFuncRwp.h.


The documentation for this class was generated from the following files: