PDL::Slatec Problem of eigenvalue of Matrix

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Junmou Zhang

    PDL::Slatec Problem of eigenvalue of Matrix

    I have installed the PDL module and use it to calculate eigenvalue of
    a
    matrix. The PDL do gives me some eigenvalue and eigenvector. But the
    problem is that these values are different from the eigenvalue and
    eigenvector calculated in Matlab.

    A simple example is:

    use PDL::LiteF;
    my $mat = pdl [ 3.4603 , 1.7529 , 1.6990 , 2.1181],
    [ 2.5459 , 2.5615 , 2.2525 , 2.3606],
    [ 2.3606 , 2.2515 , 2.5628 , 2.5459],
    [ 2.1181 , 1.6982 , 1.7537 , 3.4603];
    ($eigvals,$eigv ecs) = eigsys($mat);
    print $eigvecs,$eigva ls,"\n";


    The results are:

    For PDL module is:
    [
    [0.0541307 -0.554549 0.789897 -0.256142]
    [0.0412208 0.635852 0.202431 -0.743649]
    [ 0.87661 -0.252953 -0.320313 -0.254888]
    [-0.476366 -0.473479 -0.482167 -0.562502]
    ] and eigenvalue
    [0.272291 0.63145 1.7178 9.42336]


    But for matlab, the results are

    -0.4788 -0.6962 0.4294 -0.0371
    -0.5203 -0.1238 -0.5616 0.7063
    -0.5203 0.1239 -0.5619 -0.7059
    -0.4788 0.6961 0.4295 0.0370
    and the eigenvalue is


    9.3294 0 0 0
    0 1.3519 0 0
    0 0 1.0631 0
    0 0 0 0.3004


    As you can see, the results from PDL is greatly different from Matlab.
    So is my installation not correct? or something wrong with my perl
    script?

    Could somebody who has the PDL installed try this simple example, and
    tell me
    what is you eigenvalue and eigenvector?

    Thanks
Working...