我在为朱莉娅建造POE乐团时遇到了麻烦.我正在关注这篇论文和其他论文的一部分.
在朱利亚,我计算:
X = randn(dim, dim)
Q, R = qr(X)
Q = Q*diagm(sign(diag(R)))
ij = (irealiz-1)*dim
phases_ens[1+ij:ij+dim] = angle(eigvals(Q))
Run Code Online (Sandbox Code Playgroud)
dim矩阵维度在哪里,irealiz只是实现总数的索引.
我对Q的阶段感兴趣,因为我希望Q是具有适当Haar测量的正交矩阵.如果dim=50和实现的总数是100000,并且由于我正在纠正Q,我应该期望一个平坦的phases_ens分布.然而,除了零和pi处的峰值之外,我获得了平坦的分布.代码有问题吗?
代码实际上是正确的,只是字段错误
特征值结果对于酉矩阵(复数项)成立;根据 Edelman 和 Rao 论文第 4.6 节中的代码,如果将第一行替换为
X = randn(dim, dim) + im*randn(dim, dim)
Run Code Online (Sandbox Code Playgroud)
你得到你想要的结果。
正交矩阵(实数项)的行为略有不同(请参阅本文第 3 节中的备注 1 ):
dims为奇数时,一个特征值将为 +1 或 -1(每个特征值的概率为 1/2),所有其他特征值将以共轭对的形式出现。dims为偶数时,+1和-1均为特征值,概率为1/2,否则无实特征值。(顺便感谢您的链接:我不知道斯图尔特论文)