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;
}


原创粉丝点击