3 Résolution avec Mathematica - Applications des mathématiques

3-Equations.nb
37
§ 3 Résolution d'équations avec Mathematica
§ 3.1 Introduction
Mathematica dispose de plusieurs commandes et méthodes qui peuvent servir à résoudre des équations ou des systèmes
d'équations : Factor, NSolve, Solve, FindRoot, FixedPoint, LinearSolve, Reduce, ... Dans ce chapitre, nous utiliserons préférentiellement la méthode Reduce[...], mais nous constaterons que, dans certains cas particuliers, il sera
nécessaire de faire appel à d'autres méthodes.
Ÿ Symbole d'égalité
En Mathematica, le symbole = désigne une affectation (ou assignation) qui consiste à attribuer une valeur à une variable. Par exemple
x=5
5
Par contre, == désigne le symbole d'égalité dont la valeur est vrai ou faux
x == 1
False
x == 5
True
C'est le symbole d'égalité qui permet de poser une équation. L'équation comporte habituellement une ou plusieurs
inconnue(s), c'est-à-dire une ou plusieurs variable(s) non affectée(s)
Clear@xD;
1
2
x+
== 5
2
3
2
3
+
x
2
Š5
§ 3.2 Méthode Reduce
Ÿ Résolution de systèmes d'équations ou d'inéquations avec Reduce[...]
Nous avons éjà étudié, dans le chapitre Initiation à Mathematica, § 2 Premiers principes, comment résoudre des
systèmes d'équations ou d'inéquations, en particulier polynomiales comme par exemple
ReduceAx4 Š 3 - x, x, RealsE  N
x Š - 1.45263 ÈÈ x Š 1.16404
Ce résultat peut être mis sous la forme d’une règle de transoformation à l’aide de la fonction ToRules:
8ToRules@%D<
88x ® - 1.45263<, 8x ® 1.16404<<
Ce résultat peut maintenant être mis sous la forme d’un ensemble de solution en appliquant la règle de transformation
trouvée à x:
3-Equations.nb
38
x . %
8- 1.45263, 1.16404<
La fonction Reduce est particulièrement appropriée pour résoudre les équations littérales:
Reduce@m x + p Š 0, x, RealsD
Hp Š 0 && m Š 0L ÈÈ Hm < 0 ÈÈ m > 0L && x Š -
ß
Þ
Rappelons que
&& se lit "et";
ÈÈ
se lit "ou";
p
m
se lit "et";
se lit "ou".
Ainsi, la réponse du dernier exemple s'interprète comme une discussion:
1-er cas: si p = 0 et m = 0, alors tout x est solution
ou
p
2-ème cas: si m ¹ 0, alors x = - m .
Dans le 3-ème cas m = 0 et p ¹ 0 (qui n'apparaît pas formellement), l'équation n'a pas de solution.
Nous apportons ici quelques compléments. Reduce[...] est capable de résoudre un système d'équations ou d'inéquations
rationnel, par exemple
ReduceBx £
x£
1
2
J- 7 -
1-2x
x+5
, x, RealsF
53 N ÈÈ - 5 < x £
1
2
J- 7 +
53 N
Voici par exemple une inéquation irrationnelle:
NBReduceBx ³
1-2x
x+2
, x, RealsFF
- 2.89932 £ x < - 2. ÈÈ 0.286103 £ x £ 0.5
On remarquera que Reduce a automatiquement tenu compte de l'ensemble de définition de l'expression.
Il est possible de déterminer l'ensemble de définition d'une fonction irrrationnelle:
1-2x
ReduceB
x+2
x < - 2 ÈÈ - 2 < x £
<0 ë
1-2x
x+2
³ 0, x, RealsF
1
2
Reduce peut aussi résoudre des équations et inéquations exponentielles ou logarithmiques:
Reduce@2x Š 4x - 13, x, RealsD
- Log@2D + LogB1 +
xŠ
53 F
Log@2D
N@Reduce@2x Š x + 3, x, RealsDD
x Š - 2.8625 ÈÈ x Š 2.44491
x
ReduceB LogB F ³ Log@1 - 2 xD, x, RealsF
3
3
7
£x<
1
2
3-Equations.nb
39
Reduce@Log@xD Š x , x, RealsD
False
Il est possible de déterminer l'ensemble de définition d'une fonction logarithmique, puis de simplifier le résultat obtenu:
ReduceB
Log@1 - 2 xD
x+3
x < - 3 ÈÈ 0 < x <
Log@1 - 2 xD
ÈÈ - 3 < x £ 0
1
2
Log@1 - 2 xD
SimplifyBReduceB
x < - 3 ÈÈ - 3 < x <
<0 ë
x+3
x+3
<0 ë
³ 0, x, RealsF
Log@1 - 2 xD
x+3
³ 0, x, RealsFF
1
2
Dans la solution des systèmes d'équations ou d'inéquations trigonométriques, le symbole C@1D désigne un entier relatif
quelconque
Π
ReduceBCos@xD Š SinBx -
2
C@1D Î Integers && x Š -
Π
2
F, x, RealsF
+ 2 Π C@1D ÈÈ x Š
Π
2
+ 2 Π C@1D
Reduce[...] nous donne l'ensemble de toutes les solutions, même s'il en existe une infinité. Le résultat précédent se
laisse immédiatement traduire dans les notations mathématiques usuelles de la trigonométrie
x=-
Π
2
+ k2Π
ou
x=
Π
2
+k 2 Π
où
kÎZ
Reduce[...] résoud aussi les systèmes d'équations ou d'inéquations comportant des valeurs absolues:
Reduce@Abs@xD Š x, x, RealsD
x³0
Reduce[...] peut aussi rédoudre un système d'équations à plusieurs inconnues. Dans ce cas, le deuxième argument
consiste en la liste des inconnues:
ReduceAx2 + y - 12 Š 0 ì x + 5 y Š 9, 8x, y<, RealsE
Reduce::ivar : 8-3, -2, 1, 6, 13, 22, 33, 46, 61, 78< is not a valid variable. ‡
9- 15 + x2 , - 14 + x2 , - 11 + x2 , - 6 + x2 , 1 + x2 , 10 + x2 , 21 + x2 , 34 + x2 , 49 + x2 , 66 + x2 = Š 0 &&
8- 15 + x, - 10 + x, 5 + x, 30 + x, 65 + x, 110 + x, 165 + x, 230 + x, 305 + x, 390 + x< Š 9,
8x, 8- 3, - 2, 1, 6, 13, 22, 33, 46, 61, 78<<, RealsE
ReduceA
On trouvera encore des informations supplémentaires dans la partie facultative qui se trouve à la fin de ce § 3.
Ÿ Limites de Reduce[...]
Reduce[...] résoud les systèmes d'équations ou d'inéquations par des transformations algébriques que l'on peut exprimer
sous la forme d'équivalences logiques
Reduce@Cos@xD Š Log@xD, x, RealsD
Reduce::nsmet : This system cannot be solved with the methods available to Reduce. ‡
Reduce@Cos@xD Š Log@xD, x, RealsD
Un tel message signifie que l'équation doit être résolue par une autre méthode, en l'occurence par une méthode
numérique, en particulier par la méthode FindRoot[...].
3-Equations.nb
40
Un tel message signifie que l'équation doit être résolue par une autre méthode, en l'occurence par une méthode
numérique, en particulier par la méthode FindRoot[...].
§ 3.3 Méthode FindRoot
La méthode FindRoot est une méthode numérique (consultez l'Aide). Nous l'utiliserons essentiellement dans le cas où la
méthode Reduce[...] échoue.
Soit par exemple à résoudre l'équation
cosHxL = logHxL.
Reduce@Cos@xD == Log@xD, x, RealsD
Reduce::nsmet : This system cannot be solved with the methods available to Reduce. ‡
Reduce@Cos@xD Š Log@xD, x, RealsD
Ÿ Méthode de Newton
Par une méthode graphique, déterminons d'abord une valeur de démarrage x0 .
PlotBCos@xD - Log@xD, :x, 0,
Π
2
>F
5
4
3
2
1
0.5
1.0
1.5
Lorsqu' on donne une seule valeur de démarrage 1, Mathematica utilise la méthode de Newton.
r = FindRoot@Cos@xD == x, 8x, 1<D
8x ® 0.739085<
Demandons d'afficher toutes les décimales calculées :
NumberForm@r, 16D
8x ® 0.7390851332151607<
Ÿ Méthode de la sécante
Lorsqu'on donne un encadrement initial @a, bD, Mathematica utilise une variante de la méthode de la sécante (voir §
2.3).
3-Equations.nb
41
a = 1; b = 1.5;
re = FindRoot@Cos@xD == x, 8x, a, b<D
8x ® 0.739085<
Ÿ Méthode de Newton pour un système
Quoique la question dépasse notre programme d'études, indiquons que FindRoot peut être appliqué à un système
d'équations.
FindRootB:Cos@xD == y -
Π
12
, Sin@yD ==
x-
1
4
>, 8x, 1<, 8y, 1<F
8x ® 0.870025, 8- 3, - 2, 1, 6, 13, 22, 33, 46, 61, 78< ® 0.906607<
Cette possibilité justifie l'intérêt que nous portons aux méthodes itératives de type point fixe.
§ 3.4 Méthode FixedPoint
Parce que c'est l'objet de notre étude, il peut arriver que nous voulions définir précisément la méthode de type point fixe
que nous voulons utiliser. Décidons de résoudre l'équation
x3 -
x+2 = 0
au moyen de la méthode pseudo Newton.
Clear@fD;
f@x_D := x 3 - x + 2 ;
Plot@f@xD, 8x, 0, 2<D
6
5
4
3
2
1
0.5
1.0
-1
a = 1; b = 1.5; x0 =
m=
f@bD - f@aD
b-a
Clear@gD;
g@x_D := x -
;
f@xD
m
a+b
2
;
1.5
2.0
3-Equations.nb
42
? FixedPoint
FixedPoint@f, exprD commence par expr, puis applique
f à plusieurs reprises jusqu÷à ce que le résultat demeure inchangé.
La méthode FixedPoint[g, x0] itère la fonction g à partir de x0 jusqu'à ce que le résultat ne change plus (c'est-à-dire
jusqu'à ce que l'on parvienne à un point fixe) :
r = FixedPoint@g, x0D
1.21486
NumberForm@r, 16D
1.214862322488425
Avec la commande FixedPointList, , on peut observer tous les résultats intermédiaires. Compte tenu de la précision
atteinte (16 chiffres significatifs), on remarquera la grande vitesse de convergence (seulement 13 itérations).
NumberForm@FixedPointList@g, x0D, 16D
81.25, 1.216383177834951, 1.214970477592186, 1.214870139206551,
1.214862888070812, 1.214862363414771, 1.214862325449931,
1.214862322702725, 1.214862322503932, 1.214862322489547, 1.214862322488506,
1.21486232248843, 1.214862322488425, 1.214862322488425, 1.214862322488425<
Compte tenu de la précision atteinte (16 chiffres significatifs), on remarquera la grande vitesse de convergence
(seulement 13 itérations).
§ 3.5 Exercices
Ÿ Exercice 3 - P 1
D'un cône, on donne sa hauteur h et son aire totale A.
Calculez son rayon r en résolvant l'équation du problème 1 - P 1 avec Mathematica.
Indications
Il s'agit d'un calcul littéral.
Complétez l'équation par une condition afin de n'obtenir qu'une seule réponse.
Ÿ Exercice 3 - P 2
D'un triangle rectangle, on connait son aire A et la projection p d'une cathète sur l'hypoténuse.
Calculez les longueurs des trois côtés a, b, c en résolvant les équations du problème 1 - P 2 avec Mathematica.
Données numériques : A = 975, p = 20.
Ÿ Exercice 3 - P 3
Une sphère homogène de rayon r = 0.3 m, de masse volumique Ρ1 = 900
Ρ0 = 1000
kg
m3
kg
m3
flotte sur un liquide de masse volumique
.
Calculez la hauteur h de la partie émergeante en résolvant l'équation du problème 1 - P 3 avec Mathematica.
Ÿ Exercice 3 - P 4
Une cuve cylindrique est posée horizontalement sur le sol.
Donnée numérique r = 50.
Graduez une jauge, c'est-à-dire dessinez une bande de papier portant les graduations 10 %, 20 %, ... comme l'indique la
figure ci-dessous.
Donnée numérique r = 50.
Graduez une jauge, c'est-à-dire dessinez une bande de papier portant les graduations 10 %, 20 %, ... comme l'indique la43
3-Equations.nb
figure ci-dessous.
100 %
90 %
80 %
70 %
60 %
50 %
40 %
30 %
20 %
10 %
0 %
a) Première version: résoudre les équations l'une après l'autre, sans utiliser de listes
Indications
Il s'agit d'abord de résoudre 8 équations du problème 1 - P 4 et
de former la liste des angles qui correspondent à chaque graduation:
Α0 = 0;
Α1 est la solution de l'équation pour le taux de remplissage t = 0.1;
Α2 est la solution de l'équation pour le taux de remplissage t = 0.2;
Α3 est la solution de l'équation pour le taux de remplissage t = 0.3;
Α4 est la solution de l'équation pour le taux de remplissage t = 0.4;
Α5 = Π;
Α6 est la solution de l'équation pour le taux de remplissage t = 0.6;
Α7 est la solution de l'équation pour le taux de remplissage t = 0.7;
Α8 est la solution de l'équation pour le taux de remplissage t = 0.8;
Α9 est la solution de l'équation pour le taux de remplissage t = 0.9;
Α10 = 2 Π.
Il s'agit ensuite de former la liste des hauteurs qui correspondent à chaque angle
h0 = 0;
h1 est la hauteur qui correspond à l'angle Α1 ;
h2 est la hauteur qui correspond à l'angle Α2 ;
h3 est la hauteur qui correspond à l'angle Α3 ;
h4 est la hauteur qui correspond à l'angle Α4 ;
h5 = r;
h6 est la hauteur qui correspond à l'angle Α6 ;
h7 est la hauteur qui correspond à l'angle Α7 ;
h8 est la hauteur qui correspond à l'angle Α8 ;
h9 est la hauteur qui correspond à l'angle Α9 ;
h10 = 2 r.
Il faut enfin dessiner une liste de traits horizontaux :
Show[Graphics[{
Line[{{0,h0},{5, h0}}], Line[{{0,h1},{5, h1}}],
Line[{{0,h2},{5, h2}}], Line[{{0,h3},{5, h3}}],
Line[{{0,h4},{5, h4}}], Line[{{0,h5},{5, h5}}],
Line[{{0,h6},{5, h6}}], Line[{{0,h7},{5, h7}}],
Line[{{0,h8},{5, h8}}], Line[{{0,h9},{5, h9}}],
Line[{{0,h10},{5, h10}}], Text["0 %",{5,h0},{-1,0}],
Text["10 %",{5,h1},{-1,0}], Text["20 %",{5,h2},{-1,0}],
Text["30 %",{5,h3},{-1,0}], Text["40 %",{5,h4},{-1,0}],
Text["50 %",{5,h5},{-1,0}], Text["60 %",{5,h6},{-1,0}],
3-Equations.nb
Line[{{0,h4},{5, h4}}], Line[{{0,h5},{5, h5}}],
Line[{{0,h6},{5, h6}}], Line[{{0,h7},{5, h7}}],
Line[{{0,h8},{5, h8}}], Line[{{0,h9},{5, h9}}],
Line[{{0,h10},{5, h10}}], Text["0 %",{5,h0},{-1,0}],
Text["10 %",{5,h1},{-1,0}], Text["20 %",{5,h2},{-1,0}],
Text["30 %",{5,h3},{-1,0}], Text["40 %",{5,h4},{-1,0}],
Text["50 %",{5,h5},{-1,0}], Text["60 %",{5,h6},{-1,0}],
Text["70 %",{5,h7},{-1,0}], Text["80 %",{5,h8},{-1,0}],
Text["90 %",{5,h9},{-1,0}], Text["100 %",{5,h10},{-1,0}]},
PlotRange®{{0,20},{-10,110}}, AspectRatio ®5]];
b) Deuxième version (facultative) : écrire un programme plus compact en utilisant Table[...]
Ÿ Exercice 3 - P 5
Pour rembourser un emprunt de Fr 8'200.--, une banque demande de verser 6 annuités de Fr 2'000.-Calculez le taux d'intérêt i en résolvant l'équation du problème 1 - P 5 avec Mathematica.
§ 3.6 Partie facultative
Ÿ Si le lecteur a pris de l'avance, il est invité à étudier maintenant le paragraphe 2.3
44