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.31737244+0.j , 0.32076231+0.17693306j], [0.32076231-0.17693306j, 0.90028389+0.j ]])
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.88451326, 0.32350167], [0.32350167, 0.37692826]])
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