Initiation à MATLAB. Pierre FRANCOIS. CNAM - Fabrications Mécaniques INGENIEURS 2000 - ESCPI & UMLV. Déc.1996 - révisions: Sep.



Documents pareils
MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Introduction à MATLAB R

Calcul Formel et Numérique, Partie I

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Calcul Formel et Numérique, Partie I

3.2. Matlab/Simulink Généralités

Séance 0 : Linux + Octave : le compromis idéal

INTRODUCTION. Introduction (2) Espace de travail. Fonctionnement. le Workspace (1) Mode interactif : Mode programme : Type de variables :

TP 0 : INTRODUCTION À MATLAB

Cours 7 : Utilisation de modules sous python

Une chaîne de caractères est toute suite de caractères placés entre guillemets.

TP 1 Introduction à Matlab Février 2009

Aide - mémoire gnuplot 4.0

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

Initiation à LabView : Les exemples d applications :


Automatique des systèmes linéaires continus

Notes introductives à Matlab

Algorithmique et Programmation, IMA

Python - introduction à la programmation et calcul scientifique

Introduction à la présentation graphique avec xmgrace

Note de cours. Introduction à Excel 2007

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Initiation à la programmation en Python

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Projet Matlab : un logiciel de cryptage

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

L informatique en BCPST

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Bases de programmation. Cours 5. Structurer les données

EXCEL TUTORIEL 2012/2013

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Du bon usage de gnuplot

Introduction à MATLAB Simulink Control toolbox

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

INF 321 : mémento de la syntaxe de Java

LES TYPES DE DONNÉES DU LANGAGE PASCAL

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

EXCEL PERFECTIONNEMENT CALCULS AVANCES

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Introduction à Matlab

Licence Sciences et Technologies Examen janvier 2010

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne


1. Structure d'un programme FORTRAN 95

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Logiciel. Table de matières I Environnement requis...2

Plan du cours Cours théoriques. 29 septembre 2014

Les chaînes de caractères

Cours d Analyse. Fonctions de plusieurs variables

Chapitre 0 Introduction à la cinématique

STAGE IREM 0- Premiers pas en Python

1 Recherche en table par balayage

Codage d information. Codage d information : -Définition-

Présentation du langage et premières fonctions

Cours d algorithmique pour la classe de 2nde

TP 1. Prise en main du langage Python

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

Hiver 2013 IMN 259. Introduction à l analyse d images. Par Pierre-Marc Jodoin

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Traceur de courbes planes

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Logiciel de Base. I. Représentation des nombres

VOS PREMIERS PAS AVEC TRACENPOCHE

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

FEN FICHE EMPLOIS NUISANCES

Business Intelligence

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

Initiation à la programmation OEF pour Wims (exercices).

Les algorithmes de base du graphisme

Fonctions de plusieurs variables

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Annexe commune aux séries ES, L et S : boîtes et quantiles

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Débuter avec Excel. Excel

Conventions d écriture et outils de mise au point

TD3: tableaux avancées, première classe et chaînes

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

GUIDE Excel (version débutante) Version 2013

Chap III : Les tableaux

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1. Introduction Création d'une requête...2

Rappels sur les suites - Algorithme

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Chapitre 2 Le problème de l unicité des solutions

Formats d images. 1 Introduction

Banque d images SVT. Créer et utiliser une banque d images avec Picasa 2. Version anglaise -Windows 98. Banque photo en SVT : page 1 /14

TP Blender n 2 : Importation d un modèle SketchUp et animation

Assistant d e tablissement de Tableaux

Transcription:

Initiation à MATLAB Pierre FRANCOIS CNAM - Fabrications Mécaniques INGENIEURS 2000 - ESCPI & UMLV Déc.1996 - révisions: Sep.98, Aout 99

Avant propos Ce document s adresse à mes étudiants du CNAM et de la formation INGENIEURS 2000. Je l ai écrit pour les aider à se familiariser avec le logiciel de calcul que j utilise pour les travaux dirigés et les manipulations de mes différents cours. Mes collègues et moi même avons choisi MATLAB pour sa facilité de mise en oeuvre, l étendue de ses possibilités de calcul matriciel, et la richesse des représentations graphiques. MATLAB est un outil perfectionné qui apporte une assistance très complète pour l analyse numérique, la simulation de systèmes complexes, et chaque fois que la représentation graphique de données est indispensable. Il a trouvé sa place dans le secteur universitaire pour l enseignement et la recherche ainsi que dans le secteur industriel pour la simulation et le recalage modèle / expérience. Des fonctions spécifiques sont développées en permanence par ses utilisateurs. Elles sont regroupées dans des boîtes à outils destinées à des domaines très variés. Pour mes étudiants qui seraient séduits par le logiciel, je signale qu il existe une version étudiant plus simple que le logiciel professionnel mais mieux adapté a leur porte-monnaie... Les informations apportées par ce guide ont été rédigées à l origine pour la version 4 de MATLAB. Elles décrivent les fonctions élémentaires du logiciel qui retrouvent, en toute logique, le même principe dans des versions plus récentes. Ce document contient une première partie destinée à la prise en main du logiciel. La seconde rassemble des exercices simples pour que le lecteur puisse s auto-évaluer, la troisième est un mini guide de référence des fonctions élémentaires de MATLAB. Les lecteurs qui désirent en savoir plus trouveront d autres sources d information dans les annexes. Bienvenue dans l univers MATLAB... Initiation à MATLAB 1

Table des matières Avant propos Table des matières Chapitre 1 Les fonctions élémentaires 1 Les différents types de variables... 5 1.1 Les scalaires... 5 1.2 Les vecteurs et tableaux... 6 1.3 Les matrices prédéfinies... 8 2 Extraction d'une partie de matrice... 10 2.1 Principe... 10 2.2 Les sous-matrices... 10 2.3 Les lignes et les colonnes... 10 3 Les opérations sur les matrices... 12 3.1 Somme, soustraction... 12 3.2 Produit matriciel, puissance... 12 3.3 Produit terme à terme... 12 3.4 Transposée, déterminant, inverse... 12 4 Les expressions logiques... 13 4.1 Les relations d ordre... 13 4.2 Les opérations booléennes... 14 4.3 Les tests de valeur... 15 5 Les instructions conditionnelles... 16 5.1 Instructions conditionnelles de type SI, ALORS, SINON... 16 5.2 Instructions conditionnelles de type TANT QUE... 17 5.3 Instructions répétées pour différentes valeurs d une variable... 17 6 Les graphiques... 18 6.1 Les courbes 2D et 3D... 18 6.2 Les surfaces... 19 7 Les fichiers de commandes... 20 7.1 Les fichiers script... 20 7.2 Les fichiers fonction... 20 7.3 La structure et la syntaxe... 20 7.4 L échange de valeurs... 20 8 La sauvegarde des données... 22 8.1 Fichiers binaires... 22 Initiation à MATLAB 2

Chap. : Table des matières 8.2 Fichiers texte... 22 9 Utilisation de l'aide en ligne... 24 10 La Configuration du logiciel... 25 10.1 Les chemins d'accès... 25 10.2 Le fichier startup.m... 25 Chapitre 2 Exercices 11 Manipulation de matrices... 27 11.1 Représentant matriciel d une application linéaire... 27 12 Opérations logiques... 28 13 Instructions conditionnelles... 29 14 Représentations graphiques... 30 14.1 courbes 2D et 3D... 30 14.2 Surfaces...32 Chapitre 3 Guide des fonctions de Matlab 15 Liste des catégories de fonctions... 33 16 Références... 34 Chapitre 4 Sources d information 17 Bibliographie... 41 18 Adresses Internet... 42 18.1 Forum de discutions (news group)... 42 18.2 Fichiers M et utilitaires... 42 18.3 Recherche de solutions... 42 18.4 Clubs utilisateurs MATLAB... 42 Chapitre 5 Solutions des exercices 19 Manipulation de matrices... 44 20 Opérations logiques... 46 21 Instructions conditionnelles... 47 22 Représentations graphiques... 48 Index Initiation à MATLAB 3

