[SciPy-user] eigenvector values (negative where it should be positive)

Robert Kern robert.kern at gmail.com
Sun May 24 22:40:48 EDT 2009


2009/5/24 Carlos "Guâno" Grohmann <carlos.grohmann at gmail.com>:
> Hello all
>
> I'm working on some structural geology data, using numpy (I'm
> following some class notes, so I can check my results). I have a set
> of directional data (azimuth/dip):
>
> 12 42
> 18 40
> 22 48
> 15 30
> 10 42
> 20 30
>
> First I read the data and create a matrix with the direction cosines like this:
>
> #direction cosines relative to axis oriented north, east and down
> # phi = longitude = azimuth (dip direction)
> # theta = latitude = dip
> # xi = cos(theta[i])*cos(phi[i])
> # yi = cos(theta[i])*sin(phi[i])
> # zi = sin(theta[i])
> # Tmat = orientation matrix T
> # Tmat = sum(xi2)    sum(xi.yi)    sum(xi.zi)
> #        sum(yi.xi)  sum(yi2)      sum(yi.zi)
> #        sum(zi.xi)  sum(zi.yi)    sum(zi2)
>
> This is the matrix:
>
> [[ 3.34172131  0.96327612  2.73061427]
>  [ 0.96327612  0.29736701  0.78834422]
>  [ 2.73061427  0.78834422  2.36091168]]
>
>
> So far so good, but according to my example, the eigenvectors should look like:
>
>  Vector 1 Vector 2 Vector 3
> X  0.749    -0.590   -0.300
> Y  0.217    -0.210    0.953
> Z  0.626    0.779     0.029
>
> and I have this:
>
> [[-0.74913585 -0.59037777  0.30041565]
>  [-0.21679731 -0.21002264 -0.95335692]
>  [-0.62593482  0.77932315 -0.02934318]]
>
>
> So, the values are OK, but the negative signs I don't understand.

Eigenvectors are unique only up to a scale factor. They are typically
reported as normalized to a magnitude of 1, but that still leaves it
ambiguous. If v is an eigenvector, -v is also an eigenvector. Both
norm(v) and norm(-v) == 1. Which one you get is dependent on the
details of the implementation. Both are correct answers.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco



More information about the SciPy-User mailing list