# [gmx-users] eigenvalues and number of frames

Jose D Faraldo-Gomez jdfg_gmx at hotmail.com
Mon Apr 1 18:06:23 CEST 2002

```Hi

Can anyone explain to me why when I use g_covar to build the covariance
matrix and obtain the corresponding eigenvalues, the number of (clearly)
non-zero eigenvalues appear to depend on the number of frames read (if this
is smaller than 3N)?

E.g. if for a system of 134 C-alphas I do:

(a) g_covar_d -f \$xtc -s \$tpr -n \$ndx -b 2000 -e 4000 -last 402 (200 frames)

then in eigenval.xvg I get

(...)
198 1.42414e-05
199 1.40171e-05
200 1.09781e-05
201 -2.63089e-14
202 2.55791e-14
203 -9.5343e-15
(...)

whereas if I do:

(b) g_covar_d -f \$xtc -s \$tpr -n \$ndx -b 2000 -e 3000 -last 402 (100 frames)

I obtain

(...)
97 0.000174181
98 0.000171367
99 0.000164253
100 0.000146225
101 3.66036e-14
102 -3.02553e-14
103 -8.74524e-15
(...)

And the same thing happens if I increase or decrease the number of frames
being read by changing the sampling window length. In other words, the index
of the last eigenvalue larger that, say, 1e-10, is exactly the same as the
number of frames in the sampling window (until the number of frames exceeds
the number of possible eigenvalues).

Also, if I tell g_covar to skip frames and do:

(c) g_covar_d -f \$xtc -s \$tpr -n \$ndx -b 2000 -e 4000 -last 402 -dt 20 (100
frames)

then I get:

(...)
97 0.000180717
98 0.0001703
99 0.00015828
100 0.0001383
101 -3.29179e-14
102 3.07368e-14
103 9.17597e-15
(...)

which resembles the profile for the 1 ns window in (b), though of course the
trace of the matrix is more similar to that in (a).

So, what am I missing? I can see how the covariance matrix changes as frames
are included/excluded in the averaging, but once the matrix is built, should
not be the number of non-zero eigenvalues independent of the number of
frames? Apologies if this is really obvious...