MATLAB: Eigenvalues and eigenvectors problem

eigenvalueseigenvectors

Hi,
I have used "eig" function to calculate the eigenvalues of a 6×6 symmetric definite positive matrix and this is the result:
-1,1574e-05
-4,8340e-06
2,0876e-05
6,1373e+10
7,76111e+10
16,3586e+10
Why some values are negative? I know they can be considered zero respect others but for this type of matrix all eigenvalues should be positive! What is the "problem"?
I have also used "eig" function to calculate eigenvalues and eigenvectors for a FEM 2D vibration problem (32 degree of freedom) and the first mode of vibration is out of phase (only some elements). The deformed shape is ok but this mode should be in phase. Can this result be influenced by numerical Matlab computation of corresponding eigenvalue?
Thanks for your help Mark

Best Answer

Since MATLAB calculates in double precision, you will get at most about 15 digits of precision. Because some eigenvalues are of order 10e10, your absolute precision is going to be of order
>> eps(10e10)
which is about 1e-5.
That is around the round-off error you are seeing in your calculation. That level of error is present in all the eigenvalues, but happens to be most noticeable in the ones that are near zero.