有没有办法随机生成一个可逆矩阵$Q \in \{-1, +1\}^{n imes n}$?

问题描述 投票:0回答:1

我正在尝试随机生成对称矩阵 $A \in \R{n imes n}$ 与 $-1, +1$ 特征向量进行一些数值实验。

我想使用特征分解 $A = Q \Lambda Q^{-1}$,但这需要能够随机生成 $Q \in {-1, +1}^{n imes n}$ 使得 $ Q$ 是可逆的,$A$ 是对称的。

在 python 或 MATLAB 中是否有任何轻松的方法可以做到这一点?

我尝试随机采样 $n$ 随机 $-1, +1 $n$ 维向量来形成 $Q$ 的列,但没有成功。基本上,以这种方式构造时,$Q$ 永远不会可逆。

我也尝试简单地将Q作为全1矩阵并随机翻转元素的符号,但在计算$A = Q \Lambda Q^{-1}$后我没有得到对称矩阵。

python matlab matrix eigenvector
1个回答
0
投票

我对你的问题有点困惑。我创建了仅包含 1 和 -1 的对称 NxN (N=30) 网格,并且几乎所有网格都是可逆的。

>>> N = 30
>>> grid = np.mgrid[:N, :N]
>>> in_top = grid[0] <= grid[1]


>>> # random NxN array of 1s and -1s
>>> x = np.random.choice([-1, 1], size=(N, N))
>>> # create a symmetric matrix from the top half.
>>> z = np.choose(in_top, [x, x.T])
>>> assert np.all(z == z.T)
>>> np.linalg.det(z)
201062451511295.84
© www.soinside.com 2019 - 2024. All rights reserved.