LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
|
Fit an lsst::afw::math::Function1 object to a set of data points in two dimensions. More...
#include <LeastSqFitter2d.h>
Public Member Functions | |
LeastSqFitter2d (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, const std::vector< double > &s, int order) | |
Eigen::MatrixXd | getParams () |
Eigen::MatrixXd | getErrors () |
Companion function to getParams(). Returns uncertainties in the parameters as a matrix. More... | |
double | valueAt (double x, double y) |
Return the value of the best fit function at a given position (x,y) More... | |
std::vector< double > | residuals () |
double | getChiSq () |
Return a measure of the goodness of fit.
\[ \chi^2 = \sum \left( \frac{z_i - f(x_i, y_i)}{s_i} \right)^2 \] . More... | |
double | getReducedChiSq () |
Return a measure of the goodness of fit.
\[ \chi_r^2 = \sum \left( \frac{z_i - f(x_i, y_i)}{s} \right)^2 \div (N-p) \] Where \( N \) is the number of data points, and \( p \) is the number of parameters in the fit. More... | |
Private Member Functions | |
void | initFunctions () |
Eigen::MatrixXd | expandParams (Eigen::VectorXd const &input) const |
Turn a flattened parameter-like vector into a triangular matrix. More... | |
double | func2d (double x, double y, int term) |
double | func1d (double value, int exponent) |
Private Attributes | |
std::vector< double > | _x |
std::vector< double > | _y |
std::vector< double > | _z |
std::vector< double > | _s |
int | _order |
int | _nPar |
int | _nData |
Eigen::JacobiSVD< Eigen::MatrixXd > | _svd |
Eigen::VectorXd | _par |
std::vector< boost::shared_ptr < FittingFunc > > | _funcArray |
Fit an lsst::afw::math::Function1 object to a set of data points in two dimensions.
The class is templated over the kind of object to fit. Note that we fit the 1d object in each dimension, not the 2d one.
Input is a list of x and y ordinates for a set of points, the z coordinate, and the uncertainties, s. order is order of the polynomial to fit (e.g if the templated function is lsst::afw::math::PolynomialFunction1, then order=3 => fit a function of the form \(ax^2+bx+c\)
FittingFunc | The 1d function to fit in both dimensions. Must inherit from lsst::afw::math::Function1 |
x | Ordinate of points to fit |
y | Ordinate of points to fit |
z | Co-ordinate of pionts to fit |
s | 1 \(\sigma\) uncertainties in z |
order | Polynomial order to fit |
Definition at line 71 of file LeastSqFitter2d.h.
lsst::meas.astrom.sip::LeastSqFitter2d< FittingFunc >::LeastSqFitter2d | ( | const std::vector< double > & | x, |
const std::vector< double > & | y, | ||
const std::vector< double > & | z, | ||
const std::vector< double > & | s, | ||
int | order | ||
) |
Fit a 2d polynomial to a set of data points z(x, y)
FittingFunc | The type of function to fit in each dimension. This function should extend the base class of lsst::afw::math::Function1. Note that this is a 1d function |
x | vector of x positions of data |
y | vector of y positions of data |
z | Value of data for a given x,y. \(z = z_i = z_i(x_i, y_i)\) |
s | Vector of measured uncertainties in the values of z |
order | Order of 2d function to fit |
Definition at line 121 of file LeastSqFitter2d.h.
|
private |
Turn a flattened parameter-like vector into a triangular matrix.
Definition at line 184 of file LeastSqFitter2d.h.
|
private |
Definition at line 302 of file LeastSqFitter2d.h.
|
private |
Definition at line 280 of file LeastSqFitter2d.h.
double lsst::meas.astrom.sip::LeastSqFitter2d< FittingFunc >::getChiSq | ( | ) |
Return a measure of the goodness of fit.
\[ \chi^2 = \sum \left( \frac{z_i - f(x_i, y_i)}{s_i} \right)^2 \]
.
Definition at line 197 of file LeastSqFitter2d.h.
Eigen::MatrixXd lsst::meas.astrom.sip::LeastSqFitter2d< FittingFunc >::getErrors | ( | ) |
Companion function to getParams(). Returns uncertainties in the parameters as a matrix.
Definition at line 249 of file LeastSqFitter2d.h.
Eigen::MatrixXd lsst::meas.astrom.sip::LeastSqFitter2d< FittingFunc >::getParams | ( | ) |
Build up a triangular matrix of the parameters. The shape of the matrix is such that the values correspond to the coefficients of the following polynomials
1 y y^2 y^3
x xy xy^2 0
x^2 x^2y 0 0
x^3 0 0 0
(order==4)
where row x column < order
Definition at line 178 of file LeastSqFitter2d.h.
double lsst::meas.astrom.sip::LeastSqFitter2d< FittingFunc >::getReducedChiSq | ( | ) |
Return a measure of the goodness of fit.
\[ \chi_r^2 = \sum \left( \frac{z_i - f(x_i, y_i)}{s} \right)^2 \div (N-p) \]
Where \( N \) is the number of data points, and \( p \) is the number of parameters in the fit.
Definition at line 215 of file LeastSqFitter2d.h.
|
private |
Definition at line 260 of file LeastSqFitter2d.h.
std::vector< double > lsst::meas.astrom.sip::LeastSqFitter2d< FittingFunc >::residuals | ( | ) |
Return a vector of residuals of the fit (i.e the difference between the input z values, and the value of the fitting function at that point.
Definition at line 234 of file LeastSqFitter2d.h.
double lsst::meas.astrom.sip::LeastSqFitter2d< FittingFunc >::valueAt | ( | double | x, |
double | y | ||
) |
Return the value of the best fit function at a given position (x,y)
Definition at line 222 of file LeastSqFitter2d.h.
|
private |
Definition at line 100 of file LeastSqFitter2d.h.
|
private |
Definition at line 95 of file LeastSqFitter2d.h.
|
private |
Definition at line 94 of file LeastSqFitter2d.h.
|
private |
Definition at line 93 of file LeastSqFitter2d.h.
|
private |
Definition at line 98 of file LeastSqFitter2d.h.
|
private |
Definition at line 92 of file LeastSqFitter2d.h.
|
private |
Definition at line 97 of file LeastSqFitter2d.h.
|
private |
Definition at line 92 of file LeastSqFitter2d.h.
|
private |
Definition at line 92 of file LeastSqFitter2d.h.
|
private |
Definition at line 92 of file LeastSqFitter2d.h.