spd_learn.functional.ajd#
- spd_learn.functional.ajd(X, method='ajd_pham', init=None, eps=1e-06, n_iter_max=100, **kwargs)[source]#
Aproximate joint diagonalization (AJD) according to a method.
Compute the AJD of a set of matrices according to a method [1], estimating the joint diagonalizer matrix, diagonalizing the set as much as possible.
- Parameters:
X (ndarray, shape (n_matrices, n, n)) – Set of symmetric matrices to diagonalize.
method (string | callable, default="ajd_pham") – Method for AJD, can be: “ajd_pham”, “rjd”, “uwedge”, or a callable function.
init (None | ndarray, shape (n, n), default=None) – Initialization for the diagonalizer.
eps (float, default=1e-6) – Tolerance for stopping criterion.
n_iter_max (int, default=100) – The maximum number of iterations to reach convergence.
kwargs (dict) – The keyword arguments passed to the sub function.
- Returns:
V (ndarray, shape (n, n)) – The diagonalizer.
D (ndarray, shape (n_matrices, n, n)) – Set of quasi diagonal matrices.
Notes
Added in version 0.6.
References
[1]Joint Matrices Decompositions and Blind Source Separation: A survey of methods, identification, and applications G. Chabriel, M. Kleinsteuber, E. Moreau, H. Shen; P. Tichavsky and A. Yeredor. IEEE Signal Process Mag, 31(3), pp. 34-43, 2014.