7 矩阵分解

218 阅读2分钟

满秩分解

详见00basic

满秩矩阵的QR分解

理论

首先待分解矩阵AA是一个满秩矩阵,所以他的列向量组[α1,...,αn][\alpha_1, ..., \alpha_n]是线性无关的。

进行施密特正交化(注意先不单位化),然后反解,用β\beta表示α\alpha,可以得到

[α1,α2,...,αn]=[β1,β2,...,βn][1β1,α1β1,β1......0.........0.........0.........][\alpha_1, \alpha_2, ..., \alpha_n] = [\beta_1, \beta_2, ..., \beta_n]\begin{bmatrix} 1 & \frac{\langle \beta_1, \alpha_1 \rangle}{\langle \beta_1, \beta_1 \rangle}&... &... \\ 0 & ... &... & ...\\ 0 &... & ...& ...\\ 0 & ...&... &... \end{bmatrix}

β\beta 进行单位化,再用β\beta表示qq

得到[β1,β2,...,βn]=[q1,q2,...,qn][β1.............................................][\beta_1, \beta_2, ..., \beta_n] =[q_1, q_2, ..., q_n] \begin{bmatrix} ||\beta_1|| & ...&... &... \\ ... & ... &... & ...\\ ... &... & ...& ...\\ ... & ...&... &... \end{bmatrix}

这样就得到了A=[α1,...,αn]=[β1,β2,...,βn][1β1,α1β1,β1......0.........0.........0.........]=[q1,q2,...,qn][β1.............................................][1β1,α1β1,β1......0.........0.........0.........]=Q[β1β1,α1β1,β1......0.........0.........0.........]=QRA = [\alpha_1, ..., \alpha_n]=[\beta_1, \beta_2, ..., \beta_n]\begin{bmatrix} 1 & \frac{\langle \beta_1, \alpha_1 \rangle}{\langle \beta_1, \beta_1 \rangle}&... &... \\ 0 & ... &... & ...\\ 0 &... & ...& ...\\ 0 & ...&... &... \end{bmatrix} = [q_1, q_2, ..., q_n] \begin{bmatrix} ||\beta_1|| & ...&... &... \\ ... & ... &... & ...\\ ... &... & ...& ...\\ ... & ...&... &... \end{bmatrix}\begin{bmatrix} 1 & \frac{\langle \beta_1, \alpha_1 \rangle}{\langle \beta_1, \beta_1 \rangle}&... &... \\ 0 & ... &... & ...\\ 0 &... & ...& ...\\ 0 & ...&... &... \end{bmatrix} = Q\begin{bmatrix} ||\beta_1|| & \frac{\langle \beta_1, \alpha_1 \rangle}{\langle \beta_1, \beta_1 \rangle}&... &... \\ 0 & ... &... & ...\\ 0 &... & ...& ...\\ 0 & ...&... &... \end{bmatrix}=QR

可以发现QQ是一个U矩阵,因为他的列向量是标准正交基,R是一个上三角。更进一步这个分解唯一。这叫QR分解定理。

计算方法

计算比上述流程简单,要充分利用QQ是一个酉矩阵的特点,所以先对A的列向量施密特正交化+单位化,得到Q,再用R=QHAR=Q^HA即可计算RR

应用:解方程组

Ax=bAx=b太难算,可以转化成方程组QHQRx=Rx=QHbQ^HQRx=Rx=Q^Hb

共轭转置很好算、矩阵乘向量很好算,上三角解方程组很容易。

LU分解

把矩阵分解成单位下三角(主对角线都是1)和上三角

存在性:存在且唯一\Leftrightarrow A方阵的各阶顺序主子式0\ne 0

计算方法

很多种,比较简单的就是把两个矩阵为止的元素设成未知数,按照A=LUA=LU,列出方程组求解

这个方程组是很好解的,别看有一些二次项,因为三角的特点决定了方程之间的依赖关系很弱,所以很好解。

SVD分解

不要求方阵,不要求满秩

SVD分解定理

对于矩阵AA,如果rank(A)=r,那么AHAA^HA的特征值有rr个正数λ1λ2...λr>0\lambda_1 \ge \lambda_2... \lambda_r > 0,那么σi=λi\sigma_i = \sqrt{\lambda_i}称为矩阵AA的奇异值。 存在酉矩阵U,VU,V,使得UAV=Σ=[diag(σ1,...,σr)OOO]UAV=\Sigma=\begin{bmatrix}diag(\sigma_1, ..., \sigma_r) & O \\ O & O \end{bmatrix}

计算方法

求解AHAA^HA的特征值和特征向量,特征值降序排列

对特征向量进行正交+单位化,按所属特征值降序排列得到VV

对非0特征值λi\lambda_i,可以得到ui=1σiAviu_i=\frac{1}{\sigma_i}Av_i,得到r个列向量,构成UU的前r列

UU其余列,求解uiTx=0u^T_ix=0(因为U得是酉矩阵,需要和之前的uiu_i的标准正交)

最后排列起来得到UAVUAV