一、最小二乘法
什么叫最小二乘法
去查查其他资料呗,资料非常多
二、简单示例
假设有以下散点
P1(1, 3)
P2(2, 5)
P3(3, 7)
P4(4, 9)
P5(5, 11)
P6(6,13 )
P7(7, 15)
P8(8, 17)
P9(9, 19)
设拟合直线的公式为: y = kx + b
上边的散点比较简单,用数学的方式试一下就知道表达式为
y = 2x + 1
那如何使用 C++ 的方式编程计算
三、代码示例
#include <iostream>
#include <vector>
#include <numeric>
using Parameter = struct {
double k; // 斜率
double b; // 截距
};
// 最小二乘法计算过程
bool LeastSquares(std::vector<double>& X, std::vector<double>& Y, Parameter& param)
{
if (X.empty() || Y.empty())
return false;
in