- 1+1 Bien sûr, le résultat devrait être
2
- N[Pi,350]
affiche les quelques 350 premières décimales de Pi.
- (a + b)^2
aucune action car, par défaut, Mathematica n'effectue
pas le développement.
- Expand[(a + b)^2]
le développement est exécuté grâce à
la commande Expand.
- Expand[(a + b)^7]
- Expand[(a + b)^25]
- ?FactorInteger
donne la description de la commande qui suit le point d'interrogation.
- ?F*
donne la liste de toutes les commandes qui commencent par F.
- ?*Plot*
donne la liste de toutes les commandes qui contiennent Plot.
- ??Plot
donne la description de la commande Plot, et aussi la liste de
ses 30 options, autant de paramètres dont Mathematica
tient compte pour la production d'un graphique. L'usager peut les
modifier à sa guise (ou presque...)
- (* je peux ajouter un commentaire *)
tout ce que vous écrivez entre (* et *) est
ignoré par Mathematica et peut donc servir à
ajouter un commentaire dans une commande ou au cours d'une session.
On a déja compris que les crochets sont
réservés pour des arguments de fonctions, les
parenthèses pour grouper des symboles. Les accolades
spécifient des listes, en particulier des vecteurs, des listes
de listes, en particulier des matrices.
- {23, Sqrt[34], 5^(3/4), 3.14, 2 + 3 I, 22/7, Pi, E, Log[3]}
est une liste dont les éléments sont respectivement: le
nombre entier positif 23, la racine carrée de 34, 5 à la
puissance trois quarts, le nombre réel approximatif 3 virgule
14, le nombre complexe 2 + 3 fois racine de -1, le nombre rationnel 22
sur 7, le symbole Pi (attention, c'est vraiment un symbole, comme la
lettre grecque pi que vous écrivez sur votre feuille), le
symbole e majuscule, base des logarithmes naturels (même remarque
que pour Pi), et enfin le symbole logarithme naturel de 3. Si je
m'intéresse à la valeur (approximative) des
éléments de cette liste, j'exécute la commande
- N[%]
On reconnaît dans la liste de l'Output les valeurs de pi et de e.
De plus, on peut remarquer que 22/7 est une assez bonne approximation
rationnelle de pi.
- FactorInteger[60]
donne la liste des facteurs de 60
- FactorInteger[1024]
- FactorInteger[1024000000001]
- Prime[1]
donne le premier nombre premier
- Prime[10]
donne le dixième nombre premier
- Prime[100]
- Prime[1000]
- Prime[10000]
- Table[10^n/Prime[10^n],{n,1,6}]//N
donne la liste des valeurs approximatives des quotients
demandés. Le symbole n n'a aucune importance pour le
résultat et peut être remplacé par tout autre
symbole non encore employé. Par exemple, en remplacant "n" par
"jules", on obtient le même résultat!
- Table[10^jules/Prime[10^jules],{jules,1,6}]//N
- Solve[a x^2 + b x + c == 0,x]
donne le résultat (bien connu de tous!) sous forme de règles
de substitution. Remarquez que le signe d'égalité est
écrit == (double signe =) dans Mathematica!
- Solve[a x^3 + b x^2 + c x + d == 0,x]
donne le résultat (que personne ne connaît par coeur !)
sous forme symbolique.
- Solve[1 x^3 + 2 x^2 + 3 x + 4 == 0,x]
donne le résultat sous forme symbolique, mais la commande
suivante affiche les valeurs approximatives. Il y a une racine
réelle et deux racines conjuguées complexes. Le I
est le symbole pour racine de -1.
- N[%]
- Factor[x^2 -1]
donne la décomposition du polynôme en facteurs "premiers"
, c'est-à-dire indécomposables dans les réels.
- Factor[x^3 -1]
- Factor[x^4 -1]
- Factor[x^5 -1]
- Factor[x^6 -1]
- Factor[x^9 -1]
- Factor[x^10 -1]
En passant, avez-vous remarqué la forme des coefficients dans
les décompositions ci-dessus ?
- FullForm[Factor[x^5 -1]]
affiche la forme sous laquelle Mathematica "voit" le
résultat.
- f[x_]:= x^4 - 3 x^2 + 5 x -17
ne produit pas d'Output, mais sert de définition pour le symbole
f. Le symbole "x_" peut se lire "n'importe quoi qui s'appelle x". Pour
s'en convaincre, exécutons l'une après l'autre les
commandes:
- f[cours]
- f[cours2300]
- f[cours 2300]
- f[cours * 2300]
On en déduit que la multiplication peut s'écrire soit
avec *, soit avec un espace entre deux symboles.
- Plot[f[x],{x,-5, 4}]
dessine le graphe de notre fonction f, dans l'intervalle [-5,4]. Pour
se convaincre que Mathematica connaît le symbole f peut
importe son argument, remplaçons x par julie
dans la commande ci-dessus. On obtient le même graphe :
- Plot[f[julie],{julie,-5, 4}]
- f'[x]
calcule la dérivée de f
- D[f[x],x]
une autre manière de calculer la dérivée de f
- Limit[(f[x+t] - f[x])/t, t->0]
encore une autre manière (la vraie !) de calculer la
dérivée de f
- D[x^3 Sin[y],{x,2}]
calcule la 2e dérivée partielle de l'expression x^3
Sin[y] par rapport à x.
- g[x_]:= Sin[Cos[Sin[Cos[x]]]]
une définition d'une fonction composée, assez
compliquée, merci.
- Plot[g[x],{x,-2Pi,2Pi}]
le graphe lui n'a pas l'air compliqué...
- g'[x]
- Limit[(g[x+u]- g[x])/u, u -> 0]
- Plot[{Cos[x],Sin[Cos[x]],
Cos[Sin[Cos[x]]],Sin[Cos[Sin[Cos[x]]]]},{x,-2Pi,2Pi}]
dessine plusieurs graphes dans la même figure.
- Needs["Graphics`FilledPlot`"] Mathematica
possède une vaste librairie de commandes
(Packages) rassemblées dans des répertoires
spécifiques. La commande Needs permet de charger
ceux-ci, suivant les besoins.
- ?FilledPlot
- FilledPlot[g[x],{x,-2Pi,2Pi}]
- FilledPlot[Sin[Cos[x]],{x,-2Pi,2Pi}]
Vérifions que l'intégrale de Sin[Cos[x]] calcule la
mesure algébrique de l'aire ombrée.
- Integrate[Sin[Cos[x]],{x,-2Pi,2Pi}]
- Integrate[Abs[Sin[Cos[x]]],{x,-2Pi,2Pi}] Mathematica
semble ne pas répondre à cette
commande, pourtant, en arrière-plan, la valeur est là,
comme le montre la commande suivante qui demande la valeur
numérique de l'Output précédent.
- N[%]
- FilledPlot[Abs[Sin[Cos[x]]],{x,-2Pi,2Pi}]
- FilledPlot[{Cos[x],1+ Cos[x]},{x,-2Pi,2Pi}]
permet d'illustrer le domaine compris entre deux graphes.
- FilledPlot[{Cos[x],Sin[Cos[x]],
Cos[Sin[Cos[x]]],Sin[Cos[Sin[Cos[x]]]]},{x,-2Pi,2Pi}]
Passons à des graphes de fonctions de deux variables x et
y, en variant quelques-uns des multiples paramètres
utilisés pour produire les dessins:
On s'intéresse ici au graphe de la partie imaginaire de la
fonction complexe 1/cos(z) avec z = x + I y.
- Plot3D[Im[Sec[(x + I y)]],{x,-3,6},{y,-3,3},
PlotPoints->{50,35},BoxRatios->{2,1.5,2}]
- Plot3D[Im[Sec[(x + I y)]],{x,-3,6},{y,-3,3},
PlotPoints->{50,35},BoxRatios->{2,1.5,2},ColorFunction-> Hue]
- Plot3D[Im[Sec[(x + I y)]],{x,-3,6},{y,-3,3},
PlotPoints->{50,35},BoxRatios->{2,1.5,2},ColorFunction->
Hue,ViewPoint->{1.3,-2.4,.8}]
- Plot3D[Im[Sec[(x + I y)]],{x,-3,6},{y,-3,3},
PlotPoints->{50,35},BoxRatios->{2,1.5,2},ViewPoint->{0,0,2}]
- ContourPlot[Im[Sec[(x + I y)]],{x,-3,6},{y,-3,3},
PlotPoints->50,ContourSmoothing->True]
- DensityPlot[Im[Sec[(x + I y)]],{x,-3,6},{y,-3,3},
PlotPoints->100,Mesh->False]
- Im[Sec[(x + I y)]]//ComplexExpand
- Random[]
donne un nombre pseudo-aléatoire compris entre 0 et 1.
- SeedRandom["login"] permet
à l'usager de créer des nombres pseudo-aléatoires
reproductibles, à partir de son login (à condition,
bien sûr, de remplacer login entre guillemets par son propre
login, entre guillemets !)
- m = Table[Random[],{i,1,4},{j,1,4}]
donne une matrice 4 lignes, 4 colonnes dont les éléments
sont des nombres pseudo-aléatoires compris entre 0 et 1.
- MatrixForm[m] affiche la matrice m sous forme commode
à voir, pourvu que le nombre de lignes et de colonnes ne soit
pas trop grand...
- Random[Integer,{1,6}]
donne comme résultat un nombre entier entre 1 et 6, comme si on
lançait un dé.
- Transpose[m]
donne la transposée de m.
- Det[m]
calcule le déterminant de m.
- Inverse[m]
calcule la matrice inverse de la matrice m.
- m . Inverse[m]
calcul le produit matriciel de m avec son inverse.
- Chop[%]
Enlève le "bruit algorithmique" dans le résultat
précédent, qui devrait être la matrice
identité 4 x 4. Ce "bruit" est la conséquence des
arrondis dans les algorithmes utilisés.
- Eigenvalues[m]
calcule la liste des valeurs propres de m.
- Eigensystem[m]
donne la liste des valeurs propres de m et des vecteurs propres
de m.
- DSolve[y'[x] + x y[x] - x^2 == 0,y[x],x]
donne la solution de l'équation différentielle y' + x y -
x^2 = 0
- Head[a+b] :
la commande Head affiche le type de l'expression donnée
en argument. Ici, c'est la somme de a et b, donc Plus, car en
fait, a+b se traduit dans Mathematica par Plus[a, b],
ce qu'on peut obtenir en exécutant : FullForm[a+b].
Toute expression dans Mathematica possède une
«tête». On peut changer par exemple la liste {a,b,c,d}
en la somme de ses éléments en remplaçant sa
tête, List, par Plus de la façon suivante
: {a,b,c,d} /. List->Plus .
Finalement, demandons à Mathematica de nous
donner la liste de sa table de symboles
- Names["*"]
Puisque c'est une liste, exécutons Length[%]
plutôt que de compter combien il y a d'éléments
dans cette liste!
Il ne faut pas se décourager, il y en a encore près de
2000 autres qui vous attendent, en réserve dans des librairies
appelées "Packages". Par exemple, il y a un répertoire de
fonctions statistiques capables de satisfaire les plus exigeants.
Ainsi, on charge la librairie de statistique descriptive en
exécutant la commande
- Needs["Statistics`DescriptiveStatistics`"]
N'oublions pas de quitter toute session de Mathematica
"proprement", en exécutant la commande Quit.
Si vous avez procédé à la mise à niveau
correctement (en suivant les directives donnés au cours), vous
allez recevoir un courrier contenant tous les Input de la session de Mathematica
que vous venez de quitter.