[Numpy-discussion] One question about the numpy.linalg.eig() routine

josef.pktd@gmai... josef.pktd@gmai...
Mon Apr 2 19:36:35 CDT 2012


2012/4/2 Hongbin Zhang <hongbin_zhang82@hotmail.com>:
> Dear Python-users,
>
> I am currently very confused about the Scipy routine to obtain the
> eigenvectors of a complex matrix.
> In attached you find two files to diagonalize a 2X2 complex Hermitian
> matrix, however, on my computer,
>
> If I run python, I got:
>
> [[ 0.80322132+0.j          0.59500941+0.02827207j]
>  [-0.59500941+0.02827207j  0.80322132+0.j        ]]
>
> If I compile the fortran code, I got:
>
>  ( -0.595009410289, -0.028272068905) (  0.802316135182,  0.038122316497)
>  ( -0.803221321796,  0.000000000000) ( -0.595680709955,  0.000000000000)

these results look more like eigh (except flipped)

>>> numpy.linalg.eigh(numpy.array(H))[1]
array([[ 0.59568071+0.j        , -0.80322132+0.j        ],
       [ 0.80231613-0.03812232j,  0.59500941-0.02827207j]])

Josef

>
> From the scipy webpage, it is said that numpy.linalg.eig() provides nothing
> but
> an interface to lapack zheevd subroutine, which is used in my fortran code.
>
> < /div>
> Would somebody be kind to tell me how to get consistent results?
>
> Many thanks in advance.
>
> Best wishes,
>
> Hongbin
>
>
>
>
>                                                         Ad hoc, ad loc and
> quid pro quo
>
>
>                                   ---   Jeremy Hilary Boob
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>


More information about the NumPy-Discussion mailing list