Of course if it isn't square free, you can fix that by dividing the
polynomial with the greatest common divider of the polynomial and it's
derivative.

man. 11. maj 2015 kl. 12.54 skrev Dima Pasechnik <dimp...@gmail.com>:

> well, you didn't paste the correct polynomial:
> (the least degree is 12, not 1).
> so one gets
>
> sage: for (q,n) in p.squarefree_decomposition():
>
> ....:     print q.degree(), n, gp.polsturm(q)
>
> ....:
>
> 8 1 8
> 2 2 2
> 1 12 1
> which gives you 11 real roots, just as computed by .roots()
>
> Right, I forgot about Sturm sequences :-(
> They are certainly way, way more efficient than actual root computation.
>
>
> On Monday, 11 May 2015 08:28:24 UTC+1, vdelecroix wrote:
>>
>> On 11/05/15 07:43, Phoenix wrote:
>> >
>> > 1296*x^24 - 20736*x^22 + 129600*x^20 - 393984*x^18 + 584496*x^16 -
>> 362880*x^14 + 62208*x
>>
>> For the number of real roots, you can use PARI/GP (but your polynomial
>> needs to be square free)
>>
>> sage: x = polygen(QQ)
>> sage: p = 1296*x^24 - 20736*x^22 + 129600*x^20 - 393984*x^18 +
>> 584496*x^16 - 362880*x^14 + 62208*x
>> sage: for (q,n) in p.squarefree_decomposition():
>> ....:    print q.degree(), n, gp.polsturm(q)
>> 24 1 4
>>
>> The command `gp.polsturm` returns the number of real roots of a
>> squarefree polynomial. The above code shows that the polynomial was
>> square free. And it has 4 real roots. There is *no* need to compute the
>> roots to determine the number of them which are real!!
>>
>> Vincent
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-support@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to