Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.