พีชคณิตเชิงเส้นสำหรับ Data Science ใน R
Eric Eager
Data Scientist at Pro Football Focus
หากค่าเจาะจง $\lambda_1, \lambda_2, ..., \lambda_n$ ของ $A$ ไม่ซ้ำกัน และ $\vec{v}_1, \vec{v}_2, ..., \vec{v}_n$ คือเซตของเวกเตอร์เจาะจงที่สอดคล้องกัน เซตของเวกเตอร์เหล่านี้จะเป็น เบสิส ของเซตเวกเตอร์ $n$ มิติ
กล่าวคือ หากสมมติว่าเมทริกซ์ $A$ มีเบสิสของเวกเตอร์เจาะจง $\vec{v}_1, \vec{v}_2, ... \vec{v}_n$ ที่มีค่าเจาะจงไม่ซ้ำกัน $\lambda_1, \lambda_2, ... \lambda_n$ แล้ว ทุก เวกเตอร์ $n$ มิติสามารถแสดงเป็นผลรวมเชิงเส้นของเวกเตอร์เหล่านี้ได้ กล่าวคือ $$\vec{x} = c_1\vec{v}_1 + c_2\vec{v}_2 + ... + c_n\vec{v}_n.$$
เมื่อนำเมทริกซ์ $A$ คูณกับ $\vec{x}$ และใช้ข้อเท็จจริงที่ว่า $A\vec{v}_j = \lambda_j \vec{v}_j$ จะสังเกตเห็นการแยกส่วนที่เรียบง่ายดังนี้
$$A\vec{x} = c_1\lambda_1\vec{v}_1 + c_2\lambda_2\vec{v}_2 + ... + c_n\lambda_n\vec{v}_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,$$
หรือในรูปทั่วไป: $$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.$$
ดังนั้น การคูณเมทริกซ์ซ้ำ ๆ จึงไม่เหมือนกับการยกกำลังสเกลาร์!
นอกจากนี้ หากค่าเจาะจงค่าใดค่าหนึ่งมากกว่าค่าอื่น ความแตกต่างเหล่านี้จะยิ่งขยายมากขึ้นเมื่อ $t$ เพิ่มขึ้น
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
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
พีชคณิตเชิงเส้นสำหรับ Data Science ใน R