« Mathématiques avec Python et Ruby/Résolution de systèmes en Python » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 4 :
Au village de Trokhafairtrade dans le Swazibwana occidental, on pratique un mélange de commerce équitable et de troc. Ainsi, un habitant a acquis 2 youkoulélés d'Hawaii contre 3 xylophones et 1 € et un écotouriste a acquis un xylophone et un youkoulélé pour la modique somme de 8 €. On demande le prix, en euros, d'un xylophone et le prix d'un youkoulélé sur le marché de Trokhafairtrade.}}
 
[[Fichier:Eth1_coffeelady.jpg|center|vignette]]
 
Bien entendu, on va noter ''x'' le prix d'un ''xylophone'', et ''y'' le prix d'un ''youkoulélé''. Les données de l'énoncé se traduisant algébriquement par ''2y=3x+1'' et ''x+y=8''.
 
On va donc voir comment résoudre le système de deux équations à deux inconnues suivant :
 
<math>\left\{\begin{array}{rcl}3x-2y&=&-1\\x+y&=&8 \end{array} \right.</math>
Ligne 14 :
== Méthode graphique ==
 
Une méthode simple (surtout ici puisque la solution est formée d'entiers) consiste à tracer les deux droites d'équations respectives <math>3x-2y=-1</math> et <math>x+y=8</math> et de lire sur le graphique les coordonnées de leur point d'intersection. ''Python'' tout seul ne sait pas faire ça mais ''PyKig'' lance le logiciel [[w:Kig (logiciel)|Kig]] et le laisse faire le travail, à condition de lui fournir les éléments nécessaires pour faire les constructions géométriques : Les coordonnées de points de chaque droite. Or la droite d'équation <math>ax+by=c</math> passe par les points de coordonnées <math>\left(\frac{c}{a};0 \right)</math> et <math>\left(0;\frac{b}{a} \right)</math> (intersections avec les axes de coordonnées) qui sont constructibles par ''Kig''. Le script suivant colorie en bleu la première droite (le milieu M sert de point d'ancrage pour son équation réduite) et en rouge la seconde droite, puis affiche en mauve leur point d'intersection :
 
<source lang="python">
Ligne 44 :
</source>
 
En enregistrant son contenu dans un fichier appelé ''system.kpy'', et en exécutant dans une console ceci :
 
<source lang="bash">
Ligne 50 :
</source>
 
On obtient, après lancement inopiné de ''Kig'' (à condition bien sûr que celui-ci soit installé, ce qui est très facile sous Linux, beaucoup moins sous les autres systèmes), la figure suivante (où il a été nécessaire de créer un ''Label'' donnant les coordonnées du point d'intersection, ce que ''PyKig'' ne sait pas faire) :
 
[[Fichier:systemkig1.svg|center|vignette]]
 
On lit les coordonnées du point d'intersection, qui constituent la solution du système. Il est possible de déplacer à la souris les points A, B, C et D et voir les coordonnées du point d'intersection se mettre à jour en temps réel : En effet ''Kig'' est un logiciel de géométrie dynamique.
 
Cette méthode n'est pas applicable à des systèmes de plus de deux inconnues mais elle est très visuelle pour des systèmes tels que <math>\left\{\begin{array}{rcl}4x+2y&=&3\\2x+y&=&5 \end{array} \right.</math> pour lesquels on voit non seulement qu'il n'y a pas de solution, mais également pourquoi il n'y a pas de solution.
Ligne 62 :
== Méthode itérative ==
 
Si on sait que ''x'' et ''y'' sont entiers naturels, on peut résoudre le système par une double boucle sur ''x'' et ''y'' :
 
<source lang="python">
Ligne 85 :
== Méthode de Cramer ==
 
La [[w:Règle de Cramer|méthode de Cramer]] est également implémentable en ''Python'' :
 
<source lang="python">