Đối với các vấn đề tôi quan tâm, kích thước ma trận là 30 hoặc ít hơn.
Như WolfgangBangerth lưu ý, trừ khi bạn có một số lượng lớn các ma trận này (hàng triệu, hàng tỷ), hiệu suất đảo ngược ma trận thường không phải là một vấn đề.
Cho một ma trận đối xứng xác định dương, thuật toán nhanh nhất để tính toán ma trận nghịch đảo và định thức của nó là gì?
Nếu tốc độ là một vấn đề, bạn nên trả lời các câu hỏi sau:
- Bạn có thực sự cần toàn bộ nghịch đảo? (Nhiều ứng dụng không cần phải tạo thành một nghịch đảo rõ ràng.)
- Bạn có thực sự cần yếu tố quyết định? (Các yếu tố quyết định là không phổ biến, nhưng chắc chắn không phải là chưa từng thấy trong khoa học tính toán.)
- Bạn có cần độ chính xác cao? (Các thuật toán có độ chính xác thấp có xu hướng nhanh hơn.)
- Một xấp xỉ xác suất sẽ đủ? (Các thuật toán xác suất có xu hướng nhanh hơn.)
Đáp ứng tiêu chuẩn cho vấn đề của bạn về việc đảo ngược một ma trận xác định nhỏ, dương và tính toán xác định của nó sẽ là phân rã Cholesky. Nếu , thì và . det ( A ) = ∏ n i = 1 l 2 i i det ( A - 1 ) = ∏ n i = 1 l - 2 i iA = L LTdet ( A ) = Πni = 1tôi2i idet ( A- 1) = ∏ni = 1tôi- 2i i
Giả sử là bằng , phép phân tách Cholesky có thể được tính trong khoảng flops, tức là khoảng một nửa chi phí cho phép phân tách LU. Tuy nhiên, thuật toán như vậy sẽ không được coi là "nhanh". Một phân tách LU ngẫu nhiênn n n 3 / 3Mộtnnn3/ 3có thể là một thuật toán nhanh hơn đáng để xem xét nếu (1) bạn thực sự phải tính một số lượng lớn ma trận, (2) hệ số hóa thực sự là bước giới hạn trong ứng dụng của bạn và (3) bất kỳ lỗi nào xảy ra khi sử dụng thuật toán ngẫu nhiên là chấp nhận được Ma trận của bạn có thể quá nhỏ để các thuật toán thưa thớt đáng giá, do đó, các cơ hội khác cho các thuật toán nhanh hơn sẽ yêu cầu cấu trúc ma trận bổ sung (ví dụ: dải) hoặc khai thác cấu trúc vấn đề (ví dụ: có thể bạn có thể cấu trúc lại thuật toán một cách khéo léo để bạn không cần dài hơn để tính toán một ma trận nghịch đảo hoặc xác định của nó). Các thuật toán xác định hiệu quả gần như là chi phí để giải quyết một hệ thống tuyến tính, trong phạm vi một yếu tố không đổi, do đó, các đối số tương tự được sử dụng cho các hệ thống tuyến tính cũng áp dụng để tính toán các định thức.