Python矩阵并实现Gram-Schmidt过程

时间:2013-10-03 15:20:42

标签: python matrix svd

我应该生成一个随机的40 x 40矩阵A,其指数级别的奇异值定义为2 ^ -1 2 ^ -2 ... 2 ^ -40。我该怎么做呢?它说np.linalg.qr很有用。 我正在考虑做 np.random.rand(40,40)但我不知道如何使对角线呈指数上升

然后它说要实施Gradm-Schmidt流程 救命啊!

1 个答案:

答案 0 :(得分:0)

评论有点长,所以即使不是真正的答案,我也会留在这里。

如果您首先生成一个随机的40x40矩阵,则无法强制它具有您想要的特征值。相反,从对角化向后工作会更容易。给出特征值,只需制作一些随机特征向量并重新计算矩阵。

由于你被赋予了不同的特征值\ mu_i = 2 ^ -i,你知道特征向量跨越R ^ 40。我个人会采用40x40单位矩阵并随机旋转它以使U然后做A = UDU *。其中D_ {ij} = \ delta_ {ij} \ mu_i

如果你需要使用Gram-Schmidt,你可以生成40个随机线性独立的向量,并使用Gram-Schmidt得到U.