Pra*_*rni 3 r linear-algebra decomposition qr-decomposition
我最近读到了如何使用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
Run Code Online (Sandbox Code Playgroud)
现在计算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
Run Code Online (Sandbox Code Playgroud)
如所观察到的,从Choleski和QR分解计算的R矩阵的值不相同.第一行和第三行chol(AtA)被否定了qr.R(qr_A).这是为什么?这是我假设不正确的关系吗?
矩阵的QR分解不是唯一的!有一个QR分解与R = chol(AtA),但也有其他,qr并没有必要给那个.在你的例子中
qr.Q(qr_A)%*%qr.R(qr_A)
Run Code Online (Sandbox Code Playgroud)
和
(qr.Q(qr_A)%*%diag(c(-1,1,-1)))%*%chol(AtA)
Run Code Online (Sandbox Code Playgroud)
是A的有效QR分解.