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

Reply via email to