# Why normalized eigen values and eigen vectors can have imaginary number?

My goal is to prove why normalized eigen values and eigen vectors have imaginary number.

According to this website: normalized eigen vector is just an eigen vector divided by the length of the vector.

I can prove it by comparing the eigen vector that I got manually with det(A - λ*I) = 0 with the normalized eigen vector from the numpy library.

However, I just don't get it how the numpy library can come up with an imaginary number for the returned eigen values and vectors.

Code

import numpy as np

A = np.array([[1,-1],
[6, 4]])
eigvalues, eigvectors = np.linalg.eig(A)
display(eigvalues, eigvectors)


output

array([2.5+1.93649167j, 2.5-1.93649167j])
array([[-0.23145502+0.29880715j, -0.23145502-0.29880715j],
[ 0.9258201 +0.j        ,  0.9258201 -0.j        ]])


Isn't the normalized eigen vector formula is x / np.sqrt(x1^2 + xn^2)

If x = [ -1 ], then normalized x = [ -1 / √3 ]
[ 2. ]                      [  2 / √3 ]


Edit:

I tried to manually calculate the Code.

λ = (5 +- i√15) / 2


which roughly translate to 2.5 +- 1,93i. New question: why when I call eigenvalues.real it return [2.5, 2.5] instead of whatever is the calculation of 2.5 +- 1,93i is?

So answering your new question so $$\lambda = 2.5 \pm i \sqrt{15}$$ have two eigenvalues encoded in the equation is $$\lambda_1 = 2.5 + i \sqrt{15}$$ and $$\lambda_2 = 2.5 - i \sqrt{15}$$. So every complex number consists of two parts real part and an imaginary part. Notice that the real part for the same for $$\lambda_1$$ and $$\lambda_2$$ hence when you ask for the real part it returns [2.5, 2.5].
In your case, both eigenvalues are complex hence and the eigenvector which is a tuple $$( x_1, x_2)$$ where $$x_i$$ is complex as well, but you are right you divide by the magnitude which is a real number.