Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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

share|improve this question
Have you tried other methods? Or is this a case for which the Sylvester matrix is the only serious contender? –  Daniel Lichtblau Jan 24 '14 at 21:19
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 –  Brian c Jan 24 '14 at 21:43
What kind of entries does this matrix have? Integer, floating point, symbolic? –  David Speyer Jan 28 '14 at 22:25
it has symbolic entries –  Brian c Feb 28 '14 at 3:27

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.