Dear all, I have a doubt about using the eigenvector part of the library. I created a small dataset to represent 3d coordinates in a cartesian plane:
double[] x = {1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3}; double[] y = {0.5, 1, 1.5, 2, 0.5, 1, 1.5, 2, 0.5, 1, 1.5, 2}; double[] z = {1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2}; The datasset represents a step from z value 1 to 2 on a regular grid (with a diagonali trend). I would expect to gain from the eigenvector with lowest eigenvalue a line splitting this particular set in a quite clean way the higher z points from the lower ones. So I calculate the covariance matrix which results in: 0.7272727272727273 0.0 0.18181818181818182 0.0 0.3409090909090909 0.22727272727272727 0.18181818181818182 0.22727272727272727 0.2727272727272727 and then I simply calculate the eigenvector/values which result in: eigenVal: 0.8056498828134406, eigenVect: [0.9015723557614027, 0.19005937823202243, 0.38864472217295326] eigenVal: 0.4874287594020183, eigenVect: [-0.37995167578226796, 0.7774478202831089, 0.5012101463530935] eigenVal: 0.04783044869363171, eigenVect: [-0.20689130333844696, -0.5995434258526233, 0.773138842071603] doing exactly the same thing with Jama results in: eigenVal: 0.8056498828134406, eigenVect: [-0.7731388420716028, 0.5012101463530931, -0.38864472217295326] eigenVal: 0.48742875940201863, eigenVect: [0.5995434258526229, 0.7774478202831089, -0.1900593782320223] eigenVal: 0.0478304486936319, eigenVect: [0.20689130333844694, -0.37995167578226785, -0.9015723557614027] In fact if I use Jama's eigenvector with lowest eigenvalue, I am able to construct a line of slope y = (0.206891303338447/-0.379951675782268) *x, which splits my dataset the way I would like to have it. The same doesn't apply to the result of the apache commons math lib, which seems to be reflected on the secondary diagonal. Since I am no expert in this field, I might be doing somthing really wrong. If someone could give me a hint, it would be greatly appreciated. Best regards, Andrea --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org