矩阵分析与应用-4.7-QR分解及其应用-Section2

前言

本文学习过程来源是《矩阵分析与应用-张贤达》一书. 可以通过 z-lib 下载.

一、采用 G i v e n s \mathrm{Givens} Givens 旋转的 Q R \mathrm{QR} QR 分解

G i v e n s \mathrm{Givens} Givens 旋转也可以用来计算 Q R \mathrm{QR} QR 分解. 这里以 4 × 3 4 \times 3 4×3 矩阵为例, 说明 G i v e n s   Q R \mathrm{Givens \ QR} Givens QR 分解的思想.

[ × × × × × × ⊗ × × ⊗ × × ] ⟶ G ( 3 , 4 ) [ × × × ⊗ × × ⊗ × × 0 × × ] ⟶ G ( 2 , 3 ) [ ⊗ × × ⊗ × × 0 × × 0 × × ] ⟶ G ( 1 , 2 ) [ × × × 0 × × 0 ⊗ × 0 ⊗ × ] ⟶ G ( 3 , 4 ) [ × × × 0 ⊗ × 0 ⊗ × 0 0 × ] ⟶ G ( 2 , 3 ) [ × × × 0 × × 0 0 ⊗ 0 0 ⊗ ] ⟶ G ( 3 , 4 ) [ × × × 0 × × 0 0 × 0 0 0 ] \begin{aligned} & \begin{bmatrix} \times & \times & \times \\ \times & \times & \times \\ \otimes & \times & \times\\ \otimes & \times & \times \end{bmatrix} \overset{G(3,4)}{\longrightarrow} \begin{bmatrix} \times & \times & \times \\ \otimes & \times & \times \\ \otimes & \times & \times\\ 0 & \times & \times \end{bmatrix} \overset{G(2,3)}{\longrightarrow} \begin{bmatrix} \otimes & \times & \times \\ \otimes & \times & \times \\ 0 & \times & \times\\ 0 & \times & \times \end{bmatrix} \overset{G(1,2)}{\longrightarrow} \begin{bmatrix} \times & \times & \times \\ 0 & \times & \times \\ 0 & \otimes & \times\\ 0 & \otimes & \times \end{bmatrix} \overset{G(3,4)}{\longrightarrow} \\ & \begin{bmatrix} \times & \times & \times \\ 0 & \otimes & \times \\ 0 & \otimes & \times\\ 0 & 0 & \times \end{bmatrix} \overset{G(2,3)}{\longrightarrow} \begin{bmatrix} \times & \times & \times \\ 0 & \times & \times \\ 0 & 0 & \otimes\\ 0 & 0 & \otimes \end{bmatrix} \overset{G(3,4)}{\longrightarrow} \begin{bmatrix} \times & \times & \times \\ 0 & \times & \times \\ 0 & 0 & \times\\ 0 & 0 & 0 \end{bmatrix} \end{aligned} ××××××××××G(3,4)×0××××××××G(2,3)00××××××××G(1,2)×000××××××G(3,4)×000×0××××G(2,3)×000××00××G(3,4)×000××00×××0

其中 ⊗ \otimes 代表用 G i v e n s \mathrm{Givens} Givens 旋转进行变换的元素. 变换过程就是乘以箭头上用 G ( i , j ) G(i,j) G(i,j) 表示的 G i v e n s \mathrm{Givens} Givens 矩阵.

从上述说明中易得出结论: 如果令 G j G_j Gj 代表约化过程中的第 j j j G i v e n s \mathrm{Givens} Givens 旋转, 则 Q T A = R Q^{\mathrm{T}}A=R QTA=R 是上三角矩阵, 其中, Q = G t G t − 1 ⋯ G 1 Q = G_tG_{t-1} \cdots G_1 Q=GtGt1G1, 而 t t t 是总的旋转次数.

归根到底还是为了解方程, 不论是有解还是最小二乘法, Q R \mathrm{QR} QR 分解都是一个不错的选择.

二、基于 Q R \mathrm{QR} QR 分解的参数估计问题

系统辨识问题的提法是: 已知系统输入 x ( k ) x(k) x(k) 和输出观测值 y ( k ) y(k) y(k), 其中, k = 1 , 2 , ⋯   , n k = 1,2,\cdots,n k=1,2,,n 估计系统参数向量 θ \theta θ. 在时变系统的辨识中, 则要求在已估计 n n n 时刻的系统参数向量 θ n \theta_n θn 的情况下, 使用增加的 x ( n + 1 ) , y ( n + 1 ) x(n+1),y(n+1) x(n+1),y(n+1) 值, 通过简单的运算, 递推出 n + 1 n + 1 n+1 时刻的系统参数向量 θ n + 1 \theta_{n+1} θn+1. n n n 时刻的系统辨识问题可以化为最小二乘问题.

