《矩阵QR分解的三种方法》学习笔记

本文介绍了矩阵的QR分解的三种方法,分别是Schmidt正交化方法,初等变换方法和Givens变换方法。QR分解是指将一个矩阵分解为一个正交矩阵和一个上三角矩阵的乘积,这种分解在数值分析和线性代数中有很多应用。文章给出了每种方法的原理,步骤和例子,以及一些性质和结论。

  1. Schmidt正交化方法是最常用的方法,它的基本思想是将矩阵的列向量进行正交化和单位化,得到一个列正交矩阵Q和一个非奇异上三角矩阵R。这种方法利用了正交向量组的等价性和线性无关性。
  2. 初等变换方法是利用矩阵的第三种行和列初等变换,将矩阵A转化为对称正定矩阵A^T A,然后对A^T A同时进行相应的行和列初等变换,得到一个对角矩阵D,其中对角元素全为正数。再利用D构造一个非奇异上三角矩阵R和一个列正交矩阵Q。
  3. Givens变换方法是利用Givens矩阵,也称为平面旋转矩阵,对矩阵A进行左乘,使得A的某些元素变为零,从而得到一个上三角矩阵R。Givens矩阵是一个正交矩阵,它只在某两个坐标轴上进行旋转,不改变其他坐标轴上的元素。通过逆序地将所有Givens矩阵相乘,可以得到一个列正交矩阵Q。

1 Schmidt正交化方法

这种方法是将矩阵的列向量进行正交化和单位化,得到一个列正交矩阵Q和一个非奇异上三角矩阵R。具体步骤如下:

  1. 令$\alpha_1 = a_1$,其中$a_1$是矩阵A的第一列向量。
  2. 令$q_1 = \frac{\alpha_1}{|\alpha_1|}$,其中$|\cdot|$表示向量的模长。
  3. 对于$i=2,3,\dots,n$,令$\alpha_i = a_i - \sum_{j=1}^{i-1}(q_j^T a_i)q_j$,其中$a_i$是矩阵A的第i列向量,$q_j$是已经求出的第j个单位正交向量。
  4. 令$q_i = \frac{\alpha_i}{|\alpha_i|}$。
  5. 最后得到$Q=[q_1,q_2,\dots,q_n]$和$R=Q^T A$。

  1. 从矩阵A中取出第一列向量$a1$,将其单位化,得到$q1$。

  2. 从矩阵A中取出第二列向量$a2$,将其减去与$q1$的投影,得到一个与$q1$正交的向量$b2$,然后将其单位化,得到$q2$。(注意:这里的投影是指向量在另一个向量上的投影,即向量在另一个向量上的投影长度乘以另一个向量的单位向量。)

  3. 重复上述过程,直到取出所有的列向量,得到一组正交单位向量$q1,q2,…,qn$。

  4. 将这组向量作为矩阵$Q$的列向量,即$Q=[q1,q2,…,qn]$。

  5. 计算$R=Q^TA$,其中$Q^T$是$Q$的转置矩阵。由于$Q$是正交矩阵,$Q^TQ=I$,所以$R=AQQ^TA$。由于$Q$的列向量是正交的,$R$是一个上三角矩阵。

例如,对于矩阵$$A=\begin{bmatrix}1 & -1 & 4 \\ 1 & 4 & -2 \\ 1 & 4 & 2 \\ 1 & -1 & 0 \end{bmatrix}$$,我们可以按照上述步骤求出$$Q=\begin{bmatrix}0.5 & -0.5 & 0.5 \\ 0.5 & 0.5 & -0.5 \\ 0.5 & 0.5 & 0.5 \\ 0.5 & -0.5 & -0.5 \end{bmatrix}$$和$$R=\begin{bmatrix}2 & 3 & 2 \\ 0 & 5 & -2 \\ 0 & 0 & \sqrt{10} \end{bmatrix}$$

注: 步骤1-3位为Gram–Schmidt过程,具体过程如下:
给定一组线性无关的向量${v_1, …, v_k}$,Gram–Schmidt过程可以产生一组标准正交的向量${u_1, …, u_k}$,使得
$$u_1 = \frac{v_1}{|v_1|}$$
$$u_i = \frac{v_i - \sum_{j=1}^{i-1} \langle v_i, u_j \rangle u_j}{|v_i - \sum_{j=1}^{i-1} \langle v_i, u_j \rangle u_j|}, \quad i = 2, …, k$$
其中$\langle \cdot, \cdot \rangle$表示内积,$|\cdot|$表示向量的范数(长度)。

