5.11 加权Gram-Schmidt 分解

5.11 加权Gram-Schmidt 分解

前面介绍了加权最小二乘法的解为 x ^ = ( A T D A ) 1 A T D b \mathbf{\hat{x}} = (A^TDA)^{-1}A^TD\mathbf{b} ,其中 D D 为权重矩阵,最常用的是对角阵,每个对角元素表示对应测量点的权重,均为正值,元素值越大表示该测量点越重要。本节仅研究权重矩阵为对角阵的情况,权重矩阵记为 W = d i a g ( w 1 , w 2 , , w m ) W=diag(w_1,w_2,\cdots,w_m) w i w_i 为测量点 i i 的权重。

假设矩阵 A = Q R A=QR ,其中 Q m n Q_{mn} 为列满秩矩阵, R n n R_{nn} 为上三角方阵,带入上式得
x ^ = ( ( Q R ) T W ( Q R ) ) 1 ( Q R ) T W b = ( R T Q T W Q R ) 1 R T Q T W b = R 1 ( Q T W Q ) 1 R T R T Q T W b = R 1 ( Q T W Q ) 1 Q T W b \mathbf{\hat{x}} = ((QR)^TW(QR))^{-1}(QR)^TW\mathbf{b}\\ = (R^TQ^TWQR)^{-1}R^TQ^TW\mathbf{b} \\ = R^{-1}(Q^TWQ)^{-1}R^{-T}R^TQ^TW\mathbf{b} \\ = R^{-1}(Q^TWQ)^{-1}Q^TW\mathbf{b}

其中矩阵 Q T W Q Q^TWQ 求逆,为了简化求逆,我们希望其为对角阵,又当权重矩阵为单位阵时, Q T E Q Q T Q Q^TEQ=Q^TQ 必须为单位阵,以便和一般 Gram-Schmidt 分解保持一致。在这个约束下,各矩阵尺寸为 Q m n , W m m Q_{mn},W_{mm} ( Q T W Q ) n n (Q^TWQ)_{nn} ,所以可以使 Q T W Q = W n Q^TWQ=W_n ,对角阵 W n W_n 为对角阵 W W n n 个对角元素构成的对角阵,即 W n = d i a g ( w 1 , w 2 , , w n ) W_n = diag(w_1,w_2,\cdots,w_n) 。注意此时矩阵 Q Q 一般不再是正交阵,即 Q T Q = E Q^TQ=E 不再成立。

我们先研究矩阵乘法 Q T W Q Q^TWQ ,首先 W Q = ( W q 1 , , W q n ) WQ=(W\mathbf{q}_1,\cdots,W\mathbf{q}_n) Q T W Q = ( [ q 1 T , q n T ] ) ( W q 1 , , W q n ) = [ q 1 T W q 1 , , q 1 T W q n , q n T W q 1 , , q n T W q n ] Q^TWQ=(\left[ \begin{matrix} \mathbf{q}^T_1 \\ \vdots,\\ \mathbf{q}^T_n \end{matrix} \right])(W\mathbf{q}_1,\cdots,W\mathbf{q}_n)=\left[ \begin{matrix} \mathbf{q}^T_1W\mathbf{q}_1,\cdots, \mathbf{q}^T_1W\mathbf{q}_n\\ \vdots,\\ \mathbf{q}^T_nW\mathbf{q}_1,\cdots, \mathbf{q}^T_nW\mathbf{q}_n \end{matrix} \right] ,所以 Q T W Q Q^TWQ i i 行第 j j 列的元素为 q i T W q j \mathbf{q}^T_iW\mathbf{q}_j 。根据 Q T W Q = W n Q^TWQ=W_n 等式,则 q i T W q j = w i f o r i = j , e l s e 0 i j \mathbf{q}^T_iW\mathbf{q}_j = w_i \quad for \quad i=j, else \quad 0 \quad i \ne j ,从这个意义上说向量组 q i \mathbf{q}_i 关于矩阵 W W 正交,因为不同向量的广义内积 q i T W q j \mathbf{q}^T_iW\mathbf{q}_j 0 0 ,相同向量广义内积为 w i w_i

