Vous êtes sur la page 1sur 9

Gnral

Commandes principales
Pour valider une cellule : Maj Enter
Effacement cellule : Suppr
Effacement variable : Clear
Effacement de toutes les variables : Quit Kernel ou ClearAll[Global`*]

Excution sans affichage

; la fin de linstruction

Pour excuter une cellule sans retourner le rsultat : mettre

Signe =
Affectation directe, retarde ou test d'galit boolen
= ou := ou ==

Menus d' aide


Aide sur une saisie dans le notebook : double click sur le mot saisi + Ctrl F1
Palettes de fonctions (intgrale, drives partielles, matrices)

Expressions et fonctions
Expressions : pas de variable la dfinition (par exemple

expr = 2x-3)

Ecriture d' une fonction - Syntaxe :


--> Maj au dbut pour les fonctions Mathematica et Maj pour chaque mot dans le cas de mots
composs ( par exemple

LinearSolve )

--> argument mettre entre [ ],


--> Utiliser _ la dfinition de la fonction ( par exemple f[x_ ] = 2x-3 )
Remarque : les instructions Mathematica sont des fonctions (Solve, Pl ot, ...)
On peut aussi crire

//[Nom de la fonction] aprs son argument ( par exemple

17 - 5

//IntegerPart )
/@ permet dappliquer une fonction tous les termes dune liste pris un par 1 ( par exemple
f/@{1,3})
In[73]:=
Out[73]=

f[x_ ] = 2 x2 - 3; f /@ {1, 3}
{- 1, 15}

Apprentissage Mathematica.cdf

Simplification/rarragement d'expressions
Simplify ou FullSimplify
Expression retourne sans utiliser de fonction de simplification
x x - 3 - x - 2 x - 8
- (- 8 + x) (- 2 + x) + (- 3 + x) x

Expression retourne en utilisant Simplify


Simplifyx x - 3 - x - 2 x - 8
- 16 + 7 x

ComplexExpand (regroupe l'expression partie relle et l'expression partie


imaginaire)
Re[2 x + 3 - 2 y + 5] // ComplexExpand
5+2x

Remarque : Si Re ou Im ne sont pas dans l' argument de ComplexExpand, x et y sont a priori


considr comme des nombres complexes) - Voici un exemple de consquence
Re[2 x + 3 - 2 y + 5]
5 + 2 Im[y] + 2 Re[x]

Listes ou matrices : avec { }


In[3]:=
Out[3]=

ou avec Table

l = {3, 5, 7}
{3, 5, 7}
l = Table[2 i + 1, {i, 1, 3}]
{3, 5, 7}

Elments de listes avec [[ ]] + Contraction avec Echap [[ Echap et


Echap]]Echap
In[4]:=
Out[4]=

l2
5

Manipulation densemble du notebook


Cellules :

Style --> Click droit sur le crochet droite de la cellule (style Text ou Section)
Plier/dplier entre 2 instructions Section --> Double click sur le grand crochet

droite

Apprentissage Mathematica.cdf

Rinitialiser toutes les variables affectes depuis le dbut de la session : Menu Evaluation, puis
Quit Kernel
Excution de tout le notebook : Evaluate NoteBook

Equations/ Syst / Equa diff


Solve (retourne des rgles daffectation donnant les solutions)
In[5]:=

Out[5]=

Solvex2 + 5 x + 3 0, x
x

1
2

- 5 -

13 , x

1
2

- 5 +

13

/. ( Pour obtenir les solutions en remplaant par ces rgles daffectation)


In[7]:=

Out[7]=

reg$sol = Solvex2 + 5 x + 3 0, x; sol = x /. reg$sol

1
2

- 5 -

13 ,

1
2

- 5 +

13

Select (pour slectionner certains lments dans un ensemble)


In[8]:=

Out[8]=

Select[sol, # > - 4 &]

1
2

- 5 +

13

Cas Partic. : LinearSolve (pour rsoudre des systmes linaires en entrant


les matrices de coefficients)
In[9]:=

5
a = 1 2 ; b = ;
9
3 4
LinearSolve[a, b] // MatrixForm

Out[10]//MatrixForm=

-1
3

Reduce (pour rsoudre les systmes d'quations ou d'inquations non


linaires, ventuellement avec des conditions sur x)
In[11]:=
Out[11]=

Reducex - 1 x - 2 x - 3 (x - 4) > 0, x, Integers


x Integers && (x 0 || x 5)

Apprentissage Mathematica.cdf

DSolve (pour rsoudre les quations diffrentielles)


In[12]:=

Out[12]=

In[17]:=

Out[17]=

reg$sol = DSolve[y '[t] - 5 y[t] 2 t + 3, y[t], t]


y[t] -

17
25

2t
5

+ 5 t C[1]

sol = y[t] /. reg$sol1


-

17
25

2t
5

+ 5 t C[1]

C[1] dsigne la constante indtermine. On obtient des listes de solutions particulires en imposant
des remplacements pour C[1]. Par exemple :
In[18]:=

Out[18]=

listeSolPart = Table[sol /. C[1] i, {i, 1, 3, 0.1}]


-

17
25
17
25
17
25
17
25
17
25
17
25

17
2t
17
2t
,+ 1.1 5 t ,+ 1.2 5 t ,
5
25
5
25
5
2t
17
2t
17
2t
+ 1.3 5 t ,+ 1.4 5 t ,+ 1.5 5 t ,
5
25
5
25
5
2t
17
2t
17
2t
+ 1.6 5 t ,+ 1.7 5 t ,+ 1.8 5 t ,
5
25
5
25
5
2t
17
2t
17
2t
17
2t
+ 1.9 5 t ,+ 2. 5 t ,+ 2.1 5 t ,+ 2.2 5 t ,
5
25
5
25
5
25
5
2t
17
2t
17
2t
17
2t
+ 2.3 5 t ,+ 2.4 5 t ,+ 2.5 5 t ,+ 2.6 5 t ,
5
25
5
25
5
25
5
2t
17
2t
17
2t
17
2t
+ 2.7 5 t ,+ 2.8 5 t ,+ 2.9 5 t ,+ 3. 5 t
5
25
5
25
5
25
5

+ 1. 5 t -

2t

Apprentissage Mathematica.cdf

Graphiques
Courbes continues avec Plot
In[19]:=

Plot[sol /. C[1] {1, 2, 3}, {t, 0, 2}]

15 000

10 000
Out[19]=

5000

0.5

1.0

1.5

Nuage de points avec ListPlot


In[25]:=

liste$points = Tablek

In[21]:=

ListPlot[liste$points]

, Cosk

, {k, 1, 20};

1.0

0.5

Out[21]=

-0.5

-1.0

10

15

20

2.0

Apprentissage Mathematica.cdf

Superposer des graphiques avec Show


In[32]:=

c1 = ListPlot[liste$points]; c2 = Plot[Cos[x], {x, 0, 8 }];


Show[c1, c2]
1.0

0.5

Out[33]=

10

12

-0.5

-1.0

Styles d' un graphique avec PlotStyle


In[34]:=

c1 = ListPlot[liste$points, PlotStyle Red];


Show[c1, c2]
1.0

0.5

Out[35]=

10

12

-0.5

-1.0

Calculs numriques
Approximation d' une solution : Fonction N, dcimales
In[36]:=

N[]
N[, 10]

Out[36]=

3.14159

Out[37]=

3.141592654

Apprentissage Mathematica.cdf

Rsolution approche (mthode itrative) : FindRoot ou NSolve


In[38]:=
Out[38]=

NSolve[x - x ^ 5 1, x]
{{x - 1.1673}, {x - 0.181232 - 1.08395 }, {x - 0.181232 + 1.08395 },
{x 0.764884 - 0.352472 }, {x 0.764884 + 0.352472 }}

Parfois, la mthode NSolve est inadapte. Voici un exemple :


In[39]:=

Out[39]=

NSolvex + Tan[x] - 1 x, x
NSolvex + Tan[x] -

1
x

, x

On pourra alors essayer d' appliquer une mthode itrative (comme la mthode de Newton) avec
FindRoot en l' initialisant correctement. Cela ne donnera quune racine :
In[40]:=
Out[40]=

FindRootx + Tan[x] 1 x, {x, }


{x 2.11708}

Rsolution par discrtisation d' une quation diffrentielle : avec NDSolve


Voici un exemple d' quation diffrentielle pour laquelle il n' existe aucune mthode de rsolution
algbrique connue :
In[41]:=
Out[41]=

DSolve[{y ''[t] - Tan[t] y[t] 0, y[1] 5, y '[1] == - 2}, y[t], t]


DSolve[{- Tan[t] y[t] + y [t] 0, y[1] 5, y [1] - 2}, y[t], t]

Dans ce cas, on rsout par une mthode numrique avec NDSolve (en prcisant lintervalle sur
lequel on discrtise) :
In[45]:=

reg$sol = NDSolve[{y ''[t] - Tan[t] y[t] 0, y[1] 5, y '[1] == - 2},


y[t], {t, - 1, 1}]; sol = y[t] /. reg$sol1

Out[45]=

InterpolatingFunction

Domain: {{-1., 1.}}


Output: scalar

[t]

La solution de l' quation discrtise tant un ensemble de points {ti, y[ti]}, la solution de l' quation
initiale sobtient en interpolant ce nuage.
Mme si les fonctions dinterpolation ne sont pas explicites, cette solution peut tre rprsente
par une courbe continue :

Apprentissage Mathematica.cdf

In[46]:=

Plot[sol, {t, - 1, 1}]

12

10
Out[46]=

-1.0

0.5

-0.5

1.0

Calculs algbriques
Calcul de dterminants avec Det
Multiplication de matrices avec

(pas avec *)

Inversion dune matrice avec la fonction Inverse (pas avec lexposant -1)
Ecriture d' une matrice sous la forme usuelle avec MatrixForm
Diagonalisation avec les fonctions : Eigenvalues, Eigenvectors, Eigensystem excutent la suite
doprations algbriques pour diagonaliser
Trigonalisation sous la forme P.T.P -1 avec JordanDecomposition (retourne les matrices P et T, T
pouvant tre en fait diagonale si cest possible)
Rsolution de systmes d' quations ou d'inquations non triviales avec Reduce

EXEMPLES
In[70]:=

Out[71]=

In[61]:=

m = 1 2 ;
0 4
Det[m]
4
mMoins1 = Inverse[m]; MatrixForm[mMoins1]

Out[61]//MatrixForm=

1 - 12
0
In[63]:=
Out[63]=

In[67]:=
Out[67]=

1
4

jordDecomp = JordanDecomposition[m]
{{{1, 2}, {0, 3}}, {{1, 0}, {0, 4}}}
P = jordDecomp1; T = jordDecomp2; {MatrixForm[P], MatrixForm[T]}
1 2 , 1 0
0 3
0 4

Apprentissage Mathematica.cdf

P.T.Inverse[P] // MatrixForm (* On retrouve bien la matrice m *)


Out[69]//MatrixForm=

1 2
0 4
Reduce[2 x - y 3 && x - 2 y 5]
y-

7
3

&& x

1
3

Programmation
Test logique avec If
In[74]:=
Out[74]=

a = 3 + 2; If[a 5, "C'est bien 5", "Ce n'est pas 5"]


C'est bien 5

Boucles avec For, While, Do


In[75]:=

For[i = 0, i < 3, i ++,


If[i 2, Print["C'est bien 2"],
Print["Ce n'est pas 2"]
]
]
Ce n'est pas 2
Ce n'est pas 2
C'est bien 2

Boucle avec Table


In[76]:=

Table[If[i 2, Print["C'est bien 2"], Print["Ce n'est pas 2"]], {i, 1, 3}];
Ce n'est pas 2
C'est bien 2
Ce n'est pas 2

Sous-programme avec Module


In[77]:=

test$sur$indice[i_] :=
Module[{varInt = i},
If[varInt 2, Print["C'est bien 2"], Print["Ce n'est pas 2"]]
]

In[78]:=

test$sur$indice[2]
C'est bien 2