最小二成问题的QR分解法
一、QR分解法
∥
A
x
−
b
∥
2
=
min
z
∈
C
n
∥
A
z
−
b
∥
2
∥
Q
T
(
A
x
−
b
)
∥
2
2
=
∥
R
x
−
f
1
∥
2
2
+
∥
f
2
∥
2
2
其
中
f
=
Q
T
b
=
[
Q
1
T
Q
2
T
]
b
=
[
f
1
f
2
]
R
x
=
f
1
\lVert Ax-b \rVert_2 = \min_{z\in C^n} \lVert Az-b \rVert_2\\ \lVert Q^T(Ax-b) \rVert_2^2=\lVert Rx-f_1 \rVert_2^2 + \lVert f_2\rVert_2^2\\ 其中 f=Q^Tb=\begin{bmatrix} Q_1^T\\Q_2^T \end{bmatrix}b=\begin{bmatrix} f_1\\f_2 \end{bmatrix}\\ Rx=f_1
∥Ax−b∥2=z∈Cnmin∥Az−b∥2∥QT(Ax−b)∥22=∥Rx−f1∥22+∥f2∥22其中f=QTb=[Q1TQ2T]b=[f1f2]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
^
]
A
=
Q
R
,
b
^
=
Q
T
b
,
Q
=
H
1
…
H
n
H_n\dots H_1[A,b]=[R,\hat{b}]\\ \Rightarrow Q^T[A,b]=[R,\hat{b}]\\ A=QR,\hat{b}=Q^Tb,Q=H_1\dots H_n
Hn…H1[A,b]=[R,b^]⇒QT[A,b]=[R,b^]A=QR,b^=QTb,Q=H1…Hn
所以对于列满秩矩阵
A
∈
R
m
∗
n
A\in R^{m*n}
A∈Rm∗n,LS问题QR分解方法将问题转化为求解
R
x
=
f
1
Rx=f_1
Rx=f1
可先进行QR分解,得到此方程,再用回代法求解
x
L
S
x_{LS}
xLS
二、求解秩亏最小二乘问题的数值解法
考虑 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。此时最小二乘问题有无穷个解。
1. 列主元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
T
Q
=
I
r
Q^TQ=I_r
QTQ=Ir,即
Q
1
Q_1
Q1构成R(A)的一组标准正交基,则存在矩阵
S
∈
R
r
∗
n
S\in R^{r*n}
S∈Rr∗n和向量
h
∈
R
r
h\in R^r
h∈Rr,使得
A
=
Q
1
S
,
b
1
=
Q
1
h
又
∵
A
x
=
b
1
∴
S
x
=
h
A=Q_1S,b_1=Q_1h\\ 又\because Ax=b_1\\ \therefore Sx=h
A=Q1S,b1=Q1h又∵Ax=b1∴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)
由于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
[
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
]
∴
R
11
w
+
R
12
z
=
h
,
g
=
0
w
=
R
11
−
1
(
h
−
R
12
z
)
,
g
=
0
(Q^TAP)(P^Tx)=Q^Tb_1\\ \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 R_{11}w+R_{12}z=h,g=0\\ w=R_{11}^{-1}(h-R_{12}z),g=0\\
(QTAP)(PTx)=QTb1[R110R120][wz]=QTb1=[Q1TQ2T]b1=[hg]⇒[R11w+R12z0]=[hg]∴R11w+R12z=h,g=0w=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
b
=
P
[
R
11
−
1
h
0
]
令x_b=P\begin{bmatrix} R_{11}^{-1}h\\0 \end{bmatrix}
令xb=P[R11−1h0]
x
x
x就是最小二乘基本解
A
x
b
=
[
b
1
0
]
Ax_b=\begin{bmatrix} b_1\\0 \end{bmatrix}
Axb=[b10]
求解P
考虑分解式(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