code Link to heading

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 Link to heading

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 Link to heading

  • matrix [2981][v1v2]=λ[v1v2](1)\tag{1} \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} v_1 \newline v_2 \end{matrix} \right]

[2981][v1v2]=λ[1001][v1v2](2)\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]

[2981][v1v2]λ[1001][v1v2]=0(3)\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

[2λ981λ][v1v2]=0(4)\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

  • determinant M=0|M| = 0

(2λ)(1λ)98=021+(λ)1+2(λ)+(λ)(λ)72=02λ2λ+λ272=0λ23λ70=0(λ+3)(λ10)=0λ1=7,  λ2=10.(5)\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}

  • First eigenvalue 2v1,1+9v1,2=7v1,19v1,1=9v1,2v1,1=v1,2V1=12[11]=[0.707106781180.70710678118](6)\tag{6} \begin{array}{rcl} 2 v_{1,1} + 9 v_{1,2} = -7 v_{1,1} & \Rightarrow & 9v_{1,1} = - 9v_{1,2} \newline & \Rightarrow & v_{1,1} = -v_{1,2} \newline & \Rightarrow & \displaystyle V_1 = \frac{1}{\sqrt{2}} \left[ \begin{matrix} 1 \newline -1 \end{matrix} \right] = \left[ \begin{matrix} 0.70710678118 \newline -0.70710678118 \end{matrix} \right] \end{array} 8v2,1+v2,2=7v2,28v2,1=8v2,2v2,1=v2,2V1=12[11]=[0.707106781180.70710678118](7)\tag{7} \begin{array}{rcl} 8 v_{2,1} + v_{2,2} = -7 v_{2,2} & \Rightarrow & 8 v_{2,1} = -8 v_{2,2} \newline & \Rightarrow & v_{2,1} = - v_{2,2} \newline & \Rightarrow & \displaystyle V_1 = \frac{1}{\sqrt{2}} \left[ \begin{matrix} 1 \newline -1 \end{matrix} \right] = \left[ \begin{matrix} 0.70710678118 \newline -0.70710678118 \end{matrix} \right] \end{array}

  • Second eigenvalue 2v1,1+9v1,2=10v1,18v1,1=9v1,2V2=1145[89]=[0.664363838830.74740931868](8)\tag{8} \begin{array}{rcl} 2 v_{1,1} + 9 v_{1,2} = 10 v_{1,1} & \Rightarrow & 8v_{1,1} = 9v_{1,2} \newline & \Rightarrow & \displaystyle V_2 = \frac{1}{\sqrt{145}} \left[ \begin{matrix} 8 \newline 9 \end{matrix} \right] = \left[ \begin{matrix} 0.66436383883 \newline 0.74740931868 \end{matrix} \right] \end{array} 8v2,1+v2,2=10v2,28v2,1=9v2,2V2=1145[89]=[0.664363838830.74740931868](9)\tag{9} \begin{array}{rcl} 8 v_{2,1} + v_{2,2} = 10 v_{2,2} & \Rightarrow & 8 v_{2,1} = 9 v_{2,2} \newline & \Rightarrow & \displaystyle V_2 = \frac{1}{\sqrt{145}} \left[ \begin{matrix} 8 \newline 9 \end{matrix} \right] = \left[ \begin{matrix} 0.66436383883 \newline 0.74740931868 \end{matrix} \right] \end{array}

comparion Link to heading

ApproachNumericalTheoretical
V1V_1[0.74740932, 0.66436384][0.70710678118, -0.70710678118]
V2V_2[-0.70710678, 0.70710678][0.66436383883, 0.74740931868]

dot product Link to heading

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)