PDR/3.BackUp/PDR-Origin-Version/include/pdr_linearFit.h

62 lines
2.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/******************** (C) COPYRIGHT 2020 VIVO************************************
* File Name : pdr_linearFit.h
* Department : Sensor Algorithm Team
* Current Version : V2.0(compare QCOM SAP 5.0)
* Author : yuanlin_rjyb@vivo.com & zhanli@vivo.com
* Date of Issued : 2020.7.4
* Comments : PDR 线性拟合相关函数支持
********************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _PDR_LINEAR_FIT_H_
#define _PDR_LINEAR_FIT_H_
/**----------------------------------------------------------------------
* Function : pdr_linearLeastSquaresFitting
* Description : 线性最小二乘拟合 Y = c0 + c1 x
目标函数为sum| nDataY - (a*nDataX+b)|^2最小
* Date : 2020/7/4 zhanli@vivo.com
*---------------------------------------------------------------------**/
int linearLeastSquaresFit(const double *nDataX, const double *nDataY,
const int nLength, double *a, double *b);
/**************************************************************************
* Description : 二维坐标系点的线性拟合ax+by+c=0, 目标函数为点到拟合直线的距离
平方和最小
* Input : x y二维坐标X和Y
num, 二维点个数
* Output : para 拟合直线参数, para[0]:a, para[0]:b, para[0]:c
**************************************************************************/
int leastDistanceLinearFit(double x[], double y[], int num, double para[]);
/**----------------------------------------------------------------------
* Function : gsl_fit_linear
* Description : Fit the data (x_i, y_i) to the linear relationship
Y = c0 + c1 x
returning,
c0, c1 -- coefficients
cov00, cov01, cov11 -- variance-covariance matrix of
c0 and c1,
sumsq -- sum of squares of residuals
This fit can be used in the case where the errors for
the data are uknown, but assumed equal for all points.
The resulting variance-covariance matrix estimates the
error in the coefficientsfrom the observed variance of
the points around the best fit line.
* Date :
*---------------------------------------------------------------------**/
static int gslFitLinear(const double* x, const size_t xstride,
const double* y, const size_t ystride,
const size_t n,
double* c0, double* c1,
double* cov_00, double* cov_01, double* cov_11, double* sumsq);
#endif // !_LINEAR_FITTING_H_
#ifdef __cplusplus
}
#endif