Chapitre 1 Les fonctions élémentaires Initiation à MATLAB 4

Chap. 1: Les fonctions élémentaires Les différents types de variables 1 Les différents types de variables Les variables manipulées par MATLAB sont toutes des matrices: Les scalaires sont des matrices de dimension (1,1) (ex: 3.14 ou 10^3 ); les vecteurs sont des matrices de dimension (nl,1) (ex: [1;2;3] ); les tableaux sont des matrices de dimension (nl,nc) (ex: [1 2 3; 4 5 6] ). La façon la plus simple et la plus rapide de les découvrir est d utiliser le mode de commande dit immédiat. Pour cela on travaille dans la fenêtre intitulée matlab command. Dans ce mode une ligne de commande commence par le symbole (» ), elle est exécutée par l action de la touche Entrée. Créons maintenant quelques variables simples. 1.1 Les scalaires L'affectation de la valeur numérique 50 à la variable scalaire x se commande de la façon suivante:» x = 50 Vous constatez que MATLAB retourne un écho de la commande effectuée. Pour éviter cet écho, ajouter un caractère point-virgule à la fin de la commande:» x = 50; La valeur numérique peut être le résultat d'une opération sur d'autres variables ( a+b, 2*x,... ) ou d'un calcul effectué par une fonction prédéfinie ( x=cos(t), y=sin(t),... ). Certaines valeurs( nommées pi, eps, Inf ou NaN) sont des constantes prédéfinies de MAT- LAB. Vous commandez: Tableau 1: Exemples de scalaires MATLAB répond:» omega=pi omega = 3.1416» a = 2 / 3 a =» s = sin( omega * a ) s = 0.6667 0.8660» eps eps = 2.2204e-016» 1/0 Warning: Divide by zero ans = Inf Testez la commande who elle vous permet de lister les variables qui sont présentes dans l'environnement courant de calcul. Remarquez la variable ans qui contient le résultat du dernier calcul effectué par MAT- LAB, qui n'a pas été affecté à une variable. Les noms de variables peuvent contenir au maximum 19 caractères, lettres ou chiffres. Initiation à MATLAB 5

Chap. 1: Les fonctions élémentaires Les différents types de variables Attention, MATLAB interprète différemment les lettres majuscules et les lettres minuscules. (matricetruc et matricetruc sont deux variables différentes) Le format d affichage par défaut est de 4 chiffres après la virgule. Il est nommé short. Essayez les affichages en formats : long, long e, short e 1.2 Les vecteurs et tableaux L'affectation de valeurs numériques aux différents termes d'une matrice peut se faire manuellement. Pour cela utilisez: Les crochets [ et ] pour définir le début et la fin d un ensemble de valeurs; le caractère point-virgule pour séparer deux ensembles d une même ligne; le caractère espace (ou virgule) pour séparer deux ensembles d une même colonne. Attention: La virgule étant réservée pour séparer les colonnes, on utilise le caractère point comme séparateur décimal. Dans les exemples qui suivent vous allez construire différentes matrices en assemblant des ensembles de valeurs. Les sous-matrices que l on assemble ( lignes et/ou colonnes ) seront des valeurs numériques ou des noms de variables.l ensemble des variables créées ( A, B, C, D, E, F ) sera nommé par la suite l environnement courant de calcul. Tableau 2: Exemples de matrices Vous commandez: MATLAB répond:» A = [ 5 9 13 ; 6 10 14 ] A =» B = [ A ; [7 11 15] ] B =» C = [ [1;2;3] B ] C = 5 9 13 6 10 14 5 9 13 6 10 14 7 11 15» D = [17 21; 18 22; 19 23] D = 17 21 18 22 19 23 1 5 9 13 2 6 10 14 3 7 11 15» E = [4 8 12 16 20 24] E = 4 8 12 16 20 24» F = [ [C,D] ; E ] F = 1 5 9 13 17 21 2 6 10 14 18 22 3 7 11 15 19 23 4 8 12 16 20 24 Utilisez maintenant la commande who pour lister les noms des variables existantes Initiation à MATLAB 6

Chap. 1: Les fonctions élémentaires Les différents types de variables dans votre environnement courant de calcul. Vous pouvez aussi obtenir d autres renseignements comme le format des matrices (nombre de lignes / nombre de colonnes). La commande est whos. Remarquez les scalaires. Si les nombres de lignes et/ou de colonnes d'une variable doivent être utilisés pour un faire un calcul, on recueille ces formats dans d autres variables à l aide de la commande size. Cette fonction prédéfinie peut avoir plusieurs syntaxes: NbLignes = size( NomVariable, 1) pour calculer uniquement le nombre de lignes, NbColonnes = size( NomVariable, 2) pour calculer uniquement le nombre de colonnes, [NbL,NbC] = size( NomVariable ) pour calculer les deux. Dans ce dernier cas la fonction produit deux arguments, il est nécessaire de les assembler avec des crochets. Tableau 3: Récupération des nombres de lignes et/ou de colonnes Vous commandez:» nla=size(a,1) nla = 2» nca=size(a,2) nca = 3» [nl,nc]=size(a) nl = MATLAB répond: Incrémentation automatique MATLAB peut affecter des valeurs à une variable en réalisant une incrémentation automatique de pas donné entre une valeur de début et une valeur de fin. La syntaxe utilise le caractère deux-points et le résultat de la commande est une matrice ligne. L ordre des informations est le suivant: val_début : pas : val_fin ou : val_début : val_fin nc = 2 3 Dans la deuxième commande la valeur du pas est omise, elle prend la valeur 1 par défaut. Si on désire obtenir une matrice colonne on utilise le signe prime derrière le nom de la variable pour effectuer une transposition (rangement des lignes en colonnes et inversement). Tableau 4: Exemples d incrémentation La commande: produira le même effet que:» t1 = 10:15 t1 = [10 11 12 13 14 15]» t2 = 0:.2:1 t2 = [0.2.4.6.8 1]» t3 = 0:.2:.5 t3 = [0.2.4]» t4 = (0:5)' t4 = [0; 1; 2; 3; 4; 5] Initiation à MATLAB 7

Chap. 1: Les fonctions élémentaires Les différents types de variables 1.3 Les matrices prédéfinies Des fonctions prédéfinies de MATLAB permettent de générer des matrices particulières. Les matrices identité; les matrices unités (matrices remplies de 1); les matrices nulles (matrices remplies de 0); les matrices aléatoires. Elles utilisent les syntaxes suivantes: Tableau 5: Matrices prédéfinies Matrice identité de dimension 3:» I = eye(3) I = Matrice unité à 2 lignes et 3 colonnes: Matrice nulle à 3 lignes et 2 colonnes: 1 0 0 0 1 0 0 0 1» UN = ones(2,3) UN = 1 1 1 1 1 1» Z = zeros(3,2) Z = 0 0 0 0 0 0 Testez également : ones(3), zeros(4) ou magic(5) pour créer des matrices carrées. ASTUCES Exemples d utilisation Les matrices unité sont utiles pour recopier plusieurs fois la même ligne ou la même colonne. Pour recopier la ligne L n fois vers le bas dans le tableau T: Première solution: on multiplie L à gauche par une matrice unité de n lignes et une colonne: T = ones(n,1) * L Tableau 6: Copies multiples d une ligne Commande» T=ones(3,1) * [ 1 2 0 4 5 ] T= Résultat 1 2 0 4 5 1 2 0 4 5 1 2 0 4 5 Deuxième solution: on indique n fois le chiffre 1 comme indice de ligne: T = L( ones(1,n), : ) De la même façon, pour recopier la colonne C, n fois vers la droite dans le tableau T: Initiation à MATLAB 8

