[Scipy-tickets] [SciPy] #1208: LOBPCG produces incorrect results

SciPy Trac scipy-tickets@scipy....
Mon Jun 21 18:22:10 CDT 2010


#1208: LOBPCG produces incorrect results
---------------------------------+------------------------------------------
 Reporter:  bemasc               |       Owner:  wnbell
     Type:  defect               |      Status:  new   
 Priority:  normal               |   Milestone:  0.8.0 
Component:  scipy.sparse.linalg  |     Version:  0.7.0 
 Keywords:                       |  
---------------------------------+------------------------------------------
 I encountered strange behavior from LOBPCG.  It appeared to be
 nondeterministically giving me wrong answers.  I am no longer able to
 reproduce the nondeterminism, but in developing a test case I discovered
 that it is sometimes returning eigenvectors and eigenvalues that bear no
 resemblance to correctness.

 I attach a small test case.  When I run the test case, I
 (deterministically) get the following output:
 {{{
 current block size: 2
 eigenvalue: [ 0.50435954  0.66425668  0.86243781  1.0582824 ]
 residual norms: [  7.22519642e-05   4.14898903e-05   1.17014344e-04
 5.14611779e-02]
 iteration 544
 current block size: 2
 eigenvalue: [ 0.50435954  0.66425668  0.86243781  1.05827785]
 residual norms: [  7.39321241e-05   4.16901930e-05   1.20605505e-04
 5.13056942e-02]
 iteration 545
 current block size: 1
 eigenvalue: [ 0.50435954  0.66425668  0.86243781  1.05827416]
 residual norms: [  6.16121851e-05   4.06799197e-05   9.92769947e-05
 4.90514218e-02]
 iteration 546
 final eigenvalue: [  6.32873682e-13   6.83448383e-03   5.04359537e-01
 6.64256678e-01]
 final residual norms: [  1.73078371e-05   3.58451238e+00   6.18198279e-05
 4.06847212e-05]
 Eigenvector 0 has norm 2.97625e-07, claimed eigenvalue 6.32874e-13,
 measured eigenvalue 58.1533, and inner product 0.122859.
 Eigenvector 1 has norm 0.00240866, claimed eigenvalue 0.00683448, measured
 eigenvalue 1488.18, and inner product 0.791587.
 Eigenvector 2 has norm 1.00001, claimed eigenvalue 0.50436, measured
 eigenvalue 0.504349, and inner product 1.
 Eigenvector 3 has norm 1, claimed eigenvalue 0.664257, measured eigenvalue
 0.664257, and inner product 1.
 }}}

 As this shows, the first two eigenvectors are not correctly normalized,
 correspond to incorrect eigenvalues, and are not in fact eigenvectors at
 all.  The next two eigenvectors, in contrast, are correctly normalized and
 correctly correspond to the claimed eigenvalue.

 This appears to be a serious bug in LOBPCG.

-- 
Ticket URL: <http://projects.scipy.org/scipy/ticket/1208>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.


More information about the Scipy-tickets mailing list