1. 引文
假设我们要确定一根绳子的弹性,而它的长度与拉力间服从公式,F为拉力,l为绳子在拉力F作用下的长度,e和k为待确定的常数。为此,我们进行一批实验采集如下数据,并绘制其散点图
根据此数据,构造的公式及其矩阵形式为
要解此方程需要利用最小二乘方法。
2. 最小二乘方法
对于上例所示的系统,A为m*n且m>n的矩阵,被成为超定的(overdetermined)。一般,它没有解。例如,当m=3,n=2时,A的两个列向量和在空间图形如下,我们希望能获得此列向量的线性组合以使。从图中,可清楚看出这是不可能的,因为b并不在和张成的空间中。
这时,因为无法求求解,退而求其次,我们希望解x1和x2使残差向量(residual vector)尽可能小。当然,这时解就依赖于如何度量残差向量的长度。在最小二乘方法中使用欧氏距离,问题转换为下面优化问题
由上面图形可知,当线性组合使残差变量与品面正交时,向量b到此平面的距离最小。表达为公式把代入上式有,解此公式就得到最小二乘意义下的解。
3. 案例分析
利用matlab
>> C=A’*A % Normal equations
C= 5 15
15 55
>> x=C\(A’*b)
x = 4.2360
3.2260
注意,利用正规方程组解最小二乘问题有以下缺陷:
3.1 会导致信息
对于,。当非常小时,会造成的浮点表达,从而导致正规方程组为奇异的。因此,A中重要信息在中丢失了