In [1]:
import numpy as np
In [2]:
arr = np.array([[8, 1], [4, 5]])
In [3]:
w, v = np.linalg.eig(arr)
In [4]:
print(w)
In [5]:
print(v)
In [6]:
print('value: ', w[0])
print('vector: ', v[:, 0] / v[0, 0])
In [7]:
print(w[np.argmax(w)])
print(v[:, np.argmax(w)])
In [8]:
def get_eigenpairs(arr):
w, v = np.linalg.eig(arr)
eigenpairs = []
for i, val in enumerate(w):
vec = v[:, i] / np.min(np.abs(v[:, i][v[:, i] != 0]))
eigenpairs.append((val, vec))
return eigenpairs
In [9]:
eigenpairs = get_eigenpairs(arr)
for val, vec in eigenpairs:
print('value: {}, vector: {}'.format(val, vec))
In [10]:
arr = np.array([[1, 1, 2], [0, 2, -1], [0, 0, 3]])
eigenpairs = get_eigenpairs(arr)
for val, vec in eigenpairs:
print('value: {}, vector: {}'.format(val, vec))
In [11]:
arr = np.array([[3, 2], [-2, 3]])
eigenpairs = get_eigenpairs(arr)
for val, vec in eigenpairs:
print('value: {}, vector: {}'.format(val, vec))