Solve

> solve({eqn1,...,eqnm},{var1,...,varn});

Résous l'ensemble {eqn1,...eqnm} de m équations pour les n variables {var1,...,varn}. La solution est retournée sous la forme d'un ensemble d'équations.

Exemple

> eqn1 := x1 + x2 = 3;
eqn1 := x1 + x2 = 3

> eqn2 := 2*x1 - 3*x2 = 1;
eqn2 := 2x1 - 3x2 = 1

> solve({eqn1,eqn2}, {x1,x2});
{x1 = 2, x2 = 1}

> eqn1 := x1 + x2 + x3 = 1;
eqn1 := x1 + x2 + x3 = 1

> eqn2 := x1 - 2*x2 + 2*x3 = 2;
eqn2 := x1 - 2x2 + 2x3 = 2

> solve({eqn1,eqn2}, {x1,x2,x3});
{x2 = x2, x1 = - 4x2, x3 = 3x2 + 1}

Remarque: si une expression NULL (aucun affichage avec le point virgule ;) est retournée,soit qu' il n'y a pas de solution ou bien Maple est incapable de déterminer une solution.

Exemple

> eqn1 := x + y = 1;
eqn1 := x + y = 1

> eqn2 := x + y = -1;
eqn2 := x + y = -1

> solve({eqn1,eqn2}, {x,y});


Remarque: en général, une équation de degré plus grand que 4 ne possède pas de solution explicite sous forme de radical. Dans ce cas, la solution est donnée implicitement sous forme de RootOf.

Exemple

> eqn := x^6 + x = 1;
eqn := x6 + x = 1

> solve(eqn, {x});
{x = RootOf(_Z6 + _Z + 1)}

Dans le cas où il n'y a qu'une seule équation et une seule variable, la commande peut-être utilisée sous une des formes suivantes:

> solve(eqn,{var});

> solve(eqn,var);

Dans le premier cas, la solution est donnée sous la forme

{var = solution}

et dans le second sous la forme

solution

Exemple

> eqn := x + y = 1;
eqn := x + y = 1

> solve(eqn, {x});
{x = 1 - y}

> solve(eqn, x);
1 - y

Attention: dans ce cours, la première forme sera nettement préférée.

La commande solve peut aussi servir à isoler un terme dans une expression. De même que pour la commande subs, il faut que le terme soit une chaîne de caractères "encapsuler".

Exemple

> eqn := sin(x + y) = z;
eqn := sin(x + y) = z

> solve(eqn, {x + y});
{x + y = arcsin(z)}

> eqn := x + y + z = 1;
eqn := x + y + z = 1

> solve(eqn, {x + y});