Scipy and Numpy returns eigenvectors normalized. I am trying to use the vectors for a physical application and I need them to not be normalized.
For example
a = np.matrix('-3, 2; -1, 0')
W,V = spl.eig(a)
scipy returns eigenvalues (W) of [-2,-1]
and the modal matrix (V) (eigenvalues as columns) [[ 0.89442719 0.70710678][ 0.4472136 0.70710678]]
I need the original modal matrix [[2 1][1 1]]
According to various related threads (1) (2) (3), there is no such thing as a "non normalized" eigenvector.
Indeed, an eigenvector
v
corresponding to the eigenvaluel
of the matrixA
is defined by,and can therefore be multiplied by any scalar and remain valid.
While depending on the algorithm, the computed eigenvector can have a norm different from 1, this does not hold any particular meaning (physical or otherwise), and should not be relied on. It is customary to return a normalized eigenvector in most numerical libraries (scipy, R, matlab, etc).