C++|【C++】代码实现(最小二乘法)

// *input: 存储数据的数组 //size: 数组中实际保存了多少数据 int LSQ_adjust(double *input, long size) { double a11(0.0), a12(0.0), a21(0.0), a22(0.0), b1(0.0), b2(0.0); double a(0.0), b(0.0); long i(0); for (i = 0; i < size; i++) { a11 = a11 + i * i; a12 = a12 + i; a21 = a21 + i; a22 = size; b1 = b1 + i * input[i]; b2 = b2 + input[i]; } //计算直线系数 b = (b1 / a11 - b2 / a21) / (a12 / a11 - a22 / a21); a = b1 / a11 - a12 / a11 * b; for (i = 0; i < size; i++) { input[i] = input[i] - (a * i + b); } return 0; }

【C++|【C++】代码实现(最小二乘法)】

    推荐阅读