Both results are correct. There are 2 factors that make the results look different: 1) The order: the 2nd eigenvector of the numpy solution corresponds to the 1st eigenvector of your solution, note that the vectors are written in columns. 2) The phase: an eigenvector can be multiplied by an arbitrary phase factor with absolute value = 1. As you can see this factor is -1 for the 2nd eigenvector and -0.99887305445887753-0.047461785427773337j for the other one. Val
2012/4/2 Hongbin Zhang <[email protected]> > 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) > > 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 > [email protected] > http://mail.scipy.org/mailman/listinfo/numpy-discussion > >
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
