Partial vs. full eigendecomposition when computing matrix logs with Matlab I'm looking over a program that performs a matrix logarithm in each iteration, which necessitates looking at the eigendecomposition of the given matrix iterate $M^{(i)}$. However, rather than consider the full eigendecomposition $M^{(i)}=U*\text{diag(w)}* U^t$ (of non-trivial eigenvectors and eigenvalues), the program instead considers a so-called partial eigendecomposition $M^{(i)}=U\Sigma U^t+(I-UU^t)z$, where $z$ is some step in an orthogonal direction.
Any ideas on why this is done?
 A: In Matlab you're looking for the function eigs, which allows one to calculate particular subsets of eigenvectors and eigenvalues. This function uses different methods than the standard eig function and will be (much) slower if you use it to calculate all of the principle values for a system.
Without knowing what these eigenvectors and eigenvalues represent physically, I can't say too much. Often it's just a matter of computational efficiency when systems get large. A sufficient number of the dominant eigenvalues will largely dictate the behavior of the system. If the system was determined via physical measurement or some other process where noise could play a role, the precision (and actual basis for existence) of the weaker eigenvalues may be less. Another reason to discard unimportant eigenvalues might be for mathematical and numerical tractability.
My own experience in this area is with structural vibration (either measured data or simulated) where systems can have many modes. Some are very important while others are miniscule.
