采用线性回归的方式,Y=bx+a,求出系数

0eba9d11b73bd8f9634f6ed6be1261d9.png

#include 

#include 

int main()

{

//float x[6]={0.0,1.0,2.0,3.0,4.0,5.0};

//float y[6]={1.1,1.9,3.1,3.9,4.4,4.9};

/*float x[6]={0.0,1.0,2.0,3.0,4.0,5.0};

float y[6]={0.0,1.0,2.0,3.0,4.0,5.0};*/

float x[6]={0.0,1.0,2.0,3.0,4.0,5.0};

float y[6]={1.0,1.0,1.0,1.0,1.0,1.0};

float a,b,mxy,xx,yy,x2,x22;

int i;

a=b=mxy=xx=yy=x2=x22=0.0;

for(i=0;i<6;i++)

{

mxy=6.0*x[i]*y[i]+mxy;

xx=1.0*x[i]+xx;

yy=1.0*y[i]+yy;

x2=1.0*x[i]*x[i]*6.0+x2;

x22=1.0*x[i]+x22;

}

b=1.0*(mxy-xx*yy)/(x2-x22*x22);

a=1.0*yy/6.0-b*xx/6.0;

printf("Y=%0.2fx+%0.2f\n",b,a);

system("pause");

return 0;

}

Y=0.00x+1.00

更多推荐