random_sparse_spd_matrix

probnum.problems.zoo.linalg.random_sparse_spd_matrix(rng, dim, density, chol_entry_min=0.1, chol_entry_max=1.0, format='csr')[source]

Random sparse symmetric positive definite matrix.

Constructs a random sparse symmetric positive definite matrix for a given degree of sparsity. The matrix is constructed from its Cholesky factor \(L\). Its diagonal is set to one and all other nonzero entries of the lower triangle are sampled from a uniform distribution with bounds [chol_entry_min, chol_entry_max]. The resulting sparse matrix is then given by \(A=LL^\top\).

Parameters
  • rng (Generator) – Random number generator.

  • dim (Union[int, Integral, integer]) – Matrix dimension.

  • density (float) – Degree of sparsity of the off-diagonal entries of the Cholesky factor. Between 0 and 1 where 1 represents a dense matrix.

  • chol_entry_min (float) – Lower bound on the entries of the Cholesky factor.

  • chol_entry_max (float) – Upper bound on the entries of the Cholesky factor.

  • format – Sparse matrix format.

See also

random_spd_matrix

Generate a random symmetric positive definite matrix.

Examples

>>> import numpy as np
>>> from probnum.problems.zoo.linalg import random_sparse_spd_matrix
>>> rng = np.random.default_rng(42)
>>> sparsemat = random_sparse_spd_matrix(rng, dim=5, density=0.1)
>>> sparsemat
<5x5 sparse matrix of type '<class 'numpy.float64'>'
    with 9 stored elements in Compressed Sparse Row format>
>>> sparsemat.todense()
matrix([[1.        , 0.        , 0.87273813, 0.        , 0.        ],
        [0.        , 1.        , 0.        , 0.        , 0.        ],
        [0.87273813, 0.        , 1.76167184, 0.        , 0.        ],
        [0.        , 0.        , 0.        , 1.        , 0.72763123],
        [0.        , 0.        , 0.        , 0.72763123, 1.5294472 ]])
Return type

spmatrix