看起来有点像预测方面的问题.

min ⁡ θ n ∥ A n θ n − y n ∥ 2 2 (1) \min_{\theta_n} \lVert A_n\theta_n - y_n \rVert^2_2 \tag{1} θnminAnθnyn22(1)

求解, 并且其解由 “法方程”

A n T A n θ n = A n T y n   或 者   R x x θ n = r n (2) A_n^{\mathrm{T}}A_n\theta_n = A_n^{\mathrm{T}}y_n \ 或者 \ R_{xx}\theta_n = r_n \tag{2} AnTAnθn=AnTyn  Rxxθn=rn(2)

确定. 式中, R x x = A n T A n R_{xx} = A_n^{\mathrm{T}}A_n Rxx=AnTAn 代表系统输入 x ( k ) x(k) x(k) 的协方差矩阵, r n = A n T y n r_n = A_n^{\mathrm{T}}y_n rn=AnTyn.

之间求解式 (2) 的方法叫做协方差方法.

引理 1: 若 A n = Q n [ R n O ] , Q n T y n = [ y ˉ n y ~ n ] A_n = Q_n \begin{bmatrix} R_n\\ O\end{bmatrix}, Q_n^{\mathrm{T}}y_n= \begin{bmatrix} \bar{y}_n\\ \tilde{y}_n \end{bmatrix} An=Qn[RnO],QnTyn=[yˉny~n], 其中, Q n Q_n Qn 是正交矩阵, R n R_n Rn 是上三角矩阵. 故有

θ n + 1 = arg min ⁡ θ ∥ A n + 1 θ − y n + 1 ∥ 2 2 = arg min ⁡ θ ∥ [ λ R n x n + 1 T ] θ − [ λ y ˉ n y ( n + 1 ) ] ∥ 2 2 (3) \begin{aligned} \theta_{n+1} &= \argmin_\theta \lVert A_{n+1}\theta - y_{n+1} \rVert^2_2 &= \argmin_\theta \bigg \lVert \begin{bmatrix} \lambda R_n\\ x_{n+1}^{\mathrm{T}}\end{bmatrix}\theta - \begin{bmatrix} \lambda \bar{y}_n\\ y(n+1)\end{bmatrix} \bigg \rVert^2_2 \end{aligned} \tag{3} θn+1=θargminAn+1θyn+122=θargmin[λRnxn+1T]θ[λyˉny(n+1)]22(3)

算法 1: 系统参数的自适应估计算法

Step 1 : 对矩阵 R ˉ = [ λ R n x n + 1 T ] \bar{R} = \begin{bmatrix} \lambda R_n\\ x_{n+1}^{\mathrm{T}}\end{bmatrix} Rˉ=[λRnxn+1T] 进行 Q R \mathrm{QR} QR 分解, 得到

Q n + 1 T R ˉ = Q n + 1 T [ λ R n x n + 1 T ] = [ R n + 1 O ] (4) Q_{n+1}^{\mathrm{T}} \bar{R} = Q_{n+1}^{\mathrm{T}}\begin{bmatrix} \lambda R_n\\ x_{n+1}^{\mathrm{T}}\end{bmatrix} = \begin{bmatrix} R_{n+1}\\ O\end{bmatrix} \tag{4} Qn+1TRˉ=Qn+1T[λRnxn+1T]=[Rn+1O](4)

式子中, Q n + 1 Q_{n+1} Qn+1 ( n + 1 ) × ( n + 1 ) (n+1) \times (n+1) (n+1)×(n+1) 正交矩阵, R n + 1 R_{n+1} Rn+1 ( p + 1 ) × ( p + 1 ) (p+1) \times (p+1) (p+1)×(p+1) 上三角矩阵, 且 O O O ( n − p ) × ( p + 1 ) (n-p) \times (p+1) (np)×(p+1) 零矩阵.

Step 2 : 进行分块运算

Q n + 1 T y n + 1 = [ y ˉ n + 1 y ~ n + 1 ] Q_{n+1}^{\mathrm{T}}y_{n+1} = \begin{bmatrix} \bar{y}_{n+1} \\ \tilde{y}_{n+1}\end{bmatrix} Qn+1Tyn+1=[yˉn+1y~n+1]

其中, y ˉ n + 1 \bar{y}_{n+1} yˉn+1 ( p + 1 ) × 1 (p+1) \times 1 (p+1)×1 向量, y ~ n + 1 \tilde{y}_{n+1} y~n+1 ( n − p ) × 1 (n-p) \times 1 (np)×1 向量

