toqito.rand.random_psd_operator¶
Generates a random positive semidefinite operator.
Module Contents¶
- toqito.rand.random_psd_operator.random_psd_operator(dim, is_real=False, seed=None)[source]¶
Generate a random positive semidefinite operator.
A positive semidefinite operator is a Hermitian operator that has only real and non-negative eigenvalues. This function generates a random positive semidefinite operator by constructing a Hermitian matrix, based on the fact that a Hermitian matrix can have real eigenvalues.
Examples
Using |toqito⟩, we may generate a random positive semidefinite matrix. For (text{dim}=2), this can be accomplished as follows.
```python exec=”1” source=”above” session=”psd_operator” from toqito.rand import random_psd_operator
complex_psd_mat = random_psd_operator(2)
We can confirm that this matrix indeed represents a valid positive semidefinite matrix by utilizing the is_positive_semidefinite function from the |toqito⟩ library, as demonstrated below:
```python exec=”1” source=”above” session=”psd_operator” from toqito.matrix_props import is_positive_semidefinite
print(is_positive_semidefinite(complex_psd_mat)) ```
We can also generate random positive semidefinite matrices that are real-valued as follows.
```python exec=”1” source=”above” session=”psd_operator” from toqito.rand import random_psd_operator
real_psd_mat = random_psd_operator(2, is_real=True)
Again, verifying that this is a valid positive semidefinite matrix can be done as follows.
`python exec="1" source="above" session="psd_operator" from toqito.matrix_props import is_positive_semidefinite print(is_positive_semidefinite(real_psd_mat)) `It is also possible to add a seed for reproducibility.
```python exec=”1” source=”above” session=”psd_operator” from toqito.rand import random_psd_operator
seeded = random_psd_operator(2, is_real=True, seed=42)
- Parameters:
dim (int) – The dimension of the operator.
is_real (bool) – Boolean denoting whether the returned matrix will have all real entries or not. Default is False.
seed (int | None) – A seed used to instantiate numpy’s random number generator.
- Returns:
A dim x dim random positive semidefinite matrix.
- Return type:
numpy.ndarray