IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ Mathematica

FAQ MathematicaConsultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 30, dernière mise à jour : 16 juin 2021 

 
OuvrirSommaireInteractivité

Par défaut, Mathematica ne réévalue pas une expression chaque fois qu'un symbole utilisé pour l'évaluer change de valeur.

 
Sélectionnez
In[1]:= a + b
Out[1]= a + b

In[2]:= a = 5
Out[2]= 5

Cependant, si on utilise la fonction Dynamic, la première formule sera réévaluée si a ou b change :

 
Sélectionnez
In[1]:= Dynamic[a + b]
Out[1]= 5 + b

In[2]:= a = 5
Out[2]= 5

Cette fonction, bien que d'apparence peu utile, est la base de l'interactivité avec Mathematica. Un exemple légèrement plus évolué : un contrôle permet de faire évoluer la valeur d'une variable. Ainsi, on peut imaginer un document où l'utilisateur peut tester différentes combinaisons de valeurs et voir le résultat instantanément.

 
Sélectionnez
In[3]:= Slider[Dynamic[b]]

Cependant, une fonction de Mathematica est prévue à cet effet ; elle facilite la création de formules interactives tout en apportant un lot de fonctionnalités supplémentaires : Manipulate.

Créé le 29 juin 2012  par Thibaut Cuvelier

Mathematica propose la fonction Manipulate pour que l'utilisateur puisse changer les valeurs dans une expression ; à chaque changement dans un contrôle, cette expression sera réévaluée. L'utilité principale de cette fonction par rapport à Dynamic est qu'elle choisit automatiquement le type de contrôle à afficher.

 
Sélectionnez
In[1]:= Manipulate[Exp[x + y], {x, 0, 10}, {y, 0, 10}]

Il a fallu préciser l'expression à évaluer, ainsi que les valeurs qu'il faudra faire varier entre deux bornes. On peut également préciser un pas :

 
Sélectionnez
In[1]:= Manipulate[Exp[x + y], {x, 0, 10, 1}, {y, 0, 10, 1}]

Ainsi, on ne pourra utiliser que les valeurs entières de x et y. Les valeurs n'étant plus stockées comme des nombres en précision limitée, le calcul redeviendra symbolique.

On peut utiliser des expressions beaucoup plus compliquées (en fait, toutes les expressions) ; par exemple, pour résoudre l'équation de Colebrook-White :

 
Sélectionnez
In[1]:= Manipulate[
 FindRoot[
  1/Sqrt[f] == -2 Log[10, 
      e/(Rationalize@3.71*phi) + Rationalize@2.51/(R*Sqrt[f])] && 
   U == q/(phi^2*Pi) && 
   R == (U*L)/nu, {{f, 0.01}, {R, 12500}, {U, 5}}], {g, 5, 10}, {phi, 
  0.001, 1}, {e, 0.001, 0.01}, {L, 1, 10}, {q, 0.001, 5}, {nu, 
  0.0000001, 0.001}]
Créé le 29 juin 2012  par Thibaut Cuvelier

Copyright © 2011 Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.