Kiểm tra nếu một ma trận là bán xác định dương


11

Tôi có một danh sách L các ma trận đối xứng mà tôi cần kiểm tra tính bán chính xác dương (tức là giá trị riêng của chúng là không âm.)

Nhận xét ở trên ngụ ý rằng người ta có thể làm điều đó bằng cách tính toán các giá trị riêng tương ứng và kiểm tra xem chúng có phải là âm không (có lẽ phải quan tâm đến các lỗi làm tròn.)

Việc tính toán giá trị bản địa khá tốn kém trong kịch bản của tôi nhưng tôi nhận thấy rằng thư viện mà tôi đang sử dụng có một bài kiểm tra khá nhanh về độ chính xác dương (nghĩa là, nếu giá trị riêng của ma trận là hoàn toàn dương.)

Do đó ý tưởng sẽ được, mà đưa ra một ma trận BL , một bài kiểm tra nếu B+ϵI là tích cực nhất định. Nếu không thì B không phải là bán xác định dương, nếu không, người ta có thể tính giá trị riêng của B để đảm bảo rằng nó thực sự là bán xác định dương.

Câu hỏi của tôi bây giờ là:

Có cách nào trực tiếp và hiệu quả hơn để kiểm tra xem một ma trận có bán xác định dương hay không, với điều kiện là một thử nghiệm hiệu quả cho độ chính xác dương được đưa ra?


1
Thử nghiệm mà bạn nhận thấy trong thư viện có khả năng dựa trên đề xuất rằng ma trận thực đối xứng là xác định dương nếu và chỉ khi mỗi nguyên tắc hàng đầu nhỏ đưa ra một xác định dương, một cái gì đó có thể được kiểm tra bằng cách loại bỏ mà không xoay vòng theo số học chính xác. Khó khăn tinh tế của việc mở rộng điều này sang một trường hợp bán xác định đã dụ dỗ nhiều tác giả vào sai lầm. Tôi biết chủ đề đã được giới thiệu trong Câu hỏi Toán học, vì vậy tôi sẽ cố gắng cung cấp một liên kết. A
hardmath


1
Đối với những người hiểu biết hơn ở đây - sẽ hoạt động để chuyển phổ thành dương bằng cách thêm cho c lớn , sau đó tìm giá trị riêng tối thiểu của hệ thống dịch chuyển (ví dụ với phép lặp ngược), sau đó kiểm tra xem giá trị riêng nhỏ nhất của hệ thống dịch chuyển nhỏ hơn ca c ? Sự thay đổi c có thể là, ví dụ, giá trị riêng lớn nhất có thể được tìm thấy nhanh chóng. B+cIccc
Nick Alger

Có, bạn có thể thay đổi giá trị riêng và tính giá trị riêng nhỏ nhất, nhưng bạn vẫn gặp phải vấn đề đặt ra một số dung sai cho những gì bạn sẽ chấp nhận (và đảm bảo rằng giá trị riêng của bạn được tính toán với ít nhất là dung sai đó!)
Brian Borchers

Không chắc chắn liệu điều này có hữu ích hay không, nhưng lưu ý rằng một khi bạn biết một ma trận không xác định dương, để kiểm tra xem nó có phải là bán chính xác hay không, bạn chỉ cần kiểm tra xem hạt nhân của nó có trống không.
Abel Molina

Câu trả lời:


20

Định nghĩa làm việc của bạn về "semidefinite tích cực" hay "xác định tích cực" là gì? Trong số học dấu phẩy động, bạn sẽ phải chỉ định một số loại dung sai cho điều này.

Aλ=1.01030λ=1.0

ϵ|λmax|λmax

Thật không may, tính toán tất cả các giá trị riêng của một ma trận khá tốn thời gian. Một cách tiếp cận khác thường được sử dụng là ma trận đối xứng được coi là xác định dương nếu ma trận có hệ số Cholesky trong số học dấu phẩy động. Tính toán hệ số Cholesky là một trật tự có độ lớn nhanh hơn so với tính toán giá trị bản địa. Bạn có thể mở rộng điều này thành semidefinitility tích cực bằng cách thêm một bội số nhỏ của danh tính vào ma trận. Một lần nữa, có vấn đề mở rộng. Một cách tiếp cận nhanh là thực hiện chia tỷ lệ đối xứng của ma trận sao cho các phần tử đường chéo là 1.0 và thêm vào đường chéo trước khi tính toán hệ số Cholesky. ϵ

Bạn nên cẩn thận với điều này, bởi vì có một số vấn đề với cách tiếp cận. Ví dụ, có những trường hợp và xác định theo định nghĩa theo nghĩa là chúng có các thừa số Cholesky dấu phẩy động, nhưng không có hệ số Cholesky. Do đó, tập hợp "ma trận xác định tích cực Cholesky factorizable tích cực" không phải là lồi! B ( A + B ) / 2AB(A+B)/2


Bạn có thể giải thích đoạn cuối đó hoặc đăng một liên kết đến một nguồn không? Điều đó khá kỳ quái.
Daniel Shapero

1
Một tài liệu tham khảo cổ điển cho quy mô này là A. van der Slui. Số điều kiện và cân bằng của ma trận Numerische Mathematik 14 (1): 14-23, 1969. Nó cũng được thảo luận trong sách giáo khoa như Golub và van Loan. Đoạn trong đoạn cuối là từ kinh nghiệm cá nhân khó giành được trong tìm kiếm dòng mã trong mã lập trình bán chính xác - Tôi đã gặp các tình huống trong đó và có các yếu tố Cholesky bằng LAPACK, nhưng không có hệ số Cholesky theo LAPACK. Những loại vấn đề này bắt đầu xảy ra khi bạn gần như là số ít. X + α Δ X X + 0,95 α Δ XXX+αΔXX+0.95αΔX
Brian Borchers

Cũng không có gì lạ khi phát hiện ra rằng một số ma trận có thể là Cholesky được tính đến với độ chính xác mở rộng hoặc gấp bốn lần nhưng không phải là số học chính xác kép hoặc số học chính xác.
Brian Borchers

3
Một số mã điểm nội bộ kép nguyên thủy cho SDP (CSDP, SDPT3, SDPA) luôn trả về các ma trận xác định dương và có các yếu tố Cholesky, trong khi một bộ giải phổ biến khác (SeDuMi) sử dụng phân rã giá trị riêng và sẽ trả về các giải pháp có giá trị âm rất nhỏ giá trị bản địa.
Brian Borchers

3

4
Có vẻ như tên người dùng tiết lộ khá nhiều mối quan hệ giữa tác giả của câu trả lời và tác giả của bài báo. Một chút thông tin về những gì có trong bài báo sẽ rất hay; mặc dù, dù sao, nó là một điều rất thú vị và liên quan đến danh sách câu hỏi của bài báo!
Anton Menshov
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.