Chap. 1: Les fonctions élémentaires Les différents types de variables Soit on multiplie C à droite par une ligne de n 1: T = C * ones(1,n) soit on indique n fois 1 comme indice de colonne: T = C( :, ones(1,n) ) Tableau 7: Copies multiples d une colonne Commande» T = [ 1; 2; 3 ] * ones(1,5) T= Résultat 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Nombres aléatoires Deux fonctions prédéfinies permettent de créer des matrices aléatoires dont les termes suivent une distribution uniforme ou normale. Avec la syntaxe: A = rand( nl, nc ) on obtient une matrice de dimension nl lignes, nc colonnes. les termes dans chaque colonne sont distribués uniformément entre 0 et 1. En utilisant: A = randn( nl, nc ) la distribution des valeurs suit une loi normale de variance 1 centrée sur zéro. Vérifiez avec les commandes mean( a(:) ) et std( a(:) ) les valeurs de la moyenne et de l écart type pour les deux distributions. Exemples Initiation à MATLAB 9

Chap. 1: Les fonctions élémentaires Extraction d'une partie de matrice 2 Extraction d'une partie de matrice 2.1 Principe La désignation d'une partie de matrice se fait en indiquant les numéros de ligne et de colonne à sélectionner. Pour cela on indique entre parenthèses, derrière le nom de la variable, le ou les indices voulus. Les cas suivant sont des exemples d extraction d un seul terme: Vous commandez: Tableau 8: Extraction d un terme MATLAB répond:» premier=b(1,1) premier = 5» l=2; c=3; sixieme=b(l,c) sixieme = 14» B(1,4)??? Index exceeds matrix dimensions. La dernière réponse est un message d erreur fréquemment rencontré quand les indices de ligne ou de colonne désirés ne conviennent pas aux dimensions de la matrice. 2.2 Les sous-matrices On peut désigner un ensemble de lignes et/ou un ensemble de colonnes. Pour cela les numéros de lignes et de colonnes seront eux aussi des tableaux. Ils peuvent être désignés numériquement ou par l'intermédiaire d'une variable. Vous commandez: Tableau 9: Extraction d une sous-matrice» l = [3 1] l =» c = 2:5 c = MATLAB répond: 3 1 2 3 4 5» F(l,c) ans = 7 11 15 19 5 9 13 17» F(2:4,4:6) ans = 14 18 22 15 19 23 16 20 24 2.3 Les lignes et les colonnes Initiation à MATLAB 10

Chap. 1: Les fonctions élémentaires Extraction d'une partie de matrice Pour désigner "toutes les lignes" ou "toutes les colonnes" d une sous-matrice, on utilise comme indice le caractère deux-points. Ainsi : M( :,c) désigne la colonne N c Cette commande signifie: les termes de la matrice M situés à toutes les lignes, colonne numéro c M(l, :) désigne la ligne N l Cette commande signifie: les termes de la matrice M situés ligne l, à toutes les colonnes Exemple Tableau 10: Désignation d une ligne ou d une colonne Vous commandez:» F(:, 2) ans = 5 6 7 8 MATLAB répond:» F(:, 2:3 ) ans = 5 9 6 10 7 11 8 12 :» F([1 3], :) ans = 1 5 9 13 17 21 3 7 11 15 19 23 Initiation à MATLAB 11

Chap. 1: Les fonctions élémentaires Les opérations sur les matrices 3 Les opérations sur les matrices 3.1 Somme, soustraction Les deux matrices opérandes doivent être de même format. Ces deux opérations s'effectuent, bien évidemment, terme à terme. Pour calculer C = A + B, MATLAB effectuera l'opération: C(i,j) = A(i,j) + B(i,j) pour toutes les valeurs possibles de i et de j 3.2 Produit matriciel, puissance Soit: - une matrice A de format (la, ca) - une matrice B de format (lb, cb). Pour effectuer C = A * B il est nécessaire que ca = lb, Le format de C sera (la, cb). MATLAB effectuera alors l'opération: pour tout 1 i la et pour tout 1 j cb La notation A^2 signifie: A * A, dans ce cas la matrice A doit être carrée. 3.3 Produit terme à terme Cij (,) = Aik (, ) Bkj (, ) k = 1 Si on désire effectuer un produit terme à terme de deux matrices de même format, il faut placer un point (.) devant le signe étoile (*):» C = A.* B MATLAB effectuera alors l'opération: C(i,j) = A(i,j) * B(i,j) pour toutes les valeurs possibles de i et de j De la même manière, pour diviser chaque terme de la matrice A par le terme correspondant de la matrice B, on écrira:» A./B pour élever chaque terme de la matrice A à la puissance p, on écrira:» A.^p 3.4 Transposée, déterminant, inverse ca La transposée d'une matrice (transformation des lignes en colonnes) s'obtient en utilisant le signe prime derrière le nom de la matrice.» TA = A' Le calcul du déterminant et de la matrice inverse sont deux fonctions prédéfinies de MATLAB. La syntaxe est la suivante:» da = det(a); IA = inv(a) Initiation à MATLAB 12

Chap. 1: Les fonctions élémentaires Les expressions logiques 4 Les expressions logiques Une expression logique peut être: Soit une relation d ordre entre les éléments de deux matrices;(ex.: A < B) Soit une opération booléenne entre les éléments de deux matrices;(ex.: A & B) Soit un test sur les éléments des colonnes d une matrice;(ex.: all A) L évaluation d une expression logique produit des 0 ou des 1 où: 0 représente la valeur logique FAUX 1 représente la valeur logique VRAI Pour les relations d ordre et les opérations booléennes, les opérandes peuvent être une matrice et un scalaire (A < 5 ) ou deux matrices de même format. MATLAB effectue l opération terme à terme. Le résultat de l évaluation de l expression logique est une matrice de même format que les matrices opérandes. Par contre, les tests de valeur sont appliqués individuellement à chaque colonne de la matrice opérande. Le résultat de l évaluation de l expression logique est une matrice ligne. 4.1 Les relations d ordre Six relations permettent de comparer les éléments d une matrice avec un scalaire ou une autre matrice de même dimension: < inférieur <= inférieur ou égal > supérieur >= supérieur ou égal == égal ~= différent» A=[1 2 3 ; 4 5 6], B=[2 2 2; 4 4 4] Tableau 11: Exemples de relations d ordre» test1=( A < 5 ) A = B = 1 2 3 4 5 6 2 2 2 4 4 4 test1 = 1 1 1 1 0 0» test2=( A <= B) test2 = 1 1 0 1 0 0 Initiation à MATLAB 13

