Số điều kiện của công thức A'A và AA '


9

Nó được hiển thị (Yousef Saad, phương pháp lặp cho các hệ thống tuyến tính thưa thớt , trang 260) màcond(Một'Một)cond(Một)2

Điều này có đúng với không?MộtMột'

Trong trường hợp là với , tôi quan sát thấy đóN × M N « M c o n d ( A ' A ) » c o n d ( A Một ' )MộtN×MN«Mcond(Một'Một)»cond(MộtMột')

Điều đó có nghĩa là công thức trong điều khoản của được ưu tiên hơn trong trường hợp này?MộtMột'


2
Bạn đang so sánh số điều kiện của hai ma trận với kích thước rất khác nhau. Không có lời giải thích tại sao, có vẻ như sự so sánh đó có lẽ không có ý nghĩa. Chắc chắn, nếu bạn có thể thực hiện những gì bạn cần bằng cách sử dụng ma trận nhỏ hơn nhiều, bạn nên (ngay cả khi điều hòa tương tự).
David Ketcheson

1
Câu trả lời mới của Stefano M dưới đây là chính xác. Xin vui lòng đọc nó và bỏ phiếu lên.
David Ketcheson

Câu trả lời:


6

Nếu với N < M , sau đó r một n k ( A T A ) = r một n k ( A Một T ) = r một n k ( A ) N < M sao cho A T A R M × M không thể xếp hạng đầy đủ, tức là số ít.MộtRN×MN<M

rmộtnk(MộtTMột)= =rmộtnk(MộtMộtT)= =rmộtnk(Một)N<M
MộtTMộtRM×M

Theo số điều kiện là . Do số học chính xác hữu hạn, nếu bạn tính toán trong MATLAB, bạn có được một số lượng lớn, không .κ2(MộtTMột)= =cond(A'A)Inf


@OscarB: các giá trị số ít của chỉ là N , không có thứ gọi là giá trị số ít thứ M ! Nguồn gốc của mình là đúng, nhưng xin lưu ý rằng nếu σ i , i = 1 ... N là của sv Một , sau đó S S T = d i một g ( σ 2 1 , ... , σ 2 n ) , trong khi S T S = d i một g ( σ 2MộtNMσTôiTôi= =1Giáo dụcNMộtSST= =dTôimộtg(σ12,Giáo dục,σn2)vớiM-Ntrailing số không. STS= =dTôimộtg(σ12,Giáo dục,σn2,0,Giáo dục,0)M-N
Stefano M

8

Vâng, chúng ta hãy nhìn vào lý do tại sao có xấp xỉ số điều kiện bình phương của Một . Sử dụng phân hủy SVD của A = U S V T , với U R N × N , S R N × M , V R M × M , chúng tôi có thể bày tỏ Một T Một khiATAAA=USVTBạnRN×NSRN×MVRM×MMộtTMột

MộtTMột= =(BạnSVT)TBạnSVT= =VSTBạnTBạnSVT= =VSTSVT

Mà chúng tôi đến bằng cách ghi nhận rằng là trực giao, như vậy mà U T U = I . Hơn nữa, chúng tôi lưu ý rằng S là một ma trận đường chéo, sao cho phép phân tách cuối cùng của A T A có thể được biểu thị là V S 2 V T , với S 2 có nghĩa là S T S , thu được một ma trận đường chéo với các giá trị N đầu tiên từ S bình phương theo đường chéo. Điều này có nghĩa là vì số điều kiện là tỷ lệ của giá trị số ít đầu tiên và cuối cùng, c o n d (BạnBạnTBạn= =TôiSMộtTMộtVS2VTS2STSS choARN×M, cond(Một)= =S1SNMộtRN×M

cond(MộtTMột)= =S12SM2= =(S1SM)2= =cond(Một)2

Bây giờ, chúng ta có thể thực hiện bài tập tương tự với :MộtMộtT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

Điều đó có nghĩa là chúng ta nhận được kết quả , vìS2ở đây có nghĩa làSST, một sự khác biệt tinh tế so với ký hiệu ở trên.cond(AAT)=s12sN2S2SST

Nhưng lưu ý rằng sự khác biệt tinh tế! Đối với , số điều kiện có giá trị số ít M'th trong mẫu số, trong khi A A T có giá trị số ít N'th. Điều này giải thích lý do tại sao bạn đang nhìn thấy sự khác biệt đáng kể về số lượng điều kiện - Một Một T thực sự sẽ là “tốt hơn lạnh” hơn Một T Một .ATAAATAATATA

Tuy nhiên, David Ketcheson đã đúng - bạn đang so sánh các số điều kiện giữa hai ma trận khác nhau rất lớn. Đặc biệt, những gì bạn có thể thực hiện với sẽ không giống như những gì bạn có thể thực hiện với một Một T .ATAAAT


Đó là một lời giải thích tuyệt vời! Tôi thấy sự khác biệt rõ ràng bây giờ. Ma trận A được sử dụng để xây dựng phương trình bình thường và với những thay đổi nhỏ bạn cũng có thể xây dựng nó như , không phải cổ điển Một ' Một . Bạn có thể nói rõ nếu sử dụng bộ giải như LSQR thay vì giải các phương trình bình thường không? Vì LSQR hoàn toàn không yêu cầu xây dựng sản phẩm này. AAAA
Alexander

Vui mừng nó có ý nghĩa. Nói chung, bạn cần xem xét điều hòa của vấn đề. Nhưng, nếu đó không phải là vấn đề, bạn có thể sử dụng phương trình bình thường / hệ số QR (của A) / LSQR, tùy thuộc vào quy mô của vấn đề (trong số những thứ khác). Trừ khi vấn đề của bạn lớn hoặc không có điều kiện, tôi có thể sẽ áp dụng yếu tố QR, nhưng không có thêm kiến ​​thức về vấn đề bạn đang cố gắng giải quyết, thật khó để nói. Tôi chắc chắn những người khác có nhiều kinh nghiệm có thể cung cấp lời khuyên chi tiết hơn.
OscarB

Bản thân A bị điều hòa (với số điều kiện ), dày đặc và lớn. QR không phải là một lựa chọn. Vì nó không có điều kiện nên tôi phải thêm một số quy tắc. Bây giờ đơn giản hóa Tikhonov dường như là đủ. Vấn đề là nếu c o n d ( A ) < c o n d ( A A T ) < c o n d ( A T A ) (đối với trường hợp của tôi với N < M107cond(A)<cond(AAT)<cond(ATA)N<M) sau đó sử dụng LSQR dường như luôn luôn thích hợp hơn vì bạn không cần phải tạo bất kỳ sản phẩm nào cả. Câu hỏi là nếu các giải pháp thu được với phương trình bình thường và LSQR là giống hệt nhau?
Alexander

Theo tôi hiểu, LSQR sẽ cung cấp một giải pháp giống hệt với các phương trình bình thường sau khi lặp lại "vô số" chính xác. Tuy nhiên, đối với các bài toán không chính xác, giải pháp phương trình bình thường không phải là vấn đề bạn muốn. Thay vào đó, bạn muốn sử dụng LSQR để lặp lại cho đến khi đạt được bán hội tụ. Tuy nhiên, kiểm soát các thuật toán lặp trong các vấn đề không chính đáng là một trò chơi bóng khác. Ngoài ra, tùy thuộc vào chi phí của sản phẩm vectơ ma trận của bạn và số lần lặp (và do đó là matvec) cần thiết, một giải pháp tikhonov trực tiếp với phương pháp hai chiều có thể tốt hơn.
OscarB

Giải thích tuyệt vời. +1 cho bạn ạ!
meawoppl

2

Khiếu nại mà (đối với ma trận vuông) trong câu hỏi và [Chỉnh sửa: Tôi đọc sai] trong câu trả lời của Artan là vô nghĩa. Ví dụ phản biệncondMột2condMộtTMột

Một= =(ε10ε),ε«1

mà bạn có thể dễ dàng kiểm tra xem trong khi cond A 2 = O ( ϵ - 2 ) .condMộtTMột= =Ôi(ε-4)condMột2= =Ôi(ε-2)


Ok nhấn mạnh rằng A T A nói chung rất khác nhau về những gì liên quan đến eigs, svds, cond number: nhưng theo tôi, yêu cầu của câu hỏi là về [ c o n d ( A ) ] 2 . Một2MộtTMột[cond(Một)]2
Stefano M

@StefanoM Cảm ơn, có vẻ như tôi đã đọc sai, mặc dù từ cuộc thảo luận, không phải là người duy nhất.
Jed Brown

1

Trong chính xác số học cond (A ^ 2) = cond (A'A) = cond (AA '), xem ví dụ. Golub và van Loan, tái bản lần 3, tr70. Điều này không đúng trong số học dấu phẩy động nếu A gần như thiếu thứ hạng. Lời khuyên tốt nhất là làm theo các công thức sách ở trên khi giải các bài toán vuông nhỏ nhất, cách tiếp cận SVD an toàn nhất, p257. Thay vào đó, hãy sử dụng \ varepsilon-rank khi tính toán SVD, trong đó \ varepsilon là độ phân giải của dữ liệu ma trận của bạn.


Tôi xin lỗi, tôi đã xem Golub và Van Loan lần thứ 3 p. 70 và không thể tìm thấy bất cứ điều gì sao lưu câu lệnh cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T). Bạn có thể cụ thể hơn với tài liệu tham khảo của bạn?
OscarB

Không có tuyên bố nào ở đó, nhưng bạn có thể rút ra từ định lý 2.5.2 và giả, phần 5.5.4 mà cond (AA ') = cond (A'A). Lý do mà tôi dùng giả là đây là điều quan trọng đối với vấn đề bình phương nhỏ nhất trong tay. Bình đẳng sau cond (A ^ 2) phải là \ xấp xỉ, xin lỗi vì lỗi đánh máy.
Artan

Không, câu trả lời này là hoàn toàn không chính xác. Xem ví dụ phản biện của tôi.
Jed Brown

Saad phải đã thực hiện một điểm như vậy đến một số bối cảnh cụ thể. Những gì có liên quan cho câu hỏi trong tầm tay là lý lẽ tiến hành.
Artan
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.