如何构建朱莉娅的POE集合

时间:2015-05-18 21:03:22

标签: julia

我在为朱莉娅建造POE乐团时遇到了麻烦。我正在关注this论文和其他paper的一部分。

在朱利亚,我计算:

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))

其中dim是矩阵维度,而irealiz只是实现总数的索引。

我对Q的阶段感兴趣,因为我希望Q是具有适当Haar测量的正交矩阵。如果dim=50和实现总数为100000,并且由于我正在更正Q,我应该期望平均phases_ens分布。然而,除了零和pi处的峰值之外,我获得了平坦的分布。代码有问题吗?

1 个答案:

答案 0 :(得分:4)

代码实际上是正确的,你只有错误的字段

对于酉矩阵(复数条目),特征值结果为真;根据Edelman和Rao论文第4.6节中的代码,如果用

替换第一行
X = randn(dim, dim) + im*randn(dim, dim)

你得到你想要的结果。

正交矩阵(实际条目)的行为略有不同(参见this paper第3节中的注释1):

  • dims为奇数时,一个特征值为+1或-1(每个特征值为1/2),所有其他特征值将作为共轭对出现。
  • dims为偶数时,+1和-1都是特征值,概率为1/2,否则没有真正的特征值。

(顺便感谢链接:我不知道斯图尔特的论文)