Phổ gần đúng của một ma trận lớn


14

Tôi muốn tính phổ ( tất cả các giá trị riêng) của một ma trận thưa thớt lớn (hàng trăm ngàn hàng). Điều này thật khó.

Tôi sẵn sàng giải quyết cho một xấp xỉ. Có phương pháp gần đúng để làm điều này?

Trong khi tôi hy vọng câu trả lời chung cho câu hỏi này, tôi cũng sẽ hài lòng với câu trả lời trong trường hợp cụ thể sau đây. Ma trận của tôi là một Laplacian chuẩn hóa của một đồ thị lớn. Eigenvalues ​​sẽ nằm trong khoảng từ 0 đến 2 với một số lượng lớn trong số chúng được tập hợp xung quanh 1.


Là ma trận thưa thớt hay dày đặc?
Aron Ahmadia

Ma trận thưa thớt. Tôi đã chỉnh sửa câu hỏi để phản ánh điều này.
MRocklin

Tại sao bạn muốn tất cả các giá trị riêng? Đây gần như là một điều tồi tệ phải làm khi bạn có một ma trận thưa thớt hoặc có cấu trúc, do đó, điều quan trọng là bạn phải biết cách bạn dự định sử dụng nó.
Jed Brown

Phổ của biểu đồ laplacian mang một số thông tin quan trọng mà tôi muốn kiểm tra. Tôi không cần tất cả chúng, tôi chỉ cần biết đại khái chúng ở đâu.
MRocklin

Câu trả lời:


15

Nếu đồ thị của bạn không bị ảnh hưởng (như tôi nghi ngờ), ma trận là đối xứng và bạn không thể làm gì tốt hơn thuật toán Lanczsos (với tính năng tái cấu trúc chọn lọc nếu cần thiết cho sự ổn định). Vì phổ đầy đủ bao gồm 100000 số, tôi cho rằng bạn chủ yếu quan tâm đến mật độ phổ.

Để có được mật độ phổ gần đúng, hãy lấy phổ của không gian con Krylov hàng đầu có kích thước 100 hoặc hơn, và thay thế mật độ riêng biệt của nó bằng một phiên bản được làm mịn.

Phổ Krylov hàng đầu sẽ giải quyết gần như các giá trị riêng biệt (nên tồn tại), gần đúng với các giá trị riêng ở cuối phổ không phân ly và có phần ngẫu nhiên ở giữa, với phân bố có chức năng phân phối tích lũy giống với phổ phân phối . Nó sẽ hội tụ với nó theo số học chính xác nếu kích thước phát triển. (Nếu toán tử của bạn là vô hạn, thì đây vẫn là trường hợp và bạn sẽ có được tích phân của hàm mật độ phổ thực sự trên phổ liên tục.)


Không phải quang phổ của không gian con Krylov hàng đầu chỉ là 100 giá trị riêng lớn nhất? Tôi cũng quan tâm đến việc phân phối các giá trị riêng trung bình và nhỏ nhất.
MRocklin

1
@MRocklin: Không. Tôi đã tăng cường câu trả lời của mình để biết thêm chi tiết.
Arnold Neumaier


4

Nếu bạn ổn khi nghĩ về những thứ không phải là giá trị bản địa nhưng các chức năng mà theo một nghĩa nào đó vẫn cho bạn biết điều gì đó về quang phổ, thì tôi nghĩ bạn nên xem một số công việc của Mark Embree tại Đại học Rice.


2

Đây là một cách khác để mô tả phổ.

Avk=λkvkA

S(ω)=kπ1σσ2+(λkω)2=σπTr[σ2+(ωA)2]1
S(ω)=σπzT[σ2+(ωA)2]1z
z+11σω[σ2+(ωA)2]1z[ω+iσA]1[ωiσA]1S(ω)

ω

ω


0

Xem bài báo "Phân tích phổ xấp xỉ dựa trên lấy mẫu" của Sanjiv Kumar, Mehryar Mohri & Ameet Talwalkar (ICML 2009.). Nó sử dụng lấy mẫu các cột của ma trận của bạn.

Vì ma trận của bạn là đối xứng, bạn nên làm như sau:

Đặt A là ma trận n * n của bạn. Bạn muốn giảm việc tính toán các giá trị riêng của ma trận n * n thành tính toán của các giá trị riêng của ma trận k * k. Đầu tiên chọn giá trị của bạn là k. Giả sử bạn chọn k = 500, vì bạn có thể dễ dàng tính toán giá trị riêng của ma trận 500 * 500. Sau đó, chọn ngẫu nhiên k cột của ma trận A. Tương phản ma trận B chỉ giữ các cột này và các hàng tương ứng.

B = A (x, x) cho một bộ chỉ số k ngẫu nhiên x

B bây giờ là ma trận ak * k. Tính giá trị riêng của B và nhân chúng với (n / k). Bây giờ bạn có các giá trị k được phân phối xấp xỉ như n giá trị riêng của A. Lưu ý rằng bạn chỉ nhận được giá trị k, không phải n, nhưng phân phối của chúng sẽ chính xác (thực tế là chúng là một xấp xỉ).


-1

Bạn luôn có thể sử dụng giới hạn Định lý vòng tròn Gershgorin để tính gần đúng các giá trị riêng.

Nếu các điều khoản ngoài đường chéo là nhỏ, chính đường chéo là một xấp xỉ tốt của phổ. Mặt khác, nếu bạn kết thúc với một xấp xỉ không gian eigens (bằng các phương thức khác), bạn có thể cố gắng thể hiện các mục chéo trong hệ thống này. Điều này sẽ dẫn đến một ma trận với các điều khoản ngoài đường chéo nhỏ hơn và đường chéo mới sẽ là một xấp xỉ tốt hơn của phổ.


Gerschgoring không đưa ra các ước tính gần đúng nhưng giới hạn lỗi, vì vậy không liên quan ở đây. Hơn nữa, sử dụng phương pháp của bạn trên một ma trận thưa thớt sẽ đòi hỏi một ma trận eigenvector dày đặc, không thể lưu trữ cho vấn đề OP.
Arnold Neumaier

Như tôi đã nói, đường chéo tự nó là một xấp xỉ phổ với các giới hạn lỗi được đưa ra bởi định lý vòng tròn Gershgorin, tất nhiên giới hạn lỗi Gershgorin không phải là xấp xỉ. Đường chéo sẽ là một xấp xỉ tốt nếu các điều khoản ngoài đường chéo là nhỏ, tôi tin là trường hợp kể từ khi OP nói rằng ma trận là thưa thớt.
FKaria

5
Hầu hết các ma trận thưa thớt phát sinh trong thực tế có một số yếu tố ngoài đường chéo đáng kể ở mỗi hàng và cột, điều này làm cho các xấp xỉ rất kém (ví dụ, đối với Laplacian của đồ thị thông thường, đường chéo là không đổi) và lỗi giới hạn vô dụng.
Arnold Neumaier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.