这个过程可以看作是对给定向量组的一种正交化处理,将原来的向量组变成一组正交的向量组。这个过程的几何意义是,从原来的向量组中,依次取出一个向量,然后将其减去与前面所有向量的投影,得到一个与前面所有向量都正交的向量,然后将其单位化,得到一个单位正交向量。重复这个过程,直到取出所有的向量,得到一组正交单位向量。

2 初等变换方法

这种方法是利用矩阵的第三种行和列初等变换,将矩阵A转化为对称正定矩阵$A^T A$,然后对$A^T A$同时进行相应的行和列初等变换,得到一个对角矩阵D,其中对角元素全为正数。再利用D构造一个非奇异上三角矩阵R和一个列正交矩阵Q。具体步骤如下:

  1. 对于$i=1,2,\dots,n-1$,令$p_{ii}=a_{ii}$,其中$a_{ii}$是矩阵A的第i行第i列元素。
  2. 对于$j=i+1,i+2,\dots,n$,令$p_{ij}=a_{ij}-\frac{a_{ii}}{p_{ii}}a_{ji}$,其中$a_{ij}$和$a_{ji}$是矩阵A的第i行第j列和第j行第i列元素。
  3. 对于$k=i+1,i+2,\dots,n$,令$p_{kk}=a_{kk}-\sum_{j=i+1}^{k-1}\frac{p_{kj}^2}{p_{jj}}$。
  4. 对于$k=i+2,i+3,\dots,n$和$j=i+1,i+2,\dots,k-1$,令$p_{kj}=a_{kj}-\sum_{s=i+1}^{j-1}\frac{p_{ks}}{p_{ss}}p_{sj}$。
  5. 最后得到$P=[p_{ij}]$和$D=P^T P$。
  6. 对于$i=1,2,\dots,n$,令$r_{ii}=\sqrt{d_{ii}}$,其中$d_{ii}$是矩阵D的第i行第i列元素。
  7. 对于$i=1,2,\dots,n-1$和$j=i+1,i+2,\dots,n$,令$r_{ij}=\frac{p_{ij}}{r_{ii}}$。
  8. 最后得到$R=[r_{ij}]$和$Q=A R^{-1}$。

  1. 将矩阵$A$转置乘以$A$,得到一个对称正定矩阵$B=A^TA$。
  2. 对$B$进行第三种行和列初等变换,使得$B$变成一个对角矩阵$D$,并记录每次变换所用的初等矩阵$P_i$和$Q_i$。
  3. 对$D$开平方根,得到一个非奇异上三角矩阵$R$。
  4. 将所有的$P_i$和$Q_i$相乘,得到一个正交矩阵$Q$。

例如,对于矩阵$$A=\begin{bmatrix}3 & -6 \\ 4 & -8 \end{bmatrix}$$,我们可以按照上述步骤求出$$P=\begin{bmatrix}3 & -6 \\ 4 & -4 \end{bmatrix}$$,$$D=\begin{bmatrix}25 & -50 \\ -50 &100 \end{bmatrix}$$,$$R=\begin{bmatrix}5 & -10 \\ 0 &10 \end{bmatrix}$$和$$Q=\begin{bmatrix}-0.6 & -0.8 \\ -0.8 &0.6 \end{bmatrix}$$

3 Givens变换方法

这种方法是利用Givens矩阵,也称为平面旋转矩阵,对矩阵A进行左乘,使得A的某些元素变为零,从而得到一个上三角矩阵R。Givens矩阵是一个正交矩阵,它只在某两个坐标轴上进行旋转,不改变其他坐标轴上的元素。通过逆序地将所有Givens矩阵相乘,可以得到一个列正交矩阵Q。具体步骤如下:

  1. 从矩阵A的第一列开始,依次对每一列进行Givens变换,使得每一列除了对角线上的元素外,其他元素都变为零,得到一个上三角矩阵R。
  2. 记录每次变换所用的Givens矩阵$G_i$,并将它们逆序相乘,得到一个正交矩阵Q。
作者

Evan Mi

发布于

2023-06-01

更新于

2023-06-03

许可协议

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×