作者:谁是我在寻找 | 来源:互联网 | 2023-10-12 11:35
一、最小二乘法(LeastSquares):假设样本集单个样本的线性函数为:为解二元一次方程中的a,b,给上式两边乘以xi得到(也可以两边乘yi):方程组: 解样本集方程组: 矩阵
一、最小二乘法(Least Squares):
假设样本集单个样本的线性函数为:
为解二元一次方程中的a,b,给上式两边乘以xi得到(也可以两边乘yi):
方程组:
解样本集方程组:
矩阵形式:
对矩阵 求逆:
则:
1 public static void LeastSquare(List points, out double a, out double b)
2 {
3 int N = points.Count;
4 if (N <2)
5 {
6 a = 0;
7 b = 0;
8 return;
9 }
10 double X1 = 0, Y1 = 0, X2 = 0, X1Y1 = 0;
11 for (int i = 0; i i)
12 {
13 X2 += points[i].X * points[i].X;
14 X1 += points[i].X;
15 X1Y1 += points[i].X * points[i].Y;
16 Y1 += points[i].Y;
17 }
18 a = (X1Y1 * N - X1 * Y1) / (X2 * N - X1 * X1);
19 b = (X2 * Y1 - X1 * X1Y1) / (X2 * N - X1 * X1);
20 }
View Code