QR分解

以下内容多根据wiki翻译转述而来,其中夹杂个人理解。

在线性代数里,QR分解是将输入矩阵A分解成两个矩阵乘积的形式A=QR,其中Q是正交矩阵,R是上三角矩阵。QR分解经常用来解决最小回归问题,是特征值算法、QR算法的基础。

1 不同情形及相应的定义

1.1 方阵情形
任何实矩阵A都能够被分解为
A=QR
其中,Q是一个正交矩阵(其列向量是正交单位向量,即Q‘Q=E),R是一个上三角矩阵。如果A是可逆的,在要求R的对角元素为正的前提下此分解唯一。
如果A是一个复数方阵,分解类似,对应正交矩阵改称为酉矩阵。
如果A有n个线性无关的列,则Q的前n列构成A的列空间的一个正交基。更通俗地讲,对任意的1<=k<=n,Q的前k列都构成A的前k列张成的空间的一个正交基。
注意,方阵情形一般没什么问题,我整理这篇博客主要是记录下面不是方阵的情形在QR分解时候维度的问题
1.2 非方阵情形 
不妨设矩阵A为m*n维且m>=n,此时A仍然可以分解为Q、R两个矩阵的乘积,注意此时Q、R两个矩阵的维度,其中Q是m*m维,R是m*n维(这个地方我还是有些模糊,有些书上写的是Q是m*nR是n*n维的,但是我用matlab验证的时候与wiki的一致,可能这是分解不唯一导致的吧,那如何才能按照自己想要的维度进行分解呢?这个先留着,看看以后能不能明白)其中上三角矩阵R的下部分(m-n)行全是0,因此可以做截断如以下形式:

其中R1是一个n*n的上三角矩阵,Q1是m*n,Q2是m*(m-n),Q1和Q2都拥有正交列。

针对上面说的模糊的地方,我现在理解了,比如说曾祥金版的矩阵分析简明教程中其写的QR分解就是将原始矩阵分解为Q是m*n维,R是n*n维,但是matlab自己算出来的却分别是m*m与m*n正好与书上的相反,书上的写错了吗?并没有!原因就在于matlab算出来的并没有做截断,实际上,matlab算出来的R是m*n维的后面的m-n行全是0在矩阵相乘并不起作用,对应地把Q也做截断就得到了书上说的Q是m*n维R是n*n的了


QR分解具体怎么计算我就不再翻译了,具体参照 https://en.wikipedia.org/wiki/QR_decomposition#cite_note-Trefethen-1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值