Can more pertubations in eigenvalues/vectors lead to smaller changes?

46 Views Asked by At

Say i have a $n$ x $n$ matrix $M$, and i change it's smallest eigenvalue from a small negative value $v$ to a small positive value $t$ to obtain $M^*$: $$M^* = VE^*V'$$ $E^*$ is a diagonal matrix of eigenvalues of $M$, with the smallest value changed from $v$ to $t$; $V$ is a matrix of eigenvectors of $M$; $V'$ is the transpose of $V$.

This is sometimes called Eigenvalue Smoothing and it is a simple method to get a positive definite (PD) matrix from an almost PD matrix. (see for example: Wothke, W. (1993). Nonpositive definite matrices in structural modeling. In K. A. Bollen & J. S. Long (Eds.), Testing structural equation models (pp. 256-93). Newbury Park, CA: Sage.)

Does there exist a matrix $M^{**}$ such that:

  • $M^{**}$, like $M^*$ is created from $M$ by first changing $v$ to $t$
  • $M^{**}$ differs from $M^*$ in that additional changes were made to eigenvalues and/or eigenvectors of $M$
  • $M^{**}$ lies closer to $M$ than $M^*$

With 'closer' defined either as the max norm $max(|m_{ij}|)$ or the Frobenius norm $\sqrt(\sum_{i}\sum_j|a_{ij}|^2)$

If such an $M^{**}$ exists, is there some algorithm to find it? If such an $M^{**}$ cannot exists, why not?

1

There are 1 best solutions below

0
On

Not quite the answer but relevant: simply making the only negative eigenvalue positive will make the matrix PD but depending on the goal, there may be better solutions.

For example the iterative algorithm introduced by Higham (Computing the Nearest Correlation Matrix---A Problem from Finance — IMA journal of Numerical Analysis 2002 - Nicholas J. Higham) will not just result in a PD matrix, but also in a better behaved matrix as the difference between the largest and the smallest eigenvalue will be decreased. The algorithm works specifically for correlation matrices, by iteratively decomposing the matrix in eigenvectors and eigenvalues, and replacing the negative eigenvalues by zero’s. Before the next iteration the diagonals are set to 1.