Skip to Content

TD 05 : Polynômes et fractions rationnelles

TD 5.1:

Corrigé TD 5.1
Soit la fraction rationnelle
F définie par : F = X^6/(X^2+1)^2/(X+1)^2

 

1° La décomposition de F en éléments simples dans R s'écrit:

G := a+(b*X+c)/(X^2+1)+(d*X+e)/(X^2+1)^2+f/(X+1)+g/...

On réduit les fractions composant G au même dénominateur et on identifie les

numérateurs de F et de G . En déduire les valeurs de a,b,c,d,e,f,g .

 

2° Calculer la décomposition de F en éléments simples dans C

 


TD 5.2:

Corrigé TD 5.2


Soit P un polynôme de K[
x ] , s'écrivant sous la forme :

P(x) = Sum(a[k]*x^k,k = 0 .. n)

 

L'algorithme de Hörner permet d'écrire P( x ) sous la forme :

 

P(x) = ((((a[n]*x+a[n-1])*x+a[n-2])*x+` . . . `+a[2...

 

Exemple:

Q := 3*x^4+2*x^3-x^2+2*x+1

Q := (((3*x+2)*x-1)*x+2)*x+1

 

Ecrire une procédure PolyHorner(P , x ) permettant d'écrire P( x ) sous cette forme ,

P étant un polynôme donné de K[ x ] , x étant le nom de la variable .

 

NB: il est interdit d'utiliser la fonction horner de MAPLE .

 

Grace à la fonction cost , évaluer le coût en opérations nécessaires pour évaluer Q et
PolyHorner(Q,
x ) , Q étant le polynôme donné en exemple .

 


 

Corrigé du Travail dirigé 5:

TD 5.1:

Énoncé TD 5.1

 

Question 1:

> F:=X^6/(X^2+1)^2/(X+1)^2;

F := X^6/(X^2+1)^2/(X+1)^2

> G:=a+(b*X+c)/(X^2+1)+(d*X+e)/(X^2+1)^2+f/(X+1)+g/(X+1)^2;

G := a+(b*X+c)/(X^2+1)+(d*X+e)/(X^2+1)^2+f/(X+1)+g/...

> N:=convert(numer(G),polynom)-X^6:collect(N,X);

(a-1)*X^6+(b+2*a+f)*X^5+(2*b+3*a+f+c+g)*X^4+(2*b+2*...
(a-1)*X^6+(b+2*a+f)*X^5+(2*b+3*a+f+c+g)*X^4+(2*b+2*...

> solve({seq(coeff(N,X,k),k=0..degree(N))},{a,b,c,d,e,f,g});

{a = 1, g = 1/4, f = -1, c = -1/4, e = 0, d = 1/2, ...

> assign(%);F=G;

X^6/(X^2+1)^2/(X+1)^2 = 1+(-X-1/4)/(X^2+1)+1/2*X/(X...

 

Question 2:

> F=convert(F,parfrac,X,I);

X^6/(X^2+1)^2/(X+1)^2 = 1-1/8*I/(-X+I)^2+(1/2-1/8*I...

 


 

TD 5.2:

Énoncé TD 5.2

> PolyHorner:=proc(P::polynom,x::name)
        local k,n,Q;
            n:=degree(P);Q:=0;
            for k from n by -1 to 0 do
                Q:=Q*x+coeff(P,x,k);
            end do;
            Q
    end proc;

PolyHorner := proc (P::polynom, x::name) local k, n...
PolyHorner := proc (P::polynom, x::name) local k, n...
PolyHorner := proc (P::polynom, x::name) local k, n...
PolyHorner := proc (P::polynom, x::name) local k, n...

> Q:=3*x^4+2*x^3-x^2+2*x+1;PolyHorner(Q,x);

Q := 3*x^4+2*x^3-x^2+2*x+1

(((3*x+2)*x-1)*x+2)*x+1

 

> with(codegen,cost):cost(Q);cost(PolyHorner(Q,x));

4*additions+9*multiplications

4*additions+4*multiplications

 

 

 

haut de cette page



 





 






MicroMaths.Net - Abderrahim Bourguig - Tous droits réservés