最小二乘法:从原理到计算实例的全面解析
最小二乘法:从原理到计算实例的全面解析
前言
最小二乘法是学习许多原理时绕不开的一个数学基础,例如在视觉SLAM等领域中经常遇到。本文将通过简单易懂的方式介绍最小二乘法的基本概念和计算方法,帮助读者理解这一重要的数学工具。
抛出问题
最小二乘法的主要目的是什么?用一个简单的例子来说明:给定以下x值及其对应的f(x)值,我们需要在图像中画出这些点:
x -3 -2 -1 0 1 2 3 4
f(x) -3.2 -2.1 -1.2 0.1 0.9 2.1 3.3 4
上图中黑色的点是表格中数据描出来的点,我们可以看出来这些黑色的点是不在同一条直线上的,那我们如何找一条类似于图中红色的线去尽可能接近的将这些点表示出来,这就是用的最小二乘拟合。(当然也可以拟合二次三次甚至更高次的曲线),所以总结出最小二乘的目的:给定点x以及其对应的f(x),连结曲线,根据杂乱点连成的曲线拟合出一条最接近他的曲线。
如何进行最小二乘拟合的计算
接下来,我们通过两个具体的例子来说明最小二乘拟合的计算方法。
例1:一次多项式拟合
本例的目标是通过给定的数据拟合出一条y=ax+b的直线。给出公式:
其中:
- 0矩阵里面的值全为1,有n个x,就是n个1;
- 1矩阵里面的值就是将x的值全部写进去;
- f 矩阵里面的值就是将f(x)的值全部写进去;
- α0就是我们要算的x的0次方的系数,即b;
- α1是我们要算的x的1次方的系数,即a;
根据公式,我们来计算这个例题:
- 0=(1,1,1,1,1,1,1,1)的转置,因为本题中有8个x值;
- 1=(-3,-2,-1,0,1,2,3,4)的转置,根据例题中给的x值将其全部代入;
- f = (-3.2,-2.1,-1.2,0.1,0.9,2.1,3.3,4)的转置,根据例题中给的f(x)的值将其全部代入;
- 令α0 = b,α1 = a;
计算过程如下:
- (0,0)=11+11+11+···+11=8(一共是8个1*1相加);
- (0,1)=1*(-3)+1*(-2)+···+1*4=4(即0的各项与1的对应项相乘之和);
- 同理可求(1,0)=4,(1,1)=44,(f,0)=3.9,(f,1)=46;
所以得到:
解这个二元一次方程组,得到a=1.048810,b=-0.036905,因此拟合的直线为 y = 1.048810x - 0.036905。
例2:二次多项式拟合
给定下表数据,用二次多项式拟合数据(即y=ax方+bx+c):
x -2 -1 0 1 2
f(x) 0 1 2 1 0
给出公式:
对参数进行解释:
- 0矩阵里面的值全为1,有n个x,就是n个1;
- 1矩阵里面的值就是将x的值全部写进去;
- 2矩阵里面的值就是将x的平方值全部写进去;
- f 矩阵里面的值就是将f(x)的值全部写进去;
- α0就是我们要算的x的0次方的系数,即c;
- α1是我们要算的x的1次方的系数,即b;
- α2是我们要算的x的1次方的系数,即a;
于是我们将对应的值写进去,最后其实就是解一个三元一次方程组,具体过程如下:
总结
通过以上两个例子,我们对最小二乘拟合有了一个初步的认识。最小二乘法是一种通过最小化误差的平方和来寻找数据的最佳函数匹配的方法,广泛应用于各种数据拟合和预测场景中。希望本文能帮助读者理解最小二乘法的基本原理和计算方法。