regress.c

来自「EM算法的改进」· C语言 代码 · 共 51 行

C
51
字号
/* * $Id: regress.c 1339 2006-09-21 19:46:28Z tbailey $ *  * $Log$ * Revision 1.1  2005/07/29 17:25:42  nadya * Initial revision * */#include "macros.h"/*	regress	Least squares regression on points (x,y) to give		y = mx + b	Returns the root mean squared error of the fit.*/extern double regress(  int n,			/* number of points */  double *x,			/* x values */  double *y,			/* y values */  double *m,			/* slope */  double *b 			/* y intercept */){  int i;  double sx=0, sy=0, sxx=0, sxy=0;  double mse=0;  for (i=0; i<n; i++) {    sx += x[i];    sy += y[i];    sxx += x[i]*x[i];    sxy += x[i]*y[i];  }  *m = (n*sxy - sy*sx) / (n*sxx - sx*sx);  *b = (sy - *m*sx)/n;  for (i=0; i<n; i++) {    double err = y[i] - (*m*x[i] + *b);    mse += err * err;  }  mse = sqrt(mse);  mse /= n;  return mse;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?