生成具有实特征值的随机矩阵

计算科学 线性代数 matlab 算法 矩阵
2021-12-06 17:12:34

有谁知道任何可以帮助我生成具有 REAL EIGEN 值的随机矩阵的 matlab 算法?谢谢。

2个回答

你没有提到你想要随机矩阵的条目什么样的分布,所以我能想到的最简单的方法是首先创建一个随机矩阵n×n矩阵A然后获得B=12(A+AT). 这给了你一个对称矩阵B带有随机条目。由于对称矩阵具有实特征值,因此矩阵B将满足您的要求。

Matlab代码:

A = rand(n)
B = 0.5 * (A + transpose(A))

这是另一种方法,基于Bill Barth 的回答首先,创建一个随机对角矩阵D,然后得到一个随机正交矩阵Q最后,计算相似度变换B=QDQT. 矩阵B将具有相同的特征值D但一般不会是对角线。提出随机正交矩阵的简单方法Q是计算一个随机矩阵的 QR 分解。

Matlab代码:

D = diag(rand(n, 1))
[Q ~] = qr(rand(n))
B = Q * D * transpose(Q)

如果要指定特征值,则可以将它们放在否则为空矩阵的对角线上。