之前介绍的矩阵的三角分解系列介绍了利用矩阵初等变换解决了矩阵三角化问题以及具体的三角分解。但是以初等变换工具的三角分解方法并不能消除病态线性方程组不稳定问题,而且有时候对于可逆矩阵有可能也不存在三角分解。所以后面为了解决这里问题,发展出来了以正交(酉)变换的矩阵的QR(正交三角)分解,矩阵的正交三角分解是一种对任何可逆矩阵均存在理想分解。进行QR分解需要用到施密特(Schmidt)正交规范化,吉文斯(Givens)变换和豪斯霍尔德(Householder)变换等。这里矩阵的QR分解系列教程主要是针对在学习QR分解时候的涉及到的一些细节,包括很多方法的来源和证明等,以及其中用到的一些矩阵操作的基础知识,主要包括:
- [矩阵的QR分解系列一] 施密特(Schmidt)正交规范化
- [矩阵的QR分解系列二] 吉文斯(Givens)变换
- [矩阵的QR分解系列三] 豪斯霍尔德(Householder)变换
- [矩阵的QR分解系列四] QR(正交三角)分解
- [矩阵的QR分解系列五] Eigen中的QR分解
这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。
简介
在矩阵操作中,经常需要从一组线性无关的向量构造出一组同等个数等价的两两正交的向量,并且需要使每个向量的模等于1,也就是每个新向量都是单位向量,这种做法叫做线性无关向量组的正交规范化。本文主要介绍的施密特(Schmidt)正交化方法就是比较常用的正交规范化方法。
上面有几个概念解释一下:
线性无关
对于一组向量 x 1 , x 2 , . . . , x n ( n ≥ 1 ) \mathbf{x_1,x_2,...,x_n}(n\geq1) x1,x2,...,xn(n≥1)来说,只有 k 1 , k 2 , . . . , k n ( n ≥ 1 ) k_1,k_2,...,k_n(n\geq1) k1,k2,...,kn(n≥1)全为0时才满足
k 1 x 1 + k 2 x 2 + … + k n x n = 0 , k i ∈ R k_1\mathbf{x_1}+k_2\mathbf{x_2}+\ldots+k_n\mathbf{x_n}=\mathbf{0}, \qquad k_i \in R k1x1+k2x2+…+knxn=0,ki∈R
则称向量组 x 1 , x 2 , . . . , x n \mathbf{x_1,x_2,...,x_n} x1,x2,...,xn线性无关,否则就称其线性相关。
向量正交
在解析几何概念中,两个非零向量正交的充要条件是它们夹角的余弦值为零,也就是他们的内积(也就是常说的点积)为零。
x = ( x 1 , x 2 , … , x n ) , y = ( y 1 , y 2 , … , y n ) \mathbf{x}=(x_1,x_2,\dots,x_n),\mathbf{y}=(y_1,y_2,\dots,y_n) x=(x1,x2,…,xn),y=(y1,y2,…,yn)为欧式空间的两个向量,如果 ( x , y ) = 0 (\mathbf{x,y})=0 (x,y)=0,则 x \mathbf{x} x与 y \mathbf{y} y正交。其中
( x , y ) = x 1 y 2 + x 2 y 2 + ⋯ + x n y n (1) (\mathbf{x,y})=x_1y_2+x_2y_2+\dots+x_ny_n \tag{1} (x,y)=x1y2+x2y2+⋯+xnyn(1)
表示内积运算。
同时内积具有下面的性质:
- 对称性 ( x , y ) = ( y , x ) (\mathbf{x,y})=(\mathbf{y,x}) (x,y)=(y,x);
- 可加性 ( x + z , y ) = ( x , y ) + ( z , y ) (\mathbf{x+z,y})=(\mathbf{x,y})+(\mathbf{z,y}) (x+z,y)=(x,y)+(z,y);
- 齐次性 ( k z , y ) = k ( x , y ) (k\mathbf{z,y})=k(\mathbf{x,y}) (kz,y)=k(x,y), k k k为任何实数;
- 非负性 ( x , x ) ≥ 0 (\mathbf{x,x})\geq0 (x,x)≥0;当且仅当 x = 0 \mathbf{x}=0 x=0时, ( x , x ) = 0 (\mathbf{x,x})=0 (x,x)=0;
规范化步骤
假设 x 1 , x 2 , . . . , x n ( n ≥ 1 ) \mathbf{x_1,x_2,...,x_n}(n\geq1) x1,x2,...,xn(n≥1)为一组线性无关的向量, z 1 , z 2 , . . . , z n ( n ≥ 1 ) \mathbf{z_1,z_2,...,z_n}(n\geq1) z1,z2,...,zn(n≥1)为施密特正交规范后两两正交的一组,具体步骤为:
- y 1 = x 1 \mathbf{y_1=x_1} y1=x1当做正交向量组的第一个向量,为了满足正交的条件,后面的生成的向量都要和 y 1 \mathbf{y_1} y1正交,也就是满足 ( y i , y 1 ) = 0 , i = 2 , 3 , … , n (\mathbf{y_i,y_1})=0, \ i=2,3,\dots,n (yi,y