线性方程求解之 二范数类型

Posted kaluotee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性方程求解之 二范数类型相关的知识,希望对你有一定的参考价值。

求解线性系统
在线性代数中我们经常需要求解具有m个方程 ,n 个 未知量的问题。这个问题可以以简洁的形式 表示为
Ax=b
其中 A 是一个m×n x 是一个长度为n的向量(如不特别强调,都是列向量) ,b是一个长度为m 的向量。如果 m=n ,并且 满秩(各行向量或列向量线性无关) ,则这个线性方程的解为 x=A1b
那如果 m>n ?这意味着什么?
事实上,实际问题中常常碰到的是 m>n 的情况 ,这时我们方程的数量大于未知数的数量,这样我们面对的是一个over-determined 系统的求解问题。每个方程典型上包含噪声,或者是不正确的观察。在这样的情形下,我们尝试求解的是下面的最优化问题。
minxAxb2=minx[xTATAx2xTATb+bTb]
(这个优化问题看起来有二次项,是非线性问题,但幸运的是,这个方程对其求偏导后可以得到线性方程)
使用矩阵微分的规则,我们对这个方程 求偏导,得到下面的结果
ATAxATb=0
AT(Axb)=0
ATAX=ATb(3.11)

因为 ATA n×n 方阵,并且是满秩的,因此这个方程的解为
x=(ATA)1ATb
那么这个解跟 (Axb)=0 的解有什么关系吗?
我的理解, x=(ATA)1ATb 是这个方程 (Axb)=0 的近似解。事实上, (Axb)=0 中如果 A 不是方阵,则这个方程本身是不能求解的,因为A1 不存在,你不能求解出 x=A1b .但通过引入 (ATA)1 ,你可以求出解 x=(ATA)1ATb 。这个解与 x=A1b 一般是不同的(除非 A 存在逆。 所以x=(ATA)1ATb 应该是 (Axb)=0 的近似解。

以上是关于线性方程求解之 二范数类型的主要内容,如果未能解决你的问题,请参考以下文章

如何获取矩阵二范数 opencv

矩阵的奇异值分解

线代之高斯消元

稀疏优化L1范数最小化问题求解之基追踪准则(Basis Pursuit)——原理及其Python实现

稀疏优化L1范数最小化问题求解之基追踪准则(Basis Pursuit)——原理及其Python实现

凸优化之基追踪