Skip to main content
added 264 characters in body
Source Link

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?

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 ]

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?

Source Link

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 ]