Vous êtes sur la page 1sur 24

Polynômes

• Généralités
• Un polynôme est une expression en un certain
nombre de variables.
• Opérations sur les polynômes
• Les opérations et fonctions disponibles pour
les polynômes sont en particulier celles des
expressions (degré, coefficients, etc).
Opérations algébriques
• Degré : la fonction degree donne le degré d'un polynôme en la
variable demandée.
• Coefficients : les fonctions coeff et coeffs donnent respectivement
un coefficient et la suite des coefficients d'un polynôme ;
• les fonctions lcoeff et tcoeff donnent respectivement le coefficient
dominant et le coefficient de plus bas degré.

• > p := 7*x^2+5*x^3+11*x;
• >coeff(p,x,2);
• >coeffs(p,x);
• > tcoeff(p,x);
• > lcoeff(p,x);
• L’appel CoefficientVector(p, x) retourne un
vecteur de coefficients à partir d’un polynôme
p en x.
• l’appel CoefficientList(p, x) retourne une liste
de coefficients à partir d’un polynôme p en x.
• L’appel FromCoefficientList(L, x) retourne un
polynôme en x à partir des coefficients de la
liste.
• L’appel FromCoefficientVector(V, x) retourne
un polynôme en x à partir des coefficients du
vecteur.
Opérations arithmétiques
• Division : la fonction divide permet de tester si
un polynôme divise un polynôme donné, et de
récupérer le quotient.
• Division euclidienne : les fonctions rem et quo
donnent respectivement le reste et le quotient
de la division euclidienne de deux polynômes.
• pgcd et ppcm : le pgcd (respectivement le ppcm)
de deux polynômes est donné par la fonction
gcd (respectivement lcm).
Opérations de calcul
• Evaluation : la commande subs permet d'évaluer un
polynôme en un point.
• Exemple :
• > P :=x2 ;subs(x=2,P) ;
• P := x2
• 4
• >P:=(3*x+1)*(x-2);
• >eval(P,x=-2);
• L'évaluation ne change en rien l'expression de P .
• >normal(p)
• >collect(p,x)
• Il existe de nombreuses opérations possibles sur
les expressions polynomiales comme par
exemple la mise sous une forme ordonnée par
degré décroissant d'un polynôme avec la fonction
• sort
• > px:=sort(2*x^2-4*x^3+x^4-1-3*x);
• >factor(x^3-3*x+2);
• ( x + 2) ( x - 1)2
• >roots(x^3-3*x+2);
• [ [ 1, 2 ], [ -2, 1] ]
Equations, inéquations, systèmes

• 1. Ecriture d'une équation, inéquation et un


système

• 2 Résolution d’équations numériques

• 3 Résolution d’équations récurrentes


• 1. Ecriture d'une équation algébrique

– expression 1 = expression 2
• Noter que l'on utilise le signe d'égalité. On peut affecter une
équation à une variable .
– eq:= expression 1 = expression 2
> eq:=x**2-6*x+3=0;
• eq:= x2 - 6x + 3 = 0
• 2. Système d'équations algébriques

• Un système d'équations doit obligatoirement être affecté à un


ensemble (l'ordre des équations n'intervient pas au moment de la
résolution).
• Exemples :
> eq1:=x+y+z=0;
• eq1:= x + y + z = 0
> eq2:=x-2*y=3;
• eq2:= x - 2y = 3
> syst:={eq1,eq2, x**2-y**2=0};
• syst:= {x + y + z = 0, x - 2y = 3, x2 - y2 = 0}
• >GenerateMatrix(sys,var)
• >GenerateEquations(A, var, b)

• 3. Inéquations
• Même syntaxe que pour les équations.
- expression 1 > expression 2
• - expression 1 < expression 2
1 Résolution d’équations numériques
• Pour résoudre formellement une équation, on utilise
la commande solve :
• > solve(2*ln(x/3)=-1,x) ;
• 3e(-1/2)
• >solve(a + 3*x = 5, x);
• >solve(a + 3*x = 5, {x});
• >eq:= a + 3*x = 5;
• >solve(eq, {x});
• Si l’ équation admet plusieurs solutions:
• > eq := a*x^2+b*x+c=0 ;
• eq := ax2 + bx + c = 0
• >solve(eq,x) ;
• Pour résoudre formellement un système d’
équations, on utilise solve:
• > eq1 :=a*x+3*y=2 ;
• eq1 := ax + 3y = 2
• > eq2 :=x^2+y=1 ;
• eq2 := x2 + y = 1
• >solve({eq1,eq2},{x,y}) ;
• {x = RootOf(3*_Z^2-a*_Z-1), y = -
(1/3)*a*RootOf(3*_Z^2-a*_Z-1)+2/3}
• Pour résoudre numériquement une équation,
on utilise la commande fsolve :
• > eq :=x^3+3*x^2=exp(x) ;

