R中矩阵的QR分解



   QR分解是常用的三种矩阵分解方法之一,QR分解经常用来解线性最小二乘法问题,有如下定义:

    1).若n阶实非奇异矩阵A可以分解为正交矩阵Q与实非奇异上三角矩阵R的乘积,即A=QR,则称该分解式为矩阵A的QR分解;

    2).进而A是m*n列满秩矩阵,若A=QR,其中Q是m*n矩阵, Q'Q=I(称Q为列正交矩阵), R为非奇异上三角矩阵,也称为矩阵A的QR分解。

    

   这个例子将一个列满秩的矩阵进行QR分解,同时又通过QR分解结果还原矩阵,主要是涉及到对于QR分解的学习。

   本例中的数据temp.csv如下:

A,B,C,D
71,74,92,79
77,73,62,70
80,84,95,88
78,83,82,88
75,82,96,77
66,84,70,79
70,83,66,70
78,84,70,29
72,87,78,49
79,85,79,80



   R中QR分解的代码:

inputdata <- read.csv("temp.csv", sep = ",", header = T)
inputdata <- as.matrix(inputdata)
qrresult <- NULL
#能进行QR分解的矩阵必须列列满秩或行满秩(转置为列满秩)
if (rankMatrix(inputdata) == min(dim(inputdata)))
{  
  qrresult <- qr(inputdata)  #进行qr分解
}else{
  stop("Don't meet the needs of QR")
}
Qreslt <- qr.Q(qrresult)  #获取QR分解的Q
Rreslt <- qr.R(qrresult)  #获取QR分解的R
Xreslt <- qr.X(qrresult)  #通过QR分解获取原矩阵



  QR分解结果:

  qr对象(包含了Q和R的信息):qrresult,通过qr对象求取的Q矩阵(正交矩阵):Qresult,通过qr对象求取的R矩阵(上三角矩阵):Rresult,以及通过Qresult和Rresult还原的原矩阵。







参考:

[1]李建东.矩阵QR分解的三种方法.吕梁高等专科学校学报,2009:25(1).






  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值