6
$\begingroup$

I'm doing a calculation which finds the characteristic polynomial of a matrix with rather complex entries and then determines the discriminant of that polynomial. For smaller matrices up to around 7x7 it finishes evaluating the Discriminant command within a few hours, but at a 10x10, which is what I need, it takes days to evaluate. Running in parallel won't work for the built in Discriminant command. I was wondering if there was a more efficient way to evaluate the discriminant of high-order polynomial, as I know my code is basic.

    CPHH = Collect[CharacteristicPolynomial[HH, x],x]];
    DD = Discriminant[CPHH, x, Method -> SylvesterMatrix];
    Simplify[DD, TimeConstraint -> Infinity]

If the rest of the code would be useful in determining a solution I'd be happy to post it

$\endgroup$
4
  • $\begingroup$ Have you tried other methods? Or is this a case for which the Sylvester matrix is the only serious contender? $\endgroup$ Jan 24, 2014 at 21:19
  • $\begingroup$ I've tried all other methods and SylvesterMatrix is at least twice as fast as BezoutMatrix, Subresultant, and Automatic for smaller matrices. For larger matrices the difference is even greater $\endgroup$
    – Brian c
    Jan 24, 2014 at 21:43
  • $\begingroup$ What kind of entries does this matrix have? Integer, floating point, symbolic? $\endgroup$ Jan 28, 2014 at 22:25
  • $\begingroup$ it has symbolic entries $\endgroup$
    – Brian c
    Feb 28, 2014 at 3:27

0