Least_Square_Method
来源:互联网 发布:网店运营优化整体方案 编辑:程序博客网 时间:2024/06/02 01:59
#include<iostream>
#include<math.h>
using namespace std;
void Least_Square_Method(float *A,float *B,float X[],float Y[],int cal)
{
float sum_Xi=0,sum_XiXi=0,sum_Yi=0,sum_XiYi=0,temp=0;
int i=0;
for(;i<cal;++i)
{
sum_Xi=sum_Xi+X[i];
sum_Yi=sum_Yi+Y[i];
sum_XiXi=sum_XiXi+X[i]*X[i];
sum_XiYi=sum_XiYi+X[i]*Y[i];
}
temp=sum_Xi*sum_Yi-cal*sum_XiYi;
*B=temp/(sum_Xi*sum_Xi-cal*sum_XiXi);
*A=(sum_Yi-sum_Xi*(*B))/cal;
}
int main()
{
float A,B;
float *X,*Y;
int n,i;
printf("请输入数据的项数:");
scanf("%d",&n);
X=(float *)malloc(sizeof(float)*n);
Y=(float *)malloc(sizeof(float)*n);
printf("\n请输入每一项的值(先输入Xi后输入Yi):\n");
i=0;
for(;i<n;++i)
scanf("%f",&(X[i]));
i=0;
for(;i<n;++i)
scanf("%f",&(Y[i]));
i=0;
for(;i<n;++i)
{
printf("X=%f,Y=%f ",X[i],Y[i]);
}
///
Least_Square_Method(&A,&B,X,Y,n);
printf("\nA:%f B:%f\n",A,B);
return 0;
}
#include<math.h>
using namespace std;
void Least_Square_Method(float *A,float *B,float X[],float Y[],int cal)
{
float sum_Xi=0,sum_XiXi=0,sum_Yi=0,sum_XiYi=0,temp=0;
int i=0;
for(;i<cal;++i)
{
sum_Xi=sum_Xi+X[i];
sum_Yi=sum_Yi+Y[i];
sum_XiXi=sum_XiXi+X[i]*X[i];
sum_XiYi=sum_XiYi+X[i]*Y[i];
}
temp=sum_Xi*sum_Yi-cal*sum_XiYi;
*B=temp/(sum_Xi*sum_Xi-cal*sum_XiXi);
*A=(sum_Yi-sum_Xi*(*B))/cal;
}
int main()
{
float A,B;
float *X,*Y;
int n,i;
printf("请输入数据的项数:");
scanf("%d",&n);
X=(float *)malloc(sizeof(float)*n);
Y=(float *)malloc(sizeof(float)*n);
printf("\n请输入每一项的值(先输入Xi后输入Yi):\n");
i=0;
for(;i<n;++i)
scanf("%f",&(X[i]));
i=0;
for(;i<n;++i)
scanf("%f",&(Y[i]));
i=0;
for(;i<n;++i)
{
printf("X=%f,Y=%f ",X[i],Y[i]);
}
///
Least_Square_Method(&A,&B,X,Y,n);
printf("\nA:%f B:%f\n",A,B);
return 0;
}