[Scipy-tickets] [SciPy] #1309: scipy.linalg.eigh fails with "the leading minor of order 5 of 'b' is not positive definite."

SciPy Trac scipy-tickets@scipy....
Sat Oct 16 15:38:21 CDT 2010


#1309: scipy.linalg.eigh fails with "the leading minor of order 5 of 'b' is not
positive definite."
---------------------------+------------------------------------------------
  Reporter:  nicki         |       Owner:  somebody
      Type:  defect        |      Status:  closed  
  Priority:  normal        |   Milestone:  0.9.0   
 Component:  scipy.linalg  |     Version:  0.8.0   
Resolution:  invalid       |    Keywords:          
---------------------------+------------------------------------------------
Changes (by warren.weckesser):

  * status:  new => closed
  * resolution:  => invalid
  * component:  Other => scipy.linalg


Comment:

 Hi Nico,

 eigh() requires that the B matrix be positive definite.  Your matrix B is
 not:
 {{{
 In [13]: B
 Out[13]:
 array([[ 1.        ,  0.        ,  0.        ,  0.        , -0.73412725,
          0.43135902],
        [ 0.        ,  1.        ,  0.        ,  0.        , -2.61480869,
          1.39340031],
        [ 0.        ,  0.        ,  1.        ,  0.        ,  0.19275253,
         -0.38337825],
        [ 0.        ,  0.        ,  0.        ,  1.        , -0.13582713,
          0.22296553],
        [-0.73412725, -2.61480869,  0.19275253, -0.13582713,  1.        ,
          0.        ],
        [ 0.43135902,  1.39340031, -0.38337825,  0.22296553,  0.        ,
          1.        ]])

 In [14]: eigvalsh(B)
 Out[14]:
 array([-2.11096069,  0.72067771,  1.        ,  1.        ,  1.27932229,
         4.11096069])
 }}}
 Note that -2.11... is an eigenvalue of B.

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


More information about the Scipy-tickets mailing list