
问题
编写一个程序来实现线性回归算法。
用户需要输入总共的数值个数。
解决方案
使用C编程语言计算线性回归的解决方案如下:
线性回归通过将线性方程与观测数据相连接来找到两个变量之间的关系。一个变量是解释变量,另一个是因变量。
关于线性回归的逻辑如下所述:
for(i=0;i<n;i++){
printf("enter values of x and y");
scanf("%f%f",&x,&y);
sumx=sumx+x;
sumxsq=sumxsq+(x*x);
sumy=sumy+y;
sumxy=sumxy+(x*y);
}
d=n*sumxsq-sumx*sumx;
m=(n*sumxy-sumx*sumy)/d;
c=(sumy*sumxsq-sumx*sumxy)/d;Finally, print m and c.
Example
Following is the C program to compute the linear regression −
Live Demo
#include<math.h>
#include<stdio.h>
main(){
int n,i;
float x,y,m,c,d;
float sumx=0,sumxsq=0,sumy=0,sumxy=0;
printf("enter the number of values for n:");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("enter values of x and y");
scanf("%f%f",&x,&y);
sumx=sumx+x;
sumxsq=sumxsq+(x*x);
sumy=sumy+y;
sumxy=sumxy+(x*y);
}
d=n*sumxsq-sumx*sumx;
m=(n*sumxy-sumx*sumy)/d;
c=(sumy*sumxsq-sumx*sumxy)/d;
printf("M=%f\tC=%f</p><p>",m,c);
}Output
When the above program is executed, it produces the following result −
enter the number of values for n:5 enter values of x and y1 5 enter values of x and y2 6 enter values of x and y2 4 enter values of x and y3 7 enter values of x and y1 1 M=2.000000 C=1.000000










