Разреженные матрицы Sage не будут использовать тот факт, что ненулевые записи дублируются, но они будут использовать тот факт, что ненулевых записей не так много.Чтобы определить его, используйте словарь, ключами которого являются пары целых чисел (row, column)
:
sage: m = matrix(4, 4, {(1, 1): 2.1, (2,3): -0.5})
sage: m
[ 0.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000]
[ 0.000000000000000 2.10000000000000 0.000000000000000 0.000000000000000]
[ 0.000000000000000 0.000000000000000 0.000000000000000 -0.500000000000000]
[ 0.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000]
sage: type(m)
<type 'sage.matrix.matrix_generic_sparse.Matrix_generic_sparse'>
sage: m.is_sparse()
True
. Вы также можете преобразовать любую матрицу из плотной в разреженную, используя mat.sparse_matrix()
, и для этого существует соответствующий метод mat.dense_matrix()
для другого преобразования.