Collège du Sud
(2^(e )) année OS PAM

Applications des mathématiques

Introduction à Mathematica

Edition 2018/2019
http://applmaths.collegedusud.ch/

Préliminaire

Le présent document  reprend marjoritairement le script écrit par Marcel Délèze et Eugène Pasquier. Plusieurs élèments proviennent aussi du support de cours de Martin Rey. Merci à eux pour leur collaboration.

§ 1	Aperçu

Le but de cette première partie est de parcourir les principales possibilités du langage Mathematica. Puisque, dans un premier temps, il ne s'agit que d'un rapide survol, nous nous contenterons d'exhiber des exemples sans donner d'explications techniques.
Nous montrerons que Mathematica est une application qui permet
 	- d'effectuer des calculs numériques;
	- d'effectuer des calculs symboliques;
	- de réaliser des graphiques;
	- d'écrire des programmes;
	- de faire appel à des bibliothèques de programmes;
	- d'éditer des documents scientifiques;
	- de compléter ses connaissances grâce à son aide.

Palettes

Pour disposer d'une palette de symboles que nous utiliserons souvent, affichez sur la droite de l'écran la palette "Classroom Asssistant"; pour ce faire, passez par le menu "Palettes > Classroom Assistant".

Evaluation

Dans tout ce script, les entrées (inputs) sont indentés et écrits en caractère gras. Les résultats (outputs) sont eux aussi indentés mais en carcatère normal.
Pour évaluer une entrée,
	- actionnez la touche ⌤  à droite du pavé numérique ou
	- actionnez simultanément les touches <MAJ> et <RETURN>.
Par exemple,

4+6

Il peut arriver qu' une évaluation prenne beaucoup de temps. Celle-ci peut être arrêtée en allant dans le menu “Evaluation > Interrupt Evaluation”.

§ 1.1	Calculs numériques

Mathematica intègre toutes les fonctions mathématiques usuelles qui s'appliquent à des nombres. Voici quelques exemples.

Pour élever 2 à la puissance 100 avec le clavier on utilise l’accent circonflexe :

2^100

Pour effectuer le même calcul, nous pouvons utiliser la palette (symbole exposant). La touche <TAB> permet de passer de la base à l'exposant.

(2^100)