根据 A = Q R A=QR Q T W Q = W n Q^TWQ=W_n 两个等式,可以推导出加权Gram-Schmidt 分解公式。

首先, a 1 = q 1 r 11 \mathbf{a}_1=\mathbf{q}_1 r_{11} 两边左乘 q 1 T W \mathbf{q}^T_1W 得, q 1 T W a 1 = q 1 T W q 1 r 11 = w 1 r 11 \mathbf{q}^T_1W\mathbf{a}_1=\mathbf{q}^T_1W\mathbf{q}_1 r_{11}=w_1r_{11} ,又 q 1 T W a 1 = a 1 T W a 1 / r 11 \mathbf{q}^T_1W\mathbf{a}_1=\mathbf{a}^T_1W\mathbf{a}_1/r_{11} ,所以 a 1 T W a 1 / r 11 = w 1 r 11 \mathbf{a}^T_1W\mathbf{a}_1/r_{11}=w_1r_{11} r 11 = a 1 T W a 1 / w 1 r_{11}=\sqrt{\mathbf{a}^T_1W\mathbf{a}_1}/\sqrt{w_1} ,令 a 1 2 = a 1 T W a 1 a^2_1=\mathbf{a}^T_1W\mathbf{a}_1 为广义内积,则 r 11 = a 1 / w 1 r_{11}=a_1/\sqrt{w_1} q 1 = a 1 / r 11 = w 1 a 1 / a 1 \mathbf{q}_1=\mathbf{a}_1/r_{11}=\sqrt{w_1}\mathbf{a}_1/a_1

其次, a 2 = q 1 r 12 + q 2 r 22 \mathbf{a}_2 = \mathbf{q}_1 r_{12} + \mathbf{q}_2 r_{22} 两边左乘 q 1 T W \mathbf{q}^T_1W 得, q 1 T W a 2 = q 1 T W q 1 r 12 + q 1 T W q 2 r 22 \mathbf{q}^T_1W\mathbf{a}_2 = \mathbf{q}^T_1W\mathbf{q}_1 r_{12} + \mathbf{q}^T_1W\mathbf{q}_2 r_{22} ,根据 q i T W q j = w i f o r i = j , e l s e 0 i j \mathbf{q}^T_iW\mathbf{q}_j = w_i \quad for \quad i=j, else \quad 0 \quad i \ne j ,得 q 1 T W a 2 = q 1 T W q 1 r 12 + 0 = w 1 r 12 \mathbf{q}^T_1W\mathbf{a}_2 = \mathbf{q}^T_1W\mathbf{q}_1 r_{12} + 0 = w_1 r_{12} r 12 = q 1 T W a 2 / w 1 r_{12} = \mathbf{q}^T_1W\mathbf{a}_2/w_1 为广义投影坐标值。

a 2 = q 1 r 12 + q 2 r 22 \mathbf{a}_2 = \mathbf{q}_1 r_{12} + \mathbf{q}_2 r_{22} 两边左乘 q 2 T W \mathbf{q}^T_2W 得, q 2 T W a 2 = q 2 T W q 1 r 12 + q 2 T W q 2 r 22 \mathbf{q}^T_2W\mathbf{a}_2 = \mathbf{q}^T_2W\mathbf{q}_1 r_{12} + \mathbf{q}^T_2W\mathbf{q}_2 r_{22} ,得 q 2 T W a 2 = 0 + w 2 r 22 \mathbf{q}^T_2W\mathbf{a}_2 = 0 + w_2 r_{22} ,得 w 2 r 22 = q 2 T W ( a 2 q 1 r 12 ) w_2 r_{22} = \mathbf{q}^T_2W(\mathbf{a}_2- \mathbf{q}_1 r_{12}) ,又 q 2 = ( a 2 q 1 r 12 ) / r 22 \mathbf{q}_2 = (\mathbf{a}_2 - \mathbf{q}_1 r_{12})/r_{22} 带入得 w 2 r 22 2 = ( a 2 q 1 r 12 ) W ( a 2 q 1 r 12 ) w_2 r^2_{22} = (\mathbf{a}_2 - \mathbf{q}_1 r_{12})W(\mathbf{a}_2 - \mathbf{q}_1 r_{12}) ,令 a 2 2 = ( a 2 q 1 r 12 ) W ( a 2 q 1 r 12 ) a^2_2=(\mathbf{a}_2 - \mathbf{q}_1 r_{12})W(\mathbf{a}_2 - \mathbf{q}_1 r_{12}) 为广义内积,所以 r 22 = a 2 / w 2 r_{22} = a_2/\sqrt{w_2} 。所以 q 2 = w 2 ( a 2 q 1 r 12 ) / a 2 \mathbf{q}_2 = \sqrt{w_2}(\mathbf{a}_2 - \mathbf{q}_1 r_{12})/a_2

