Given a matrix C, this function outputs the projection of C onto the cones of symmetric diagonally domimant matrices using Dykstra's projection algorithm.
ProjSDD(A, max_iter_SDD = 20, eps = NA)
Input matrix of size \(n\times n\)
Maximal number of iterations of the Dykstra's projection algorithm
The iterations will stop either when the Frobenious norm of difference matrix between two updates is less than eps
or after max_iter_SDD
steps. If set to NA
, then no check will be done during iterations and the iteration will stop after max_iter_SDD
steps. Default is NA
.
A \(n\times n\) symmetric diagonally dominant matrix
This function projects the input matrix \(C\) of size \(n\times n\) onto the cones of symmetric diagonally domimant matrices defined as $$ \{A = (a_{ij})_{1\le i\le n, 1\le j\le n} : a_{ij} = a_{ji}, a_{jj} \ge \sum_{k\not=j} |a_{jk}| \quad \textrm{for all} \quad 1\le j\le n, 1\le i\le n \}$$
It makes use of Dykstra's algorithm, which is a variation of iterative projection algorithm. The two key steps are projection onto the diagonally domimant cone by calling function ProjDD
and projection onto the symmetric matrix cone by simple symmetrization.
More details can be found in Mendoza, M., Raydan, M. and Tarazaga, P., 1998. Computing the nearest diagonally dominant matrix.
Mendoza, M., Raydan, M. and Tarazaga, P., 1998. Computing the nearest diagonally dominant matrix. Numerical linear algebra with applications, 5(6), pp.461-474.
Ke, Z., Xue, L. and Yang, F., 2019. Diagonally Dominant Principal Component Analysis. Journal of Computational and Graphic Statistics, under review.
# NOT RUN {
ProjSDD(matrix(runif(100),nrow=10))
# }
Run the code above in your browser using DataLab