# Découvrir Matlab/Version imprimable

* Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
* Cliquez sur Rafraîchir cette page pour obtenir la dernière version du wikilivre.
* Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l'article Versions imprimables.
Une version à jour et éditable de ce livre est disponible sur Wikilivres, une bibliothèque de livres pédagogiques, à l'URL : https://fr.wikibooks.org/wiki/D%C3%A9couvrir_Matlab

# Interface

Table des matières — Index
1. Interface utilisateur

## Saisie des commandes et affichage numérique

Matlab est un logiciel qui s'utilise en ligne de commande. L'écran comprend d'une zone de saisie dans laquelle on va taper des commandes.
L’invite de la ligne de commande (prompt) est constitué d’un double chevron « flèche » : deux tirets et un signe supérieur >>. L’instruction est tapée puis validée avec la touche de retour chariot ([↵], [Enter] ou [Return]). Le résultat est affiché à la suite, sauf si la ligne se termine par un point-virgule auquel cas le résultat est caché.

### Par exemple

* sans point-virgule
* avec points-virgules
Lorsque l'on écrit une ligne, on peut utiliser les touches classiques d'édition (variable selon le système et le type du clavier) :
* [→] : avancer d'une lettre ;
* [←] : reculer d'une lettre ;
* touches de suppression ([Del], [Suppr], [$\longleftarrow$]) ;
* touche de retour chariot [↵], [Enter] ou [Return] : validation et exécution de la commande ;
* [↑] et [↓] : permettent de faire défiler les commandes tapées précédemment (historique des commandes).
L'endroit où se place le caractère (lettre, chiffre, signe…) tapé est signalé par le curseur, un trait de soulignement clignotant (Windows XP). L'édition se fait en insertion, c'est-à-dire que si le curseur est au milieu d'une ligne, les caractères suivants sont décalés d'une position à droite lorsque l'on entre un caractère.
On peut, si on le désire, fractionner l'édition sur plusieurs ligne. Pour cela, il faut terminer la ligne par trois points « ... ».

### Exemple

Ceci est bien sûr plutôt intéressant lorsque la ligne à taper est longue.
À l'inverse, on peut mettre plusieurs instructions sur un même ligne en les séparant d'une virgule, ou bien d'un point-virgule si l'on ne veut pas que le résultat soit affiché.

### Note

    Par la suite, le retour chariot [↵] sera omis, un retour à la ligne après une ligne commençant par l'invite --> l'indiquera implicitement.

## Chaînes de caractère

Par défaut, une suite de caractères est interprété comme une commande ou comme une variable. Pour indiquer que c'est une chaîne de caractères, il faut la mettre entre apostrophes « ' » (quote).
Lorsque la chaîne doit contenir une apostrophe, on redouble l'apostrophe. De même, lorsque la chaîne doit contenir des guillemets, on redouble ces guillemets.

### Exemple

Les chaînes de caractères sont utilisées pour définir certains paramètres de fonctions, ou bien pour afficher des étiquettes et légendes sur les graphiques.

## Affichage graphique

L'affichage graphique (tracé d'une courbe, dessin…) se fait dans une fenêtre dédiée que nous appelerons « fenêtre graphique ». Cette fenêtre s'affiche automatiquement dès la première instruction graphique. Par exemple, taper clf puis valider : cela affiche une fenêtre graphique vide.

## Aide en ligne

Matlab dispose d'une aide en ligne. Pour cela, taper help.
Cela affiche une liste de thèmes suivi de la liste de scommandes. Il suffit de cliquer dessus pour que le contenu de l'aide s'affiche dans la fenêtre de commande.
Lorsque l'on clique sur le bouton Help (?), cela affiche un navigateur d'aide qui s'utilise comme un navigateur Internet.
À gauche de l'invite de commande >>, un bouton Browse for functions [fx] permet d'avoir la description des fonctions.

## Fermer le programme

Matlab peut être fermé de la manière habituelle selon les systèmes d'exploitation : en général bouton en forme de croix ou menu File | Exit MATLAB. On peut aussi
* taper exit en ligne de commande ;
* lorsque l'on est dans l'environnement initial, on peut également taper quit (voir aussi Environnement).

## Notes

Introduction < ↑ > Calculs élémentaires

# Calculs élémentaires

Table des matières — Index
2. Calculs élémentaires
Matlab peut s'utiliser comme une calculatrice scientifique, de type calculatrice graphique. Il suffit de taper une formule dans une syntaxe relativement standard, et d'appuyer sur le retour chariot pour avoir le résultat.

## Opérateurs et fonctions classiques

