Tìm hiểu thêm về trị riêng và vectơ riêng

Đại số tuyến tính cho Khoa học dữ liệu với R

Eric Eager

Data Scientist at Pro Football Focus

Đang diễn ra điều gì?

  • Nếu các trị riêng $\lambda_1, \lambda_2, ..., \lambda_n$ của $A$ là khác nhau và $\vec{v}_1, \vec{v}_2, ..., \vec{v}_n$ là tập vectơ riêng tương ứng, thì tập này tạo thành một cơ sở cho không gian vectơ $n$ chiều.

  • Nói cách khác, giả sử ma trận $A$ có một cơ sở vectơ riêng $\vec{v}_1, \vec{v}_2, ... \vec{v}_n$ với các trị riêng tương ứng, phân biệt $\lambda_1, \lambda_2, ... \lambda_n$, thì mọi vectơ $n$ chiều đều biểu diễn được dưới dạng tổ hợp tuyến tính của các vectơ này, tức là $$\vec{x} = c_1\vec{v}_1 + c_2\vec{v}_2 + ... + c_n\vec{v}_n.$$

Đại số tuyến tính cho Khoa học dữ liệu với R

Đang diễn ra điều gì?

Áp dụng ma trận $A$ lên $\vec{x}$ và dùng tính chất $A\vec{v}_j = \lambda_j \vec{v}_j$, ta có phép phân rã đơn giản:

$$A\vec{x} = c_1\lambda_1\vec{v}_1 + c_2\lambda_2\vec{v}_2 + ... + c_n\lambda_n\vec{v}_n.$$

Vì vậy, các cặp riêng biến phép nhân ma trận thành tổ hợp tuyến tính của các phép nhân vô hướng!

Đại số tuyến tính cho Khoa học dữ liệu với R

Lặp ma trận

Nếu ta nhân lặp lại với ma trận $A$:

$$A A\vec{x} = $$ $$ = A(c_1\lambda_1\vec{v}_1 + c_2\lambda_2\vec{v}_2 + ... + c_n\lambda_n\vec{v}_n)$$ $$ = c_1\lambda_1^2\vec{v}_1 + c_2\lambda_2^2\vec{v}_2 + ... + c_n\lambda_n^2\vec{v}_n,$$

nói chung: $$A^t\vec{x} = c_1\lambda_1^t\vec{v}_1 + c_2\lambda_2^t\vec{v}_2 + ... + c_n\lambda_n^t\vec{v}_n.$$

Do đó, nhân ma trận liên tiếp không phải là nhân vô hướng liên tiếp (lũy thừa)!

Ngoài ra, nếu một trị riêng lớn hơn tất cả các trị riêng còn lại, chênh lệch sẽ tăng dần khi $t$ lớn lên.

Đại số tuyến tính cho Khoa học dữ liệu với R

Ví dụ với tần số alen

Đại số tuyến tính cho Khoa học dữ liệu với R
print(M)

eigen(M)
      [,1]  [,2]  [,3]  [,4]
[1,] 0.980 0.005 0.005 0.010
[2,] 0.005 0.980 0.010 0.005
[3,] 0.005 0.010 0.980 0.005
[4,] 0.010 0.005 0.005 0.980
eigen() decomposition
$`values`
[1] 1.00 0.98 0.97 0.97

$vectors
     [,1] [,2]          [,3]          [,4]
[1,] -0.5  0.5  0.000000e+00  7.071068e-01
[2,] -0.5 -0.5 -7.071068e-01  1.132427e-14
[3,] -0.5 -0.5  7.071068e-01 -2.442491e-15
[4,] -0.5  0.5 -1.382228e-14 -7.071068e-01
Đại số tuyến tính cho Khoa học dữ liệu với R
print(M)
      [,1]  [,2]  [,3]  [,4]
[1,] 0.980 0.005 0.005 0.010
[2,] 0.005 0.980 0.010 0.005
[3,] 0.005 0.010 0.980 0.005
[4,] 0.010 0.005 0.005 0.980
Lambda <- eigen(M)
v1 <- Lambda$vectors[, 1]/sum(Lambda$vectors[, 1])
print(v1)
0.25 0.25 0.25 0.25

Đại số tuyến tính cho Khoa học dữ liệu với R

Hãy thực hành

Đại số tuyến tính cho Khoa học dữ liệu với R

Preparing Video For Download...