【问题标题】:QR decomposition and Choleski decomposition in RR中的QR分解和Cholesky分解
【发布时间】:2013-11-01 10:46:06
【问题描述】:

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

R = Choleski 分解(A^TA)

例子:

> 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 分解:

> 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)。这是为什么?我假设的关系不正确吗?

【问题讨论】:

    标签: r linear-algebra decomposition qr-decomposition


    【解决方案1】:

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

    qr.Q(qr_A)%*%qr.R(qr_A) 
    

    和

    (qr.Q(qr_A)%*%diag(c(-1,1,-1)))%*%chol(AtA)
    

    都是 A 的有效 QR 分解。

    【讨论】:

    • 没错。有关更多详细信息,see this excellent answer,在 Computational Science SO beta 上提出完全相同的问题时给出。
    • 太棒了。谢谢! R 中是否有 QR 分解实现肯定会给我一个正对角线?
    • @PrateekKulkarni --As discussed here,R 包 biglm 似乎使用的实现可以满足您的要求。
    猜你喜欢
    • 2012-02-22
    • 2013-02-12
    • 2020-05-29
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2020-11-05
    • 2014-03-03
    相关资源
    最近更新 更多