Velocity Reviews > Perl > PDL::Slatec Problem of eigenvalue of Matrix

PDL::Slatec Problem of eigenvalue of Matrix

Junmou Zhang
Guest
Posts: n/a

 07-10-2003
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,\$eigvecs) = eigsys(\$mat);
print \$eigvecs,\$eigvals,"\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