rand.random_psd_operator¶
Generates a random positive semidefinite operator.
Functions¶
|
Generate a random positive semidefinite operator. |
Module Contents¶
- rand.random_psd_operator.random_psd_operator(dim, is_real=False, seed=None)¶
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.from toqito.rand import random_psd_operator complex_psd_mat = random_psd_operator(2) complex_psd_mat
array([[0.65542161+2.63176072e-33j, 0.16638052+2.62394815e-01j], [0.16638052-2.62394815e-01j, 0.59750772+2.78411115e-18j]])
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:from toqito.matrix_props import is_positive_semidefinite is_positive_semidefinite(complex_psd_mat)
True
We can also generate random positive semidefinite matrices that are real-valued as follows.
from toqito.rand import random_psd_operator real_psd_mat = random_psd_operator(2, is_real=True) real_psd_mat
array([[0.81814611, 0.54311551], [0.54311551, 0.97958761]])
Again, verifying that this is a valid positive semidefinite matrix can be done as follows.
from toqito.matrix_props import is_positive_semidefinite is_positive_semidefinite(real_psd_mat)
True
It is also possible to add a seed for reproducibility.
from toqito.rand import random_psd_operator seeded = random_psd_operator(2, is_real=True, seed=42) seeded
array([[0.77395605, 0.64873818], [0.64873818, 0.69736803]])
References
- 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
xdim
random positive semidefinite matrix.- Return type:
numpy.ndarray