butiran

eigenvalue matrix 2x2

code

import math
import numpy as np
from numpy.linalg import eig

# matrix
print("M = ")
M = np.array([
  [2, 9],
  [8, 1]
])
print(M)
print()

# eigenvalue, eigenvector
val, vec = eig(M)

# eigenvalues
print("Eigenvalue =", val)
print()

# eigenvectors
print("v =")
print(vec)
print()

v1 = vec[:, 0]
print("v1 =", v1)
print()

v2 = vec[:, 1]
print("v2 =", v2)
print()

# check relations
Mv1 = M @ v1
print("M v1 / val1 =", end=' ')
print(Mv1 / val[0])
print()

Mv2 = M @ v2
print("M v2 / val2 =", end=' ')
print(Mv2 / val[1])
print()

results

M = 
[[2 9]
 [8 1]]

Eigenvalue = [10. -7.]

v =
[[ 0.74740932 -0.70710678]
 [ 0.66436384  0.70710678]]

v1 = [0.74740932 0.66436384]

v2 = [-0.70710678  0.70710678]

M v1 / val1 = [0.74740932 0.66436384]

M v2 / val2 = [-0.70710678  0.70710678]

theory

$$\tag{2} \left[ \begin{matrix} 2 & 9 \newline 8 & 1 \end{matrix} \right] \left[ \begin{matrix} v_1 \newline v_2 \end{matrix} \right] = \lambda \left[ \begin{matrix} 1 & 0 \newline 0 & 1 \end{matrix} \right] \left[ \begin{matrix} v_1 \newline v_2 \end{matrix} \right] $$

$$\tag{3} \left[ \begin{matrix} 2 & 9 \newline 8 & 1 \end{matrix} \right] \left[ \begin{matrix} v_1 \newline v_2 \end{matrix} \right] - \lambda \left[ \begin{matrix} 1 & 0 \newline 0 & 1 \end{matrix} \right] \left[ \begin{matrix} v_1 \newline v_2 \end{matrix} \right] = 0 $$

$$\tag{4} \left[ \begin{matrix} 2 - \lambda & 9 \newline 8 & 1 - \lambda \end{matrix} \right] \left[ \begin{matrix} v_1 \newline v_2 \end{matrix} \right] = 0 $$

$$\tag{5} \begin{array}{r} (2 - \lambda)(1 - \lambda) - 9 \cdot 8 = 0 \newline 2\cdot1 + (- \lambda) \cdot 1 + 2 \cdot (-\lambda) + (-\lambda) \cdot (-\lambda) - 72 = 0 \newline 2 - \lambda - 2\lambda + \lambda^2 - 72 = 0 \newline \lambda^2 - 3\lambda - 70 = 0 \newline (\lambda + 3)(\lambda - 10) = 0 \newline \lambda_1 = -7, \ \ \lambda_2 = 10. \end{array} $$

comparion

ApproachNumericalTheoretical
$V_1$[0.74740932, 0.66436384][0.70710678118, -0.70710678118]
$V_2$[-0.70710678, 0.70710678][0.66436383883, 0.74740931868]

dot product

the_1 @ the_2 = [[0.05872202]]
num_1 @ num_2 = [[0.05872202]]
import numpy as np

the_1 = np.array([
  [0.74740932, 0.66436384]
])

the_2 = np.array([
  [0.70710678118],
  [-0.70710678118]
])

the_dot = the_1 @ the_2
print("the_1 @ the_2 =", the_dot)

num_1 = np.array([
  [-0.70710678, 0.70710678]
])

num_2 = np.array([
  [0.66436383883],
  [0.74740931868]
])

num_dot = num_1 @ num_2
print("num_1 @ num_2 =", num_dot)