#include<iostream>
using namespace std;
double aver(double a[],int n)
{
double all=0,aver=0;
for(int i=0;i<n;i++)
all=all+*(a+i);
aver=all/n;
return aver;
}
double sum_of_products(double a[],double b[],int n)
{
double all=0;
for(int i=0;i<n;i++)
all=all+a[i]*b[i];
return all;
}
double sum_of_squares(double a[],int n)
{
double all=0;
for(int i=0;i<n;i++)
all=all+a[i]*a[i];
return all;
}
void regression(double argu[],double a[],double b[],int n)
{
double A,B,Aver1,Aver2,Sum_of_products,Sum_of_squares;
Aver1=aver(a,n);
Aver2=aver(b,n);
Sum_of_products=sum_of_products(a,b,n);
Sum_of_squares=sum_of_squares(a,n);
B=(Sum_of_products-n*Aver1*Aver2)/(Sum_of_squares-n*Aver1*Aver1);
A=Aver2-B*Aver1;
argu[0]=B;
argu[1]=A;
}
void deviation(double A,double B,int n,double a[],double b[],double c[])
{
double parameter[2];
parameter[0]=B;
parameter[1]=A;
double b1[10];
regression(parameter,a,b,10);
for(int i=0;i<n;i++)
{
b1[i]=B*a[i]+A;
c[i]=b1[i]-b[i];
}
}
int main()
{
double x[10],y[10],z[10],argu[2];
for(int i=0;i<10;i++)
cin>>x[i];
for(int i=0;i<10;i++)
cin>>y[i];
regression(argu,x,y,10);
cout<<"回归方程为:y="<<argu[0]<<"x+"<<argu[1]<<endl;
deviation(argu[1],argu[0],10,x,y,z);
cout<<"离差为:";
for(int i=0;i<10;i++)
cout<<z[i]<<'\t';
return 0;
}
07-01
1785
03-22