toqito.matrix_props.spark¶
Computes the spark of a matrix.
Module Contents¶
- toqito.matrix_props.spark.spark(mat)[source]¶
Compute the spark of a matrix.
The spark of a matrix A is the smallest number of columns from A that are linearly dependent [@Elad_2010_Sparse].
Examples
```python exec=”1” source=”above” import numpy as np from toqito.matrix_props import spark
- A = np.array([[1, 0, 1, 2],
[0, 1, 1, 3], [1, 1, 2, 5]])
Notes
This function only works for 2D NumPy arrays.
If all columns are linearly independent, the function returns n_cols + 1.
The time complexity of this implementation is O(2^n) in the worst case, where n is the number of columns.
- For an m x n matrix A with n >= m:
If spark(A) = m + 1, then rank(A) = m (full rank).
If spark(A) = 1, then the matrix has a zero column.
If spark(A) <= rank(A) + 1, then the matrix has dependent columns.
- Raises:
ValueError – If the input is not a 2D NumPy array.
- Parameters:
mat (numpy.ndarray) – The input matrix as a 2D NumPy array.
- Returns:
The spark of the input matrix mat.
- Return type:
int