Chap. 1: Les fonctions élémentaires Les expressions logiques 4.2 Les opérations booléennes Quatre opérateurs permettent de combiner des expressions logiques à l aide de l algèbre de Boole: & ET logique OU logique xor OU EXCLUSIF ~ NON logique Pour tout élément à la ligne i et à la colonne j: N = ~A produit: N(i,j) = 1 si:a(i,j) est nul N(i,j) = 0 si:a(i,j) est non nul Pour deux matrices A et B de même format, les tables de vérité des fonctions ET, OU, OU EXCLUSIF, définissent la valeur de C(i,j) en fonction des éléments A(i,j) et B(i,j): Tableau 12: C = A & B C(i,j) B(i,j) nul B(i,j) non nul A(i,j) nul 0 0 A(i,j) non nul 0 1 Tableau 13: C = A B C(i,j) B(i,j) nul B(i,j) non nul A(i,j) nul 0 1 A(i,j) non nul 1 1 Tableau 14: C = A xor B C(i,j) B(i,j) nul B(i,j) non nul A(i,j) nul 0 1 A(i,j) non nul 1 0 Tableau 15: Exemples d opérations booléennes» A = [0 0 0 0; 4 5 6 7], B = [0 0 1 2; 0 0 3 4]» C = A & B, D = A B, E = A xor B A = 0 0 0 0 4 5 6 7 C = 0 0 0 0 0 0 1 1 B = 0 0 1 2 0 0 3 4 D = 0 0 1 1 1 1 1 1 E = 0 0 1 1 1 1 0 0 Initiation à MATLAB 14

Chap. 1: Les fonctions élémentaires Les expressions logiques 4.3 Les tests de valeur any, all Dans le cas ou l argument A est une matrice ligne: La fonction any(a) retourne 1 si au moins une valeur de A est non nulle; La fonction all(a) retourne 1 si toutes les valeurs de A sont non nulles. Dans le cas ou l argument A est une matrice de plusieurs lignes ces fonctions agissent individuellemnet sur chaque colonne de A. Le résultat est une matrice ligne: Exemple:» A = [0 0 0 1; 0 0 2 3; 0 4 5 6]; un = any(a), tous = all(a) A= 0 0 0 1 0 0 2 3 0 4 5 6 un = 0 1 1 1 tous = 0 0 0 1 find La fonction find permet de rechercher les indices des éléments non nuls d une matrice. Elle est donc trés utile pour identifier les éléments qui satisfont une relation d ordre. Exemple:» A=10*magic(4), test=( A<=50 ); B = A.*(test) A = 160 20 30 130 50 110 100 80 90 70 60 120 40 140 150 10 B = 0 20 30 0 50 0 0 0 0 0 0 0 40 0 0 10»indices=find( test ) ; indices = indices indices = 2 4 5 9 16» C = A(indices ) C = 50 40 20 30 10 Initiation à MATLAB 15

Chap. 1: Les fonctions élémentaires Les instructions conditionnelles 5 Les instructions conditionnelles Un ensemble d instructions MATLAB peut être: Exécuté à condition q une expression logique soit vraie(type SI, ALORS, SINON); Répété tant q une expression logique est vraie; Répété pour différentes valeurs d une variable. (type TANT QUE) 5.1 Instructions conditionnelles de type SI, ALORS, SINON La structure générale de ce contrôle d instructions est la suivante: if (Expression_logique_1) - - - Ensemble_d instructions_1 - - - elseif (Expression_logique_2) - - - Ensemble_d instructions_2 - - - else - - - Ensemble_d instructions_3 - - - end Le contrôle des instructions commence à la lecture du mot if, et prend fin à end MATLAB évalue l Expression_logique_1; Si elle est vraie, l Ensemble_d instructions_1 est éxécuté; Si elle est fausse, MATLAB évalue l Expression_logique_2 Si elle est vraie, l Ensemble_d instructions_2 est éxécuté; Si elle est fausse, l Ensemble_d instructions_3 est éxécuté; etc Les instructions indispensables sont if et end. Les instructions suivant les mots elseif et else sont optionnelles Exemple if c==1 couleur = rouge elseif c==2 couleur = vert elseif c==3 couleur = bleu else couleur = blanc end Initiation à MATLAB 16

Chap. 1: Les fonctions élémentaires Les instructions conditionnelles 5.2 Instructions conditionnelles de type TANT QUE La structure générale de ce cycle d instructions est la suivante: while (Expression_logique) - - - Ensemble_d instructions - - - end MATLAB commence par l évaluation de l Expression_logique; Si elle est vraie, l Ensemble_d instructions est éxécuté jusqu au mot end; MATLAB recommence le cycle Si elle est fausse, le cycle est terminé MATLAB poursuit l éxécution du programme au dela du mot end. Le contrôle des instructions commence à la lecture du mot while, prend fin au mot end Exemple while n>=0 n = input( valeur de n (fin si n négatif):? ) f = prod(1:n); disp( [ factorielle de n :, num2str( f ) ] ) end 5.3 Instructions répétées pour différentes valeurs d une variable La structure générale de ce cycle d instructions est la suivante: for var = Liste_de_valeurs - - - Ensemble_d instructions - - - end Le cycle d instructions commence à la lecture du mot for, MATLAB répéte l Ensemble_d instructions en affectant successivement à la variable var toutes valeur contenue dans la Liste_de_valeurs Exemple base4 = [ '0' '1' '2' '3' ], A = [ ]; for mult_16 = base4, B = [ ]; for mult_4 = base4, for unite = base4 B = [B, ' ', [mult_16 mult_4 unite] ]; end, end A=[A;B]; end; disp( 'Les 64 premiers nombres en base 4:' ), A Initiation à MATLAB 17

