### 6.29.17 Suites de Sturm : sturmseq

sturmseq a comme paramètre une expression polynômiale P ou une fraction rationnelle P/Q.
sturmseq renvoie la liste des suites de Sturm et de leur multiplicité pour P ou pour P et pour Q.
La suite de sturm R1,R2,... est obtenue à partir du facteur F sans carré de P. Pour obtenir F à partir de la décomposition de P en facteurs premiers, on élimine les termes carrés et on transforme les puissances impaires en puissances 1.
R1 est l’opposé du reste de la division euclidienne de F par F′ puis, R2 est l’opposé du reste de la division euclidienne de F′ par R1
....
et ainsi de suite jusqu’à ce que Rk=0.
On tape :

sturmseq(2*x`^`3+2)

ou

sturmseq(2*y`^`3+2,y)

On obtient :

[2,[[1,0,0,1],[3,0,0],-9],1]

Le premier terme donne le PGCD des coefficients du numérateur (ici 2), le dernier terme donne le dénominateur (ici 1). Entre les deux on a la suite des polynômes [x3+1,3x2,−9].
On tape :

sturmseq((12*x`^`3+4)/(6*x`^`2+3),x)

On obtient :

[4,[[3,0,0,1],[9,0,0],-81],3,[[2,0,1],[4,0],-16]]

Le premier terme donne le PGCD des coefficients du numérateur (ici 4), puis la suite de Sturm du numérateur ([[3,0,0,1],[9,0,0],-81]), puis le le PGCD des coefficient du dénominateur (ici 3), et la suite de Sturm du dénominateur ([[2,0,1],[4,0],-16]). On a la suite des polynômes [3x3+1,9x2, −81] pour le numérateur et, [2x2+1,4x,−16] pour le dénominateur.
On tape :

sturmseq((x`^`3+1)`^`2,x)

On obtient :

[1,1]

En effet les termes carrés sont éliminés et F=1.
On tape :

sturmseq(3*(3*x`^`3+1)/(2*x+2),x)

On obtient :

[3,[[3,0,0,1],[9,0,0],-81],2,[[1,1],1]]

Le premier terme donne le PGCD des coefficients du numérateur (ici 3),
le deuxième terme donne la suite de polynômes (ici 3x`^`3+1, 9x`^`2, -81),
le troisième terme donne le PGCD des coefficients du dénominateur (ici 2),
le quatrième terme indique la suite de polynômes du dénominateur (x+1,1).
Attention!!!!
P doit être donné par son expression symbolique et,si on tape :
sturmseq([1,0,0,1],x),
on obtient :
Bad argument type.