Looking at it seems that the improvements were for `is_positive_definite`,
`is_positive_semidefinite` etc rather than `is_indefinite`.

These cases compute fine:

In [*11*]: B1.is_positive_semidefinite
          Out[*11*]: False


In [*12*]: B1.is_negative_semidefinite
          Out[*12*]: False

I think that should be enough to conclude that the matrix is indefinite.
The improvements are that the algorithms for those cases no longer attempt
to compute the eigenvalues. Computing the eigenvalues symbolically is not
usually possible for bigger than a 4x4 matrix due to Abel-Ruffini:
https://en.wikipedia.org/wiki/Abel%E2%80%93Ruffini_theorem

As a workaround you can convert to a matrix of floats since then the
eigenvalues can be computed approximately by mpmath:

In [*13*]: B1.n().eigenvals()
          Out[*13*]: {-0.423518261117994: 1, 0.830838432644968: 1,
1.57353243409785: 1, 2.309362853398: 1, 3.91273545644822: 1,
4.79704908452897: 1}


In [*14*]: B1.n().is_indefinite
          Out[*14*]: True


--
Oscar

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAHVvXxRqXJ8d08ccSft6FfWnt7aBKENtDm-w6vWudVCgsWp%2Bfg%40mail.gmail.com.

Reply via email to