|
楼主 |
发表于 2016-6-30 09:43:24
|
显示全部楼层
这个是网上下的函数,我检测了很多遍好像都是对的,大神帮我看一下
#define nCount 6//点数 6
xdata double X[6]={0,0.1,0.2,0.5,1.0,1.5};
xdata double Y[6]={0.02,0.082,0.162,0.407,0.805,1.185};
xdata double xyTopX,xyTopY,RTop;
void Min2Method()
/////////////////////////////////////////////////////////////////////////////////////
//////// 功能描述:利用最小二乘法求斜率 //////////
//////// xyTopX -- 截距 //////////
//////// xyTopY -- 斜率
/////// RTop -- 拟合优度
{
unsigned int i;
double SumX, SumY, SumXY, SumX2;
SumX = 0;
SumX2 = 0;
for( i=0; i<nCount; i++)
{
SumX += X;
SumX2 += (X*X);
}
SumY = 0;
for( i=0; i<nCount; i++)
{
SumY += Y;
}
SumXY = 0;
for( i=0; i<nCount; i++)
{
SumXY += ( X* Y);
}
xyTopX = ( (SumX2*SumY - SumX*SumXY) / (nCount*SumX2 - SumX * SumX));
xyTopY = ( (nCount*SumXY - SumX*SumY) / (nCount*SumX2 - SumX * SumX));
} |
|