diagonalize_real_symmetric_and_sorted_diagonal_matrices(symmetric_matrix: numpy.ndarray, diagonal_matrix: numpy.ndarray, tolerance: cirq.linalg.tolerance.Tolerance = Tolerance(rtol=1e-05, atol=1e-08, equal_nan=False)) → numpy.ndarray¶
Returns an orthogonal matrix that diagonalizes both given matrices.The given matrices must commute.Guarantees that the sorted diagonal matrix is not permuted by thediagonalization (except for nearly-equal values).
- symmetric_matrix – A real symmetric matrix.
- diagonal_matrix – A real diagonal matrix with entries along the diagonal sorted into descending order.
- tolerance – Numeric error thresholds.
An orthogonal matrix P such that P.T @ symmetric_matrix @ P is diagonal and P.T @ diagonal_matrix @ P = diagonal_matrix (up to tolerance).
ValueError– Matrices don’t meet preconditions (e.g. not symmetric).
ArithmeticError– Failed to meet specified tolerance.