欠定方程组的最小范数解

Posted 陆嵩

tags:

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

欠定方程组的最小范数解(超曲面和原点的距离,原点球心球面和超曲面的切点)

今天小白问了我一个问题,我觉得颇有意思,做个记录。

问题描述


小白:插入一个问题,这个切点怎么求?就是固定超平面Ax=b 怎么求它的最小二范数。

她说得不是很清楚,我再翻译一下。几何的提法是,超平面 A x = b Ax=b Ax=b 到圆心距离是多少?代数的提法是,欠定方程组 A x = b Ax=b Ax=b 的最小范数解是什么?

问题建模

我喜欢代数这个提法。重新描述一下,我们考虑
y = A x y=A x y=Ax
这里的 A ∈ R m × n A \\in \\mathbfR^m \\times n ARm×n 是个 胖矩阵,即 m < n m<n m<n。我们不妨假定 A A A 是行满秩的。
对于这个问题,我们知道这里未知量的个数比方程的个数多,也就是解是存在不唯一的。代数学知识告诉我们,它的解集是
x ∣ A x = y = x p + z ∣ z ∈ N ( A ) \\x \\mid A x=y\\=\\left\\x_p+z \\mid z \\in \\mathcalN(A)\\right\\ xAx=y=xp+zzN(A)
这里 x p x_p xp 是个特解。零空间的维数 N ( A ) = n − m \\mathcalN(A)=n-m N(A)=nm 刻画了自由度的数目。那么,我们能否选择一个 z z z ,使得 x p + z x_p+z xp+z 的二范数最小呢?

问题解答

这是个经典的计算数学问题了,如果是低于三维的情况,高中的知识很快就能解出来了。高维情况,答案也很简单,他就是
x ln ⁡ = A T ( A A T ) − 1 y x_\\ln =A^T\\left(A A^T\\right)^-1 y xln=AT(AAT)1y
因为 A 是行满秩的,所以 A A T AA^T AAT 是可逆的。怎么得到的这个解?对于
A x = b Ax = b Ax=b
我们令 x = A T x ˉ x = A^T\\bar x x=ATxˉ x ˉ \\bar x xˉ 是个 m 维的。则有
x = A T x ˉ = A T ( A A T ) − 1 b . x = A^T\\bar x = A^T(AA^T)^-1b. x=ATxˉ=AT(AAT)1b.
事实上,这个 x ln ⁡ x_\\ln xln 就是最小范数解,它极小化了如下的优化问题,

minimize ∥ x ∥ \\|x\\| x
subject to A x = y \\quad A x=y Ax=y

其中, x ∈ R n x \\in \\mathbfR^n xRn。证明如下:

假定其它解满足 A x = y A x=y Ax=y,那么 A ( x − x ln ⁡ ) = 0 A\\left(x-x_\\ln \\right)=0 A(xxln)=0,且
( x − x ln ⁡ ) T x ln ⁡ = ( x − x ln ⁡ ) T A T ( A A T ) − 1 y = ( A ( x − x ln ⁡ ) ) T ( A A T ) − 1 y = 0 \\beginaligned \\left(x-x_\\ln \\right)^T x_\\ln &=\\left(x-x_\\ln \\right)^T A^T\\left(A A^T\\right)^-1 y \\\\ &=\\left(A\\left(x-x_\\ln \\right)\\right)^T\\left(A A^T\\right)^-1 y \\\\ &=0 \\endaligned (xxln)Txln=(xxln)TAT(AAT)1y=(A(xxln))T(AAT)1y=0
也就是说, ( x − x ln ⁡ ) ⊥ x ln ⁡ \\left(x-x_\\ln \\right) \\perp x_\\ln (xxln)xln,那么
∥ x ∥ 2 = ∥ x ln ⁡ + x − x ln ⁡ ∥ 2 = ∥ x ln ⁡ ∥ 2 + ∥ x − x ln ⁡ ∥ 2 ≥ ∥ x ln ⁡ ∥ 2 \\|x\\|^2=\\left\\|x_\\ln +x-x_\\ln \\right\\|^2=\\left\\|x_\\ln \\right\\|^2+\\left\\|x-x_\\ln \\right\\|^2 \\geq\\left\\|x_\\ln \\right\\|^2 x2=xln+xxln2=xln2+xxln2xln2
说明了 x ln ⁡ x_\\ln xln 是范数最小的解。

A † : = A T ( A A T ) − 1 A^\\dagger:=A^T\\left(A A^T\\right)^-1 A:=AT(AAT)1 叫做行满秩胖矩阵 A A A 的伪逆,实际上是 A A A 的右逆。

几何观点

画个示意图如下,