最小二成问题的QR分解法

最小二成问题的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 Axb2=zCnminAzb2QT(Axb)22=Rxf122+f222f=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 HnH1[A,b]=[R,b^]QT[A,b]=[R,b^]A=QR,b^=QTb,Q=H1Hn
所以对于列满秩矩阵 A ∈ R m ∗ n A\in R^{m*n} ARmn,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 minAxb2,其中 A ∈ R r m ∗ n ( m ≥ n ) A\in R^{m*n}_r(m\ge n) ARrmn(mn), 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,b1R(A),b2R(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} Q1Rmr 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} SRrn和向量 h ∈ R r h\in R^r hRr,使得
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=Q1hAx=b1Sx=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(bb2)=Q1Tbb2R(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=R111(hR12z),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[R111(hR12z)z]=P[R111h0]+[R111R12Inr]z

令 x b = P [ R 11 − 1 h 0 ] 令x_b=P\begin{bmatrix} R_{11}^{-1}h\\0 \end{bmatrix} xb=P[R111h0]
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,,Hk1和k-1个初等变换, P 1 , P 2 , ⋯   , P k − 1 P_1,P_2,\cdots,P_{k-1} P1,P2,,Pk1使得

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} Rk1=Hk1H2H1AP1P2Pk1=[R11(k1)0R12(k1)R22(k1)],其中$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( ik+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(k1)2=max{Vk(k1)2,Vk+1(k1)2,,Vn(k1)2}

∥ V p ( k − 1 ) ∥ 2 = 0 \lVert V_p^{(k-1)}\rVert_2=0 Vp(k1)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^kR(mk+1)×(mk+1)使得 H ^ k V p ( k − 1 ) = γ k k e 1 \hat{H}_kV_p^{(k-1)}=\gamma_{kk}e_1 H^kVp(k1)=γkke1

H k = d i a g ( I k − 1 , H ^ k ) H_k=diag(I_{k-1},\hat{H}_k) Hk=diag(Ik1,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]z1zrP^=[T,0],T为上三角矩阵,令

Z = P z 1 ⋯ z r Z=Pz_1\cdots z_r Z=Pz1zr,则有 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[T1C0],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:maxkjnσ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(Ik1,H^k1)[A,b],σj:=σjakj2
  • 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} QTx22=[α,z]T22=α2+z22z22=x22α2x(j)22=x(j1)22αkj2

二、奇异值分解法

A ∈ R m × n ( m > n ) A\in R^{m\times n}(m>n) ARm×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[Σr1000]UT=i=1rσiuiTbvi

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值