Như tiêu đề, mình đang làm thuật toán SVD nhưng đang bị bí ở chỗ tìm trị riêng và vector riêng của ma trận bất kì. Mong mọi người gợi ý giúp mình ạ. Cảm ơn
Trị riêng, vector riêng của ma trận
tìm đọc giáo trình toán cap cấp tập 1 - nguyễn đình trí
1 Like
theo mình tìm hiểu thì khi code thì với các ma trận cấp n lớn thì chỉ áp dụng một vài thuật toán thôi ạ.
Từ khóa là “iterative methods to find eigenvalues”
1 Like
bạn biết thuật toán power method không ạ, mình trao đổi tí
Tức là v := M * v
? Cái này chỉ tìm được 1 eigenvalue to nhất thôi.
Power method:
->: M: ma trận vuông, eps: số thực dương
<-: v: vector cột
- Chọn (tùy ý khác [1 | 0 | 0 | ...] và các hoán vị) vector v \ norm2(v) = 1
- v := (M * v).normalize()
- do v_old := v, v := (M * v).normalize()
until abs(v - v_old) < vector_fill(eps, M.no_row)
1 Like
mình đọc cũng thấy vậy, không hiểu sao với các bài toán có ma trận cấp n lớn, thì nó lại bảo cách đó lại hiệu quả, vì như bản chất của nó chỉ tìm được 1 eigenvalue lớn nhất.
Thuật toán hiệu quả nhất với ma trận thưa (nhiều số 0) và khi chỉ cần một vector.
2 Likes