具有给定特征值的非对称方阵

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

给定一组特征值,我如何生成具有这些特征值的 非对称 方阵?

我试过 QR 分解,但它返回一个对称的分解。这是我到目前为止所做的。

from scipy.stats import ortho_group

eigenvalues = [0.63, 0.2, 0.09, 0.44, 0.3]
s = np.diag(eigenvalues)
q = ortho_group.rvs(len(eigenvalues))
print(np.linalg.eigvalsh(q.T @ s @ q)) # checking the eigenvalues

print(q.T @ s @ q)
python matrix random scipy eigenvalue
1个回答
0
投票

对角矩阵与正交矩阵的共轭总是给出对称矩阵。要获得非对称矩阵,请改为与非正交可逆矩阵共轭:

import numpy as np

eigenvalues = [0.63, 0.2, 0.09, 0.44, 0.3]
D = np.diag(eigenvalues)
n  = len(eigenvalues)
rng = np.random.default_rng()
while True: 
    P = rng.random((n, n))
    if np.linalg.det(P) != 0:
        break
A = P@D@np.linalg.inv(P)
print(A)
print("\nEigenvalues:")
print(np.linalg.eigvals(A)) # checking the eigenvalues

它给出:

[[ -1.23417213  11.91027222 -13.37533243  10.2722421   -4.59655968]
 [ -0.24097482   3.09499536  -2.88526862   1.82847184  -1.06480054]
 [  0.55926723  -3.15271219   4.08323704  -3.29506564   1.1910062 ]
 [  0.45811586  -2.57807667   3.0211003   -2.22846412   0.92175117]
 [ -0.62006334   5.94747059  -6.43946088   4.61080106  -2.05559614]]

Eigenvalues:
[0.63 0.44 0.09 0.3  0.2 ]
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.