我想用Tensorflow和/或Numpy生成可逆矩阵(特别是来自大小为n的一般线性组GL(n)的矩阵),以便与我的神经网络一起使用。
如何做到这一点,最好的办法是什么?
我知道有一种方法可以通过计算任意平方矩阵的(A + A.T)/2来生成对称可逆矩阵,但是,我希望我的方法不仅仅是对称的。
发布于 2022-08-20 13:19:39
我碰巧找到了一种方法,我相信它可以利用对角优势产生大量的随机可逆矩阵。
定理是,给定一个nxn矩阵,如果对角线元素的abs大于对角元素所在行的所有行元素的abs之和,那么基础矩阵是可逆的。(这是维基百科的相应文章:https://en.wikipedia.org/wiki/Diagonally_dominant_matrix)
因此,下面的代码段生成任意可逆矩阵。
n = 5 # size of invertible matrix I wish to generate
m = np.random.rand(n, n)
mx = np.sum(np.abs(m), axis=1)
np.fill_diagonal(m, mx)https://stackoverflow.com/questions/73426718
复制相似问题