spd_learn.functional.rjd#
- spd_learn.functional.rjd(X, *, init=None, eps=1e-08, n_iter_max=100)[source]#
Approximate joint diagonalization based on JADE.
This is an implementation of the orthogonal AJD algorithm [1]: joint approximate diagonalization of eigen-matrices (JADE), based on Jacobi angles. The code is a translation of the Matlab code provided on the author’s website.
- Parameters:
X (ndarray, shape (n_matrices, n, n)) – Set of symmetric matrices to diagonalize.
init (None | ndarray, shape (n, n), default=None) – Initialization for the diagonalizer.
eps (float, default=1e-8) – Tolerance for stopping criterion.
n_iter_max (int, default=100) – The maximum number of iterations to reach convergence.
- Returns:
V (ndarray, shape (n, n)) – The diagonalizer, an orthogonal matrix.
D (ndarray, shape (n_matrices, n, n)) – Set of quasi diagonal matrices, D = V^T X V.
Notes
Added in version 0.2.4.
Changed in version 0.12: Add support for NumPy and PyTorch.
See also
References
[1]Jacobi angles for simultaneous diagonalization J.-F. Cardoso and A. Souloumiac, SIAM Journal on Matrix Analysis and Applications, 17(1), pp. 161-164, 1996.