L'outil général est solve
solve(x^2-4*x+3=0,x); solve(x^2-x+3=0,x);
C'est assez classique et on retrouve cet outil sur les calculatrices de base. Ce qui l'est moins, c'est la capacité de résoudre des équations dépendant de paramètres.
S:=solve(x^2 - s*x^2+p=0,x):
Vous avez remarqué que les solutions des premiers exemples sont affichées entre accolades. Interrogeons MuPAD :
type(solve(x^2-4*x+3=0,x));
La réponse DOM_SET nous indique qu'il s'agit d'un ensemble. Nous verrons dans le paragraphe suivant consacré au calcul de 7! que ceci a une grande importance. Pour en revenir à notre équation du deuxième degré, l'ensemble des solutions comportera deux éléments, ou plutôt opérandes en langage MuPAD. Nous pouvons demander à notre logiciel préféré le premier élément de cet ensemble grâce à la commande
op(S,1);
qui affiche le premier opérande de l'ensemble S.
Nous pouvons être également amenés à résoudre des équations non pas
sur
mais sur un intervalle donné. Par exemple, si nous
voulons résoudre l'équation
sur
, nous indiquerons à
MuPAD que notre
doit être positif
assume(x>0);
solve(x^2=4,x);
On peut sinon utiliser les ensembles habituels avec les notations suivantes
![]() |
NonNegInt |
![]() |
PosInt |
![]() |
NegInt |
![]() |
Integer |
![]() |
Even |
![]() |
Odd |
![]() |
Rational |
![]() |
PosRat |
![]() |
NegRat |
![]() |
Real |
![]() |
NonNegative |
![]() |
NonNegRat |
![]() |
Positive |
![]() |
Negative |
![]() |
NonZero |
![]() |
Imaginary |
![]() |
IntImaginary |
![]() |
Prime |
assume(x in Type::Positive): solve(x^2-4=0,x);
On peut résoudre également des systèmes linéaires
reset():solve({x+2*y+a*z=-1,a*x+y+z=2,2*x+a*y-z=3},{x,y,z});
Il existe des outils d'algèbre linéaire plus adaptés que nous verrons plus tard.
On peut résoudre des inéquations
solve(x^2-2*x-4>=2*x,x);
des équations trigonométriques
solve(cos(x)=sin(x),x);
À vous d'imaginer d'autres situations...
Un « étudiant » taquin m'a par exemple proposé
solve(cosh(x)=I*sinh(x),x);