Hi all:(adsbygoogle = window.adsbygoogle || []).push({});

I have a covariance matrix which is like:

0.00166713 -0.00060678 4.60534e-05

-0.00060678 0.00178576 -0.000244526

4.60534e-05 -0.000244526 0.000772057

And then I want to eigen decompose the matrix to obtain the eigenvector matrix. I tried several methods, one is to use the LaEigSolve in the lapack++ library. This gives me the result:

0.655504 -0.742432 0.138237

-0.743371 -0.60208 0.291375

0.133097 0.293759 0.946568

Then I tried to use svdcmp routine of the Numerical recipe which gives me:

-0.655504 0.742432 0.138237

0.743371 0.60208 0.291375

-0.133097 -0.293759 0.946568

I also tried to use eig() in matlab which gives me:

-0.6555 0.7424 0.1383

0.7434 0.6021 0.2914

-0.1331 -0.2938 0.9465

By using pcacov(), the result is:

-0.6555 -0.7424 0.1383

0.7434 -0.6021 0.2914

-0.1331 0.2938 0.9465

Actually, I am writing a program of Pinciple Component Analysis in C++. But I don't really know which one is reliable and correct. The pcacov() seems to give me the correct result but I really don't understand why it's different from the others.

Can anyone help me with it please?

Thanks

**Physics Forums | Science Articles, Homework Help, Discussion**

Dismiss Notice

Join Physics Forums Today!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# An eigen decomposition problem in programming

**Physics Forums | Science Articles, Homework Help, Discussion**