在 Julia 中构建随机正交矩阵序列
可以像在 matlab 中那样通过 qr 分解构造一个随机正交:
A = rand(n,n)
Q, R = qr(A).
但是,如何构建 50 或 100 个正交随机矩阵?
这是一个生成 100 个正交 5x5 矩阵的数组理解:
Qs = [copy(qr(randn(5, 5)).Q) for _=1:100]
你可以检查它们是否都是正交的:
julia> all(Q'Q ≈ I for Q in Qs)
true
Q = [rand(Haar(1),2) for _ = 1:n]
作为已接受答案的替代方案