Introduction à MATLAB Nom: MATLAB signifie MATrix LABoratory. Objectif: Accès facile aux logiciels matriciels développés par LINPACK et EISPACK. Caractéristiques: Langage de haute performance pour le calcul technique. Intègre le calcul, la visualisation et l'environnement de programmation. Possède des structures de données sophistiquées, des outils d'édition et de débogage intégrés. Supporte la programmation orientée objet. Éléments de base: Les matrices sont les éléments fondamentaux de l'environnement MATLAB. Session MATLAB Minimale Démarrage: Double-cliquez sur l'icône de raccourci MATLAB sur le bureau. Fenêtres principales du bureau MATLAB: COMMAND WINDOW COMMAND HISTORY WORKSPACE CURRENT DIRECTORY HELP BROWSER START button Utilisation comme calculatrice: Entrez des expressions à l'invite ( >> ). Exemple: >> 1+2*3 donnera ans = 7 . Si aucune variable de sortie n'est spécifiée, MATLAB utilise la variable par défaut ans . Quitter MATLAB: Tapez quit dans la fenêtre de commande, ou sélectionnez File → Exit MATLAB . Opérateurs Arithmétiques de Base Symbole Opération Exemple + Addition 2+3 - Soustraction 2-3 * Multiplication 2*3 / Division 2/3 Création de Variables MATLAB Les variables sont créées avec une instruction d'affectation: nom_variable = valeur_ou_expression . Exemple: >> x = 1+2*3 Suppression de l'affichage: Ajoutez un point-virgule ( ; ) à la fin de la ligne pour supprimer l'affichage du résultat. Surcharge de variable: Les variables peuvent être réaffectées. Messages d'erreur: MATLAB renvoie un message d'erreur pour les expressions incorrectes. Corrections: Utilisez la touche flèche haut ( ↑ ) pour rappeler les commandes précédentes et les modifier. Hiérarchie des Opérations (Précédence) L'ordre suit les règles de l'algèbre: Exponentiations, multiplications/divisions, additions/soustractions. Les parenthèses () peuvent toujours être utilisées pour outrepasser la priorité. Précédence Opérations Mathématiques Première Contenu des parenthèses, de l'intérieur vers l'extérieur. Deuxième Toutes les exponentiations, de gauche à droite. Troisième Toutes les multiplications et divisions, de gauche à droite. Quatrième Toutes les additions et soustractions, de gauche à droite. Contrôle de l'Apparence des Nombres Flottants Format par défaut: Affiche 4 décimales. format short : Affiche 4 décimales (par ex., -163.6667 ). format long : Affiche 15 décimales (par ex., -1.636666666666667e+002 ). format : Revient au format standard ( short ). Gestion de l'Espace de Travail clear ou clear all : Supprime toutes les variables de l'espace de travail. who : Affiche une liste des variables en mémoire. whos : Donne plus de détails (taille, allocation d'espace, classe) sur les variables. Suivi de Session de Travail diary : Commence l'enregistrement de la session dans un fichier par défaut ( diary ). diary FileName : Enregistre la session dans le fichier spécifié. diary off : Arrête l'enregistrement. diary on : Reprend l'enregistrement. Entrée de Plusieurs Instructions par Ligne Utilisez des virgules ( , ) ou des points-virgules ( ; ) pour plusieurs instructions sur une seule ligne. Les virgules ( , ) affichent la sortie, les points-virgules ( ; ) la suppriment. Commandes Diverses clc : Efface la fenêtre de commande. ctrl-c : Annule un calcul MATLAB. ... (points de suspension): Continue une ligne sur la ligne suivante. Obtention d'Aide help Command : Affiche l'aide en ligne pour une commande exacte. lookfor FunctionName : Recherche des fonctions par mots-clés. doc plot : Ouvre la documentation en ligne pour une commande complexe. Fonctions Mathématiques MATLAB inclut de nombreuses fonctions mathématiques prédéfinies (fonctions intégrées). Exemples: sin(x) , cos(x) , tan(x) , exp(x) , log(x) , log10(x) . Constantes prédéfinies: pi , i (ou j ), Inf , NaN . Fonction Description Fonction Description cos(x) Cosinus abs(x) Valeur absolue sin(x) Sinus sign(x) Fonction signum tan(x) Tangente max(x) Valeur maximale acos(x) Arc cosinus min(x) Valeur minimale asin(x) Arc sinus ceil(x) Arrondi vers $+\infty$ atan(x) Arc tangente floor(x) Arrondi vers $-\infty$ exp(x) Exponentiel round(x) Arrondi à l'entier le plus proche sqrt(x) Racine carrée rem(x) Reste après division log(x) Logarithme naturel angle(x) Angle de phase log10(x) Logarithme décimal conj(x) Conjugué complexe Tracés de Base (Plotting) Tracé simple: plot(x,y) connecte les points $(x_i, y_i)$ par des lignes droites. plot(y) : Trace les éléments de $y$ en fonction de leur indice. Exemple: >> x = [1 2 3 4 5 6]; >> y = [3 -1 2 4 5 1]; >> plot(x,y) Génération de vecteurs pour le tracé: x = 0:pi/100:2*pi; (commence à 0, pas de $\pi/100$, s'arrête à $2\pi$). Ajout de titres et d'étiquettes d'axe: xlabel('x = 0:2\pi') ylabel('Sine of x') title('Plot of the Sine function') Couleur: plot(x,y,'r') pour une ligne rouge. Plusieurs jeux de données sur un même tracé: Fournissez plusieurs paires $(x, y)$ à plot . Styles de ligne et couleurs: plot(x,y,'style_color_marker') . Symbole Couleur Symbole Style de Ligne Symbole Marqueur k Black - Solid + Plus sign r Red -- Dashed o Circle b Blue : Dotted * Asterisk g Green -. Dash-dot . Point c Cyan none No line x Cross m Magenta s Square y Yellow d Diamond Génération de Matrices Entrée d'un vecteur: Vecteur ligne: v = [1 4 7 10 13] Vecteur colonne: w = [1;4;7;10;13] Transpose: w = v' Accès aux éléments: v(1) pour le premier élément. Notation deux-points ( : ): v(1:3) : Accède aux trois premiers éléments. v(3:end) : Accède du troisième au dernier élément. v(:) : Produit un vecteur colonne. v(1:end) : Produit un vecteur ligne. Entrée d'une matrice: Commencez par [ . Séparez les éléments d'une ligne par des espaces ou des virgules. Utilisez un point-virgule ( ; ) pour séparer les lignes. Terminez par ] . Exemple: A = [1 2 3; 4 5 6; 7 8 9] Indexation de matrice: A(i,j) pour l'élément de la ligne $i$ et de la colonne $j$. Modification d'éléments: A(3,3) = 0 . Opérateur deux-points dans une matrice: A(2,:) : Éléments de la deuxième ligne. A(:,2:3) : Sous-matrice des deux dernières colonnes. A(:,j) : $j$-ième colonne de $A$. A(i,:) : $i$-ième ligne de $A$. A(end,:) : Dernière ligne de $A$. Suppression de ligne/colonne: Affectez-la à un vecteur vide [] (ex: A(3,:)=[] ). Dimension: size(A) renvoie [m, n] (lignes, colonnes). Continuation: Utilisez ... pour continuer une entrée sur la ligne suivante. Transposition: A' (transpose une matrice). Concaténation de matrices: B = [A 10*A; -A [1 0 0; 0 1 0; 0 0 1]] . Générateurs de Matrices Commande Description eye(m,n) Matrice identité $m \times n$. eye(n) Matrice identité carrée $n \times n$. zeros(m,n) Matrice de zéros $m \times n$. ones(m,n) Matrice de uns $m \times n$. diag(A) Extrait la diagonale de la matrice $A$. rand(m,n) Matrice de nombres aléatoires $m \times n$. Matrices Spéciales Commande Description hilb Matrice de Hilbert invhilb Matrice de Hilbert inverse magic Carré magique pascal Matrice de Pascal toeplitz Matrice de Toeplitz vander Matrice de Vandermonde wilkinson Matrice de test d'autovalue de Wilkinson Opérations sur les Tableaux (Array) et Équations Linéaires Opérations arithmétiques matricielles: A+B , A-B : Addition/Soustraction (mêmes dimensions). A*B : Multiplication matricielle (compatible en dimensions). A^2 : Puissance matricielle (matrice carrée). a*A : Multiplication scalaire. Opérations arithmétiques sur les tableaux (élément par élément): Utilisez un point ( . ) avant l'opérateur. Opérateur Description .* Multiplication élément par élément ./ Division élément par élément .^ Exponentiation élément par élément Résolution d'Équations Linéaires Système: $Ax = b$ Méthode 1: Inverse matricielle x = inv(A)*b Méthode 2: Opérateur "backslash" (division matricielle gauche) x = A\b (plus efficace numériquement, utilise l'élimination de Gauss). Inverse matricielle: inv(A) Déterminant: det(A) Commande Description det Déterminant diag Matrices diagonales et diagonales d'une matrice eig Valeurs propres et vecteurs propres inv Inverse matricielle norm Normes de matrice et de vecteur rank Nombre de lignes ou colonnes linéairement indépendantes Introduction à la Programmation en MATLAB Fichiers M (Scripts): Fichiers externes contenant une séquence d'instructions MATLAB (extension .m ). Création: File → New → M-file ou tapez edit . Exécution: Tapez le nom du fichier (ex: example1 ) dans la fenêtre de commande. Effets secondaires des scripts: Les variables sont ajoutées à l'espace de travail, pouvant écraser des variables existantes. Fonctions M: Programmmes qui acceptent des arguments d'entrée et renvoient des arguments de sortie. Structure d'une fonction M-file: function [sorties] = nom_fonction(entrées) Ligne H1 (résumé). Texte d'aide (description détaillée). Corps de la fonction (code). Arguments d'entrée et de sortie: Entrées entre parenthèses après le nom de la fonction. Sorties entre crochets à gauche de l'affectation. Entrée dans un fichier script: Utilisez input('Message') pour demander une valeur à l'utilisateur. Commandes de sortie: disp : Simple, contrôle limité de l'apparence. fprintf : Plus complexe, contrôle total de l'apparence. Sauvegarde de la sortie dans un fichier: fopen('filename','wt') : Ouvre un fichier en mode écriture. fprintf(fid, 'format', variables) : Écrit la sortie. fclose(fid) : Ferme le fichier. Flux de Contrôle et Opérateurs Structures de flux de contrôle: if , for , while , switch . Structure if...end : if condition ... end if condition ... else ... end if condition ... elseif ... else ... end Opérateurs relationnels et logiques: Opérateur Description > Supérieur à < Inférieur à >= Supérieur ou égal à <= Inférieur ou égal à == Égal à ~= Différent de & Opérateur AND élément par élément | Opérateur OR élément par élément ~ Opérateur NOT Boucle for...end : Répète l'exécution un nombre déterminé de fois. Syntaxe: for variable = expression ... end Boucle while...end : Répète l'exécution tant qu'une condition est vraie. Syntaxe: while expression ... end Autres structures de flux: break : Termine une boucle for ou while . continue : Passe à l'itération suivante de la boucle. return , switch , etc. Précédence des opérateurs: L'ordre d'évaluation suit des règles spécifiques (voir documentation MATLAB). Débogage des Fichiers M Types d'erreurs: Erreurs de syntaxe: parenthèses manquantes, noms de fonction mal orthographiés. Erreurs d'exécution: produisent des résultats inattendus. Processus de débogage: Préparation: Ouvrez et enregistrez le fichier, assurez-vous qu'il est dans le chemin de recherche. Points d'arrêt (breakpoints): Standard: Arrête à une ligne spécifiée. Conditionnel: Arrête à une ligne spécifiée sous certaines conditions. Erreur: Arrête en cas d'avertissement, d'erreur, de NaN ou de valeur infinie spécifiés. Exécution avec points d'arrêt: Le programme s'interrompt au premier point d'arrêt, l'invite change en K> . Examen des valeurs: Visualisez les valeurs des variables dans l'espace de travail. Correction et fin du débogage: Modifiez les valeurs des variables pour tester, quittez le mode débogage. Correction d'un fichier M: Quittez le débogage, apportez les modifications, enregistrez, effacez les points d'arrêt, réexécutez.