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.

See also

ajd_pham, rjd, uwedge

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.