• >solve(eq,x) ;
• RootOf(-exp(_Z)+_Z^3+3*_Z^2)
• La commande fsolve permet de chercher une
valeur approchée des solutions de l’ équation :
• > fsolve(eq,x=-4..-2) ;
• fsolve(eq,x=-1..0) ;
• fsolve(eq,x=0..1) ;
• -2.994416364
• -0.4935166498
• 0.7518696378
2 Résolution d’équations récurrentes
• Pour résoudre une équation récurrente, on
utilise la commande rsolve :
• > eq :=u(n)=2*u(n-1) ;

• > rsolve(eq,u(n)) ;
• Pour résoudre une équation récurrente avec
conditions initiales, on doit les ajouter à la
commande rsolve :
• > eq :=u(n)=n*u(n-1) ;

• > rsolve({eq,u(0)=1}, u(n)) ;


• (n + 1)
• La fonction est le prolongement à C de la
factorielle n! définie sur N.
Représentation graphique
• >eq := x * sin(x) = Pi/2;
• >solve(eq,x);
• >evalf(%);
• >identify(%);

• eq:=x sin(x) = - Pi/ 2
• RootOf(2 _Z sin(_Z) - Pi)
• -1.570796327
• >eval(eq, x = -1/2*Pi);
• Est ce qu’il y a d’autres solutions?
• On peut répondre à cette question par un
graphe.
• >plot(x*sin(x), x=-20..20);
• Maple peut superposer plusieurs
représentations en un graphe.
• >plot([x*sin(x), Pi/2], x = -20 .. 20);
• >plot(eq, x=-20..20);
• Error, invalid input: plot expects its 1st
argument, p, to be of type {set, array, list,
rtable, algebraic, procedure, And(`module`,
appliable)}, but received a+3*x = 5
• Ce qu’on a représenté est la partie gauche et
droite de l’équation. Pour éxtraire ces deux
parties, on utilise les commandes lhs et rhs.
• >lhs(eq);
• >rhs(eq);
• >plot([lhs(eq), rhs(eq)], x = -20 .. 20,
colour=[blue,black]);

• > fsolve(eq);
• -1.570796327
• > fsolve(eq, x = 5 .. 10);
• 6.526260523
• Pour trouver les solutions d’un polynôme (p=0),
on utilise fsolve

• >p := x^5 + x^3 - 3*x + 1;

• >fsolve(p = 0, x);

• >fsolve(p, x = 0 .. 1);

• -1.231063087, 0.3492680180, 1.
• 0.3492680180, 1.
Limites, Continuité
et
Dérivation
• Limite
• La fonction limit permet de calculer la limite
d'une expression pour une valeur donnée de la ou d'une
des variables :
• > restart:
• >Limit(x*ln(x),x=0)=limit(x*ln(x),x=0);
• > Limit(-1/abs(x),x=0):%=value(%);
• > Limit(x!/x^x/exp(-x)/sqrt(x),x=infinity):%=value(%);
• Avec l'expression suivante MAPLE écrit
prudemment qu'il ne sait pas calculer la limite :
en effet
• celle-ci dépend du signe de a
• > Limit(exp(-a*x),x=-infinity):%=value(%);
• on peut imposer à MAPLE de considérer a
comme une variable réelle strictement négative
• > Limit(exp(-a*x),x=-infinity):%=value(%)
assuming a<0;
• Pour calculer la limite d'une fonction f on
devra donner son expression et pas
simplement son nom
• > f:=x->sqrt(x)*ln(x);
• >Limit(f(z),z=0):%=value(%);
• >g:=x->exp(-1/x);
• >Limit(g(x),x=0):%=value(%);
• >Limit(1/x,x=0):%=value(%);
• L'indétermination peut-être levée en
cherchant la limite à droite (x+,  > 0) avec un
troisième
• argument right ou à gauche avec left (x–,  >
0)
• > Limit(g(x),x=0,right):%=value(%);
• Limit(g(x),x=0,left):%=value(%);

Vous aimerez peut-être aussi