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);