Analyse Numérique et Calcul Scientifique
1CI-EEMGC
2021-22
TP1 : Exercices d’initiation à Matlab
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.
Exercices d’initiation à Matlab - 2/2