最小二乘法是一种数学方法,用于拟合数据并找到最佳拟合直线或曲线。下面是一个C语言代码实现最小二乘法的例子:

#include <stdio.h>
#include <math.h>

// 用于存储数据点
struct Data {
    double x;
    double y;
};

// 用于计算最小二乘法拟合结果
void leastSquares(int n, struct Data data[], double *a, double *b) {
    double sumx = 0.0, sumy = 0.0, sumx2 = 0.0, sumxy = 0.0;

    for (int i = 0; i < n; i++) {
        sumx += data[i].x;
        sumy += data[i].y;
        sumx2 += pow(data[i].x, 2);
        sumxy += data[i].x * data[i].y;
    }

    *b = (n * sumxy - sumx * sumy) / (n * sumx2 - pow(sumx, 2));
    *a = (sumy - (*b) * sumx) / n;
}

int main() {
    int n = 6;
    struct Data data[6] = { {1,2.1}, {2,2.9}, {3,4.2}, {4,5.1}, {5,6.8}, {6,7.9} };
    double a, b;

    leastSquares(n, data, &amp;a, &amp;b);

    printf("a = %lf, b = %lf\n", a, b);

    return 0;
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