Chap. 1: Les fonctions élémentaires Les graphiques 6 Les graphiques 6.1 Les courbes 2D et 3D Soit deux vecteurs colonnes nommés x et y contenant tous deux 50 lignes. La commande: Tableau 16: Graphe 2D, une seule courbe... produit l effet suivant:» plot(y) Succession de segments de droites reliant les 50 points dont: - les abscisses sont les numéros d'ordre des valeurs de y (N de ligne), - les ordonnées sont contenues par le vecteur y.» plot(x,y) Même dessin mais les abscisses des points sont les valeurs contenues par le vecteur x.» plot(y,'*')» plot(x,y,'*') Mêmes dessins que les deux précédents, mais les points sont représentés par le caractère graphique '*' et ils ne sont plus reliés par des segments de droites. Il est possible de représenter plusieurs graphes sur la même figure, on utilise les syntaxes suivantes: La commande: Tableau 17: Graphe 2D, plusieurs courbes... produit l effet suivant:» plot(x,[y1 y2 y3]) Trois graphes y1, y2, y3 en fonction de x.» plot([x1 x2 x3],[y1 y2 y3]) Trois graphes (x1,y1) (x2,y2) (x3,y3). La gestion des couleurs de lignes et de l'échelle du graphe est réalisée automatiquement par MATLAB.» plot(x1,y1,'+',x2,y2,'*',x3,y3,'o') Gestion individuelle des attributs graphiques. MATLAB contrôle automatiquement l'échelle.» axis([xmin, xmax, ymin, ymax]) Contrôle manuel des limites d'axes (donc de l'échelle) du graphe en cours après son tracé.» axis('auto') Contrôle automatique des limites d'axes.» axis('square') Réalisation d'un graphe dont les axes X et Y ont des dimensions égales quelque soit la forme de la fenêtre.» plot(x1,y1)» hold on» plot(x2,y2)» plot(x3,y3)» plot(x4,y4)» hold off Dessin du graphe N 1, la figure est maintenue (figée): - l'échelle est conservée, - les nouveaux graphes se superposent aux précédents jusqu'à... la fin du maintient. Le dessin d'une ou plusieurs courbes en 3 dimensions (X, Y, Z) utilise les mêmes conven- Initiation à MATLAB 18

Chap. 1: Les fonctions élémentaires Les graphiques tions avec la syntaxe:» plot3(x, y, z) ou» plot3(x, y, z, at-gr ) ( at-gr: attribut graphique optionnel de type chaîne de caractère ) et» axis( [xmin,xmax, ymin,ymax, zmin,zmax] ) La direction de vue du graphe en projection axonométrique peut être contrôlé par la commande:» view( az, el ) où les variables az & el sont des valeurs d'angle (en degré) définissant l'azimut et l'élévation de la position de l' oeil par rapport au repère ( O, x y z ). Le retour aux valeurs par défaut ( az = -37,5 el = 30 ) est obtenu par :» view(3) 6.2 Les surfaces Les surfaces peuvent être représentées soit sous forme de maillage, soit facettisées. Les coordonnées des points caractéristiques (noeuds) de la surface ou du maillage doivent être contenues par trois matrices de même dimension (nommées par exemple: X, Y, Z). Tableau 18: Représentations de surfaces en 3D La commande:... produit l effet suivant:» mesh(x, Y, Z) Représentation maillée de la surface.» mesh( Z ) Les valeurs de X et Y sont, par défaut, les numéros d'ordre (ligne & colonne) des termes de la matrice Z.» surf(x, Y, Z) Représentation facettisée de la surface.» surf( Z ) Les valeurs de X et Y sont, par défaut, les numéros d'ordre (ligne & colonne) des termes de la matrice Z.» surfl(x, Y, Z) Rendu réaliste de la surface et contrôle de la lumière» shading flat Elimination du maillage» colormap gray Choix d une gamme de couleurs (ici: dégradés de gris) pour la réflection de la lumière Initiation à MATLAB 19

Chap. 1: Les fonctions élémentaires Les fichiers de commandes 7 Les fichiers de commandes 7.1 Les fichiers script Un fichier script est un fichier texte qui porte l'extension (.m) C'est une sorte de sous-programme, il contient une liste de commandes dans la syntaxe MATLAB. Son exécution est commandée à la lecture du nom du fichier (sans extension), soit en mode immédiat dans la fenêtre de commande de MATLAB, soit dans un autre script. 7.2 Les fichiers fonction Une fonction est enregistrée dans un fichier texte avec l'extension (.m) comme un fichier script. C'est un sous programme auquel on peut transmettre des variables d entrée, et qui peut éventuellement retourner des variables de sortie. Par contre toute autre variable utilisée dans ce script sera indépendante des variables de même nom utilisée dans l environnement courant 7.3 La structure et la syntaxe Le programme de la fonction bidule, doit être enregistré dans un fichier nommé: bidule.m. La première ligne doit être la phrase suivante: function [s1, s2, s3,... ] = bidule(e1, e2, e3,... ) où: (e1, e2, e3,... ) est un ensemble de variables d'entrée, [s1, s2, s3,... ] est un ensemble de variables de sortie, bidule est le nom de la fonction. L'utilisation de cette fonction, soit en mode immédiat, soit dans un script, soit dans une autre fonction, est la suivante:» [a, b, c,... ] = bidule(e, f, g,... ) 7.4 L échange de valeurs La commande précédente déclenche trois actions: - Les valeurs de e, f, g sont affectées à e1, e2, e3, - puis MATLAB exécute le sous programme décrit dans le fichier à partir de la deuxième ligne, il calcule donc les variables s1, s2, s3 en fonction des variables e1, e2, e3, - enfin les valeurs de s1, s2, s3 sont affectées à a, b, c La fonction peut utiliser des variables locales utilisant n'importe quel nom, y compris des noms utilisés par d'autres fonctions ou par l'environnement courant de MATLAB. Ainsi la fonction bidule peut utiliser des variables nommées a ou e sans qu'elles n'interfèrent sur des variables nommées a ou e dans d'autres fichiers. Initiation à MATLAB 20

Chap. 1: Les fonctions élémentaires Les fichiers de commandes Exemple Soit le fichier texte nommé demisom.m contenant les commandes suivantes: demisom.m function DS=demisom(val1, val2) d=2; DS = (val1 + val2) / d; La commande en mode immédiat :» A=[10 11]; B=[30 31]; d=demisom(a, B); concerne les variables de l environnement courant, elle produira deux variables d: une variable locale à la fonction demisom ( d=2 ) et la variable de l'environnement courant ( d=[20 21] ). Environnement courant de MATLAB A=[10 11] B=[30 31] d=[20 21] Environnement local de la fonction demisom val1=[10 11] val2=[30 31] d=2 DS=[20 21] Initiation à MATLAB 21

Chap. 1: Les fonctions élémentaires La sauvegarde des données 8 La sauvegarde des données MATLAB offre la possibilité d enregistrer sur disque les valeurs de variables créées lors d une session de travail. Vous pouvez ainsi échanger des valeurs numériques avec un autre utilisateur, un autre logiciel, ou mémoriser des résultats pour ne pas avoir à recommencer le calcul. Vous pouver choisir entre deux solutions: Sauvegarde dans un fichier binaire; Sauvegarde dans un fichier texte. 8.1 Fichiers binaires La première possibilité consiste à enregistrer ensemble le nom des variables et leur contenu. Le fichier généré aura un format binaire, ce qui signifie que seul MATLAB saura le relire. Vous avez la possibilité d enregistrer, soit tout l environnement courant, soit quelques variables de votre choix. La commande:» save» load Tableau 19: Utilisation de fichiers binaires... produit l'effet suivant: 8.2 Fichiers texte La seconde possibilité consiste à enregistrer le contenu d une seule variable dans un fichier au format texte, dit aussi fichier ASCII. Il est ainsi possible: De sauvegarder des données sur disque ou disquette; Sauvegarde et charge la totalité des variables présentes dans l environnement courant dans le fichier matlab.mat» save nom-fich.ext (var1 var2...) Sauvegarde les variables (var1 var2...) dans le fichier nom_fich.ext» load nom-fich.ext Charge les variables enregistrées dans le fichier nom_fich.ext D'échanger des données avec un autre logiciel (tableur, base de données, CAO, etc); De récupérer des données fournies par un autre utilisateur, un appareil de mesure, etc. Quelques règles d'écriture du fichier ASCII: Les différentes valeurs d'une ligne sont séparées par un espace ou une tabulation; Utiliser le signe point "." comme séparateur décimal; Utiliser la lettre E pour désigner les puissances de 10. Attention: Seul le contenu de la variable est mémorisé, le nom est perdu. Initiation à MATLAB 22

Chap. 1: Les fonctions élémentaires La sauvegarde des données Tableau 20: Utilisation de fichiers "texte" La commande:... produit l'effet suivant:» save fich.txt var -ascii Sauvegarde seulement le contenu de la variable var dans le fichier texte fich.txt» load fich.txt Charge les valeurs numériques enregistrées dans le fichier fich.txt dans la variable matlab fich.» var = fich; Affecte les valeurs récupérées du fichier fich.txt à la variable var Initiation à MATLAB 23

Chap. 1: Les fonctions élémentaires Utilisation de l'aide en ligne 9 Utilisation de l'aide en ligne La consultation de l'aide est un moyen simple d'apprendre la syntaxe du langage MAT- LAB. Elle peut être obtenue de deux façons: Vous connaissez le nom d'une fonction et vous désirez connaître la syntaxe complète de la commande (les paramètres d'entrée et de sortie, leur ordre) Commandez:» help nom_fonction ou utilisez le menu: HELP - INDEX puis RECHERCHER Vous ne connaissez pas le nom de la commande Consultez l'aide par rubrique en utilisant le menu: HELP - Table_of_Contents La liste des rubriques est donnée au chapitre 3 (Voir Liste des catégories de fonctions, page 33.) Initiation à MATLAB 24

