diagonalize_real_symmetric_and_sorted_diagonal_matrices(symmetric_matrix: numpy.ndarray, diagonal_matrix: numpy.ndarray, *, rtol: float = 1e-05, atol: float = 1e-08, check_preconditions: bool = True) → 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.
- rtol – Relative numeric error threshold.
- atol – Absolute numeric error threshold.
- check_preconditions – If set, verifies that the input matrices commute and are respectively symmetric and diagonal descending.
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).