Đưa ra một ma trận lớn với giá trị riêng , tôi muốn chỉ xác định một tập hợp con của các giá trị này, giả sử và . Có một thuật toán có thể làm điều này, hoặc đang tìm ra 19 giá trị riêng hàng đầu tốt nhất có thể được thực hiện?
Đưa ra một ma trận lớn với giá trị riêng , tôi muốn chỉ xác định một tập hợp con của các giá trị này, giả sử và . Có một thuật toán có thể làm điều này, hoặc đang tìm ra 19 giá trị riêng hàng đầu tốt nhất có thể được thực hiện?
Câu trả lời:
Không, không có gì, theo như tôi biết, trừ khi bạn biết khoảng vị trí của các giá trị bản địa này. Đối với các phương thức có thể tính toán một tập hợp con của phổ của ma trận, tôi chỉ biết các phương thức có thể tạo ra:
Theo những gì tôi hiểu, với các phương thức kiểu FEAST, bạn cũng có thể nhận được số lượng giá trị riêng trong một vùng xác định của mặt phẳng phức (thông qua tích phân đường viền), do đó, trong trường hợp bạn cần một giá trị riêng được chỉ định từ giữa phổ , ví dụ thứ 300, bạn có thể chạy một loại tìm kiếm chia đôi: giả sử (dịch chuyển và chia tỷ lệ) rằng phổ của ma trận của bạn nằm trong (và đó là thực tế, vì đơn giản). Tính toán giá trị riêng gần nhất với . Tính số lượng giá trị riêng trong . Nếu nó lớn hơn 300, hãy tìm giá trị riêng gần nhất với trung điểm của , nếu không thì giá trị riêng gần nhất với trung điểm của . Nói lại.
Tôi không nghĩ bất kỳ thứ gì trong số này sẽ cạnh tranh với vanilla LA
Arnoldi nếu bạn thay 300 bằng 19, như trong ví dụ của bạn. Và có thể thậm chí không với 300.