Chap. 1: Les fonctions élémentaires La Configuration du logiciel 10 La Configuration du logiciel Le logiciel est configuré automatiquement au démarrage par l'exécution du fichier Matlabrc.m. Celui-ci met à jour la variable: path qui renseigne MATLAB sur les différents chemins de recherche des fonctions que l'on peut lui demander d'exécuter. 10.1 Les chemins d'accès Ils désignent les emplacements de tous les sous-répertoires de MATLAB dans lesquels sont écrits les fichiers décrivant les fonctions du logiciel et les fonctions de l'utilisateur. Ils sont classés en boîtes à outils (toolbox) suivant leur utilisation. Avant d'utiliser MATLAB, vérifiez que votre répertoire de travail existe et qu'il contient vos fichiers courants. Dans le cas contraire, créez le par la commande md. Par exemple: md C:\CALCUL 10.2 Le fichier startup.m A chaque démarrage, MATLAB exécute d'abord le fichier de commande matlabrc.m qui configure l'environnement de travail et crée la liste des chemins de recherche, puis il exécute le fichier startup.m où vous aurez placé les quelques commandes personnelles que vous désirez exécuter automatiquement à la mise en route du logiciel. En règle générale ne modifiez jamais le fichier matlabrc.m, utilisez le fichier startup.m pour personnaliser votre environnement.le fichier de commande startup.m est éxécuté automatiquement, après le fichier matlabrc.m, au démarage du logiciel. Il doit être placé dans votre répertoire d'accueil. Vous pouvez y placer les commandes que vous voulez, par exemple pour définir votre propre environnement de travail. Exemple Imaginons que votre répertoire d accueil soit G:\ Si le fichier strartup.m n'existe pas encore, créez le à l'aide d'un éditeur de texte. Enregistrez-y les commandes suivantes: C:\startup.m cd C:\CALCUL disp(' Le répertoire courant est: '); pwd disp(' Il contient les fichiers suivants:'); dir Elles auront pour effet: - De choisir votre le répertoire C:/CALCUL comme répertoire courant, - de lister les fichiers qu'il contient, - d'afficher deux messages. Initiation à MATLAB 25

Chapitre 2 Exercices Avertissement: La difficulté des exercices contenus dans ce chapitre est progressive. Ainsi la résolution des problèmes d un groupe d exercice n est envisageable que si on maîtrise les concepts des groupes précédents. Initiation à MATLAB 26

Chap. 2: Exercices Manipulation de matrices 11 Manipulation de matrices 11.1 Représentant matriciel d une application linéaire Soit E un espace vectoriel euclidien. Soit b une base orthonormée directe de E. Soient a et u deux vecteurs de E. On note A et U les matrices (3,1) contenant les coordonnées de n et u dans la base b. a ( a u) u u A = [ a] b = a2 et U = [ u] b = a3 ( ) a1 u2 u3 ( ) u1 u ( u a) u a Exercice 1. Produit vectoriel On cherche le représentant matriciel de l application linéaire L1 de E dans E, qui transforme a en : L1( a) = u a Construire cette matrice, nommée PvU, en fonction des coordonnées de u dans b; Calculer les coordonnées du vecteur u a par le produit de PvU par A Exercice 2. Projection parallèle à un vecteur On cherche le représentant matriciel de l application linéaire L2 de E dans E, qui transforme a en : L2( a) = ( a u) u Construire cette matrice, nommée PpU, en fonction des coordonnées de u dans b; Calculer les coordonnées du vecteur Exercice 3. Projection orthogonale à un vecteur par le produit de PpU par A On cherche le représentant matriciel de l application linéaire L3 de E dans E, qui transforme a en : L3( a) = u ( u a) ( a u) u Construire cette matrice, nommée PoU, à l aide de la matrice PvU; Calculer les coordonnées du vecteur u ( u a) par le produit de PoU par A Exercice 4. Rotation On cherche le représentant matriciel de l application linéaire R de E dans E, qui transforme a en Ra ( ) par une rotation d angle α radian autour du vecteur u Ra ( ) = ( a u) u cos( α) u ( u a) + sin( α) ( u a) Construire cette matrice, nommée R, en fonction de la valeur α et des coordonnées de u dans b Calculer les coordonnées de Ra ( ) par le produit de R par A a u ( u a) α u ( a u) u Ra ( ) u a Initiation à MATLAB 27

Chap. 2: Exercices Opérations logiques 12 Opérations logiques Exercice 5. Fonctions puissances tronquées On désire calculer les fonctions fi + (x) définie par: pour les valeurs L intervalle d étude est fi + ( x) x i { 2468,,, } = x [ 010, ] 0 si x < x i ( x x i ) 3 si x x i Générer un vecteur colonne x de 100 lignes, conformément à l intervalle d étude. Recopier 4 fois le vecteur x dans un tableau de 100 lignes, 4 colonnes nommé X Recopier 100 fois les 4 valeurs des xi dans un tableau de 100 lignes, 4 colonnes nommé Xi Calculer les valeurs de fi + (x) dans un troisième tableau F de même format Exercice 6. Topologie On désire identifier les points d un ensemble { P 1, P 2,..., P n } qui se trouvent sous le plan d équation: a x + b y+ c z+ d = 0 Les coordonnées des points sont enregistrées dans trois matrices X Y Z de même format. Recenser les indices (dans X Y Z) des points qui vérifient l équation; Extraire les coordonnées des points solutions dans les matrices Xs, Ys, Zs. Initiation à MATLAB 28

Chap. 2: Exercices Instructions conditionnelles 13 Instructions conditionnelles Exercice 7. Numérotation en base 4 On désire générer les 64 premiers nombres en base 4. Le résultat sera enregistré dans une matrice de 64 lignes contenant chacune un nombre sous forme de chaîne de caractère. Pour cela: Générer l ensemble des unités de cette base. Cette matrice, nommée base4, est composée des 4 caractères alphanumériques: 0 ; 1 ; 2 ; 3 ; En utilisant 3 boucles FOR... END imbriquées, assembler un multiple de 16, un multiple de 4 et une unité pour composer chaque nombre. Initiation à MATLAB 29

Chap. 2: Exercices Représentations graphiques 14 Représentations graphiques 14.1 courbes 2D et 3D Soit n=5. Exercice 8. Graphe d une fonction de plusieurs variables Générer un vecteur colonne, nommé u, contenant 100 valeurs uniformément réparties entre 0 et 1. Créer une matrice (100,n+1), nommée U, qui contient n+1 fois la colonne u. Générer un vecteur ligne, nommé i, contenant n+1 valeurs uniformément réparties entre 0 et n. Créer une matrice (100,n+1), nommée I, qui contient 100 fois la ligne i. Pour tous les termes de U, et tous les termes de I correspondants (même indice de ligne et de colonne), calculer dans la matrice F les valeurs de la fonction de la variable u pour différentes valeurs du paramètre i: sin 2 π u -- i + 1 Fui (, ) n = ------------------------------------------------------ i + 1 Tracer les fonctions de u et de i contenues en colonnes dans la matrice F: plot(u,f) Extraire de F les valeurs de F(u) pour la valeur i=3. Tracer la courbe. Utiliser les mêmes commandes pour tracer les fonctions F(u): - pour 5 valeurs de i uniformément réparties entre 1 et 2, - pour 500 valeurs de u uniformément réparties entre -1 et 1. Exercice 9. Modification du graphe Tracer tous les graphes des fonctions F(u,i) en rouge. Changer les dimensions pour que les limites du graphe soient (-1.5, 1.5) pour u et pour F Ajouter des labels sur les abcisses et les ordonnées et un titre au graphique. Ajouter un quadrillage. Utiliser la même échelle sur les abcisses et les ordonnées. Tester les mêmes manipulations sur un graphique 3D avec u sur l axe X, i sur l axe Y, et F sur l axe Z. Modifier la direction de la vue en agissant sur les angles d azimut et d élévation pour obtenir la vue de face XZ, la vue de droite YZ, la vue de dessus XY. Initiation à MATLAB 30

