Yes. Your first eigenvalue is effectively 0, the values you see are just noise. Different implementations produce different noise.
As for the signs ot the eigenvector components, which direction is + or - X is arbitrary. Different implementations follow different conventions as to which is which. Sometimes it's just an accident. Nothing-to-see-here-move-along-ly, w On Wed, 20 Feb 2008, Matthieu Brucher wrote: > Hi, > > The results are OK, they are very close. Your matrix is almost singular, is > badly conditionned, ... But the results are very close is you check them in > a relative way. 3.84433376e-03 or -6.835301757686207E-4 is the same compared > to 2.76980401e+13 > > Matthieu > > 2008/2/20, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: >> >> hi >> i was calculating eigenvalues and eigenvectors for a covariancematrix >> using numpy >> >> adjfaces=matrix(adjarr) >> faces_trans=adjfaces.transpose() >> covarmat=adjfaces*faces_trans >> evalues,evect=eigh(covarmat) >> >> for a sample covarmat like >> [[ 1.69365981e+13 , -5.44960784e+12, -9.00346400e+12 , -2.48352625e >> +12] >> [ -5.44960784e+12, 5.08860660e+12, -8.67539205e+11 , 1.22854045e >> +12] >> [ -9.00346400e+12, -8.67539205e+11, 1.78184943e+13 ,-7.94749110e >> +12] >> [ -2.48352625e+12 , 1.22854045e+12, -7.94749110e+12 , 9.20247690e >> +12]] >> >> i get these >> evalues >> [ 3.84433376e-03, 4.17099934e+12 , 1.71771364e+13 , 2.76980401e+13] >> >> evect >> [[ 0.5 -0.04330262 0.60041892 -0.62259297] >> [ 0.5 -0.78034307 -0.35933516 0.10928372] >> [ 0.5 0.25371931 0.3700265 0.74074753] >> [ 0.5 0.56992638 -0.61111026 -0.22743827]] >> >> what bothers me is that for the same covarmat i get a different set of >> eigenvectors and eigenvalues when i use java library Jama's methods >> Matrix faceM = new Matrix(faces, nrfaces,length); >> Matrix faceM_transpose = faceM.transpose(); >> Matrix covarM = faceM.times(faceM_transpose); >> EigenvalueDecomposition E = covarM.eig(); >> double[] eigValue = diag(E.getD().getArray()); >> double[][] eigVector = E.getV().getArray(); >> >> here the eigValue= >> [-6.835301757686207E-4, 4.170999335736721E12, 1.7177136443134865E13, >> 2.7698040117669414E13] >> >> and eigVector >> [ >> [0.5, -0.04330262221379265, 0.6004189175979487, 0.6225929700052174], >> [0.5, -0.7803430730840767, -0.3593351608695496, -0.10928371540423852], >> [0.49999999999999994, 0.2537193127299541, 0.370026504572483, >> -0.7407475253159538], >> [0.49999999999999994, 0.5699263825679145, -0.6111102613008821, >> 0.22743827071497524] >> ] >> >> I am quite confused bythis difference in results ..the first element >> in eigValue is different and also the signs in last column of >> eigVectors are diff..can someone tell me why this happens? >> thanks >> dn >> >> >> >> >> _______________________________________________ >> Numpy-discussion mailing list >> Numpy-discussion@scipy.org >> http://projects.scipy.org/mailman/listinfo/numpy-discussion >> > > > > -- > French PhD student > Website : http://matthieu-brucher.developpez.com/ > Blogs : http://matt.eifelle.com and http://blog.developpez.com/?blog=92 > LinkedIn : http://www.linkedin.com/in/matthieubrucher > _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion