toqito.matrix_props.is_unitary

Checks if the matrix is a unitary matrix.

Module Contents

toqito.matrix_props.is_unitary.is_unitary(mat, rtol=1e-05, atol=1e-08)[source]

Check if matrix is unitary [@WikiUniMat].

A matrix is unitary if its inverse is equal to its conjugate transpose.

Alternatively, a complex square matrix (U) is unitary if its conjugate transpose (U^*) is also its inverse, that is, if

[
begin{equation}

U^* U = U U^* = mathbb{I},

end{equation}

]

where (mathbb{I}) is the identity matrix.

Examples

Consider the following matrix

[
X = begin{pmatrix}

0 & 1 \ 1 & 0 end{pmatrix}

]

our function indicates that this is indeed a unitary matrix.

```python exec=”1” source=”above” import numpy as np from toqito.matrix_props import is_unitary

A = np.array([[0, 1], [1, 0]])

print(is_unitary(A)) ```

We may also use the random_unitary function from toqito, and can verify that a randomly generated matrix is unitary

```python exec=”1” source=”above” from toqito.matrix_props import is_unitary from toqito.rand import random_unitary

mat = random_unitary(2)

print(is_unitary(mat)) ```

Alternatively, the following example matrix (B) defined as

[
B = begin{pmatrix}

1 & 0 \ 1 & 1 end{pmatrix}

]

is not unitary.

```python exec=”1” source=”above” import numpy as np from toqito.matrix_props import is_unitary

B = np.array([[1, 0], [1, 1]])

print(is_unitary(B)) ```

Parameters:
  • mat (numpy.ndarray) – Matrix to check.

  • rtol (float) – The relative tolerance parameter (default 1e-05).

  • atol (float) – The absolute tolerance parameter (default 1e-08).

Returns:

Return True if matrix is unitary, and False otherwise.

Return type:

bool