求解线性方程组(2)
线性方程组的最小范数解
上一篇博文介绍了线性方程组的情况之一,即未知数数量小于方程个数的情况,介绍了最小二乘法,在本文中将介绍线性方程组的另一种情况,即方程个数小于未知数数量的情况,此时方程组有无限多的解,但是最接近原点的解,即范数最小的解只有一个,也就是这里将会介绍的线性方程组的最小范数解。
考虑线性方程组\(Ax=b\),其中,要寻找其最小范数解,即相当于求解下列最优化问题:
这个问题属于等式约束的最优化问题,可以利用拉格朗日乘子法求解,在这里我们介绍另外一种方法。
先给出结论,该方程组的最小范数解为,下面给出证明:
令代入上式最右边项可以得到,于是,是一个定值,而当时,恒成立,因此可以得到是该优化问题的唯一最小解,即最小范数解。
Kaczmarz算法
Kaczmarz算法是一种迭代求解最小范数解的算法,可以省去求解的步骤,使计算更为高效,假设,直接给出迭代公式如下:
在前次迭代中,即时,有:
对于第次迭代,重新使用的第1行以及的第1个元素,即
每迭代m次便从头循环一次,可以视为迭代算法的过程。可以证明得到在Kaczmarz算法中,如果,则当时,,详细证明过程在这里省略。
后面的文章还会介绍线性方程组的一般解法,伪逆等相关内容,To be continue…