toqito.matrix_props.is_stochastic¶
Checks if the matrix is stochastic.
Module Contents¶
- toqito.matrix_props.is_stochastic.is_stochastic(mat, mat_type)[source]¶
Verify matrix is doubly, right or left stochastic.
When the nonnegative elements in a row of a square matrix sum up to 1, the matrix is right stochastic and if the columns sum up to 1, the matrix is left stochastic [@WikiStochasticMatrix].
When a matrix is right and left stochastic, it is a doubly stochastic matrix [@WikiDoublyStochasticMatrix] .
- !!! See Also
[is_doubly_stochastic()][toqito.matrix_props.is_doubly_stochastic]
Examples
The elements of an identity matrix and a Pauli-X matrix are nonnegative such that the rows and columns sum up to 1. We expect these matrices to be left and right stochastic. The same cannot be said about a Pauli-Z or a Pauli-Y matrix.
```python exec=”1” source=”above” import numpy as np from toqito.matrix_props import is_stochastic
print(is_stochastic(np.eye(5), “right”)) print(is_stochastic(np.eye(5), “left”)) print(is_stochastic(np.eye(5), “doubly”)) ```
```python exec=”1” source=”above” from toqito.matrices import pauli from toqito.matrix_props import is_stochastic
print(is_stochastic(pauli(“X”), “left”)) print(is_stochastic(pauli(“X”), “right”)) print(is_stochastic(pauli(“X”), “doubly”)) ```
```python exec=”1” source=”above” from toqito.matrices import pauli from toqito.matrix_props import is_stochastic
print(is_stochastic(pauli(“Z”), “right”)) print(is_stochastic(pauli(“Z”), “left”)) print(is_stochastic(pauli(“Z”), “doubly”)) ```
mat_type
- Raises:
TypeError – If something other than “doubly”, “left” or “right” is used for
- Parameters:
mat (numpy.ndarray) – Matrix of interest
mat_type (str) – Type of stochastic matrix. “left” for left stochastic matrix and “right” for right stochastic
matrix. (matrix and "doubly" for a doubly stochastic)
- Returns:
Returns True if the matrix is doubly, right or left stochastic, False otherwise.
- Return type:
bool