Pour écrire la "racine carrée de 2", nous pouvons utiliser la palette ou la fonction Sqrt[expr] (le crochet s’obtient en actionnant simultanément les deux touches <Alt Gr> et <[> ou les trois touches <Ctrl>, <Alt> et <[>):

(Sqrt[2])

Sqrt[1024](* Le commentaire n'a pas d'influence. *)

Pour demander la valeur numérique d'une expression expr, nous utilisons la fonction N[expr]:

N[(Sqrt[2])]

Par défaut, la valeur numérique est calculée avec environ 16 chiffres significatifs (valeur stockée en mémoire) et affichée avec environ 6 chiffres significatifs. Il faut donc distinguer
	 (Sqrt[2]) qui désigne la valeur exacte;
	1.414213562373095 qui est la valeur numérique calculée et mémorisée;
	 1.41421 qui est la valeur numérique affichée.
Pour obtenir le nombre π, nouis pouvons utiliser la palette ou taper Pi :

N[π]

Le symbole de la multiplication est l'espace (ou l'étoile):

N[3 Pi]

La division peut être désignée par la barre oblique du clavier:

5/7

Il s'agit là de la valeur exacte du nombre rationnnel dont nous pouvons demander une valeur numérique approchée.

Pour reprendre le résultat de la dernière évaluation, nous notons %, pour l'avant-dernièer évaluation %%,..., pour l’évaluation numéro n %n:

N[%]

L’utilisation de  % et  %n doit cependant être évitée dans la version finale d’un cahier. En effet, lors de la  réévaluation complète d’un cahier  (menu “Evaluation > Evaluate Notebook”), le numéro des évaluations va changer et le résultat ne sera pas forcément celui escompté.

Mathematica est capable de faire des calculs à n'importe quelle précision. La fonction N[expr, n] donne la valeur numérique de expr à n chiffres significatifs pour n≥17:

N[(Sqrt[2]),30]

N[π,40]

ATTENTION, dans Mathematica, l'unité d'angle par défaut est le radian (360° = 2π radian) que vous allez définir au cours de mathématiques de base dans le chapitre sur les fonctions trigonométriques:

N[Cos[20]]

mais nous pouvons aussi calculer en degrés; le symbole "degré" se trouve
	- soit sur le clavier, en haut à gauche;
	- soit dans la palette "BasicInput".

N[Cos[20 °]]

Bien que ce ne soit pas son rôle premier, Mathematica permet aussi l’édition de documents scientifiques. Le menu “Format > Style” fournit un ensemble de styles prédéfinis qui permette de stucturer le cahier. Les diverses palettes  permettent de trouver facilement les commandes Mathematica les plus courantes et de taper des formules mathématiques avec le format d’écriture naturel. L’utilisation de racourcis clavier permet de taper plus rapidement le texte. En voici quelques exemples: 


({{notation désirée, touches à taper, résultat}, {lettre grecque, EscaEsc, α}, {puissance, x Ctrl[6]3, (x^3)}, {fraction, x ⇧|Ctrl[/]3, (x/3)}, {racine carrée, Ctrl[2] x, (Sqrt[x])}, {racine n-ième, Ctrl[2] x Ctrl[5] 3, (x^(1/3))}, {indice, x Ctrl[_]3, (Subscript[x, 3])}, {indice  et exposant  superposés, x Ctrl[_]2Ctrl[5]3, (Subscript[x, 2]^3)}, {indice  et exposant décalés, x Ctrl[_]2Ctrl[␣]Ctrl[6]3, ((Subscript[x, 2])^3)}})

La combinaison de touches Ctrl[␣] (contrôle-espace) permet de sortir de la structure bidimensionnelle, afin de continuer la saisie de la suite de l’expression mathématique. La flêche gauche permet de faire de même.
Nous remarquons que le raccourci pour l’exposant avec un indice est différente de celle avec un exposant seul. En effet, si nous saisissons xCtrl[_]2Ctrl[6]3, comme nous en aurions envie, nous obtienenons (Subscript[x, (2^3)]). Le raccourci Ctrl[5] permet en fait de passer de l’indice à l’exposant ou vice-versa, ou encore du radical à l’exposant d’une n-ième racine, ou vice-versa.

Vous pouvez aussi retrouver les raccourcis en ouvrant la palette et en gardant le pointeur de la souris immobile sur le symbole qui vous intéresse.

§ 1.2	Calculs symboliques

Mathematica peut aussi travailler avec les symboles, comme en calcul algébrique.
Pour effectuer des produits et des exponentiations:

Expand[(a-2 b) (((a+b))^3)]

Pour factoriser une expression:

Factor[(x^4)-1]

Pour simplifier une expression:

Simplify[(1/(4 (-1+x)))-(1/(4 (1+x)))-(1/(2 (1+(x^2))))]

Pour réduire au dénominateur commun:

Together[(1/a)+(1/b)]

Mathematica est capable de résoudre des équations numériques et littérales ainsi que des inéquations. Avec la commande Reduce[...], le premier argument est l'équation; pour former une équation comme  (x^2)-7 x-2==0,  il faut répéter de symbole d'égalité. Le deuxième argument, ici x, désigne l'inconnue. Le troisième argument, Reals, signifie "sur l'ensemble des nombres réels":

Reduce[(x^2)-7 x-2==0,x,Reals]

Le symbole  ||  signifie "ou".

Reduce[(x^2)+1==0,x,Reals]

La réponse signifie que l'équation n'est pas vérifiée quel que soit x réel; en d'autres termes, que l'ensemble des solutions est vide.

L'équation peut aussi être littérale (attention à l’espace entre m et x; sinon Mathematica interprète l’expression mx comme une nouvelle variable):

Reduce[(x^2)+m x-2==0,x,Reals]

Reduce[(x^2)+m x-2==0,m,Reals]

Le symbole | |  signifie “ou” tandis que le symbole &&  signifie “et”.

Astuce: Au lieu de retaper chaque expression, on peut copier une expression d’un Input ou Output précédent, puis la coller à l’endroit souhaité. Pour ce faire on peut utiliser les raccourcis clavier usuels: Ctrl[c] pour copier, Ctrl[v] pour coller.

Reduce[...] permet aussi de résoudre des inéquations:

Reduce[(x^2)-1>0,x,Reals]

Si nous voulons résoudre des systèmes d'équations et d'inéquations, le premier argument sera une liste d'équation et d'inéquations:

Reduce[{(x^2)-7 x-2==0,x>0},x,Reals]

Il est aussi possible de définir des fonctions:

f[x_]:=(x^3)+8

f[10]  (* On évalue la fonction f en x=10 *)

Reduce[f[x]==0,x,Reals]  (* On calcule les zéros de la fonction f *)

Clear[f]  (* On efface la fonction qu'on a définie précédemment *)

D'autres précisions seront apportées dans la prochaine section § 2 Premiers principes.

§ 1.3	Graphiques

Voici un graphique constitué de deux lignes polygonales, la première étant fermée et la deuxième ouverte:

murs=Line[{{0,0},{0,2},{2,4},{4,2},{4,0},{0,0}}]
porte=Line[{{1.6,0.2},{1.6,1.8},{2.4,1.8},{2.4,0.2}}]
maison=Graphics[{murs,porte}]

Voici le graphique d'une fonction à une variable:

grapheFonction=Plot[(x^3)-7 x+5,{x,-4,4},PlotRange->{-5,15}]

La fonction Show[{(Subscript[graphique, 1]), (Subscript[graphique, 2]),...}] permet de combiner plusieurs graphiques:

Show[{grapheFonction,maison}]

Clear[murs, porte,maison, fonction]

Nous pouvons superposer les graphiques de deux fonctions:

Plot[{(x^2)-x-2,(1/2)x+1},{x,-4,5},
	PlotRange->{-3,7},
	AspectRatio->Automatic, ImageSize->{400,200}]

Graphique d'une courbe paramétrée (horaire d'un mobile):

x[t_]:=0.5 t
y[t_]:=30 t-10 (t^2)
ParametricPlot[{x[t],y[t]},{t,0,4},AspectRatio->.7,ImageSize->{400,200}]

Clear[x,y]

Il est possible d’ajouter manuellement des éléments au graphique: clique-droit sur le graphe puis “Drawing Tools” fait apparaître une palette graphique.

Graphique d'une fonction de deux variables:

Plot3D[-(Sqrt[Abs[1-(x^2)-(y^2)]]),{x,-1.5,1.5},{y,-1.5,1.5},
	PlotPoints->28,
	ViewPoint->{-2, -1,2}, ImageSize->{400,200}]

En faisant un clique-gauche sur un graphique en 3 dimension, il est possible de modifier l’angle de vision

Il est aussi possible de réaliser une animation, c'est-à-dire un mouvement représenté par une liste d'images (voir § 2).

§ 1.4	Programmation

Mathematica est aussi un langage de programmation. En particulier, l'utilisateur peut créer de nouvelles commandes. Voici par exemple comment nous pouvons définir une fonction calculant la moyenne arithmétique d'une liste de nombres:

moyenne[a_List]:=N[((Apply[Plus,a])/(Length[a]))]

L'instruction précédente n'a effectué aucun calcul, mais elle a défini une nouvelle commande dénommée "moyenne". Maintenant, nous pouvons utiliser cette nouvelle commande autant de fois que désiré:

moyenne[{3.7,4.3,5.2,5.6}]

moyenne[{4.75,5,4.75}]

Clear[moyenne]

Parmi les notions importantes de Mathematica, il faut mentionner les fonctions et les listes ("moyenne" est une fonction qui s'applique à une liste).

Voici un problème dont la résolution fera appel à deux fonctions:
"Déterminez graphiquement et par calcul les abscisses des points d'intersection des courbes  y=(x^3)-7 x-2  et  y=4-(x^2)."

f[x_]:=(x^3)-7 x-2
g[x_]:=4-(x^2)
Plot[{f[x],g[x]},{x,-5,5},ImageSize->{400,200}]

En lisant le graphique, nous pouvons observer que les deux courbes se coupent en trois points dont les abscisses valent approximativement  -2.8,  -0.8  et  2.6

Mathemetica peut calculer précisément les abscisses des points d'intersection :

Reduce[f[x]==g[x],x, Reals]

Dans une telle situation, nous pouvons demander la valeur numérique des solutions :

N[Reduce[f[x]==g[x],x,Reals]]

Clear[f,g,x]

§ 1.5	Suppléments ou fichiers d'extension (Packages)

L'utilisateur peut créer de nouvelles commandes et les ajouter à Mathematica. Des groupes de commandes supplémentaires peuvent être enregistrées dans des fichiers dénommés "suppléments" ou "fichiers d'extension" (ou "Packages"). L'utilisateur peut ensuite y faire appel.

§ 1.6	Aide

Mathematica inclut une documentation très détaillé incluant de nombreux exemples directement exécutables dans les pages d' aide. La commande "Find Selected Function" (menu “Help > Find Selected Function” ou directement la touche "F1") est très pratique : dans un fichier Mathematica, après avoir placé le curseur sur une instruction Mathematica, appuyez sur F1 pour afficher la page d'aide correspondante à cette instruction.

?N

Pour connaître toutes les options possibles d’une commande, on peut consulter l’aide ou appliquer la fonction Options à la commande Mathematica (par exemple Options[Plot]):

Options[Plot]

§ 1.7	Exercices

Exercice 1-1

a)	Calculez un valeur numérique approchée  (à la précision par défaut) des expressions suivantes.

(((Sqrt[3])-1)/2)
sin(72°)
((3 π)/4)

b)	Le nombre (2^103)-1  est-t-il premier ?  Indication: “premier” se dit “prime” en anglais.

