toqito.matrix_props.is_pseudo_hermitian¶
Checks if matrix is pseudo hermitian with respect to given signature.
Module Contents¶
- toqito.matrix_props.is_pseudo_hermitian.is_pseudo_hermitian(mat, signature, rtol=1e-05, atol=1e-08)[source]¶
Check if a matrix is pseudo-Hermitian.
A matrix (H) is pseudo-Hermitian with respect to a given signature matrix (eta) if it satisfies:
- [
eta H eta^{-1} = H^{dagger},
]
where:
(H^{dagger}) is the conjugate transpose (Hermitian transpose) of (H),
(eta) is a Hermitian, invertible matrix.
Examples
Consider the following matrix:
- [
- H = begin{pmatrix}
1 & 1+i \ -1+i & -1
end{pmatrix}
]
with the signature matrix:
- [
- eta = begin{pmatrix}
1 & 0 \ 0 & -1
end{pmatrix}
]
Our function confirms that (H) is pseudo-Hermitian:
```python exec=”1” source=”above” import numpy as np from toqito.matrix_props import is_pseudo_hermitian
H = np.array([[1, 1+1j], [-1+1j, -1]]) eta = np.array([[1, 0], [0, -1]])
print(is_pseudo_hermitian(H, eta)) ```
However, the following matrix (A)
- [
- A = begin{pmatrix}
1 & i \ -i & 1
end{pmatrix}
]
is not pseudo-Hermitian with respect to the same signature matrix.
```python exec=”1” source=”above” import numpy as np from toqito.matrix_props import is_pseudo_hermitian eta = np.array([[1, 0], [0, -1]]) A = np.array([[1, 1j], [-1j, 1]])
print(is_pseudo_hermitian(A, eta)) ```
- Raises:
ValueError – If signature is not Hermitian or not invertible.
- Parameters:
mat (numpy.ndarray) – The matrix to check.
signature (numpy.ndarray) – The signature matrix (eta), which must be Hermitian and invertible.
rtol (float) – The relative tolerance parameter (default 1e-05).
atol (float) – The absolute tolerance parameter (default 1e-08).
- Returns:
Return True if the matrix is pseudo-Hermitian, and False otherwise.
- Return type:
bool