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
© Copyright 2025 ExpyDoc