Мне кажется, что в Sage единственная разница между созданием плотной матрицы и разреженной матрицы заключается в флаге, передаваемом конструктору ("sparse = True"). В частности, это означает, что если я хочу создать разреженную матрицу размером 200 000 x 200 000, но только 500 000 ненулевых записей, мне сначала нужно создать список размером 40 000 000 000, что абсурдно. Есть ли лучший способ?
Кроме того, поскольку меня интересует только решение системы линейных уравнений, определяемой матрицей, я могу быть удовлетворен использованием представления «черного ящика» (т. Е. Дать функцию g такую, что g (v) = Av с будучи матрицей). Это поддерживается в базовой библиотеке LinBox, но я понятия не имею, что такое соответствующий интерфейс Sage.