Trị riêng, vector riêng của ma trận

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

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” :smiley:

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
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?