Exercice 1-2

a)	Développez les expressions suivantes puis trouvez les règles qui permettent de déterminer les
	coefficients de la ligne suivante (il s'agit du triangle de Pascal) :

(((a+b))^2)
(((a+b))^3)
(((a+b))^4)
(((a+b))^5)
(((a+b))^6)

b)	Réduisez l'expression suivante au dénominateur commun

(4/(1-x))-(5/(1+x))+((3 x)/((x^2)-1))-((x^2)/((x^2)+x))+((2 x)/((x^2)-x))

c)	Résolvez l'équation suivante dans ℝ:

(4/(1-x))-(5/(1+x))+((3 x)/((x^2)-1))-((x^2)/((x^2)+x))+((2 x)/((x^2)-x))=0

d)	Résolvez l’équation suivante dans ℤ (cherchez le mot anglais pour les nombres entiers!), puis dans ℝ:

(x^3)+3(x^2)=5x+15

e)	Réduisez l’expression

(sin^2)(α)+(cos^2)(α)

Exercice 1-3

a)	Dessinez une échelle verticale comportant 5 échelons horizontaux.

Optionnel: Servez-vous de la commande Table.

b)	Résolvez graphiquement l'équation suivante, c'est-à-dire superposez dans un même repère les
	graphiques des fonctions correspondant au membre de gauche et au membre de droite. 
	Afin de faciliter la lecture, faites apparaître un quadrillage à votre graphique 
	(indication: “lignes de quadrillage” se dit “gridlines” en anglais).

