Exercice 1 : Vecteurs et courbes π a) Définir la variable x = , et calculer y1 = sin(x) et y2 = cos(x), puis z = tan(x) à partir 4 de y1 et y2 . π π π b) Définir la variable x = [ , , ], et calculer y1 = sin(x) et y2 = cos(x). 6 4 3 Calculer alors tan(x) en utilisant exclusivement les vecteurs y1 et y2 précédents. c) Définir la variable x = [0 : 0.1 : 2π]. Combien y a-t-il de valeurs dans ce vecteur ? Afficher la courbe du sinus. Faire varier le pas. Qu’affiche exactement la commande plot ? (plot, size, length).
Exercice 2 : Manipulation de matrices
a) Définir le vecteur V = [0 1 2 3 · · · 49 50]. Quelle est la taille de ce vecteur ? Définir le vecteur W contenant les cinq premiers éléments de V , et le vecteur X contenant les cinq premiers et les cinq derniers éléments. Définir ensuite le vecteur Z = [0 2 4 · · · 48 50] à partir de V . 1 2 3 4 5 6 7 8 9 10 b) Définir la matrice M = 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 8 9 10 Extraire de cette matrice la matrice N = 11 12 , la matrice P = 18 19 20 , puis 21 22 28 29 30 3 7 la matrice Q = . 23 27 Extraire de la matrice M la matrice R obtenue en prenant dans la matrice M une colonne sur 2. c) Définir les matrices M = [2 4 6 8 · · · 100] et N = [−1 − 3 − 5 · · · − 99], puis le vecteur P = [−1 2 − 3 4 − 5 8 · · · − 99 100]. d) Définir une matrice M aléatoire à trois lignes et sept colonnes. Combien de nombres dans cette matrice sont plus grand que 0, 5 ? que 0, 8 ? Ou sont-ils situés ? (rand, nnz, find, sum) Construire alors la matrice P obtenue à partir de la matrice M en remplaçant tous les nombres de M inférieurs à 0, 4 par 0, et ceux supérieurs à 0.4 par 1. Construire de même la matrice Q obtenue à partir de la matrice M en remplaçant tous les nombres de M inférieurs à 0.5 par −3 et tous les nombres supérieurs à 0.5 par 14. e) Créer un vecteur contenant N valeurs binaires (0 ou 1) tel que 10 % de ces valeurs soient des 1. Exercices d’initiation à Matlab - 1/2 Exercice 3 : Fonctions graphiques On considère la fonction fa (t) = 1+a1 t2 . a) Créer le vecteur t=[0 : 0.01 : 10] ; quel est le nombre de points ? Quelle est la place utilisée en mémoire ? (size, length, whos) c) Représenter sur une figure 4 cadrans, la fonction demandée pour les valeurs a = 1, 10, 20 et 30. Mettre les titres et les légendes de chaque graphique. (subplot, title, legend) c) Représenter sur une même figure les 4 graphes de la question précédente. Mettre les titres et les légendes de chaque graphique.
Exercice 4 : Création d’une fonction
a) Créer, à partir de votre fichier de commande, une fonction qui trace la courbe de l’exercice 3, en fonction de la variable a passée en paramètres et qui retourne les valeurs prises par la fonction fa . b) Ajouter un ”flag” passé à la fonction qui permet de choisir ou non la visualisation de la courbe (nargin)
Exercice 7 : Recherche d’un élément dans un vecteur
Ecrire une fonction Trouve qui prend en argument un vecteur v et un nombre x, et qui retourne 1 si x est un élément du vecteur v, et 0 sinon. Deux versions au moins de cette fonction peuvent-être implémentées, une à l’aide d’une boucle for, et d’un test if approprié, une seconde avec while, et une autre directement avec une comparaison globale == (et, par exemple, find ou nnz).
Exercice 8 : Matrices et systèmes linéaires
a) Ecrire une fonction, n’utilisant aucune boucle (for, while, ...) qui prend comme paramètre un entier n et qui construit la matrice suivante (fonctions eye, diag) : 1 1 0 ··· 0 0 0 1 2 n−1 0 0 0 n n 0 2 3 ··· 0 0 0 n .. .. .. . . .. .. .. . . . . . . . 0 0 0 ··· n − 1 2 n 0 n−1 1 0 0 0 ··· n n n 0 0 0 ··· 0 1 n+1 b) Avec Matlab, on peut résoudre tout type de système linéaire en l’écrivant préalablement sous forme matricielle. Le système linéaire, d’inconnues x, y et z suivant 6x + y − 5z = 10 2x + 2y + 3z = 11 4x − 9y + 7z = 12
s’écrit sous forme matricielle AX = b, où X = [x y z]T est le vecteur inconnu.
Le vecteur X se calcule alors suivant : AX = b ⇐⇒ X = A−1 b, ou encore, avec Matlab, X = A \ b (voir help slash). Résoudre le système linéaire précédent.