Thứ nhất, nó phụ thuộc vào việc thực hiện. Nếu bạn thực hiện một ma trận thưa thớt như một ma trận dày đặc và điền vào các số không, nó sẽ mở rộng theo kích thước tổng thể của ma trận. Nếu nó được lưu trữ dưới dạng khác, nó sẽ chia tỷ lệ theo tỷ lệ thời gian truy cập với kích thước ma trận.
Trong tài liệu PETSc , nó giải thích rằng bộ lưu trữ mặc định cho ma trận thưa thớt là bộ lưu trữ hàng được nén, tỷ lệ với số lượng hàng và số giá trị khác không trên mỗi hàng. Vì vậy, tôi mong đợi một MatMat sẽ mở rộng quy mô với bình phương của biện pháp này; tức là .Ô ( r2n2)
Tuy nhiên, một điều cần lưu ý là không có điểm lưu trữ những gì không có ở đó; nếu bạn quan tâm đến hiệu suất này, tại sao bạn lưu trữ 100 giá trị cho ma trận 1000x1000? Điều đó có nghĩa là ít nhất 90% các hàng / cột không có giá trị khác nào và có thể được loại bỏ hoàn toàn khỏi ma trận. Nếu mẫu của các giá trị khác không không thay đổi, hãy xem xét loại bỏ các hàng luôn luôn bằng không khỏi cả ma trận này và ma trận đích; nó sẽ loại bỏ khoảng 90% nỗ lực, để lại hiệu suất của hai ma trận (100 2 , 1000 2 ) tương đương rộng rãi.