Les nombres
Informatique — MATLAB, chapitre 1
Sous chaque bloc, deux boutons. MATLAB Online ouvre le script dans MATLAB, depuis votre navigateur, avec un compte MathWorks gratuit. Octave Online fait de même dans GNU Octave, le clone libre de MATLAB, sans aucun compte. Copier place le code dans votre presse-papiers.
Le résultat attendu est écrit sous chaque commande. Recopiez, exécutez, comparez.
1.1 Ranger un nombre dans une variable
1.1.1 Le principe
Une variable est un nom qui retient une valeur.
x = 5x = 5
MATLAB range 5 dans x et affiche aussitôt ce qu’il a retenu. Le nom x désigne désormais la valeur 5 : partout où vous écrirez x, MATLAB lira 5.
1.1.2 Les règles à respecter
Un nom de variable ne contient que des lettres sans accent, des chiffres et le tiret bas _.
Il ne peut pas commencer par un chiffre.
2x = 5parse error:
syntax error
>>> 2x = 5
^
Écrivez x2 plutôt que 2x.
Il ne peut pas contenir d’espace.
x y = 5error: 'x' undefined
MATLAB a cru voir deux noms. Écrivez xy, ou x_y.
1.1.3 Majuscules et minuscules
MATLAB distingue les deux. x et X sont deux variables différentes.
x = 5
Xx = 5
error: 'X' undefined
X n’existe pas : seul x a été défini. C’est une source d’erreurs constante au début.
1.1.4 Empêcher l’affichage
Un point-virgule en fin de ligne effectue le calcul sans rien afficher.
a = -1
b = 3;
aa = -1
a = -1
b = 3; a bien rangé 3 dans b, mais sans l’annoncer. Indispensable dès qu’on manipule de grands tableaux : sans point-virgule, des milliers de lignes défileraient à l’écran.
1.2 Les quatre opérations
On reprend a = -1 et b = 3.
a = -1;
b = 3;
s = a + b % addition
d = a - b % soustraction
m = a * b % multiplication
r = a / b % divisions = 2
d = -4
m = -3
r = -0.33333
Le symbole % ouvre un commentaire : MATLAB ignore tout ce qui le suit sur la ligne. Il sert à s’expliquer à soi-même ce que fait le code.
t = a / 0warning: division by zero
t = -Inf
MATLAB ne s’arrête pas : il prévient, puis répond -Inf, l’infini négatif. Le calcul continue avec cette valeur, ce qui peut fausser tout ce qui suit sans que rien ne le signale. Méfiez-vous des avertissements.
1.3 Puissances, racines, valeur absolue
1.3.1 Les puissances
L’accent circonflexe ^ élève à la puissance.
a = -1;
b = 3;
a2 = a^2 % a au carre
a3 = a^3 % a au cube
ab = a^b % a puissance ba2 = 1
a3 = -1
ab = -1
1.3.2 Les racines
sqrt donne la racine carrée. Pour les autres racines, on utilise une puissance fractionnaire : la racine cubique est la puissance 1/3.
b = 3;
rcb = sqrt(b) % racine carree de b
rqb = b^(1/3) % racine cubique de brcb = 1.7321
rqb = 1.4422
a = -1;
rca = sqrt(a)rca = 0 + 1i
MATLAB ne proteste pas : il répond par un nombre complexe. Le i désigne la racine carrée de -1. Si vous voyez un i apparaître dans un résultat, c’est que votre calcul est passé par un nombre négatif sous une racine — souvent sans que vous l’ayez voulu.
1.3.3 La valeur absolue
abs supprime le signe.
abs(-1)ans = 1
ans ?
Quand vous ne rangez pas le résultat dans une variable, MATLAB le met dans ans — abréviation d’answer. Cette variable est écrasée à chaque calcul : n’y comptez pas pour conserver quoi que ce soit.
1.4 Exponentielle et logarithmes
b = 3;
exp(b) % exponentielle
log(b) % logarithme naturel (base e)
log10(b) % logarithme decimal (base 10)
log2(b) % logarithme binaire (base 2)ans = 20.086
ans = 1.0986
ans = 0.47712
ans = 1.5850
log n’est pas le logarithme décimal
En MATLAB comme dans presque tous les langages, log désigne le logarithme naturel, de base e. Le logarithme décimal, celui des tables et des calculatrices de lycée, s’écrit log10.
Confondre les deux est une erreur classique, et elle passe inaperçue : les deux fonctions renvoient un nombre parfaitement plausible.
1.5 Trigonométrie
Les angles s’expriment en radians, jamais en degrés.
x = 1;
sin(x) % sinus
cos(x) % cosinus
tan(x) % tangente
cot(x) % cotangenteans = 0.84147
ans = 0.54030
ans = 1.5574
ans = 0.64209
Pour convertir des degrés en radians, multipliez par \pi/180. MATLAB propose aussi sind, cosd et tand, qui acceptent directement les degrés.
1.6 Les constantes
Deux constantes sont prédéfinies.
pi % rapport de la circonference au diametre
e % base du logarithme naturelans = 3.1416
ans = 2.7183
pi et e sont des noms comme les autres : rien n’empêche d’écrire pi = 4. MATLAB obéira, et tous vos calculs suivants seront faux, sans le moindre avertissement.
Évitez donc e comme nom de variable — c’est un réflexe tentant, et un piège.
1.7 Affichage et précision
MATLAB affiche cinq chiffres significatifs par défaut. Il en calcule bien davantage.
format short
pi
format long
pi
format short % on revient a l'affichage normalans = 3.1416
ans = 3.14159265358979
format long ne change que l’affichage : la précision interne du calcul reste la même dans les deux cas.
À vous
Rangez 7 dans u et 2 dans v, puis calculez leur somme, leur quotient, u puissance v, et la racine carrée de u.
u = 7;
v = 2;
% a completersomme = u + v
quotient = u / v
puiss = u^v
racine = sqrt(u)somme = 9
quotient = 3.5000
puiss = 49
racine = 2.6458
Ce qu’il faut retenir
| Écriture | Effet |
|---|---|
x = 5 |
ranger 5 dans x |
; en fin de ligne |
calculer sans afficher |
% |
commentaire, ignoré par MATLAB |
+ - * / |
les quatre opérations |
^ |
puissance |
sqrt(x), abs(x) |
racine carrée, valeur absolue |
exp(x), log(x), log10(x) |
exponentielle, logarithme naturel, décimal |
sin, cos, tan |
trigonométrie, en radians |
pi, e |
constantes prédéfinies |
ans |
dernier résultat non rangé |
Le chapitre suivant passe du nombre isolé à la matrice. C’est le cœur du logiciel : son nom vient de MATrix LABoratory.