rand.random_unitary
Generate random unitary.
Module Contents
Functions
|
Generate a random unitary or orthogonal matrix [1]. |
- rand.random_unitary.random_unitary(dim, is_real=False)
Generate a random unitary or orthogonal matrix [1].
Calculates a random unitary matrix (if
is_real = False
) or a random real orthogonal matrix (ifis_real = True
), uniformly distributed according to the Haar measure.Examples
We may generate a random unitary matrix. Here is an example of how we may be able to generate a random \(2\)-dimensional random unitary matrix with complex entries.
>>> from toqito.rand import random_unitary >>> complex_dm = random_unitary(2) >>> complex_dm [[0.40563696+0.18092721j, 0.00066868+0.89594841j], [0.4237286 +0.78941628j, 0.27157521-0.35145826j]]
We can verify that this is in fact a valid unitary matrix using the
is_unitary
function fromtoqito
as follows>>> from toqito.matrix_props import is_unitary >>> is_unitary(complex_dm) True
We can also generate random unitary matrices that are real-valued as follows.
>>> from toqito.rand import random_unitary >>> real_dm = random_unitary(2, True) >>> real_dm [[ 0.01972681, -0.99980541], [ 0.99980541, 0.01972681]]
Again, verifying that this is a valid unitary matrix can be done as follows.
>>> from toqito.matrix_props import is_unitary >>> is_unitary(real_dm) True
We may also generate unitaries such that the dimension argument provided is a
list
as opposed to anint
. Here is an example of a random unitary matrix of dimension \(4\).>>> from toqito.rand import random_unitary >>> mat = random_unitary([4, 4], True) >>> mat [[ 0.48996358, -0.20978392, 0.56678587, -0.62823576], [ 0.62909119, -0.35852051, -0.68961425, -0.01181086], [ 0.38311399, 0.90865415, -0.1209574 , -0.11375677], [ 0.46626562, -0.04244265, 0.4342295 , 0.76957113]]
As before, we can verify that this matrix generated is a valid unitary matrix.
>>> from toqito.matrix_props import is_unitary >>> is_unitary(mat) True
References
- Parameters:
dim (list[int] | int) – The number of rows (and columns) of the unitary matrix.
is_real (bool) – Boolean denoting whether the returned matrix has real entries or not. Default is
False
.
- Returns:
A
dim
-by-dim
random unitary matrix.- Return type:
numpy.ndarray