在 scipy 中获取非标准化特征向量

bli*_*guy 2 scipy eigenvector

Scipy 和 Numpy 返回标准化的特征向量。我正在尝试将向量用于物理应用,并且我需要它们不被标准化。

例如 a = np.matrix('-3, 2; -1, 0') W,V = spl.eig(a)

scipy 返回特征值 (W)[-2,-1]和模态矩阵 (V)(特征值作为列)[[ 0.89442719 0.70710678][ 0.4472136 0.70710678]]

我需要原始模态矩阵[[2 1][1 1]]

小智 5

你应该看看 sympy。这个包试图通过代数计算而不是数字计算(如 numpy 那样)来解决这个问题。

import sympy as sp
sp.init_printing(use_unicode=True)

mat_a = sp.Matrix([[-3, 2], [-1, 0]])
mat_a.eigenvects()
Run Code Online (Sandbox Code Playgroud)

结果是(特征值、重数、特征向量):

[(-2, 1, [[2],[1]]), (-1, 1, [[1],[1]])]
Run Code Online (Sandbox Code Playgroud)