pyriemann.utils.ajd.rjd

pyriemann.utils.ajd.rjd(X, *, init=None, eps=1e-08, n_iter_max=100)

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:
Xndarray, shape (n_matrices, n, n)

Set of symmetric matrices to diagonalize.

initNone | ndarray, shape (n, n), default=None

Initialization for the diagonalizer.

epsfloat, default=1e-8

Tolerance for stopping criterion.

n_iter_maxint, default=100

The maximum number of iterations to reach convergence.

Returns:
Vndarray, shape (n, n)

The diagonalizer, an orthogonal matrix.

Dndarray, shape (n_matrices, n, n)

Set of quasi diagonal matrices, D = V^T X V.

See also

ajd

Notes

New in version 0.2.4.

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.