((3 x)/(x-1))=(x^2)-x-6

c)	Résolvez par calcul l'équation précédente.

d)	Dessinez la trajectoire du mobile dont l'horaire est

x(t) = 4 t, 
	y(t) = 6 t - 9.8 (t^2)
	0 ≤ t ≤ 1

e) 	Pour quelle(s) valeur(s) de m, l’équation ci-dessous d’inconnue x possède-t-elle aucune solution réelle?

((m+x)/(x+1))=-(1/((x^2)+x))

§1.8	Réponses

Exercice 1-1

a)	0.366025, 0.951057, 2.35619

b)	Non

Exercice 1-2

a)	(a^2)+2 a b+(b^2)

(a^3)+3 (a^2) b+3 a (b^2)+(b^3)

(a^4)+4 (a^3) b+6 (a^2) (b^2)+4 a (b^3)+(b^4)

(a^5)+5 (a^4) b+10 (a^3) (b^2)+10 (a^2) (b^3)+5 a (b^4)+(b^5)

(a^6)+6 (a^5) b+15 (a^4) (b^2)+20 (a^3) (b^3)+15 (a^2) (b^4)+6 a (b^5)+(b^6)

b)	((3-3 x-(x^2))/((-1+x) (1+x)))

c)	S={(1/2) (-3-(Sqrt[21]));(1/2) (-3+(Sqrt[21]))}

d)	S⋂ℤ={-3},  S={-3;-(Sqrt[5]);(Sqrt[5])}

e)	1

Exercice 1-3

b)	 S ≈ {-2.5; 0.75; 2.75}

c)	 S ≈ {-2.39234; 0.674603; 3.71774}

d)

e)	Lorsque m=-2, l’équation possède une seule solution réelle. Pour m<-2 ou m>2, l’équation possède deux solutions réelles. Dans

les autres cas, c'est-à-dire lorsque m∈]-2,2], l'équation ne possède pas de solution réelle.