如何在R中找到正交矩阵?

use*_*801 2 r

我想G在R中找到一个正交矩阵(),使得 已知矩阵的特征值G'CG=L=diag(l1,l2,...lp) 在哪里.我找到一个使用代码的矩阵, 但结果矩阵()不是对角线的.有没有人可以帮助我?提前致谢l1>l2>...>lp>0Ceigen(C)$vectorsL

Mat*_*erg 8

您显示的唯一限制C是所有特征值都是正数.但是,这相当于说这C是肯定的.

在这种情况下,e <- eigen(C)我们有以下内容:

Q = e$vectors
l = e$values

Conj(t(Q)) = Q^-1

Q %*% diag(l) %*% Conj(t(Q)) = C
Run Code Online (Sandbox Code Playgroud)

等价的:

diag(l) = Conj(t(Q)) %*% C %*% Q
Run Code Online (Sandbox Code Playgroud)

由于特征值以l递减顺序存储,您就完成了.