急求一元线性回归的C语言程序

至少能输入11组x,y的值,能够计算x,y的平均数,x平方、y平方的平均数,xy乘积的平均数,y=a+bx中,a、b的值,相关系数r结果至少保留2位有效数字...

第1个回答  2023-03-10
一元线性回归的C语言程序是:利用最小二乘法来估计线性回归方程的参数,然后用这些参数来预测因变量的值1。例如,你可以参考下面的代码:
#include <stdio.h>#include <math.h>//定义一个函数,计算一元线性回归方程的参数a和bvoid linear_regression(double x[], double y[], int n, double *a, double *b){ //定义变量
double sum_x = 0; //x的和
double sum_y = 0; //y的和
double sum_xy = 0; //xy的和
double sum_x2 = 0; //x平方的和
//遍历数组,计算各项和
for (int i = 0; i < n; i++)
{
sum_x += x[i];
sum_y += y[i];
sum_xy += x[i] * y[i];
sum_x2 += x[i] * x[i];
} //根据最小二乘法公式,计算a和b
*a = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - pow(sum_x, 2));
*b = (sum_y - (*a) * sum_x) / n;
}//主函数int main(){ //定义一个自变量数组x,存放观测值
double x[] = {1.0, 2.0, 3.0, 4.0}; //定义一个因变量数组y,存放观测值
double y[] = {3.1, 4.9, 7.2, 8.9}; //定义数组长度n
int n = sizeof(x) / sizeof(x[0]); //定义两个指针变量a和b,用来存放线性回归方程的参数
double a; double b;
相似回答