Cours d'introduction à
Mathematica 3.0

par
Nicolas Martignoni
Collège Sainte-Croix
1700 Fribourg (Suisse)
Version 2.0

© Copyright 1992-1998 Nicolas Martignoni.
Tous droits réservés.

Chapitre premier:

Notions de base

Dans ce chapitre, nous allons donner les notions de base essentielles pour l'utilisation de Mathematica. Quelques exemples sont d'abord présentés, puis la syntaxe et le fonctionnement de Mathematica sont abordés.

top1.1. Quelques exemples d'utilisation de Mathematica

Avant d'entrer dans le vif du sujet, il est utile de se faire une idée, ne fût-ce que partielle, sur les possibilités de Mathematica. Voyons quelques échantillons de ce que le programme est capable de faire.

Pour faire évaluer une opération à Mathematica, on sélectionnera l'instruction choisie et pressera la touche entrée (à droite du pavé numérique) que l'on notera enter ou encore la combinaison des touches majuscule et retour, notée shift+return.

top1.1.1. Calculs numériques

Mathematica est d'abord capable de faire des calculs numériques de n'importe quelle sorte. Sa caractéristique la plus importante est son arithmétique à précision arbitraire, ce qui signifie que l'on peut lui demander une précision aussi grande que l'on veut, pourvu que l'on ait suffisamment de temps et de mémoire à disposition. Voici quelques exemples:

1+1
2
53
125
2300
203703597633448608626844568840937816105146839366593625063614044935438 \
  1299763336706183397376

Pour obtenir une approximation, plutôt qu'un nombre exact, on utilise la fonction N.

N[2300]
2.03704 * 1090
Sin[3pi/2]
-1
Cos[60°]
1/2

La syntaxe particulière des lignes ci-dessus et des suivantes sera expliquée plus loin.

top1.1.2. Calculs symboliques

Mathematica peut également traiter des calculs symboliques. C'est d'ailleurs ce qui lui donne une bonne partie de sa puissance. On peut ainsi effectuer des produits de facteurs,

Expand[((x + 2y) (5x + 3) + (x + y)2)3]
27 x3 + 162 x4 + 324 x5 + 216 x6 + 162 x2 y + 
  972 x3 y + 1944 x4 y + 1296 x5 y + 324 x y2 + 
  1971 x2 y2 + 3996 x3 y2 + 2700 x4 y2 + 216 y3 + 
  1404 x y3 + 3024 x2 y3 + 2160 x3 y3 + 108 y4 + 
  441 x y4 + 450 x2 y4 + 18 y5 + 36 x y5 + y6

ou au contraire factoriser des expressions plus ou moins complexes.

Factor[27 x3 + 162 x4 + 324 x5 + 216 x6 + 162 x2 y + 
   972 x3 y + 1944 x4 y + 1296 x5 y + 324 x y2 + 
   1971 x2 y2 + 3996 x3 y2 + 2700 x4 y2 + 216 y3 + 
   1404 x y3 + 3024 x2 y3 + 2160 x3 y3 + 108 y4 + 
   441 x y4 + 450 x2 y4 + 18 y5 + 36 x y5 + y6]
(3 x + 6 x2 + 6 y + 12 x y + y2)3

On peut intégrer analytiquement,

in[9]
out[9]

ou dériver une expression,

in[10]
out[10]

et la rendre moins compliquée.

in[10]
out[11]

On peut aussi résoudre des équations, numériquement ou exactement.

Solve[a x2 + b x + c == 0, x]
out[12]

top 1.1.3. Graphiques

Les capacités graphiques de Mathematica sont très importantes. En voici quelques exemples simples.

Plot[Sin[x], {x, -pi, pi}]

graphique1

- Graphics -
Plot3D[Sin[x] Cos[y], {x, -pi, pi}, {y, -pi, pi}]

graphique2

- SurfaceGraphics -
ParametricPlot[{Sin[t], Sin[2t]}, {t, 0, 2 }]

graphique3

- Graphics -

top 1.1.4. Édition de formules

Mathematica permet depuis la version 3.0 d'éditer des textes mathématiques complexes, en offrant une composition de qualité:

formule1

formule2

formule3

formule4

formule5