Step 3 : 求解三角矩阵方程 R n + 1 θ n + 1 = y ˉ n + 1 R_{n+1}\theta_{n+1} = \bar{y}_{n+1} Rn+1θn+1=yˉn+1 得到 θ n + 1 \theta_{n+1} θn+1

三、基于 H o u s e h o l d e r \mathrm{Householder} Householder 变换的快速时变参数估计

考查 n × ( p + 1 ) n \times (p+1) n×(p+1) 矩阵

A n = [ a 11 a 12 ⋯ a 1 , p + 1 a 21 a 22 ⋯ a 2 , p + 1 ⋮ ⋮ ⋮ a n 1 a n 2 ⋯ a n , p + 1 ] A_n = \begin{bmatrix} a_{11}& a_{12}& \cdots& a_{1,p+1}\\ a_{21}& a_{22}& \cdots& a_{2,p+1}\\ \vdots& \vdots& &\vdots \\ a_{n1}& a_{n2}& \cdots& a_{n,p+1} \end{bmatrix} An=a11a21an1a12a22an2a1,p+1a2,p+1an,p+1

H o u s e h o l d e r   Q R \mathrm{Householder \ QR} Householder QR 分解, 即

H n A n = [ a 11 ∗ a 12 ∗ ⋯ a 1 , p + 1 ∗ 0 a 22 ∗ ⋯ a 2 , p + 1 ∗ ⋮ ⋮ ⋮ 0 0 ⋯ a p + 1 , p + 1 ∗ 0 0 ⋯ 0 ⋮ ⋮ ⋮ 0 0 ⋯ 0 ] (5) H_nA_n = \begin{bmatrix} a_{11}^*& a_{12}^*& \cdots& a_{1,p+1}^*\\ 0& a_{22}^*& \cdots& a_{2,p+1}^*\\ \vdots& \vdots& &\vdots \\ 0 & 0 & \cdots & a_{p+1,p+1}^*\\ 0 & 0 & \cdots & 0\\ \vdots& \vdots& &\vdots \\ 0 & 0 & \cdots & 0\\ \end{bmatrix} \tag{5} HnAn=a110000a12a22000a1,p+1a2,p+1ap+1,p+100(5)

为了得到上述 Q R \mathrm{QR} QR 分解, 应该选择 H n H_n Hn p p p H o u s e h o l d e r \mathrm{Householder} Householder 变换矩阵之积, 即

H n = H n ( p ) H n ( p − 1 ) ⋯ H n ( 1 ) (6) H_n = H_n(p)H_n(p-1)\cdots H_n(1) \tag{6} Hn=Hn(p)Hn(p1)Hn(1)(6)

式中

H n ( j ) = I − u j u j T / σ j , j = 1 , 2 , ⋯   , p (7) H_n(j) = I - u_ju_j^{\mathrm{T}}/\sigma_j, \quad j = 1,2,\cdots,p \tag{7} Hn(j)=IujujT/σj,j=1,2,,p(7)

是对矩阵 A n ( j ) = H n ( j − 1 ) H n ( 2 ) H n ( 1 ) A n A_n^{(j)} = H_n(j-1)H_n(2)H_n(1)A_n An(j)=Hn(j1)Hn(2)Hn(1)An j j j 列向量 [ a 1 j ( j ) , a 2 j ( j ) , ⋯   , a n j ( j ) ] T [a_{1j}^{(j)},a_{2j}^{(j)},\cdots,a_{nj}^{(j)}]^{\mathrm{T}} [a1j(j),a2j(j),,anj(j)]T 进行的 H o u s e h o l d e r \mathrm{Householder} Householder 变换矩阵, 其参数选择方法为

α j = ∑ i = j n [ a i j ( j ) ] 2 σ j = α j ( α j + ∣ a j j ( j ) ∣ ) u j ( i ) = { 0   i < j a j j ( j ) + s g n ( a j j ( j ) ) α j   j = i a i j ( j ) i > j } , j = 1 , 2 , ⋯   , p (8) \left.\begin{aligned} \alpha_j &= \sqrt{\sum_{i=j}^{n}[a_{ij}^{(j)}]^2} & \quad\\ \sigma_j &= \alpha_j(\alpha_j + |a_{jj}^{(j)}|) \\ u_j(i) &= \left\{\begin{matrix} 0& \ i < j \\ a_{jj}^{(j)} + \mathrm{sgn}(a_{jj}^{(j)})\alpha_j& \ j = i \\ a_{ij}^{(j)} & i > j \end{matrix}\right. \end{aligned}\right\}, \qquad j = 1,2,\cdots,p \tag{8} αjσjuj(i)=i=jn[aij(j)]2 =αj(αj+ajj(j))=0ajj(j)+sgn(ajj(j))αjaij(j) i<j j=ii>j,j=1,2,,p(8)

