SuiteSparseMatrix¶
- class probnum.problems.zoo.linalg.SuiteSparseMatrix(matid, group, name, nnz, is2d3d, isspd, psym, nsym, kind)¶
Bases:
probnum.linops.Matrix
SuiteSparse Matrix.
Sparse matrix from the SuiteSparse Matrix Collection. 1 2
- Parameters
matid (
str
) – Unique identifier for the matrix in the database.group (
str
) – Group this matrix belongs to.name (
str
) – Name of this matrix.nnz (
int
) – Number of non-zero elements.is2d3d (
bool
) – Does this matrix come from a 2D or 3D discretization?isspd (
bool
) – Is this matrix symmetric, positive definite?psym (
float
) – Degree of symmetry of the matrix pattern.nsym (
float
) – Degree of numerical symmetry of the matrix.kind (
str
) – Information of the problem domain this matrix arises from.
References
- 1
Davis, TA and Hu, Y. The University of Florida sparse matrix collection. ACM Transactions on Mathematical Software (TOMS) 38.1 ( 2011): 1-25.
- 2
Kolodziej, Scott P., et al. The SuiteSparse matrix collection website interface. Journal of Open Source Software 4.35 (2019): 1244.
Attributes Summary
- rtype
Data type of the linear operator.
Whether input dimension matches output dimension.
Number of linear operator dimensions.
Shape of the linear operator.
- rtype
Methods Summary
__call__
(x[, axis])Call self as a function.
astype
(dtype[, order, casting, subok, copy])Cast a linear operator to a different
dtype
.broadcast_matmat
(matmat)Broadcasting for a (implicitly defined) matrix-matrix product.
broadcast_matvec
(matvec)Broadcasting for a (implicitly defined) matrix-vector product.
broadcast_rmatmat
(rmatmat)broadcast_rmatvec
(rmatvec)cond
([p])Compute the condition number of the linear operator.
det
()Determinant of the linear operator.
eigvals
()Eigenvalue spectrum of the linear operator.
from_database_entry
(database_entry)Create a SuiteSparseMatrix object from an entry of the database index.
inv
()Inverse of the linear operator.
Log absolute determinant of the linear operator.
rank
()Rank of the linear operator.
todense
([cache])Dense matrix representation of the linear operator.
trace
()Trace of the linear operator.
transpose
(*axes)Transpose this linear operator.
Attributes Documentation
- T¶
- Return type
- ndim¶
Number of linear operator dimensions.
Defined analogously to
numpy.ndarray.ndim
.- Return type
- shape¶
Shape of the linear operator.
Defined as a tuple of the output and input dimension of operator.
Methods Documentation
- astype(dtype, order='K', casting='unsafe', subok=True, copy=True)¶
Cast a linear operator to a different
dtype
.- Parameters
dtype (
Union
[dtype
[Any
],None
,Type
[Any
],_SupportsDType
[dtype
[Any
]],str
,Tuple
[Any
,int
],Tuple
[Any
,Union
[SupportsIndex
,Sequence
[SupportsIndex
]]],List
[Any
],_DTypeDict
,Tuple
[Any
,Any
]]) – Data type to which the linear operator is cast.order (
str
) – Memory layout order of the result.casting (
str
) – Controls what kind of data casting may occur.subok (
bool
) – If True, then sub-classes will be passed-through (default). False is currently not supported for linear operators.copy (
bool
) – Whether to return a new linear operator, even ifdtype
is the same.
- Return type
- classmethod broadcast_matmat(matmat)¶
Broadcasting for a (implicitly defined) matrix-matrix product.
Convenience function / decorator to broadcast the definition of a matrix-matrix product to vectors. This can be used to easily construct a new linear operator only from a matrix-matrix product.
- classmethod broadcast_matvec(matvec)¶
Broadcasting for a (implicitly defined) matrix-vector product.
Convenience function / decorator to broadcast the definition of a matrix-vector product. This can be used to easily construct a new linear operator only from a matrix-vector product.
- cond(p=None)¶
Compute the condition number of the linear operator.
The condition number of the linear operator with respect to the
p
norm. It measures how much the solution \(x\) of the linear system \(Ax=b\) changes with respect to small changes in \(b\).- Parameters
p ({None, 1, , 2, , inf, 'fro'}, optional) –
Order of the norm:
p
norm for matrices
None
2-norm, computed directly via singular value decomposition
’fro’
Frobenius norm
np.inf
max(sum(abs(x), axis=1))
1
max(sum(abs(x), axis=0))
2
2-norm (largest sing. value)
- Returns
The condition number of the linear operator. May be infinite.
- Return type
cond
- classmethod from_database_entry(database_entry)[source]¶
Create a SuiteSparseMatrix object from an entry of the database index.
- Parameters
database_entry (
Dict
) – Dictionary representing one entry from the SuiteSparse database index.- Return type
- inv()¶
Inverse of the linear operator.
- Return type
- rank()¶
Rank of the linear operator.
- Return type
int64
- todense(cache=True)¶
Dense matrix representation of the linear operator.
This method can be computationally very costly depending on the shape of the linear operator. Use with caution.
- Returns
matrix – Matrix representation of the linear operator.
- Return type
np.ndarray
- trace()¶
Trace of the linear operator.
Computes the trace of a square linear operator \(\text{tr}(A) = \sum_{i-1}^n A_{ii}\).
- transpose(*axes)¶
Transpose this linear operator.
Can be abbreviated self.T instead of self.transpose().
- Return type