Matlab utilise les fonctions et opérateurs classiques :
* + (addition), - (soustraction), * (produit), / (division), ^ ou ** (élévation à une puissance),
* sqrt (racine carrée),
* cos, sin, tan pour les fonctions trigonométriques de base, acos, asin, atan pour leurs réciproques, cotg pour la cotangente ;
* les fonctions trigonométriques hyperboliques cosh, sinh, tanh, acosh, asinh, atanh
* log pour le logarithme népérien (ln), log10 pour le logarithme en base 10 (log$_{10}$), log2 pour le logarithme en base 2 (log$_2$),
* exp pour la fonction exponentielle,
* floor pour la partie entière (arrondi vers -∞), ceil pour l'arrondi au supérieur (arrondi vers +∞), fix pour la troncature (arrondit à l'entier vers 0, différent de floor pour les nombres négatifs), round pour l’arrondi au plus proche (0,5 → 1), abs pour la valeur absolue,
* erf pour la fonction d'erreur de Gauss,
* rand pour avoir un nombre aléatoire entre 0 et 1, suivant une loi uniforme ; randn pour avoir un nombre aléatoire suivant une loi normale centrée réduite (moyenne 0, variance 1) ;
* la factorielle de n peut s'obtenir par prod(1:n) ou bien par gamma(n+1) ;
Le séparateur décimal est le point.
Les puissances de 10 se notent avec la lettre « e » en minuscule ou en capitale : 5,2·10$^3$ s'écrit 5.2e3 ou 5.2E3, 5,2·10$^{-3}$ s'écrit 5.2e-3 ou 5.2E-3. On peut aussi utiliser le « d » minuscule ou capital.
Par défaut, Matlab affiche les résultats avec quatre décimales. On peut modifier le nombre de caractères avec la fonction format :
* format short : valeur par défaut, notation fixe à 4 décimales ;
* format long : notation fixe à 7 décimales pour un réel simple, 14 ou 15 décimales pour un réel double ;
* format short e, format long e : notation scientifique exponentielle à virgule flottante ;
* format short g, format long g : choisit « le mieux » entre notation fixe et notation exponantielle à virgule flottante ;
* format short eng, format long eng : notation ingénieur exponentielle (puissances de 10 multiples de 3) ;
Mentionnons également la fonction clear qui permet d'effacer toutes les variables (dont les fonctions définies par l'utilisateur). Cela peut être utile lorsque l'on a procédé par essai-erreur et que l'on veut remettre les « compteurs à zéro ».

### Vocabulaire

    Dans Matlab, une « fonction interne » est une fonction prédéfinie. Par opposition, les fonctions définies par l'utilisateur sont appelées « fonctions extérieures ».

## Constantes particulières

Pour entrer l’imaginaire i, il faut utiliser i ou j ; il figure simplement sous la forme « 0 + 1.0000i » dans les résultats.
Pour entrer l’infini ∞, il faut utiliser Inf ; il figure simplement sous la forme « Inf » dans les résultats.
La valeur de π s’obtient par pi.
Lorsqu'une opération invalide se produit, certains programmes retournent un nombre particulier appelé « NaN » pour not a number (littéralement « ceci n'est pas un nombre »). Dans Matlab, cette valeur est obtenue par nan et s'affiche sous la forme NaN.

## Variables

On peut définir des variables simplement sous la forme NomVariable=valeur. NomVariable est une chaîne de caractères commençant par une lettre ; Matlab est sensible à la casse, c'est-à-dire que les variables « a » et « A » sont deux variables différentes. Le type de la variable (entier, réel, imaginaire) est géré automatiquement.
La variable ans contient le dernier résultat (pour answer, « réponse » en anglais).
La fonction who affiche les variables déclarées (who? signifie « qui ? » en anglais).

## Exemples
### Exemple 1

    (puisque sin(45°) = √2/2)

### Exemple 3

    calcul de la pression, en Pa, de 2,5 moles de gaz parfait dans un volume de un litre (10$^{-3}$ m$^3$) à une température de 300 K (26,85 °C)
    soit environ 6,2·10$^6$ Pa.

## Booléens

Lorsque l’on assigne une valeur booléenne, on utilise true pour « vrai » et false pour « faux ». Le résultat de l’opération affiché est respectivement 1 ou 0.
L’opérateur ou est noté « | » (tube), et est noté « & » (esperluette), non est noté « ~ » (tilde).

### Exemple

On peut aussi utiliser les fonctions or(A,B), and(A,B) et not(A), par exemple
Un booléen peut également s’obtenir en comparant deux valeurs, avec les relations d’égalité == et de différence ~= ou ~=, et les relations d'ordre <, <=, > et >=.

### Exemple
## Polynômes et fractions rationnelles