其中

A n ( j + 1 ) = A n ( j ) − u j q j T (9) A_n^{(j+1)} = A_n^{(j)} - u_jq_j^{\mathrm{T}} \tag{9} An(j+1)=An(j)ujqjT(9)

并且

q j T = u j T A n ( j ) / σ j (10) q_j^{\mathrm{T}} = u_j^{\mathrm{T}}A_n^{(j)}/\sigma_j \tag{10} qjT=ujTAn(j)/σj(10)

算法 2: 基于 H o u s e h o l d e r   Q R \mathrm{Householder} \ QR Householder QR 分解的快速自适应参数估计算法

四、基于 G i v e n s \mathrm{Givens} Givens 旋转的时变参数估计

递推求解 σ n \sigma_n σn 的变换量 δ n \delta_n δn, 而不是之间递推求 σ n + 1 \sigma_{n+1} σn+1 本身. 其式子应该为

σ n + 1 = σ n + δ n (11) \sigma_{n+1} = \sigma_{n} + \delta_n \tag{11} σn+1=σn+δn(11)

问题的关键就在于更新 δ n \delta_n δn

假定正交矩阵 Q ~ \tilde{Q} Q~ 为已知, 满足

Q ~ [ λ R n x n + 1 T ] = [ R n + 1 O ] (12) \tilde{Q} \begin{bmatrix} \lambda R_n\\ x_{n+1}^{\mathrm{T}}\end{bmatrix} = \begin{bmatrix} R_{n+1}\\ O \end{bmatrix} \tag{12} Q~[λRnxn+1T]=[Rn+1O](12)

化简得到

δ n = arg min ⁡ δ n ∥ [ R n + 1 O ] δ n − Q ~ [ 0 u ( n + 1 ) ] ∥ (13) \delta_n = \argmin_{\delta_n} \bigg \lVert \begin{bmatrix} R_{n+1}\\ O \end{bmatrix}\delta_n - \tilde{Q} \begin{bmatrix} 0\\ u(n+1) \end{bmatrix} \bigg \rVert \tag{13} δn=δnargmin[Rn+1O]δnQ~[0u(n+1)](13)

式中, u ( n + 1 ) = y ( n + 1 ) − x n + 1 T θ n u(n+1) = y(n+1) - x_{n+1}^{\mathrm{T}}\theta_n u(n+1)=y(n+1)xn+1Tθn. 因此, δ n \delta_n δn 可以从三角矩阵方程

R n + 1 δ n = y ˉ n + 1 (14) R_{n+1}\delta_n = \bar{y}_{n+1} \tag{14} Rn+1δn=yˉn+1(14)

解出, 其中, y ˉ k + 1 \bar{y}_{k+1} yˉk+1 满足

[ y ˉ n + 1 r ( n + 1 ) ] = Q ~ [ 0 u ( n + 1 ) ] (15) \begin{bmatrix} \bar{y}_{n+1}\\ r(n+1) \end{bmatrix} = \tilde{Q} \begin{bmatrix} 0\\ u(n+1) \end{bmatrix} \tag{15} [yˉn+1r(n+1)]=Q~[0u(n+1)](15)

为求出 Q ~ \tilde{Q} Q~, 需要对增广矩阵

[ λ R n 0 x n + 1 T u ( n + 1 ) ] (16) \begin{bmatrix} \lambda R_n & 0\\ x_{n+1}^{\mathrm{T}} & u(n+1) \end{bmatrix} \tag{16} [λRnxn+1T0u(n+1)](16)

( ! ! ! 在这个地方存疑, 不能很好的理解这个增广矩阵的由来 )

执行所需要的清零. 综上所述, 每一步递推更新需要的步骤如下

(1) 计算预测误差 y k + 1 − ϕ k + 1 T θ k y_{k+1} - \phi_{k+1}^{\mathrm{T}}\theta_k yk+1ϕk+1Tθk

(2) 形成式子 (16) 中的 ( n + 1 ) × ( n + 1 ) (n+1) \times (n+1) (n+1)×(n+1) 矩阵

(3) 利用一系列 G i v e n s \mathrm{Givens} Givens 旋转将上述矩阵最底一行的左边 n n n 个元素扫除为零

(4) 解上三角矩阵方程得到 δ k \delta_k δk

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值