top1.1.5. Boutons, palettes et hyperliens

Les versions 3.0 et ultérieures permettent la création de boutons. Ces boutons peuvent être actifs, c'est-à-dire qu'une action a lieu quand on clique dessus. Les boutons peuvent être mis n'importe où dans un fichier Mathematica.

Une collection de boutons est une palette. Les palettes sont très utiles, notamment pour permettre l'introduction facile de caractères spéciaux dans un texte, ou de taper des fonctions aux noms complexes. Voici une palette avec les lettres grecques et d'autres symboles utiles.

palette

Un hyperlien n'est rien d'autre qu'un bouton d'aspect particulier. Comme dans les navigateurs en vogue sur Internet, les hyperliens sont bleus et soulignés. L'hyperlien suivant montre une palette contenant le tableau périodique des éléments. On peut cliquer sur cette palette pour faire apparaître les caractéristiques d'un élément spécifique.

top1.1.6. Programmation

Pour terminer ce cours hors-d'oeuvre, voyons deux petits exemples du langage de programmation Mathematica. Le premier permet de calculer la moyenne arithmétique d'une liste de nombres.

Moyenne[list_List] := Plus@@list / Length[list];
Moyenne[{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]
11/2

Le second calcule le n-ième nombre de Fibonacci.

Fibonacci[0] = Fibonacci[1] = 1;
Fibonacci[n_Integer] := Fibonacci[n-1] + Fibonacci[n-2];
Fibonacci[9]
55

Nous reviendrons sur tous ces exemples ultérieurement. On remarquera cependant tout de suite la ressemblance de la notation de Mathematica avec celle utilisée de façon standard en mathématiques.

top1.2. Syntaxe, notations, fonctionnement

top1.2.1. Syntaxe et notations

*Crochets et parenthèses

On aura remarqué dans les exemples ci-dessus une des particularités importantes de Mathematica. Toutes les fonctions mathématiques prennent leur(s) argument(s) entre crochets. Une erreur classique du débutant est la confusion entre les crochets [] et les parenthèses ().

En mathématiques, on utilise les parenthèses pour des usages complètement différents selon le contexte: d'une part pour dénoter les arguments d'une fonction, d'autre part pour marquer le groupement. Par exemple, la notation y(x + 1) peut signifier soit «la fonction y appliquée à l'argument x + 1», soit «la multiplication y par x + 1». L'être humain se sort d'une telle ambiguïté à l'aide du contexte. Au contraire, il n'est pas possible à l'ordinateur de lever une telle ambiguïté.

C'est pourquoi on indiquera dans Mathematica les arguments d'une fonction entre crochets, et les parenthèses seront réservées uniquement pour marquer un groupement. Ainsi l'on distingue parfaitement y[x+1] (application d'une fonction) de y(x+1) (multiplication).

*Utilisation des majuscules et minuscules

Toutes les fonctions, commandes et expressions prédéfinies dans le système Mathematica suivent une règle sans exception: leur nom commence par une majuscule. Ceci empêche qu'ils ne soient confondus ou surchargés par une fonction ou une expression définie par l'utilisateur.

Il est vivement conseillé de dénommer les fonctions ou variables que l'on définit soi-même en commençant par une lettre minuscule. Ceci implique que le système Mathematica fait une distinction entre majuscules et minuscules. Il faut donc être très attentif quand on tape le nom d'une fonction prédéfinie: Mathematica ne comprendra par exemple pas ce que signifie Identitymatrix[3], puisque la fonction qui engendre la matrice unité de dimension 3 est IdentityMatrix[3].

*Espaces et retours à la ligne

Les espaces ne jouent pas de rôle dans Mathematica. On peut dire en fait que deux espaces sont équivalents à un seul, ce qui implique que l'on peut mettre autant d'espaces que l'on veut là où il n'y en a qu'un.

Le problème du retour à la ligne est similaire. Cependant, Mathematica ne peut pas toujours décider si le retour signifie une fin d'instruction ou une juxtaposition (donc éventuellement une multiplication). En général, il l'interprète comme une fin d'instruction:

Sin[pi/3]
Cos[pi/4]
Sqrt[3]/2
1/Sqrt[2]