最后同理对任意列向量 a i = q 1 r 1 i + q 2 r 2 i + + q i r i i \mathbf{a}_i = \mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}_i r_{ii} ,两边左乘 q j T W , j < i \mathbf{q}^T_jW,j < i
q j T W a i = q j T W q 1 r 1 i + q j T W q 2 r 2 i + + q j T W q i r i i = q j T W q j r j i = w j r j i \mathbf{q}^T_jW\mathbf{a}_i = \mathbf{q}^T_jW\mathbf{q}_1 r_{1i} + \mathbf{q}^T_jW\mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}^T_jW\mathbf{q}_i r_{ii} = \mathbf{q}^T_jW\mathbf{q}_j r_{ji} = w_j r_{ji} 所以 r j i = q j T W a i / w j r_{ji} = \mathbf{q}^T_jW\mathbf{a}_i/w_j 。两边左乘 q i T W \mathbf{q}^T_iW
q i T W a i = q i T W q 1 r 1 i + q i T W q 2 r 2 i + + q i T W q i r i i = q i T W q i r i i = w i r i i \mathbf{q}^T_iW\mathbf{a}_i = \mathbf{q}^T_iW\mathbf{q}_1 r_{1i} + \mathbf{q}^T_iW\mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}^T_iW\mathbf{q}_i r_{ii} = \mathbf{q}^T_iW\mathbf{q}_i r_{ii} = w_i r_{ii} 所以 r i i = q i T W a i / w i r_{ii} = \mathbf{q}^T_iW\mathbf{a}_i/w_i ,根据 a i = q 1 r 1 i + q 2 r 2 i + + q i r i i \mathbf{a}_i = \mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}_i r_{ii} 最后化简得,令 a i 2 = ( a i ( q 1 r 1 i + q 2 r 2 i + ) ) W ( a i ( q 1 r 1 i + q 2 r 2 i + ) ) a^2_i=(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))W(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots)) 为广义内积,所以 r i i = a i / w i r_{ii} = a_i/\sqrt{w_i} 。所以 q i = w i ( a i ( q 1 r 1 i + q 2 r 2 i + ) ) / a i \mathbf{q}_i = \sqrt{w_i}(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))/a_i

上面介绍的方法就是经典的加权Gram-Schmidt分解,过程和经典的Gram-Schmidt分解一样,差别在于上三角矩阵 R R 的元素 r j i = q j T W a i / w j r_{ji} = \mathbf{q}^T_jW\mathbf{a}_i/w_j 为广义投影 q j T W a i \mathbf{q}^T_jW\mathbf{a}_i 除以权重 w j w_j r i i = a i / w i r_{ii} = a_i/\sqrt{w_i} 为广义内积 a i a_i 除以权重 w i \sqrt{w_i} ,当广义内积趋近 0 0 时,则方程是病态。 q i = w i ( a i ( q 1 r 1 i + q 2 r 2 i + ) ) / a i \mathbf{q}_i = \sqrt{w_i}(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))/a_i 是垂直分量的标准化 ( a i ( q 1 r 1 i + q 2 r 2 i + ) ) / a i (\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))/a_i 乘以权重 w i \sqrt{w_i}

改进加权 Gram-Schmidt 分解

如同改进Gram-Schmidt分解,可以按行计算矩阵 R R 和先减去投影分量,得到改进加权 Gram-Schmidt 分解:令 a i 2 = a i T W a i a^2_i=\mathbf{a}^T_iW\mathbf{a}_i 为广义内积。

