线性最小二乘问题的数值解法
这里我们讨论的问题主要是Ax=b, b ∉ R ( A ) b\notin R(A) b∈/R(A)时的处理方法
最小二乘问题的描述
方程组的分类
对于方程组
A
x
=
b
,
A
∈
C
m
×
n
,
b
∈
C
m
(1)
Ax=b,A\in C^{m\times n},b\in C^m\tag{1}
Ax=b,A∈Cm×n,b∈Cm(1)
- 超定方程组:m>n
- 欠定方程组:m<n
线性最小二乘问题的基本概念
最小二乘问题的特征及一般表示
-
最小二乘问题
设 A ∈ C m × n , b ∈ C m A\in C^{m\times n},b\in C^m A∈Cm×n,b∈Cm,确定 x ∈ C n x\in C^n x∈Cn使得
∥ A x − b ∥ 2 = min x ∈ C n ∥ A x − b ∥ 2 (2) \lVert Ax-b\rVert_2=\min_{x\in C^n}\lVert Ax-b\rVert_2 \tag{2} ∥Ax−b∥2=x∈Cnmin∥Ax−b∥2(2)问题(2)称为线性最小二乘问题(LS问题),而x称为最小二乘解。称 r ( x ) = b − A x r(x)=b-Ax r(x)=b−Ax为残差向量
-
所有最小二乘解的集合记为 S L S S_{LS} SLS
S L S = { x ∈ C n : x 满 足 ( 1 ) } (3) S_{LS}=\{x\in C^n:x满足(1)\}\tag{3} SLS={x∈Cn:x满足(1)}(3)S L S S_{LS} SLS中2-范数最小者称为极小范数解,记为 x L S x_{LS} xLS
∥ x L S ∥ 2 = min { ∥ x ∥ 2 : x ∈ S L S } (4) \lVert x_{LS}\rVert_2=\min\{\lVert x\rVert_2:x\in S_{LS}\}\tag{4} ∥xLS∥2=min{∥x∥2:x∈SLS}(4) -
极小范数解:方程组(1)有解的情况
∥ x 0 ∥ 2 = min A x = b ∥ x ∥ 2 (5) \lVert x_{0}\rVert_2=\min_{Ax=b}\lVert x\rVert_2\tag{5} ∥x0∥2=Ax=bmin∥x∥2(5) -
极小范数最小二乘解:方程组无解的情况
∥ x 0 ∥ 2 = min m i n ∥ A x − b ∥ 2 ∥ x ∥ 2 (6) \lVert x_{0}\rVert_2=\min_{min\lVert Ax-b\rVert_2}\lVert x\rVert_2\tag{6} ∥x0∥2=min∥Ax−b∥2min∥x∥2(6) -
线性方程组(1)有解的充要条件是
A A † b = b (7) AA^{\dagger}b=b\tag{7} AA†b=b(7)
并且在有解时,其通解为
x = A † b + ( I − A † A ) z 其 中 z ∈ C n 任 意 (8) x=A^{\dagger}b+(I-A^{\dagger}A)z\tag{8}\\其中z\in C^n任意 x=A†b+(I−A†A)z其中z∈Cn任意(8)
证明:“必要性”:
若 A A † b = b AA^{\dagger}b=b AA†b=b,则 x = A † b x=A^{\dagger}b x=A†b就是其解
“充分性”
若 A x = b Ax=b Ax=b有解,则 N ( A ) = { ( I n − A † A ) z : z ∈ C n } N(A)=\{(I_n-A^{\dagger}A)z:z\in C^n\} N(A)={(In−A†A)z:z∈Cn}
-
如果方程组(1)有解,则它的极小范数解 x 0 x_0 x0唯一,并且 x 0 = A † b x_0=A^{\dagger}b x0=A†b
线性最小二乘问题的等价性问题
法方程
-
x是最小二乘问题(2)的极小解的,即 x ∈ S L S x\in S_{LS} x∈SLS的充分必要条件是x为方程
A H A x = A H b (9) A^HAx=A^Hb\tag{9} AHAx=AHb(9)
的解,(9)式称为最小二乘问题的法方程。
-
证明:
min x ∥ A x − b ∥ 2 \min_x\lVert Ax-b\rVert_2 minx∥Ax−b∥2等价于 min x ∥ A x − b ∥ 2 2 = min x ( A x − b ) T ( A x − b ) \min_x\lVert Ax-b\rVert_2^2=\min_x(Ax-b)^T(Ax-b) minx∥Ax−b∥22=minx(Ax−b)T(Ax−b)
化简得, min x { x T A T A x − x T A T b − b T A x + b T b } \min_x\{x^TA^TAx-x^TA^Tb-b^TAx+b^Tb\} minx{xTATAx−xTATb−bTAx+bTb}。设 y = x T A T A x − x T A T b − b T A x + b T b y=x^TA^TAx-x^TA^Tb-b^TAx+b^Tb y=xTATAx−xTATb−bTAx+bTb,
令 d y d x = 0 \dfrac{dy}{dx}=0 dxdy=0得,
2 A T A x − 2 A T b = 0 A T A x = A T b 2A^TAx-2A^Tb=0\\ A^TAx=A^Tb 2ATAx−2ATb=0ATAx=ATb
所以,(2)式的极小解为 A H A x = A H b A^HAx=A^Hb AHAx=AHb的解
KKT方程
-
设 A ∈ C m × n A\in C^{m\times n} A∈Cm×n, b ∈ R n b\in R^n b∈Rn,则 x x x和 r = b − A x r=b-Ax r=b−Ax分别是最小二乘问题(2)的极小解和残量的充分必要条件是x和r为鞍点系统
[ I A A H O ] [ r x ] = [ b 0 ] (10) \begin{bmatrix}I&A\\A^H&O\end{bmatrix} \begin{bmatrix}r\\x\end{bmatrix}= \begin{bmatrix}b\\0\end{bmatrix}\tag{10} [IAHAO][rx]=[b0](10)
的解。上述线性系统称为最小二乘问题的KKT方程 -
证明:
若 x x x为最小二乘问题(2)的极小解,而 r = b − A x r=b-Ax r=b−Ax为其残量,则
x = A † b + ( I − A † A ) z r = b − A x = b − A A † b = ( I − A A † ) b x=A^{\dagger}b+(I-A^{\dagger}A)z\\ r=b-Ax=b-AA^{\dagger}b=(I-AA^{\dagger})b x=A†b+(I−A†A)zr=b−Ax=b−AA†b=(I−AA†)b
由广义逆 A † A^\dagger A†的性质 A A † = ( A A † ) T , A A † A = A AA^\dagger=(AA^\dagger)^T,AA^\dagger A=A AA†=(AA†)T,AA†A=A及等式 r + A x = b r+Ax=b r+Ax=b,得
A H r = A H ( I − A A † ) b = [ ( I − A A † ) A ] H b = [ A − A A † A ] H b = 0 A^Hr=A^H(I-AA^\dagger)b=[(I-AA^\dagger)A]^Hb=[A-AA^\dagger A]^Hb=0 AHr=AH(I−AA†)b=[(I−AA†)A]Hb=[A−AA†A]Hb=0
所以(10)式是相容的线性系统,且x和r满足式(10).反之,设
B = [ I A A H O ] B=\begin{bmatrix}I&A\\A^H&O\end{bmatrix} B=[IAHAO]
可以验证
B † = [ I − A A † ( A † ) H A H − A † ( A † ) H ] B^{\dagger}=\begin{bmatrix}I-AA^{\dagger}&(A^\dagger)^H\\A^H&-A^\dagger(A^\dagger)^H\end{bmatrix} B†=[I−AA†AH(A†)H−A†(A†)H]
所以
[ r x ] = B † [ b 0 ] + ( I − B † B ) [ y z ] = [ ( I − A A † ) b A † b − ( I − A † A ) z ] \begin{bmatrix}r\\x\end{bmatrix}=B^\dagger\begin{bmatrix}b\\0\end{bmatrix}+ (I-B^\dagger B)\begin{bmatrix}y\\z\end{bmatrix}= \begin{bmatrix}(I-AA^\dagger)b\\ A^\dagger b-(I-A^\dagger A)z\end{bmatrix} [rx]=B†[b0]+(I−B†B)[yz]=[(I−AA†)bA†b−(I−A†A)z]
所以r,x分别是最小二乘问题的残量和极小解
线性最小二乘问题的正则化
设矩阵
A
∈
C
r
m
×
n
A\in C_r^{m\times n}
A∈Crm×n的奇异值分解为
A
=
U
Σ
V
H
A=U\Sigma V^H
A=UΣVH
其中
U
=
[
u
1
,
u
2
,
⋯
,
u
m
]
U=[u_1,u_2,\cdots,u_m]
U=[u1,u2,⋯,um]为m阶酉矩阵;
V
=
[
v
1
,
v
2
,
⋯
,
v
n
]
V=[v_1,v_2,\cdots,v_n]
V=[v1,v2,⋯,vn]为n阶酉矩阵;
Σ
=
[
Σ
r
0
0
0
]
\Sigma=\begin{bmatrix}\Sigma_r&0\\0&0\end{bmatrix}
Σ=[Σr000]
则最小二乘问题(2)的极小范数最小二乘解
x
L
S
x_{LS}
xLS可表示为
x
L
S
=
A
†
b
=
∑
i
=
1
r
u
i
H
b
σ
i
v
i
x_{LS}=A^\dagger b=\sum^r_{i=1}\dfrac{u_i^Hb}{\sigma_i}v_i
xLS=A†b=i=1∑rσiuiHbvi
最小二乘问题的求解
求解列满秩最小二乘问题的数值方法
法方程方法
分析
将最小二乘问题化为上文所述的法方程
A
H
A
x
=
A
H
b
A^HAx=A^Hb
AHAx=AHb
由于
A
∈
C
m
×
n
A\in C^{m\times n}
A∈Cm×n是列满秩矩阵,所以
r
a
n
k
(
A
H
A
)
=
n
rank(A^HA)=n
rank(AHA)=n,且
A
H
A
A^HA
AHA正定,所以可以用Cholesky分解求解方程
算法:
- 对n阶Hermite正定矩阵 B = A H A B=A^HA B=AHA作Cholesky分解 B = L L H B=LL^H B=LLH,其中L为下三角矩阵
- 依次解 L y = A H b Ly=A^Hb Ly=AHb, L H x = y L^Hx=y LHx=y得到最小二乘问题的解 x L S x_{LS} xLS
QR分解法
分析
由于正交矩阵保持向量二范数不变,所以可以对最小二乘问题做变换
min
x
∥
A
x
−
b
∥
⇒
min
x
∥
Q
T
(
A
x
−
b
)
∥
其
中
Q
为
正
交
矩
阵
\min_x\lVert Ax-b\rVert\Rightarrow\min_x\lVert Q^T(Ax-b)\rVert\\其中Q为正交矩阵
xmin∥Ax−b∥⇒xmin∥QT(Ax−b)∥其中Q为正交矩阵
所以可以找一个合适的Q使原来的最小二乘问题便于求解。
设A有QR分解:
A
=
Q
[
R
0
]
=
Q
1
R
其
中
Q
∈
R
m
×
n
为
正
交
矩
阵
Q
1
为
Q
的
前
n
列
组
成
的
矩
阵
R
为
对
角
元
均
为
正
的
上
三
角
矩
阵
A=Q\begin{bmatrix}R\\0\end{bmatrix}=Q_1R\\其中Q\in R^{m\times n}为正交矩阵\\Q_1为Q的前n列组成的矩阵\\R为对角元均为正的上三角矩阵
A=Q[R0]=Q1R其中Q∈Rm×n为正交矩阵Q1为Q的前n列组成的矩阵R为对角元均为正的上三角矩阵
取上式中的Q对b做变换得
f
=
Q
T
b
=
[
Q
1
T
Q
2
T
]
b
=
[
f
1
f
2
]
f=Q^Tb=\begin{bmatrix}Q_1^T\\Q_2^T\end{bmatrix}b=\begin{bmatrix}f_1\\f_2\end{bmatrix}
f=QTb=[Q1TQ2T]b=[f1f2]
则
∥
Q
T
(
A
x
−
b
)
∥
2
2
=
∥
[
R
0
]
x
−
Q
T
b
∥
2
2
=
∥
[
R
0
]
x
−
[
f
1
f
2
]
∥
2
2
=
∥
R
x
−
f
1
∥
2
2
+
∥
f
2
∥
2
2
\lVert Q^T(Ax-b) \rVert_2^2=\Bigg\lVert \begin{bmatrix}R\\0\end{bmatrix}x-Q^Tb \Bigg\rVert_2^2 \\ =\Bigg\lVert \begin{bmatrix}R\\0\end{bmatrix}x-\begin{bmatrix}f_1\\f_2\end{bmatrix} \Bigg\rVert_2^2= \lVert Rx-f_1 \rVert_2^2+\lVert f_2\rVert_2^2\\
∥QT(Ax−b)∥22=∥∥∥∥∥[R0]x−QTb∥∥∥∥∥22=∥∥∥∥∥[R0]x−[f1f2]∥∥∥∥∥22=∥Rx−f1∥22+∥f2∥22
由此可知,x是最小二乘问题的解,当且仅当x是上三角矩阵方程组
R
x
=
f
1
Rx=f_1
Rx=f1的解
在实施过程中,采取对
A
^
=
[
A
,
b
]
\hat{A}=[A,b]
A^=[A,b]进行QR分解
H
n
…
H
1
[
A
,
b
]
=
[
R
,
b
^
]
⇒
Q
T
[
A
,
b
]
=
[
R
,
b
^
]
H_n\dots H_1[A,b]=[R,\hat{b}]\Rightarrow Q^T[A,b]=[R,\hat{b}]
Hn…H1[A,b]=[R,b^]⇒QT[A,b]=[R,b^]
得
A
=
Q
R
,
b
^
=
Q
T
b
A=QR,\hat{b}=Q^Tb
A=QR,b^=QTb
算法
给定 A ∈ R m × n A\in R^{m\times n} A∈Rm×n为列满秩矩阵, b ∈ R m b\in R^m b∈Rm
- 计算增广矩阵 A ^ = [ A , b ] \hat{A}=[A,b] A^=[A,b]的QR分解
- 用回代法求解 R x = f 1 Rx=f_1 Rx=f1
QR分解可以用
- Householder方法
- Givens正交化方法
- 修正的Gram-Schmit方法
求解秩亏最小二乘问题的数值解法
考虑 min ∥ A x − b ∥ 2 \min \lVert Ax-b\rVert_2 min∥Ax−b∥2,其中 A ∈ R r m ∗ n ( m ≥ n ) A\in R^{m*n}_r(m\ge n) A∈Rrm∗n(m≥n), r a n k ( A ) = r < n rank(A)=r<n rank(A)=r<n。此时最小二乘问题有无穷个解。
列主元QR分解法
分析
-
A是秩亏损时,QR分解不一定能给出列空间R(A)的一组标准正交基,但是可以通过列置换之后的矩阵 A ^ = A P \hat{A}=AP A^=AP的QR分解来求解,即AP=QR,其中P是置换矩阵。
-
设 b = b 1 + b 2 , b 1 ∈ R ( A ) , b 2 ∈ R ⊥ ( A ) b=b_1+b_2,b_1\in R(A),b_2\in R^{\bot}(A) b=b1+b2,b1∈R(A),b2∈R⊥(A)
可以证明: A x = b 1 Ax=b_1 Ax=b1
假定 R ( A ) = R ( Q 1 ) R(A)=R(Q_1) R(A)=R(Q1),其中 Q 1 ∈ R m ∗ r Q_1\in R^{m*r} Q1∈Rm∗r且 Q 1 T Q 1 = I r Q_1^TQ_1=I_r Q1TQ1=Ir,即 Q 1 Q_1 Q1构成R(A)的一组标准正交基。 -
则存在矩阵 S ∈ R r ∗ n S\in R^{r*n} S∈Rr∗n(A在 Q 1 Q_1 Q1基下的坐标)和向量 h ∈ R r h\in R^r h∈Rr( b 1 b_1 b1在 Q 1 Q_1 Q1基下的坐标),使得
A = Q 1 S , b 1 = Q 1 h A=Q_1S,b_1=Q_1h\\ A=Q1S,b1=Q1h
又 ∵ A x = b 1 ∴ Q 1 S x = Q 1 h ∴ S x = h 又\because Ax=b_1\ \therefore Q_1Sx=Q_1h\ \therefore Sx=h 又∵Ax=b1 ∴Q1Sx=Q1h ∴Sx=h所以问题转换为求解 S x = h Sx=h Sx=h,而方程组 S x = h Sx=h Sx=h总是有解的
-
S = Q 1 T A , h = Q 1 T b 1 = Q 1 T ( b − b 2 ) = Q 1 T b b 2 ∈ R ⊥ ( Q 1 ) S=Q_1^TA,\\h=Q_1^Tb_1=Q_1^T(b-b_2)=Q_1^Tb\\ b_2\in R^{\bot}(Q_1) S=Q1TA,h=Q1Tb1=Q1T(b−b2)=Q1Tbb2∈R⊥(Q1)
-
现在问题变成求解R(A)的一组标准正交基 Q Q Q
-
由于rank(A)=r < n,一般不能直接产生R(A)的一组标准正交基,但是如果对A进行适当的排列使其前r列线性无关,然后再进行QR分解,则仍然可产生R(A)的一组标准正交基
-
设有分解式
A P = Q [ R 11 R 12 0 0 ] AP=Q\begin{bmatrix} R_{11} & R_{12}\\ 0 & 0 \end{bmatrix} AP=Q[R110R120]
其中P为列置换矩阵,Q为正交矩阵, R 11 R_{11} R11为非奇异上三角阵,则Q的前r列就是R(A)的一组标准正交基 -
一旦求出分解式,就有
( Q T A P ) ( P T x ) = Q T b 1 (Q^TAP)(P^Tx)=Q^Tb_1\\ (QTAP)(PTx)=QTb1
令 P T x = [ w z ] P^Tx=\begin{bmatrix}w\\z\end{bmatrix} PTx=[wz],得
[ R 11 R 12 0 0 ] [ w z ] = Q T b 1 = [ Q 1 T Q 2 T ] b 1 = [ h g ] ⇒ [ R 11 w + R 12 z 0 ] = [ h g ] ∴ w = R 11 − 1 ( h − R 12 z ) , g = 0 \begin{bmatrix} R_{11} & R_{12}\\ 0 & 0 \end{bmatrix} \begin{bmatrix}w\\z\end{bmatrix}=Q^Tb_1= \begin{bmatrix}Q_1^T\\Q_2^T\end{bmatrix}b_1= \begin{bmatrix}h\\g\end{bmatrix}\\ \Rightarrow \begin{bmatrix}R_{11}w + R_{12}z\\0\end{bmatrix}= \begin{bmatrix}h\\g\end{bmatrix}\\ \therefore w=R_{11}^{-1}(h-R_{12}z),g=0\\ [R110R120][wz]=QTb1=[Q1TQ2T]b1=[hg]⇒[R11w+R12z0]=[hg]∴w=R11−1(h−R12z),g=0
所以
x = P [ w z ] = P [ R 11 − 1 ( h − R 12 z ) z ] = P [ R 11 − 1 h 0 ] + [ − R 11 − 1 R 12 I n − r ] z x=P\begin{bmatrix} w\\z \end{bmatrix}=P\begin{bmatrix} R_{11}^{-1}(h-R_{12}z)\\z \end{bmatrix}=P\begin{bmatrix} R_{11}^{-1}h\\0 \end{bmatrix}+\begin{bmatrix} -R_{11}^{-1}R_{12}\\I_{n-r} \end{bmatrix}z\\ x=P[wz]=P[R11−1(h−R12z)z]=P[R11−1h0]+[−R11−1R12In−r]z
x x x就是最小二乘问题的通解
令 x b = P [ R 11 − 1 h 0 ] 令x_b=P\begin{bmatrix} R_{11}^{-1}h\\0 \end{bmatrix} 令xb=P[R11−1h0]
x b x_b xb为最小二乘问题的基本解
A x b = [ b 1 0 ] Ax_b=\begin{bmatrix} b_1\\0 \end{bmatrix} Axb=[b10]
实际求解方法
-
综述:一边用Householder变换,一边做列变换将A中列向量二范数非零的向量提到下一个Householder变换列,直到A中没有二范数非零向量
-
下面描述求解的递推过程:
考虑分解式(8)的具体实施过程。假设对对某一正整数k,已求k-1个Householder变换 H 1 , H 2 , ⋯ , H k − 1 H_1,H_2,\cdots ,H_{k-1} H1,H2,⋯,Hk−1和k-1个初等变换, P 1 , P 2 , ⋯ , P k − 1 P_1,P_2,\cdots,P_{k-1} P1,P2,⋯,Pk−1使得
R k − 1 = H k − 1 ⋯ H 2 H 1 A P 1 P 2 ⋯ P k − 1 = [ R 11 ( k − 1 ) R 12 ( k − 1 ) 0 R 22 ( k − 1 ) ] R_{k-1}=H_{k-1}\cdots H_2H_1AP_1P_2\cdots P_{k-1}=\begin{bmatrix} R_{11}^{(k-1)} & R_{12}^{(k-1)} \\0 & R_{22}^{(k-1)} \end{bmatrix} Rk−1=Hk−1⋯H2H1AP1P2⋯Pk−1=[R11(k−1)0R12(k−1)R22(k−1)],其中$R_{11}^{(k-1)} 为 非 奇 异 上 三 角 矩 阵 , 记 为非奇异上三角矩阵,记 为非奇异上三角矩阵,记R_{22}{(k-1)}=[V_k{(k-1)},V_{k+1}^{(k-1)},\cdots ,V_n^{(k-1)}] , 其 中 ,其中 ,其中V_i{(k-1)}$表示$R_{22}{(k-1)} 的 第 ( i − k + 1 ) 列 , 下 一 步 是 确 定 指 标 P ( 的第(i-k+1)列,下一步是确定指标P( 的第(i−k+1)列,下一步是确定指标P(k\le P \le n$)满足
∥ V p ( k − 1 ) ∥ 2 = max { ∥ V k ( k − 1 ) ∥ 2 , ∥ V k + 1 ( k − 1 ) ∥ 2 , ⋯ , ∥ V n ( k − 1 ) ∥ 2 } \lVert V_p^{(k-1)}\rVert_2=\max \{\lVert V_k^{(k-1)}\rVert_2,\lVert V_{k+1}^{(k-1)}\rVert_2,\cdots,\lVert V_ n^{(k-1)}\rVert_2\} ∥Vp(k−1)∥2=max{∥Vk(k−1)∥2,∥Vk+1(k−1)∥2,⋯,∥Vn(k−1)∥2}
若 ∥ V p ( k − 1 ) ∥ 2 = 0 \lVert V_p^{(k-1)}\rVert_2=0 ∥Vp(k−1)∥2=0,停止计算。否则取 P k P_k Pk为第k列与第p列交换的初等列变换矩阵,并确定一个Householder变换, H ^ k ∈ R ( m − k + 1 ) × ( m − k + 1 ) \hat{H}_k\in R^{(m-k+1)\times (m-k+1)} H^k∈R(m−k+1)×(m−k+1)使得 H ^ k V p ( k − 1 ) = γ k k e 1 \hat{H}_kV_p^{(k-1)}=\gamma_{kk}e_1 H^kVp(k−1)=γkke1
令 H k = d i a g ( I k − 1 , H ^ k ) H_k=diag(I_{k-1},\hat{H}_k) Hk=diag(Ik−1,H^k),则有 R k = [ R 11 ( k ) R 12 ( k ) 0 R 22 ( k ) ] R_k=\begin{bmatrix}R_{11}^{(k)} & R_{12}^{(k)} \\0 & R_{22}^{(k)}\end{bmatrix} Rk=[R11(k)0R12(k)R22(k)],其中$R_{11}^{(k-1)} 为 非 奇 异 上 三 角 矩 阵 为非奇异上三角矩阵 为非奇异上三角矩阵R_k=H_k\begin{bmatrix}R_{11}^{(k-1)} & R_{12}^{(k-1)} \0 & R_{22}^{(k-1)}\end{bmatrix}P_k$
R 12 R_{12} R12约化为0矩阵, z 1 , z 2 , ⋯ , z r z_1,z_2,\cdots,z_r z1,z2,⋯,zr和置换, P ^ \hat{P} P^,使得 [ R 11 , ⋯ , R 1 r ] z 1 ⋯ z r P ^ = [ T , 0 ] [R_{11},\cdots,R_{1r}]z_1\cdots z_r\hat{P}=[T,0] [R11,⋯,R1r]z1⋯zrP^=[T,0],T为上三角矩阵,令
Z = P z 1 ⋯ z r Z=Pz_1\cdots z_r Z=Pz1⋯zr,则有 Q T A Z = [ T 0 0 0 ] Q^TAZ=\begin{bmatrix}T & 0 \\0 & 0\end{bmatrix} QTAZ=[T000],由此可得 x L S = z [ T − 1 C 0 ] x_{LS}=z\begin{bmatrix}T^{-1}C \\0 \end{bmatrix} xLS=z[T−1C0],C为由 Q T b Q^Tb QTb前r个分量构成的r维向量
算法
秩亏最小二乘问题的列主元QR分解法
- Step1:输入矩阵A,计算 P ( j ) : = j , σ j = A ( : j ) T A ( : j ) P(j):=j,\sigma_j=A(:j)^TA(:j) P(j):=j,σj=A(:j)TA(:j),置k=1
- Step2: 确定r使满足 σ r : max k ≤ j ≤ n σ j \sigma_r:\max_{k\le j\le n}\sigma_j σr:maxk≤j≤nσj,若 σ r = 0 \sigma_r=0 σr=0停算
- Step3:交换 P ( r ) P(r) P(r)与 P ( k ) P(k) P(k), σ r \sigma_r σr与 σ k \sigma_k σk以及A(:,r)与A(:,k)
- Step4:确定一个Householder矩阵 H ^ k \hat{H}_k H^k使得 H ^ r A ( k : m , k ) = γ k k e 1 \hat{H}_rA(k:m,k)=\gamma_{kk}e_1 H^rA(k:m,k)=γkke1并计算 [ A , b ] : = d i a g ( I k − 1 , H ^ k − 1 ) [ A , b ] , σ j : = σ j − a k j 2 [A,b]:=diag(I_{k-1},\hat{H}_{k-1})[A,b],\sigma_j:=\sigma_j-a_{kj}^2 [A,b]:=diag(Ik−1,H^k−1)[A,b],σj:=σj−akj2
- Step5:置k:=k+1,转步骤2
变换技巧
∥
Q
T
x
∥
2
2
=
∥
[
α
,
z
]
T
∥
2
2
=
α
2
+
∥
z
∥
2
2
∥
z
∥
2
2
=
∥
x
∥
2
2
−
α
2
∴
∥
x
(
j
)
∥
2
2
=
∥
x
(
j
−
1
)
∥
2
2
−
α
k
j
2
\lVert Q^Tx\rVert_2^2=\lVert [\alpha,z]^T\rVert_2^2=\alpha^2+\lVert z\rVert_2^2\\ \lVert z\rVert_2^2=\lVert x\rVert_2^2-\alpha^2\\ \therefore \lVert x^{(j)}\rVert_2^2=\lVert x^{(j-1)}\rVert_2^2-\alpha^2_{kj}
∥QTx∥22=∥[α,z]T∥22=α2+∥z∥22∥z∥22=∥x∥22−α2∴∥x(j)∥22=∥x(j−1)∥22−αkj2
二、奇异值分解法
设
A
∈
R
m
×
n
(
m
>
n
)
A\in R^{m\times n}(m>n)
A∈Rm×n(m>n)的奇异值分解为
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT,
σ
=
[
Σ
r
0
0
0
]
\sigma=\begin{bmatrix}\Sigma_r & 0 \\0 & 0\end{bmatrix}
σ=[Σr000],其中
U
=
[
u
1
,
⋯
,
u
m
]
,
V
=
[
v
1
,
⋯
,
v
n
]
,
Σ
r
=
d
i
a
g
(
σ
1
,
⋯
,
σ
r
)
U=[u_1,\cdots,u_m],V=[v_1,\cdots,v_n],\Sigma_r=diag(\sigma_1,\cdots,\sigma_r)
U=[u1,⋯,um],V=[v1,⋯,vn],Σr=diag(σ1,⋯,σr),则有
x
L
S
=
A
+
b
=
V
[
Σ
r
−
1
0
0
0
]
U
T
=
∑
i
=
1
r
u
i
T
b
σ
i
v
i
x_{LS}=A^+b=V\begin{bmatrix}\Sigma_r^{-1} & 0 \\0 & 0\end{bmatrix}U^T\\ =\sum^r_{i=1}\dfrac{u_i^Tb}{\sigma_i}v_i
xLS=A+b=V[Σr−1000]UT=i=1∑rσiuiTbvi
参考文献
马昌凤 柯艺芬.数值线性代数与算法[M].国防工业出版社:北京,2017:247-279.