Si l'on veut obtenir un comportement différent, il faudra grouper l'expression avec des parenthèses:

(Sin[pi/3]
Cos[pi/4])
Sqrt[3/2]/2

D'une manière générale, pour éviter toute ambiguïté, il est vivement conseillé de mettre un ; (point-virgule) à la fin de chaque instruction. Ainsi les éventuelles erreurs de syntaxe seront immédiatement découvertes le cas échéant. Le point-virgule indique précisément la fin d'une instruction.

*Suppression de l'output

Le point-virgule ; n'est pas seulement synonyme de fin d'expression. Il sert aussi à supprimer le résultat d'un calcul, lorsqu'il n'est pas utile de l'avoir sous les yeux (par exemple résultats intermédiaires). Toute expression terminée par un point-virgule sera évaluée, mais le résultat ne sera pas affiché. C'est particulièrement utile si l'output est long. On gagne ainsi beaucoup de temps, car l'affichage est gourmand en puissance de calcul..

23320 + 2;
% + 325;
GCD[%,%%]
3
*Nombres et opérations usuelles

Les nombres réels ne s'écrivent pas avec une virgule, mais avec un point décimal.

Les opérations arithmétiques élémentaires se notent de façon usuelle: +, -, * et / sont les quatre opérations de base. Quand il n'y a pas de confusion possible, on note la multiplication par un espace: a b est équivalent à a*b.

La fonction puissance se note à l'aide du caractère ^ (accent circonflexe). Le cube de 5 s'écrit donc 5^3. On verra plus tard qu'il est plus élégant d'utiliser la notation 53.

Les comparateurs s'écrivent comme en Pascal, c'est-à-dire < (plus petit que), > (plus grand que), <= ou <= (plus petit ou égal à), >= ou >= (plus grand ou égal à), != ou != (pas égal à).

La racine carrée de n s'écrit Sqrt[n] ou bien n^(1/2). Ici encore la notation usuelle Sqrt[n] est meilleure. Les autres racines s'écrivent à l'aide des puissances fractionnaires (sans oublier les parenthèses) ou bien avec la notation usuelle Root n of m.

