QR分解

维基百科,自由的百科全书
跳转至: 导航搜索
线性代数
\mathbf{A} = \begin{bmatrix}
1 & 2 \\
3 & 4 \end{bmatrix}
向量 · 矩阵  · 行列式  · 线性空间

QR分解法是三種将矩阵分解的方式之一。這種方式,把矩阵分解成一个半正交矩阵与一个上三角矩阵的积。QR分解经常用来解线性最小二乘法问题。QR分解也是特定特征值算法QR算法的基础。

定义[编辑]

实数矩阵AQR分解是把A分解为

 A = QR, \,

这里的Q正交矩阵(意味着QTQ = I)而R是上三角矩阵。类似的,我们可以定义A的QL, RQ和LQ分解。

更一般的说,我们可以因数分解复数m×n矩阵(有着mn)为 m×n 酉矩阵(在QQ = I的意义上)和n× n上三角矩阵的乘积。

如果A非奇异的,则这个因数分解为是唯一,当我们要求R的对角是正数的时候。

QR分解的求法[编辑]

QR分解的实际计算有很多方法,例如Givens旋转Householder变换,以及Gram-Schmidt正交化等等。每一种方法都有其优点和不足。

Gram-Schmidt正交化[编辑]

参见Gram-Schmidt正交化

Matlab[编辑]

MATLAB以qr函数来执行QR分解法,其语法为

[Q,R]=qr(A)
其中Q代表正规正交矩阵,
而R代表上三角形矩阵。

此外,原矩阵A不必为正方矩阵; 如果矩阵A大小为n*m,则矩阵Q大小为n*n,矩阵R大小为n*m。