Tôi đang cố tính toán nghịch đảo của ma trận rất lớn (11300x21500) trong C++. Cho đến nay tôi đã thử các thư viện Eigen và Armadillo nhưng cả hai đều thất bại ở giai đoạn khởi tạo, nói rằng không có đủ bộ nhớ. Có cách nào để vượt qua tình trạng này không?Tính nghịch đảo của ma trận rất lớn
Cảm ơn trước
P.S
tôi nên sửa kích thước của ma trận để 21500x21500. Như UmNyobe đã đề xuất, đây không phải là ma trận vuông. Nó thực sự là ma trận quan sát, X, và tôi đang cố gắng để tính toán (XTX) -1
Tôi có một bộ nhớ 8GB (trong một hệ thống 64bit), nhưng tôi đừng nghĩ rằng tôi đang sử dụng tất cả không gian bộ nhớ này. Trình quản lý tác vụ cho thấy việc sử dụng bộ nhớ tại thời điểm lỗi là 1GB. Có thể có một lệnh hệ điều hành trong Windows7 mà đóng một ứng dụng khi sử dụng bộ nhớ của nó vượt quá 1GB.
Nhân tiện, mục đích ban đầu của tôi là chạy hồi quy trên ma trận quan sát này.
Một điều nữa: hầu hết các cột trong mỗi hàng của ma trận quan sát X đều bằng không. Có thể có một cách để tận dụng lợi thế này, để hạn chế việc sử dụng bộ nhớ trong hoạt động đảo ngược?
tại sao kích thước của bạn không bằng ?? – UmNyobe
Ma trận đó chứa khoảng 1GB hoặc 2GB dữ liệu tùy thuộc vào việc bạn có mục nhập ma trận 4 hoặc 8 byte hay không. Bạn đang sử dụng máy 32 bit? –
Steve Tôi sẽ đăng bài về bộ nhớ, bạn nên viết nó chi tiết hơn như bạn đã đề cập nó trước. – UmNyobe