1、 r 11 = a 1 / w 1 r_{11}=a_1/\sqrt{w_1} q 1 = w 1 a 1 / a 1 \mathbf{q}_1=\sqrt{w_1}\mathbf{a}_1/a_1 r 1 i = q 1 T W a i / w 1 r_{1i} = \mathbf{q}^T_1W\mathbf{a}_i/w_1 a i = a i q 1 r 1 i , i > 1 \mathbf{a}_i = \mathbf{a}_i - \mathbf{q}_1 r_{1i}, i>1 。令 b 0 = b \mathbf{b}_0=\mathbf{b} ,注意对向量 b \mathbf{b} 也要同样处理,即令 δ 1 = q 1 T W b / w 1 \delta_1 = \mathbf{q}^T_1W\mathbf{b}/w_1 b = b q 1 δ 1 \mathbf{b} = \mathbf{b} - \mathbf{q}_1\delta_1

2、 r 22 = a 2 / w 2 r_{22}=a_2/\sqrt{w_2} q 2 = w 2 a 2 / a 2 \mathbf{q}_2=\sqrt{w_2}\mathbf{a}_2/a_2 r 2 i = q 2 T W a i / w 2 r_{2i} = \mathbf{q}^T_2W\mathbf{a}_i/w_2 a i = a i q 2 r 2 i , i > 2 \mathbf{a}_i = \mathbf{a}_i - \mathbf{q}_2 r_{2i}, i>2 。注意对向量 b \mathbf{b} 也要同样处理,即令 δ 2 = q 2 T W b / w 2 \delta_2 = \mathbf{q}^T_2W\mathbf{b}/w_2 b = b q 2 δ 2 \mathbf{b} = \mathbf{b} - \mathbf{q}_2\delta_2

3、 r i i = a i / w i r_{ii}=a_i/\sqrt{w_i} q i = w i a i / a i \mathbf{q}_i=\sqrt{w_i}\mathbf{a}_i/a_i r i j = q i T W a j / w i r_{ij} = \mathbf{q}^T_iW\mathbf{a}_j/w_i a j = a j q i r i j , j > i \mathbf{a}_j = \mathbf{a}_j - \mathbf{q}_i r_{ij}, j>i 。注意对向量 b \mathbf{b} 也要同样处理,即令 δ i = q i T W b / w i \delta_i = \mathbf{q}^T_iW\mathbf{b}/w_i b = b q i δ i \mathbf{b} = \mathbf{b} - \mathbf{q}_i\delta_i

一直计算,直到 i = n i=n 结束。

令向量 d = ( δ 1 , , δ m ) \mathbf{d} = (\delta_1,\cdots,\delta_m) ,因为 d = ( Q T W Q ) 1 Q T W b 0 \mathbf{d} = (Q^TWQ)^{-1}Q^TW\mathbf{b}_0 ,则最优近似解为 x ^ = R 1 d \mathbf{\hat{x}} = R^{-1}\mathbf{d} ,即 x ^ i = ( δ i j = i + 1 n ( δ j x ^ j ) ) / r i i \hat{x}_i = (\delta_i - \sum^{n}_{j=i+1} (\delta_j\hat{x}_j))/r_{ii}

阻尼倒数法

计算 q i = w i a i / a i \mathbf{q}_i=\sqrt{w_i}\mathbf{a}_i/a_i 涉及到除以广义内积 a i a_i ,为了增加数值稳定性,可以采用阻尼倒数法,具体方法和QR分解的阻尼倒数法一样,这里省略。

权重排序

计算上三角阵 R R 元素 r i j = q i T W a j / w i r_{ij} = \mathbf{q}^T_iW\mathbf{a}_j/w_i 涉及除以权重 w i w_i ,如果其为或者趋近 0 0 ,则也会导致数值不稳定。为了解决这个问题,可采用权重排序计算。即按照权重从大到小排序 w i > w i + 1 w_i > w_{i+1} ,根据权重排序结果调整方程 A x = b A\mathbf{x} = \mathbf{b} 中子方程的顺序,使之与权重顺序对应。这样只要前 n n 个权重不趋近 0 0 即可保证数值稳定。如果所有权重大小差不多,则不必排序,可直接计算。注意此时不能采用阻尼倒数法。

猜你喜欢

转载自blog.csdn.net/jhshanvip/article/details/105896998
今日推荐