On remarque ici qu'il y a deux façons d'écrire les expressions, soit avec la notation mathématique standard (en 2 dimensions, indices, exposants, barres de fractions, etc.), soit avec la notation originelle de Mathematica (d'avant la version 3.0). Nous apprendrons plus tard comment écrire avec la notation standard des mathématiques, plus élégante, mais plus complexe.

top1.2.2. Fonctionnement de Mathematica

Le système Mathematica est composé de deux parties distinctes: un «noyau» qui s'occupe de faire les calculs, et une «façade» qui s'occupe du dialogue avec l'utilisateur. Cette dernière partie est appelée dans le jargon le front end, tandis que le noyau est appelé kernel.

Quand on tape 2 + 2, c'est le kernel qui calcule le résultat 4. Le front end est responsable de lire la donnée et d'afficher le résultat à l'écran. Le kernel s'occupe aussi d'autres tâches annexes.

Le kernel fonctionne à peu près de la même manière sur tous les ordinateurs. Par contre les front ends sont quelque peu différents: l'aspect des fenêtres et des polices de caractères, les raccourcis-clavier peuvent être différents d'un environnement à l'autre. L'avantage de cette formule est que chaque front end peut profiter des avantages spécifiques du type de machine sur lequel il fonctionne.

Les notebooks, c'est-à-dire les fichiers Mathematica, sont traités par le front end.

Les front end Macintosh, NeXT ou Windows sont de type graphique. Ils s'utilisent de manière très similaire.Nous allons décrire quelques-unes de leurs caractéristiques principales.

*Comment effectuer une évaluation?

Pour utiliser Mathematica, il faut savoir avant tout comment lui faire évaluer une instruction. Pour ce faire, comme déjà mentionné, il suffit de frapper simultanément les touches majuscule et retour (shift+return) ou plus simplement la touche entrée (enter) à droite du pavé numérique.

Dès que l'on a demandé une évaluation, l'ordinateur affiche, comme on a pu le remarquer, une ligne de la forme In[n]: =. Le nombre n entre crochets indique le numéro de l'instruction évaluée (ou input) dans le cours de la session actuelle de Mathematica.

Lorsque l'évaluation est terminée, le front end affiche de la même manière Out[n] = pour la n-ième réponse (ou output), s'il y en a une.

Le kernel se charge en mémoire au moment d'effectuer la première évaluation de la session. Dans les versions 2.2 et ultérieures, le kernel est une application séparée qui démarre automatiquement à la première évaluation. On peut faire afficher la mémoire disponible du kernel en choisissant dans l'application MathKernel, l'option Show Memory Usage. Ainsi apparaît la fenêtre à droite de la figure ci-dessous.

Kernel memory

On utilise le symbole % (pour-cent) pour désigner le dernier résultat obtenu, tandis que %% désigne l'avant dernier et %%% l'antépénultième. Cette façon de procéder est cependant assez mal pratique. En effet, puisque le signe % désigne le dernier résultat, en évaluant deux fois de suite une instruction le contenant, on n'obtiendra pas nécessairement le même résultat. Il faudra donc être prudent lorsque l'on utilisera cette méthode.

Pour se référer à des résultats antérieurs, on utilisera la notation %n qui désigne le résultat Out[n].

%25
Sqrt[3/2]/2

Au bas de chaque fenêtre, une échelle indique l'état de la mémoire allouée au front end de Mathematica; la partie noire représente la partie déjà occupée et la partie blanche la mémoire encore disponible.

Front End memory

Pour interrompre Mathematica au milieu d'un calcul, si par exemple l'on s'aperçoit d'une erreur, il suffit de taper au clavier la combinaison de touches cmd-[.] (commande et point) sur Macintosh et NeXT, alt-[.] sur Windows. Si cela ne fonctionne pas, il est toujours possible de sélectionner l'option Quit Kernel/Local du menu Kernel et de cliquer Quit dans la fenêtre qui apparaît.

Quit Kernel

Si cela ne fonctionne toujours pas, il ne reste plus qu'à sélectionner l'article Quit du menu File pour terminer la session et en recommencer une autre.

*Les cellules

Mathematica organise chaque fichier en une succession de cellules, dont on peut voir la marque à droite de la fenêtre, juste à côté de la bande de défilement.

Cell marks

Les cellules peuvent avoir divers formats: input, output, text, graphic, etc. On peut leur fixer des attributs et changer leur type, ainsi que leur présentation à l'écran (menu Cell).

Cell menu

Les cellules permettent de hiérarchiser un document: on peut ainsi grouper des cellules à des niveaux différents, comme le montre l'exemple suivant et aussi le présent document.

Notebook

Pour sélectionner une cellule, on clique sur la marque de celle-ci. Le pointeur change de forme lorsqu'il se trouve sur les marques des cellules.

Une cellule output est toujours groupée avec la cellule input qui l'a produite.

Il est toujours possible d'intercaler une cellule entre deux autres. Pour cela, on déplacera le pointeur entre deux cellules, où il prendra la forme suivante: Cell pointer. Il suffit alors de cliquer. Une ligne horizontale apparaît et l'on tape le texte désiré.

Les commandes Copy Input From Above (Mac/NeXT cmd-[l], Windows ctrl-[l]) et Copy Output From Above (Mac/NeXT shift-cmd-[L], Windows shift-ctrl-[L]) du menu Input, permettent de copier la ligne d'input, respectivement d'output située immédiatement au-dessus de la sélection. Elles sont très utiles et évitent souvent à l'utilisateur de retaper des expressions complexes.

Copy Input From Above

top1.2.3. Aide: mode d'emploi

*Aide principale

Le menu Help permet d'obtenir de l'aide, constituée essentiellement de fichiers Mathematica (notebooks). Ces fichiers constituent en fait l'intégralité du livre «The Mathematica Book» sous forme électronique (environ 72,2 Mo). Ce livre en anglais est distribué avec le logiciel. Il existe des traductions en français et en allemand (voir bibliographie). Chaque utilisateur dispose donc en local de la totalité de la documentation disponible, en choisissant l'option Help... du menu Help.

Lors de la première utilisation, il faut attendre quelques secondes, pendant que le programme met à jour l'index des ressources à sa disposition.

Help Browser

En tapant dans le champ en haut de la fenêtre le terme dont on veut des informations, puis en cliquant le bouton Go to, on accède directement aux documents adéquats. Il est possible de couper et de coller le texte de l'aide, ou encore de l'évaluer.

Les boutons Buit-in Functions, Add-ons, etc. servent à spécifier dans quelle partie de l'aide Mathematica doit chercher les termes placés dans le champ. L'option Master Index cherche dans l'index complet de la documentation. Elle est particulièrement puissante.

*Pourquoi ce bip?

La commande Why the Beep?... (shift-cmd-[H], shift-ctrl-[H]) expliquera le pourquoi du dernier «bip» de Mathematica et à quel moment celui-ci est intervenu.

Why The Beep?

*Aide à la saisie des noms de fonctions

Le front end donne encore une autre possibilité d'aide. De nombreuses fonctions sont disponibles dans Mathematica et l'on ne se souvient pas toujours de leur nom. Pour le retrouver, il suffit de taper le début de ce nom, par exemple Fac, puis de sélectionner l'article Complete Selection (cmd-[k], ctrl-[k]) du menu Input.

Complete Selection

Mathematica affiche alors une fenêtre avec les noms de tous les objets possibles. Il suffit de cliquer sur l'un d'eux pour obtenir le nom désiré. Si aucun ne convient, il suffit alors taper la touche d'échappement esc.

Complete Selection example

Une fois connu le nom de la fonction, la commande Make Template (shift-cmd-[K], shift-ctrl-[K]) du même menu permet d'afficher un modèle pour les arguments de la fonction. On écrit le nom de la fonction, puis on choisit la commande Make Template ou l'on frappe le raccourci-clavier.

Make Template

Dans le cas de la fonction ParametricPlot, cela donne

ParametricPlot[{fx, fy}, {t, tmin, tmax}]

Il suffit de remplacer les noms des fonctions et des variables par leur véritable définition, et le tour est joué. Comme d'habitude, avec Complete Selection tout comme avec Make Template, il faut faire attention aux majuscules et minuscules.

Ces deux commandes fonctionnent également avec les fonctions définies par l'utilisateur lors d'une session.

*Informations sur les fonctions Mathematica

On a souvent besoin d'éclaircissements au sujet des fonctions Mathematica que l'on veut utiliser. Il est toujours possible d'en obtenir en évaluant une commande avec ?nomnom est le nom de la fonction dont on veut des informations. Si l'on veut des informations plus exhaustives, on tapera ??nom plutôt que ?nom.

La commande suivante permet de connaître des informations sur la fonction Log.

?Log
Log[z] gives the natural logarithm of z (logarithm
  to base e). Log[b, z] gives the logarithm to base b.
??Log
Log[z] gives the natural logarithm of z (logarithm
  to base e). Log[b, z] gives the logarithm to base b.
Attributes[Log] = {Listable, NumericFunction, Protected}

Dans ce type de commande, il est possible d'utiliser le caractère * qui remplace n'importe quelle chaîne de caractères, y compris la chaîne vide. Par exemple, pour obtenir la liste des objets commençant par Lo, on évaluera ?Lo*.

?Lo*
Locked        LogGamma      LogIntegral   Loopback
Log           LogicalExpand LongForm      LowerCaseQ

De même, pour obtenir la liste des objets contenant la chaîne de caractères Dir et finissant par y, on évaluera ?*Dir*y.

?*Dir*y
CopyDirectory         ResetDirectory
CreateDirectory       SetDirectory
DeleteDirectory       $HomeDirectory
DirectedInfinity      $InitialDirectory
Directory             $LaunchDirectory
HomeDirectory         $PreferencesDirectory
NotebookDirectory     $PSDirectDisplay
ParentDirectory       $RootDirectory
RenameDirectory       $TopDirectory

La commande ?@ permet d'obtenir la liste de tous les objets dont les noms ne contiennent aucune majuscule. En fait, ce caractère remplace une suite d'un ou plusieurs caractères sans majuscules. Si l'on s'astreint à ne définir que des fonctions en minuscules, cette commande permettra de faire la liste des objets définis par l'utilisateur durant la session en cours. C'est très utile si la session a été particulièrement longue et que l'on ne se souvient plus si tel objet ou telle fonction a été définie.

?@
a         fibonacci list      n         tmax      x
b         fx        moyenne   t         tmin      y
c         fy

top 1.2.4. Précision des nombres

Dans les calculs, le principe de Mathematica est de toujours chercher des résultats exacts, sauf si l'on indique expressément que l'on veut une approximation numérique. Par exemple, l'expression Sqrt[2] reste pour Mathematica le nombre réel exact «racine carrée de 2»; c'est pour cela qu'il ne la transforme pas, même s'il l'a interprétée.

Sqrt[2]
Sqrt[2]

De même, toute fraction rationnelle est immédiatement simplifiée et conservée sous cette forme exacte.

1331/1529
121/139

Il en va ainsi également pour certaines constantes les plus utilisées en mathématiques. (Les constantes suivent évidemment la règle de dénomination de Mathematica, c'est pourquoi leur première lettre est une majuscule. On écrit donc Pi, E et I. On peut aussi utiliser les formes pi, e et i. Ces deux dernières lettres, un peu spéciales, sont spécifiquement utilisées pour dénoter les constantes mathématiques standard qu'elles représentent, afin de les distinguer d'une variable ou d'une constante e ou i, qui serait définie par l'utilisateur.)

pi
pi

Cependant, si l'on veut obtenir des approximations numériques, il faut alors utiliser explicitement la fonction N.

N[pi]
3.14159
N[Sqrt[2]]
1.41421

Il est possible de spécifier la précision désirée (ici 45 et 100 chiffres exacts):

N[1331/1529, 45]
0.8705035971223021582733812949640287769784173
N[pi, 100]
3.141592653589793238462643383279502884197169399375105820974944592308 \
  16406286208998628034825342117068

La barre oblique inverse au bout de la ligne signifie simplement que le nombre continue à la ligne suivante.

Une autre solution consiste à mettre un point décimal immédiatement après le nombre en question. Ceci indiquera qu'il s'agit de l'approximation d'un nombre réel, et non plus un entier ou un rationnel exact. Cette manière ne permet pas de spécifier de façon immédiate la précision voulue.

1331./1529
0.870504
Sqrt[3.]
1.73205

top 1.2.5. Packages (ou modules externes)

Mathematica n'est pas un logiciel fermé. Il est possible de compléter le jeu des fonctions disponibles par des modules externes appelés packages. Chacun des ces modules est placé dans un fichier que l'on peut charger en tout temps.

Les packages constituent ce que l'on appelle des add-ons, c'est-à-dire des ajouts à Mathematica.

La distribution originale du logiciel contient un grand nombre de add-ons très utiles, ainsi que la brochure Mathematica 3.0 Standard Add-ons Packages qui en explique le fonctionnement. Pour charger l'un de ces modules, on utilisera la commande Needs de la façon suivante (le caractère ` est l'accent grave):

Needs[Graphics`ImplicitPlot`]

Cette commande vient de charger le package contenu dans le fichier «ImplicitPlot.m.» Toutes les fonctions définies dans ce fichier peuvent être dès maintenant utilisées comme si elles faisaient partie de Mathematica. Ainsi, l'on peut maintenant faire dessiner une fonction implicite:

ImplicitPlot[x2 + y2 + x y == 4, {x, -3, 3}]

graphique4

- Graphics -

Rappelons que l'aide permet de rechercher les fonctions définies dans les packages standard, en cliquant sur le bouton Add-ons.

Add Ons

Outre les modules standard, il existe un très grand nombre d'autres packages que l'on peut se procurer au site internet de Mathematica (voir à ce sujet la bibliographie).

top1.2.6. Listes

Un concept central de Mathematica est celui de liste. Une liste est simplement une collection d'objets entre accolades, séparés par des virgules:

{3, 5, 4}
{3, 5, 4}

L'avantage des listes est de pouvoir traiter plusieurs objets en même temps. On peut faire des opérations arithmétiques sur chaque membre de la liste, par exemple lui ajouter 2 et l'élever au carré:

(% + 2)2
{25, 49, 36}
*Fonction Range

La fonction Range[n] permet de fabriquer des listes de nombres consécutifs. Si l'argument n est unique, la fonction fabrique une liste d'entiers de 1 à n, sinon les deux arguments indiquent les bornes de la série de nombres.

Range[5]
{1, 2, 3, 4, 5}
Range[4, 8]
{4, 5, 6, 7, 8}

Un troisième argument optionnel permet d'indiquer l'intervalle entre deux nombres successifs:

Range[0, 3, 1/2]
{0, 1/2, 1, 3/2, 2, 5/2, 3}
*Fonction Table

Une autre fonction très pratique pour construire des listes est Table. Un exemple simple montre mieux que toute explication comment elle fonctionne.

Table[i2, {i, 3, 8}]
{9, 16, 25, 36, 49, 64}

Le deuxième argument de la fonction, la liste {i, 3, 12} est appelé un itérateur. Il indique simplement que la variable i doit varier de 3 jusqu'à 12. L'itérateur peut aussi comporter un quatrième élément, qui détermine le pas de l'itération, c'est-à-dire l'intervalle entre deux nombres successifs.

Table[i, {i, 1, 2, 1/6}]
{1, 7/6, 4/3, 3/2, 5/3, 11/6, 2}

Table permet aussi de construire des listes de listes, et beaucoup d'autres choses.

Table[ai,j, {i, 1, 3}, {j, 1, 3}]
{{a1,1, a1,2, a1,3}, {a2,1, a2,2, a2,3}, {a3,1, a3,2, a3,3}}
*Extraction d'éléments

Lorsque l'on veut extraire un élément ou un groupe d'éléments de la liste, on utilise les doubles crochets [[ ]]. Les doubles crochets jouent le même rôle que les crochets simples de Pascal. La commande qui suit extrait le deuxième élément de la dernière liste obtenue, qui est une liste.

%[[2]]
{a2,1, a2,2, a2,3}

La commande qui suit extrait le troisième élément de la deuxième liste de la même expression. Il s'agit cette fois de l'expression a2,3.

%%[[2,3]]
a2,3

Les accolades et les doubles crochets forment les deux autres types de délimiteurs utilisés dans Mathematica. Nous avons déjà rencontré les parenthèses et les crochets simples.

top1.3. Exercices

Pour terminer ce premier chapitre, voici quelques exercices simples.

Exercice 1 [voir la solution]

Ouvrez le notebook contenant ce texte et évaluez toutes les instructions qui s'y trouvent.

Exercice 2 [voir la solution]

Cherchez le nom Mathematica des différentes commandes commençant par Plot, sans utiliser l'aide. Il y a au moins deux solutions simples. Même question pour les commandes contenant le mot Graphic.

Attention aux majuscules et minuscules!

Exercice 3 [voir la solution]

Expliquez les différences entre les quatre types de délimiteurs rencontrés dans l'environnement Mathematica.

Exercice 4 [voir la solution]

Si vous recherchez à l'aide de la commande Find... (cmd-[f], ctrl-[f]) le terme «locomotive» dans ce notebook, vous entendez un bip. Pourquoi?

Exercice 5 [voir la solution]

Trouvez dans l'aide comment factoriser un nombre entier et un polynôme. Copiez et collez dans un notebook les exemples donnés et évaluez-les.

Indication: le mot factorisation se dit «factoring» en anglais.

Exercice 6 [voir la solution]

Calculez les 770 premiers chiffres de pi. Il y a quelque part dans le résultat une suite de six 9 consécutifs.

Exercice 7 [voir la solution]

Trouvez dans l'aide le nom du module externe contenant les constantes physiques usuelles. Chargez ce module dans Mathematica et calculez la valeur de l'accélération gravifique moyenne sur Terre.

Exercice 8 [voir la solution]

Fabriquez à l'aide de la commande Range la liste décroissante des nombres entiers {20, 18, 16, 14, ..., 4, 2}. Additionnez le troisième, le cinquième et septième membre de la liste, et divisez cette somme par le premier membre de la liste. Il est possible d'effectuer cette opération d'un seul coup. Donnez ensuite une approximation du nombre rationnel trouvé.

Exercice 9 [voir la solution]

Fabriquez à l'aide de la commande Table la liste des 10 premiers nombres premiers {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}.

Indication: la commande permettant de trouver le n-ième nombre premier est Prime[n].