数学不好的人就是郁闷啊。
前两天写的自动外理HPLC数据的程序当中有一段代码是用来计算标准曲线的斜率的。这东西简单啊,一元线性回归嘛,用最小二乘法,以前写过的。
void Min2Method(float &slope, float &intercept, double X[], double Y[], int nCount) { double SumX, SumY, SumXY, SumX2; SumX = 0; SumX2 = 0; for(int i=0; i<nCount; i++) { SumX += X[i]; SumX2 += (X[i] * X[i]); } SumY = 0; for(int i=0; i<nCount; i++) { SumY += Y[i]; } SumXY = 0; for(int i=0; i<nCount; i++) { SumXY += ( X[i] * Y[i]); } intercept = ( (SumX2*SumY - SumX*SumXY) / (nCount*SumX2 - SumX * SumX)); slope = ( (nCount*SumXY - SumX*SumY) / (nCount*SumX2 - SumX * SumX)); }
可是,老板要求,标准曲线要过原点,也就是过零点的斜率。要把横轴截距设置为零。这下就又不会了。只好google research(因为手头没有书)。谁让咱统计学没学好呢。
经过一番学习,终于了重新找回了那么一点点感觉。首先还是搞清楚上面的代码是怎么来的吧。[......]


近期评论