@@ -18,6 +18,31 @@ def joint_matrix_diagonalization(
1818 Jointly diagonalizes n matrices, organized in tensor of dimension (k,k,n).
1919 Returns the diagonalized matrices, along with the transformation matrix [1]_ .
2020
21+ Notes
22+ -----
23+ This algorithm performs joint eigenstructure estimation for a set of
24+ non-defective matrices by computing a similarity transformation matrix
25+ ``P`` that simultaneously diagonalizes the set.
26+
27+ **Algorithm Details**
28+ The method minimizes the Frobenius norm of the off-diagonal elements of the
29+ transformed matrices. Unlike methods restricted to simultaneous Schur
30+ decomposition (which use only unitary transformations), this algorithm
31+ alternates between two specific updates:
32+
33+ 1. **Non-unitary Shear Transformations:** Reduces the matrices' departure
34+ from normality.
35+ 2. **Unitary Rotations:** Minimizes the off-diagonal norm of the resulting
36+ matrices.
37+
38+ **Scrambling and Robustness**
39+ This approach is specifically designed to handle "scrambling" defined as
40+ significant deviation from normality. Purely unitary methods often fail to
41+ converge when input matrices are far from normal or possess repeated/close
42+ eigenvalues. By incorporating non-unitary shears, this algorithm robustly
43+ converges in these difficult scenarios and exhibits an asymptotically
44+ quadratic convergence rate.
45+
2146 Args:
2247 X (_type_): n matrices, organized in a single tensor of dimension (k, k, n).
2348 max_n_iter (int, optional): Maximum iteration number. Defaults to 50.
0 commit comments