Chap. 2: Exercices Représentations graphiques Exercice 10. Fonction de deux variables Tracer la courbe de la fonction: fx ( ) = sin( x) pour e ax L exponentielle s obtient par la fonction exp 4 π x 4 π a { 015, ; 01, ; 005, } Exercice 11. Définition paramètrique 2D Tracer en 2D la courbe y fonction de x à l aide de sa définition paramétrique: xt ( ) = cos( 3t) yt ( ) = sin( 2t) avec 0 t 2 π Exercice 12. Définition paramètrique3d Tracer en 3D la courbe de la fonction: xt ( ) = sin( t) cos( t) 2 yt ( ) = sin( t) zt ( ) = cos( t) pour π t π Soit n=5. Exercice 13. Fonctions de Bernstein Générer un vecteur colonne, nommé u, contenant 100 valeurs uniformément réparties entre 0 et 1. Créer une matrice (100,n+1), nommée U, qui contient n+1 fois la colonne u. Générer un vecteur ligne, nommé i, contenant n+1 valeurs uniformément réparties entre 0 et n. Créer une matrice (100,n+1), nommée I, qui contient 100 fois la ligne i. A l aide de la fonction prod, calculer la factorielle de n et affecter le résultat à la variable: fn. (exemple: pour n = 5: fn=120) A l aide de la fonction cumprod calculer les factorielles de toutes les valeurs entières entre 0 et n. affecter le résultat à la matrice ligne fi. On rappelle que, par convention, 0!=1 (exemple: pour n = 5: fi = 1 1 2 6 24 120) Initiation à MATLAB 31

Chap. 2: Exercices Représentations graphiques Créer une variable filr contenant les valeur de fi dans l ordre inverse. (exemple: pour n = 5: filr = 120 24 6 2 1 1) Créer une variable c égale à fn divisé par chacun des termes de fi et chacun des termes de filr. (exemple: pour n = 5: c = 1 5 10 10 5 1) Créer une matrice (100,n+1), nommée C, qui contient 100 fois la ligne c. Pour chaque terme de C, de U, et de I, calculer C multiplié par (U puissance I) multiplié par ( ( 1 -U ) puissance ( n - I ) ) Tracer en 2D les courbes représentant les valeurs des colonnes de B en fonction de celles de U. 14.2 Surfaces Exercice 14. Cône Dessiner sous forme de maillage (Xc, Yc, Zc) la surface C suivante: Cône (de révolution) d axe ( O, z), - de sommet S de coordonnées:(0, 0, Zs), - d angle au sommet: a Pour Zs = 5 mm, a = 40 degrés et pour des valeurs de z telles que: 0 < z < h Exercice 15. Plan Dessiner sous forme de maillage (Xp, Yp, Zp) la surface P suivante: Plan passant par le point H de coordonnées (0, 0, Zh), orthogonal au vecteur de coordonnées (u, v, w) Pour Zh = 3 mm, u = 1, v = 2, w = 5 et pour des valeurs de X et Y comprises entre -5 et +5 mm. Exercice 16. Cône tronqué Dessiner le cône C tronqué par le plan P: Pour cela on défini une nouvelle surface T par un maillage dont les noeuds (Xt, Yt, Zt) vérifient: Zt = Zc si Zc < Zp Zt = Zp si Zc > Zp Initiation à MATLAB 32

Chapitre 3 Guide des fonctions de Matlab Ce chapitre présente une aide sommaire à propos des fonctions de Matlab les plus utilisées. Elles sont classées en 19 catégories afin de faciliter la recherche. Pour une assistance plus complète consulter le guide de référence du logiciel, ou utiliser l aide en ligne avec le nom de la catégorie 15 Liste des catégories de fonctions Cette liste est obtenue à l aide de la commande help help nom_de_la_categorie produit la liste des fonctions de la catégorie. general ops elmat elfun plotxy plotxyz graphics color sound strfun specfun matfun datafun polyfun sparfun iofun demos Commandes générales Opérateurs; caractères spéciaux Matrices élémentaires; manipulations de matrices Fonctions mathématiques élémentaires Graphiques 2D Graphiques 3D Contrôle des graphes Contrôle des couleurs et de la lumière sur les surfaces Contrôle des signaux audio Manipulation des chaînes de caractères Méthodes de résolution d équations linéaires Analyse de données et transformées de Fourier Polynômes et fonctions d interpolation Méthodes de résolution d équations non linéaires Matrices creuses Entrées/sorties (Lecture et écriture de fichiers) Exemples et démonstrations Initiation à MATLAB 33

Chap. 3: Guide des fonctions de Matlab Références 16 Références Commandes générales Gestion des variables et de l environnement clear Efface les variables et les fonctions de la mémoire disp Affiche une matrice ou un texte length Longueur d un vecteur load Rappelle des variables enregistrées sur disque save Sauvegarde des variables sur disque size Taille d une matrice type Liste un fichier M what Liste des fichiers M, MAT et MEX who Liste les variables courantes which Localise fonctions et fichiers Gestion des fichiers et répertoires / Division./ Division terme à terme Transposée Opérateurs relationnels > Supérieur à < Inférieur à >= Supérieur ou égal à <= Inférieur ou égal à == Egal à ~= Différent de Opérateurs logiques & ET logique OU logique cd delete dir Change de répertoire courant Efface un fichier Liste un répertoire ~ NON logique xor OU exclusif Caractères spéciaux! Exécute une commande du système d exploitation Contrôle de la fenêtre de commande clc Efface la fenêtre de commande echo echo dans les fichiers script format Défini le format d affichage des nombres home Ramène le curseur au début de la fenêtre more Contrôle le déroulement de la fenêtre quit Quitte MATLAB Opérateurs et caractères spéciaux : Génération de vecteurs ( ) Parenthèses [ ] Séparateur de sous matrices. Séparateur décimal.. Répertoire parent... Suite à la ligne suivante, Séparateur de colonnes (dans une matrice) ; Séparateur de lignes (dans une matrice) % Commentaire Fonctions logiques Opérateurs arithmétiques * Multiplication matricielle.* Multiplication terme à terme ^ Elévation à la puissance.^ Elévation à la puissance terme à terme all any exist find isstr Vrai si TOUS les éléments d un vecteur sont VRAIS Vrai si au moins UN élément d un vecteur est VRAI Teste si une variable ou une fonction existe Recherche les indices des éléments non nuls Vrai si la variable est une chaîne de caractères Initiation à MATLAB 34

