首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的QR分解和Choleski分解

R中的QR分解和Choleski分解
EN

Stack Overflow用户
提问于 2013-10-23 08:43:31
回答 1查看 1.1K关注 0票数 3

我最近读到了如何使用Choleski分解来计算QR分解的R矩阵。这种关系是:

R=Choleski分解(A^TA)

示例:

代码语言:javascript
运行
复制
> A=matrix(c(1,2,3,2,3,5,1,3,2), nrow=3)
> A
     [,1] [,2] [,3]
[1,]    1    2    1
[2,]    2    3    3
[3,]    3    5    2

> AtA = t(A)%*%A
> AtA
     [,1] [,2] [,3]
[1,]   14   23   13
[2,]   23   38   21
[3,]   13   21   14

现在计算QR和Choleski分解:

代码语言:javascript
运行
复制
> chol(AtA)
         [,1]     [,2]       [,3]
[1,] 3.741657 6.147009  3.4743961
[2,] 0.000000 0.462910 -0.7715167
[3,] 0.000000 0.000000  1.1547005

> qr_A = qr(A)
> qr.R(qr_A)
          [,1]      [,2]       [,3]
[1,] -3.741657 -6.147009 -3.4743961
[2,]  0.000000  0.462910 -0.7715167
[3,]  0.000000  0.000000 -1.1547005

由Choleski分解和QR分解得到的R矩阵的值是不一样的。chol(AtA)的第一行和第三行被否定为w.r.t qr.R(qr_A)。为什么会这样呢?我认为这种关系不正确吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-23 11:25:12

矩阵的QR分解不是唯一的!有R=chol(AtA)的QR分解,但也有其他的,qr不一定给出这个分解。在你的例子中

代码语言:javascript
运行
复制
qr.Q(qr_A)%*%qr.R(qr_A) 

代码语言:javascript
运行
复制
(qr.Q(qr_A)%*%diag(c(-1,1,-1)))%*%chol(AtA)

均为A的有效QR分解。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19536933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档