Matlab manipule les polynômes et fractions rationnelles formels, c'est-à-dire non pas en tant que fonction, mais en tant qu'objets mathématiques, éléments du corps des polynômes ou des fractions rationnelles.
Pour Matlab, un polynôme est simplement un vecteur contenant les coefficients par ordre de puissance décroissant ; ce sont les fonctions utilisées qui sont spécifiques.

### Exemple de définition de polynôme

pour le polynôme p(x ) = 1·x$^2$ + 2·x + 3.
Il n'y a pas de manière spécifique de représenter une fraction rationnelle. Lorsqu'une fonction manipule la fraction rationnelle p/q, elle s'applique sur la paire de vecteurs (p,q).

### Fonctions spécifiques aux polynômes

La fonction polyval(p,a) donne la valeur de p(a )

#### Exemple

car 1·5$^2$ + 2·5 + 1 = 36.
La fonction poly([a b c]) crée un polynôme dont les racines sont a, b et c.

#### Exemple

c'est-à-dire le polynôme (x - 0) = 1·x + 0.
c'est-à-dire le polynôme (x - 1)·(x - 2) = 1·x$^2$ - 3·x + 2.
La fonction roots(p) donne les racines du polynôme p.

#### Exemple

car 1·x$^3$ + 5·x$^2$ + 6·x + 4 ≈ (x - 3,6590)·(x - 0,6705 + 0,8023i )·(x - 0,6705 - 0,8023i ).
La multiplication formelle de deux polynômes se fait en utilisant la fonctiond econvolution, conv.

#### Exemple

car (x + 1)·(x - 1) = 1·x$^2$ + 0·x - 1.
La fonction polyder(p) fait la dérivation formelle du polynôme ; polyder(p,q) fait la dérivée de p×q.

#### Exemple

car (1·x$^2$ + 2·x + 1)' = 2·x + 2.

### Fonctions spécifiques aux fractions rationnelles

La fonction de déconvolution, deconv, fait la division euclidienne formelle de deux polynômes sous la forme d'un polynôme quotient et d'un polynôme reste.

#### Exemples

car (x + 1) = (1)×(x - 1) + (2).
car 1·x$^2$ + 1·x + 1 = (x + 2)×(x - 1) + (0·x$^2$ + 0·x + 3).
La fonction residue fait la décomposition en éléments simples d'une fraction rationnelle, sous la forme
    ${\frac {p}{q}}={\frac {r_{1}}{x-p_{1}}}+{\frac {r_{2}}{x-p_{2}}}+\dots +{\frac {r_{n}}{x-p_{n}}}+k$,
avec
* r$_i$ : résidu ;
* p$_i$ : pôle ;
* k : terme direct (polynôme).
Par exemple :
car ${\frac {1}{x^{2}-1}}=-{\frac {1/2}{x+1}}+{\frac {1/2}{x-1}}={\frac {-0,5}{x-(-1)}}+{\frac {0,5}{x-1}}$.
La fonction polyder fait également la dérivation formelle de fractions rationnelles, à condition qu'on lui assigne un « vecteur de vecteur ».

#### Exemple

car $\left({\frac {x^{2}+x+1}{x-1}}\right)'={\frac {x^{2}-2x-2}{x^{2}-2x+1}}$.

## Chaînes de caractère

Pour Matlab, un caractère est un nombre, le code Unicode du caractère. Une chaîne de caractères est un vecteur ligne contenant les code Unicode. Par exemple :
Ici, Matlab fait la somme des codes du a et du b, respectivement 97 et 98.
La fonction unit8 donne le code Unicode du caractère, ou des caractères de la chaîne.

### Exemple

La fonction char permet à l'inverse de transformer un entier en un caractère, ou un vecteur ligne en une chaîne de caractères.

### Exemple

