bonjour, j'ai une erreur dans mes deux programmes maple et j'ai beau les relire je ne vois pas ou sont les erreurs.
1er programme:pgcd de deux polynomes:
euclide:=proc(P,Q)
> local i,R;
> R[0]:=P;
> R[1]:=Q;
> for i
> while R[i] <> 0 do
> R[i+1]:=rem(R[i-1],R[i],x):
> od:
> R[i-1];
> end proc:
2eme programme:theoreme de sturm:
Changement de signe entre a et b
> ch_sgn:=proc(L)
> local i,x,R,n;
> R:=remove(x->(x=0),L);
> n:=0;
> for i from 2 to nops(R) do
> if R[i-1]*R[i]<0
> then n:=n+1
> fi;
> od:
> n;
> end proc:
Si un polynomes a des racines multiples
> rac_simple:=proc(P)
> local Q,R;
> Q:=quo(P,gcd(P,diff(P,x)),x):
> R:=factor(Q):
> end proc:
Suites de sturm
> Sturm:=proc(P)
> local i,R,L;
> R[0]:=P;
> R[1]:=-diff(P,x);
> L:=R[0],R[1];
> for i
> while(R[i]<>0) do
> R[i+1]:=-rem(R[i-1],R[i],x);
> L:=L,R[i+1];
> od:
> [L];
> end proc:
Nombre de changement de signe si on evalue le polynome en a
> Cal_val:=proc(P,a)
> ch_sgn(subs({x=a},P));
> end proc:
> P:=(x-1)*(x+2)*(x-3);
> print(`la factorisation du polynôme est ` ,factor(P));
> plot(P(x),x=-10..10,color=green);
> Q:=rac_simple(P);
> print(` `);
> print(`La suite de Sturm est :`);
> S:=Sturm(Q);
> print(`Le nombre de changement de signe dans cette suite est :`);
> M:=Cal_val(S,0);
> print(`représentation graphique de la suite de Sturm de notre polynome P :`);
> plot(x->Cal_val(S,x),-4..4);
> print(`Le nombre de racines réelles est :`);
> m:=Cal_val(P,4)-Cal_val(P,-4);
Merci beaucoup


