Mathematica, page 2

Contenu : Exercice de chimie, en classe de seconde, Mathematica, Maple.

Exercice de chimie, en classe de seconde.

1 Présentation


Le problème proposé est d'une difficulté largement au-dessus des compétences exigibles des élèves de la classe de seconde. Il fait partie des problèmes d'école, d'intérêt pratique douteux. Nous l'avons conservé, car il a fait l'objet d'une résolution à l'aide d'un solveur, ce qui permettra au lecteur de comparer l'efficacité des deux types de logiciels. La méthode retenue pourra être reprise pour des problèmes plus classiques; la principale difficulté étant de passer des équations chimiques à leur transcription mathématique.
C'est en tentant cette transcription que je me suis aperçu qu'il y a une énorme différence entre écrire une équation chimique ou mathématique. C'est sans doute une des difficultés rencontrée par nos élèves.

2 Enoncé ( d'après MAFPEN - P. Durand - Lycée Cuvier - Montbéliard )


La combustion complète d'un mélange de 100 mL d'éthène , propane , et butène a consommé 436 mL d'oxygène . L'analyse des produits de combustion donne des traces de liquide et 274 mL d'un corps pur gazeux. Quelle était la composition du mélange en volume ?

3 Résolution avec Mathematica


Il faut écrire les équations-bilans

C2 H4 + 3 O2 -> 2 CO2 + 2 H2O

C3 H8 + 5 O2 -> 3 CO2 + 4 H2O

C4 H8 + 6 O2 -> 4 CO2 + 4 H2O

puis les transposer en équations mathématiques, ce qui est l'occasion pour le professeur de s'apercevoir que la démarche n'a rien d'évident, même si les calculs sont élémentaires. L'instruction Off permet d'éviter l'affichage d'un avertissement, le logiciel nous signalant que certaines variables portent des noms qui se ressemblent et qu'il peut donc s'agir d'une erreur de notre part. Dans Solve , les premières accolades indiquent les inconnues recherchées, les deuxièmes, celles à éliminer. Vous pouvez donc, si vous le souhaitez, transférer une inconnue d'une accolade à l'autre.

4 Résolution numérique


ClearAll["Global`*"];Off[General::spell1];
Vmol=24.;
système={
n…dioxygène==3 n…éthène+5 n…propane+6 n…butène,
n…dioxyde…carbone==2 n…éthène+3 n…propane+4 n…butène,
n…eau==2 n…éthène+4 n…propane+4 n…butène,
v…éthène==Vmol n…éthène,v…dioxygène==Vmol n…dioxygène,
v…dioxyde…carbone==Vmol n…dioxyde…carbone,
v…propane==Vmol n…propane,v…butène==Vmol n…butène,
v…eau==0.,
v…éthène+v…propane+v…butène==0.100,
v…dioxyde…carbone==0.274,v…dioxygène==0.436 };
Solve[système,{n…éthène,n…propane,n…butène},
{n…dioxyde…carbone,n…eau,n…dioxygène,v…éthène,
v…dioxygène,v…dioxyde…carbone,v…propane,v…butène,v…eau}]

Haut de cette page 

5 Réponse de Mathematica


{{n…éthène -> 0.00158333, n…propane -> 0.00208333, n…butène ->0.0005}}

Nous obtenons une réponse numérique, puisque nous avons fixé les valeurs numériques des paramètres. Il n'est dès lors pas évident que les résultats soient dépendants ou pas du volume molaire. Pour nous en assurer, nous n'affectons plus de valeur numérique à celui-ci.

6 Recherche des résultats dépendant du volume molaire


Nous devons effacer par Clear la définition de Vmol, mais aussi les valeurs numériques trouvées au paragraphe précédent. Le plus simple est alors de faire un effacement global par ClearAll . Mais en ce cas, le système d'équations n'est plus en mémoire; il faut donc le réécrire (par copier, coller). Afin de gagner de la place dans cet ouvrage, nous avons effacé, après
calcul, ce système.

ClearAll["Global`*"]; système={ .... };
Eliminate[système,{n…éthène,n…butène,v…éthène,
n…dioxyde…carbone,n…eau,n…dioxygène,v…dioxygène,
v…dioxyde…carbone,v…propane,v…butène,v…eau}]
Eliminate[système,{Vmol,n…butène,v…éthène,
n…dioxyde…carbone,n…eau,n…dioxygène,v…dioxygène,
v…dioxyde…carbone,v…propane,v…butène,v…eau}]
Eliminate[système,{Vmol,n…éthène,(*v…éthène,*)
n…dioxyde…carbone,n…eau,n…dioxygène,v…dioxygène,
v…dioxyde…carbone,v…propane,v…butène,v…eau}]

Nous obtenons :

20. n…propane Vmol==1.
25. n…éthène==19. n…propane
25. n…butène==6. n…propane&&500. v…éthène==19.

La première réponse est une équation qui nous apprend que la quantité de propane obtenue dépend du volume molaire. Les autres nous montrent que les rapports entre les différentes quantités de propane, éthène et butène sont eux indépendants du volume molaire.

Essayons une autre méthode consistant à résoudre le même système, Vmol , étant cette fois une variable littérale. En retirant les points-virgules après solutions , sol…n…éth , sol…n…prop , vous pourrez vous convaincre de la complexité du problème. Vous pourrez aussi demander sol…n…éth /sol…n…prop , puis Simplify [ sol…n…éth / sol…n…prop ] , puis FullSimplify. Cette dernière instruction donne le nombre 0,76 qui est bien le rapport de 19 à 25 .

ClearAll["Global`*"]; système={ ...... };
solutions=Solve[système,{n…éthène,n…propane,n…butène},
{n…dioxyde…carbone,n…eau,n…dioxygène,v…éthène,
v…dioxygène,v…dioxyde…carbone,v…propane,v…butène,v…eau}];
sol…n…éth=n…éthène/. solutions[[1]];
sol…n…prop=n…propane/.solutions[[1]];
FullSimplify[sol…n…éth/sol…n…prop]

0.76

7 Prise en compte du volume du liquide formé


La puissance de calcul de Mathematica nous permet de tenir compte du volume de la phase liquide formée; ici nous supposons que le volume indiqué dans l'énoncé correspond à l'ensemble des deux phases.

Vmol=24.;
système02={
n…dioxygène==3 n…éthène+5 n…propane+6 n…butène,
n…dioxyde…carbone==2 n…éthène+3 n…propane+4 n…butène,
n…eau==2 n…éthène+4 n…propane+4 n…butène,
v…éthène==Vmol n…éthène,v…dioxygène==Vmol n…dioxygène,
v…dioxyde…carbone==Vmol n…dioxyde…carbone,
v…propane==Vmol n…propane,v…butène==Vmol n…butène,
v…eau==n…eau 0.018, v…éthène+v…propane+v…butène==0.100,
v…dioxyde…carbone+v…eau==0.274,v…dioxygène==0.436 };
Solve[système02,{n…éthène,n…propane,n…butène},
{n…dioxyde…carbone,n…eau,n…dioxygène,v…éthène,
v…dioxygène,v…dioxyde…carbone,v…propane,v…butène,v…eau}]

Réponse :

n…éthène -> 0.00157319, n…propane -> 0.00211375,
n…butène -> 0.00047972

( Les doubles accolades ont été effacées ). A comparer à la solution précédente :

{{n…éthène -> 0.00158333, n…propane -> 0.00208333,
n…butène -> 0.0005}}

8 Système de n équations à n+1 inconnues


Supprimons maintenant l'une des équations, en écrivant le volume global des réactifs gazeux, combustibles plus dioxygène, sans donner séparément le volume de dioxygène employé. v…dioxygène devient un paramètre de la réaction ; nous pouvons obtenir l'expression d'une inconnue, ici v…éthène , en fonction de v …dioxygène qu'il suffit de ne pas écrire dans la deuxième accolade de Solve, celle qui comprend les paramètres à éliminer.

Vmol=24.;
système04={
n…dioxygène==3 n…éthène+5 n…propane+6n…butène,
n…dioxyde…carbone==2 n…éthène+3 n…propane+4 n…butène,
n…eau==2 n…éthène+4 n…propane+4 n…butène,
v…éthène==Vmol n…éthène,v…dioxygène==Vmol n…dioxygène,
v…dioxyde…carbone==Vmol n…dioxyde…carbone,
v…propane==Vmol n…propane,v…butène==Vmol n…butène,
v…eau==0.,v…éthène+v…propane+v…butène+v…dioxygène==0.536,
v…dioxyde…carbone==0.274 };
Simplify[Solve[système04,{v…éthène},{n…dioxygène,n…éthène,n…propane,n…butène,

n…dioxyde…carbone,
n…eau,v…dioxyde…carbone,v…propane,v…butène,v…eau}]]

Réponse :

{{v…éthène -> 1.346 -3. v…dioxygène}}

Cette fois-ci, nous posons le système d'équations et demandons l'élimination d'une variable. Nous obtenons un système d'équations séparées par des ET logiques, && .

Eliminate[système04,{vdioxygène}]
n…butène==0.0005&&n…dioxygène==0.017125\[InvisibleSpace]+0.0208333 v…propane&&
n…éthène==0.00470833\[InvisibleSpace]-0.0625 v…propane&&
n…propane==0.\[InvisibleSpace]+0.0416667 v…propane&&
n…eau==0.0114167\[InvisibleSpace]+0.0416667 v…propane&&
n…dioxyde…carbone==0.0114167&&v…butène==0.012&&v…dioxyde…carbone==0.274&&
v…dioxygène==0.411\[InvisibleSpace]+0.5 v…propane&&v…eau==0.&&
v…éthène==0.113\[InvisibleSpace]-1.5 v…propane

Haut de cette page 

9 Programme en Maple


> restart;
Vmol:=24:
systeme:={n_dioxygene=3*n_ethene+5*n_propane+6*n_butene,n_dioxyde_carbone=2*
n_ethene+3*n_propane+4*n_butene,n_eau=2*n_ethene+4*n_propane+4*n_butene,
v_ethene=Vmol*n_ethene,v_dioxygene=Vmol*n_dioxygene,v_dioxyde_carbone=Vmol*
n_dioxyde_carbone,v_propane=Vmol*n_propane,v_butene=Vmol*n_butene,v_eau=0.,
v_ethene+v_propane+v_butene=0.100,v_dioxyde_carbone=0.274,v_dioxygene=0.436}:
assign(solve(systeme,{n_ethene,n_propane,n_butene,n_dioxyde_carbone,n_eau,
n_dioxygene,v_ethene,v_dioxygene,v_dioxyde_carbone,v_propane,v_butene,
v_eau})):n_ethene;n_propane;n_butene;
> restart;
systeme:={n_dioxygene=3*n_ethene+5*n_propane+6*n_butene,n_dioxyde_carbone=2*
n_ethene+3*n_propane+4*n_butene,n_eau=2*n_ethene+4*n_propane+4*n_butene,
v_ethene=Vmol*n_ethene,v_dioxygene=Vmol*n_dioxygene,v_dioxyde_carbone=Vmol*
n_dioxyde_carbone,v_propane=Vmol*n_propane,v_butene=Vmol*n_butene,v_eau=0.,
v_ethene+v_propane+v_butene=0.100,v_dioxyde_carbone=0.274,v_dioxygene=0.436}:
assign(solve(systeme,{n_ethene,n_propane,n_butene,n_dioxyde_carbone,n_eau,
n_dioxygene,v_ethene,v_dioxygene,v_dioxyde_carbone,v_propane,v_butene,
v_eau})):n_ethene;n_propane;n_butene;
n_ethene/n_propane;
> restart;
Vmol:=24:
systeme02:={n_dioxygene=3*n_ethene+5*n_propane+6*n_butene,n_dioxyde_carbone=
2*n_ethene+3*n_propane+4*n_butene,n_eau=2*n_ethene+4*n_propane+4*n_butene,
v_ethene=Vmol*n_ethene,v_dioxygene=Vmol*n_dioxygene,v_dioxyde_carbone=Vmol*
n_dioxyde_carbone,v_propane=Vmol*n_propane,v_butene=Vmol*n_butene,v_eau=
n_eau*0.018,v_ethene+v_propane+v_butene=0.100,v_dioxyde_carbone+v_eau=0.274,
v_dioxygene=0.436}:
assign(solve(systeme02,{n_ethene,n_propane,n_butene,n_dioxyde_carbone,n_eau,
n_dioxygene,v_ethene,v_dioxygene,v_dioxyde_carbone,v_propane,v_butene,
v_eau})):n_ethene;n_propane;n_butene;
> restart;
Vmol:=24:
systeme04:={n_dioxygene=3*n_ethene+5*n_propane+6*n_butene,n_dioxyde_carbone=
2*n_ethene+3*n_propane+4*n_butene,n_eau=2*n_ethene+4*n_propane+4*n_butene,
v_ethene=Vmol*n_ethene,v_dioxygene=Vmol*n_dioxygene,v_dioxyde_carbone=Vmol*
n_dioxyde_carbone,v_propane=Vmol*n_propane,v_butene=Vmol*n_butene,v_eau=0.,
v_ethene+v_propane+v_butene+v_dioxygene=0.536,v_dioxyde_carbone=0.274}:
assign(solve(systeme04,{n_ethene,n_propane,n_butene,n_dioxyde_carbone,n_eau,
n_dioxygene,v_ethene,v_dioxyde_carbone,v_propane,v_butene,v_eau})):v_ethene;

10 Conclusion


La supériorité des logiciels de calcul formel sur le solveur apparaît écrasante. Non seulement ils permettent de trouver des solutions numériques approchées avec n'importe quel degré de précision, mais en plus ils donnent, si elles existent, les solutions exactes, sous forme numérique ou littérale.
Remarquez qu'à l'affichage des solutions numériques, pour des raisons de facilité de lecture, seuls 6 chiffres significatifs sont retenus, mais qu'en interne, la précision numérique est de loin supérieure. Voici un des résultats obtenus au paragraphe 5 : n…butène -> 0.000479719579369054738`

Haut de cette page