Chap. 3: Guide des fonctions de Matlab Références Matrices élémentaires; manipulations de matrices Matrices élémentaires eye linspace logspace Matrice Identité Vecteur à incrément linéaire Vecteur à incrément logarithmique ones Matrice remplie de 1 rand randn Nombres aléatoire à distribution uniforme Nombres aléatoire à distribution normale Fonctions mathématiques élémentaires abs atan2 log log10 rem round sign sqrt Valeur absolue Tangente inverse 4 quadrants log Népérien log décimal Reste d une division l entier le plus proche Signe d une fonction Racine carrée zeros Matrice remplie de 0 : Génération d un vecteur à espacement régulier Variables spéciales et constantes ans Dernier résultat non affecté à une variable eps La plus petite valeur calculable: 2.2204 E-16 inf Une valeur infinie... NaN Not-a-Number: faire un trou dans une matrice ;-) pi 3,1415926535897... Gestion de l horloge Graphiques 2D Graphes élémentaires fill Rempli de couleur un polygone loglog Graphe à échelles log-log plot Graphe à échelles linéaires semilogx Log en X linéaire en Y semilogy Log en Y linéaire en X Graphes spécialisés clock Horloge date Calendrier etime Elapsed Time Fonction tic, toc Fonction chronomètre Manipulation de matrices bar errorbar fplot hist polar stairs Graphe bâtons Barres avec tolérance Graphe d une fonction Graphe d un histogramme Graphe en coordonnées polaires Graphe en marches d escalier diag Crée ou extrait la diagonale fliplr Permutation des colonnes flipud Permutation des lignes reshape Modification du format rot90 Rotation de 90 tril Extrait le triangle inférieur triu Extrait le triangle supérieur : Toutes les lignes ou toutes les colonnes Annotation des graphes grid Quadrillage gtext Placement d un texte avec la souris text Annotation title Titre du graphe xlabel Label de l axe X ylabel Label de l axe Y Graphiques 3D Initiation à MATLAB 35

Chap. 3: Guide des fonctions de Matlab Références Lignes et polygones fill3 Rempli un polygone en 3-D plot3 Trace une courbe en 3-D Courbes de niveau et autres graphes 3-D axis cla gca hold subplot Contrôle les échelles d un graphe Efface les axes courants Pointeur des axes courants Maintient les échelles du graphe courant Crée plusieurs axes dans un graphe clabel Courbes de niveau avec indication des altitudes contour Courbes de niveau contour3 Courbes de niveau 3-D image Affiche un objet de type image Surfaces et maillages mesh Maillage meshc Maillage avec courbes de niveau surf Surface surfc Surface avec courbes de niveau surfl Surface avec effet d éclairage Apparence des graphes axis Contrôle des échelles colormap Carte des couleurs hidden Maillage avec élimination des lignes cachées shadding Mode de rendu des surfaces view Contrôle de la direction de vue d un graphe 3-D viewmtx Matrice de transformation de la vue Contrôle des graphes Contrôle des fenêtres figures clf Efface la figure courante close Ferme la figure figure Crée une figure gcf Pointeur de la figure courante Contrôle des axes Impression orient Défini l orientation du papier print Envoie le graphe à l impression printopt Configure l imprimante par défaut Animation (movies) get frame Prépare une animation movie Lit l enregistrement d une séquence animée moviein Initialise la mémoire pour une animation Contrôle des couleurs et de la lumière Cartes de couleurs bone Nuance de gris légèrement bleuté cool Dégradés de cyan et magenta copper Couleurs cuivre flag Rouge, blanc, bleu, et noir gray Nuances de gris hsv Hue-Saturation-Value hot Noir, rouge, jaune, blanc pink Dégradés de rose Modèles de lumière brighten Contrôle lumière-obscurité hsv2rgb Passage de HSV à Rouge-Vert-Bleu rgbplot Affiche la carte RGB rgb2hsv Passage de RGB à HSV spinmap spin color map axes Crée des axes en positions arbitraires Initiation à MATLAB 36

Chap. 3: Guide des fonctions de Matlab Références Contrôle des signaux audio Equations linéaires saxis sound Echelle de l axe des sons Converti un vecteur en son Manipulation des chaînes de caractères Fonctions générales abs eval isstr setstr Comparaisons de chaînes lower strcmp upper Conversions avec des nombres int2str num2str sprintf str2num sscanf Méthodes de résolution d équations linéaires Analyse de matrices Converti une chaîne en valeur numérique Exécute un chaîne comme un commande matlab Vrai si la variable est une chaîne Converti une valeur numérique en chaîne Converti une chaîne en minuscules Compare deux chaînes Converti une chaîne en majuscules Conversion entier vers chaîne Conversion nombre vers chaîne Conversion nombre vers chaîne Conversion chaîne vers nombre Conversion chaîne vers nombre eig inv nnls poly Analyse de données et transformées de Fourier Opérations de base cumprod cumsum max mean median min prod sort std sum trapz diff gradient Filtres conv Valeurs propres et vecteurs propres Matrice inverse Résolution avec critère des moindres carrés Polynôme caractéristique Produit cumulé des éléments d un vecteur Somme cumulée des éléments d un vecteur Valeur maxi Moyenne Médiane Valeur mini Produit des éléments d un vecteur Tri dans l ordre croissant Ecart type (Standard Deviation) Somme des éléments d un vecteur Intégration numérique (méthode des trapèzes) Approximation de la dérivée (différences finies) Approximation du gradient Produit de convolution conv2 Convolution 2-D filter Filtre numérique 1-D filter2 Filtre numérique 2-D cond det norm null orth rank trace Conditionnement Déterminant Norme Espace nul Orthogonalisation Rang (Nb lignes ou colonnes lin. indépendantes) Somme des éléments diagonaux Transformées de Fourier abs Amplitude angle Phase fft Transformée de Fourier discrète fft2 Transformée de Fourier discrète 2-D Polynômes et fonctions d interpolation Initiation à MATLAB 37

Chap. 3: Guide des fonctions de Matlab Références Polynômes Entrées/sorties formatées conv deconv poly polyder polyfit polyval roots Multiplication Division Méthodes de résolution d équations non linéaires fmin fmins fzero ode23 ode45 Matrices creuses Matrices creuses élémentaires spdiag speye sprandn Conversion matrices creuses / matrices pleines full find sparse Entrées/sorties Gestion des fichiers Construction à l aide des racines Dérivée Approximation d un nuage de points Evaluation d un polynôme Calcul des racines Minimum d une fonction d une variable Minimum d une fonction de plusieurs variables Zéros d une fonction d une variable Résolution d équations différentielles Résolution d équations différentielles Matrice creuse formée de diagonales MAtrice Identité creuse Matrice aléatoire creuse Conversion creuse en pleine Recherche les indices des éléments non nuls crée une matrice creuse fgetl Lit une ligne d un fichier fgets Lit une ligne d un fichier fprintf Ecrit des données formatées dans un fichier fscanf Lit des données formatées depuis un fichier Entrées/sorties non formatées fread Lit des données binaires depuis un fichier fwrite Ecrit des données binaires dans un fichier Langage Programmation function Ajoute une nouvelle fonction global Défini une variable comme globale nartgchk Validation du nombre d arguments d entrée input Invite pour une entrée de l utilisateur menu Génère un menu à choix multiples pause Interruption temporaire d un traitement Instructions de contrôle break Termine l exécution d une boucle else Sinon (alternative à une condition définie par if) elseif Si (Condition à l intérieur d une autre condition) end Termine une boucle (for, while, ou if) error Affiche un message et termine la fonction for Répétitions définies d une séquence if Exécute une séquence sous condition return Retour à la fonction invoquée while Répétitions indéfinies d une séquence fclose fopen Ferme un fichier Ouvre un fichier Initiation à MATLAB 38