La concaténation de deux chaînes de caractère se fait simplement en metant les deux chaînes dans un vecteur ligne :
On peut aussi utiliser la fonction strcat(a,' world').
La fonction eval permet de transformer une chaîne en une expression Matlab (on parle « d'évaluation de la chaîne ») et de l'exécuter.

### Exemple

    la chaîne [b c] est 'x=5', cette chaîne est exécutée, ce qui signifie que la valeur 5 est attribuée à la variable x, ce que confirme le calcul fait par la suite.
La fonction char permet à l'inverse de transformer un entier en un caractère, ou un vecteur ligne en une chaîne de caractères.

### Exemple

Ceci est utile pour « fabriquer » des chaînes de caractère.

## Matrices

Matlab a été conçu pour le calcul matriciel. Les éléments des matrices peuvent être de tout type (nombre réel, nombre complexe, booléen, polynôme, fraction rationnelle, chaîne de caractères…).

### Définir une matrice

Pour définir une matrice à partir de ses coefficients, on les place entre deux crochets […]. Les éléments d’une ligne sont séparés d’un espace ou d’une virgule, les lignes sont séparées d’un point-virgule. À l’affichage, la matrice est représentée comme un tableau encadré par des points d’exclamation.

#### Exemple

La matrice vide est notée par.
L’expression M(i,j) désigne l’élément (i, j) de la matrice M.
Le caractère : (deux-points) signifie « tous les indices », par exemple M(1, :) est la première ligne de la matrice (c’est un vecteur ligne).
L’expression N1:N2 permet de générer une matrice-ligne dont le premier coefficient est N1, le dernier est inférieur ou égal à N2, et le pas entre les coefficients est 1. L’expression N1:pas:N2 permet de générer une matrice-ligne en choisissant le pas. Par exemple
On peut aussi utiliser la fonction
    linspace(x1, x2, n)
pour générer une matrice ligne de n valeurs espacées régulièrement entre x1 et x2.
La fonction zeros(m,n) crée une matrice m×n remplie de 0 ; la fonction ones(m,n) crée une matrice m×n remplie de 1. La fonction eye(n,n) crée une matrice unité n×n.

### Fonctions et opérateurs sur les matrices

Toutes les fonctions numériques s’appliquent à des matrices ; par exemple si M est une matrice, alors cos(M) sera la matrice dont les coefficients sont les cosinus des coefficients de M.
La fonction size(M) renvoie la taille de la matrice sous la forme d’une matrice 1×2 contenant le nombre de lignes puis le nombre de colonnes.
Les opérations spécifiques aux matrices classiques sont :
* la transposition : il suffit de mettre une apostrophe ’ après la matrice ;
* le produit de matrices : * ;
* produit et rapport élément par élément : .* et ./ ;
* le produit tensoriel de Kronecker kron ;
* le déterminant d’une matrice carrée M : det(M) ;
* la trace d’une matrice carrée M : trace(M) ;
* l’inverse d’une matrice inversible M : inv(M) ;
* la somme des éléments de la matrice colonne par colonne : sum(M) (donne un vecteur ligne) ; sum(sum(M)) donne la somme de tous les éléments de M ;
* le produit des éléments de la matrice colonne par colonne : prod(M) (donne un vecteur ligne) ; prod(prod(M)) donne la somme de tous les éléments de M.
La fonction max(M) renvoie la plus grand élément de chaque colonne de la matrice, et la fonction min(M) renvoie le plus petit. Les commandes max(max(M)) et min(min(M)) renvoient respectivement l eplus grand et le plus petit élément de la matrice.
Si l'on tape [m,k]=max(A), alors Matlab met les valeurs des maxima des colonnes dans le vecteur variable m, et l'indice de leur ligne dans la variable k — on peut utiliser d'autres noms de variable que m et k. De même pour [m,k]=min(A).

### Vecteur

Un vecteur est une matrice ligne ou colonne (matrice 1 × n ou n × 1) ; l’expression V(i) désigne la composante i du vecteur V.
Si l'on veut avoir la taille d'un vecteur v (ligne ou colonne) sous la forme d'un entier, on peut utiliser
    max(size(v)) ou bien size(v,'*')
Si V1 et V2 sont des vecteurs colonnes, alors le produit scalaire est
    V1' * V2 ;
si ce sont des vecteurs lignes, le produit scalaire est
    V1 * V2'.

### Importance des matrices dans Matlab

Les matrices sont très utilisées dans Matlab pour définir les paramètres. Ainsi, pour tracer une courbe, il utilise un nuage de point sous forme de matrice, ou encore, pour effectuer une boucle itérative, il prend les indices dans une matrice ligne ou colonne.
La syntaxe propre aux matrices va donc se retrouver dans de nombreux endroits.

## Voir aussi
### Dans Wikipédia

* Algèbre booléenne
** Opérateur logique
* American Standard Code for Information Interchange (ASCII)
* Concaténation
* Fraction rationnelle
* IEEE 754
* Matrice
** Calcul matriciel
** Déterminant
** Matrice inversible
** Matrice unité
** Produit tensoriel
** Trace
* NaN
* Polynôme
** Fonction polynôme
* Relation d'ordre
* Vecteur
** Produit scalaire
** Vecteur colonne
** Vecteur ligne

## Notes

* ↑ la documentation utilise le terme de « primitive » ; il y a une ambiguité en français que nous avons décidé de lever dans le présent ouvrage en changeant le terme (en anglais, le problème ne se pose pas puisque la primitive d'une fonction est appelée « antiderivative »)
* ↑ dans la représentation des nombres à virgule flottante IEEE 754, un NaN est un nombre dont l'exposant ne contient que des 1 et la mantisse n'est pas nulle
Interface < ↑ > Calcul numérique