Vous êtes sur la page 1sur 5

Résumé de cours : Vecteurs et Matrices sous Matlab

Ce résumé décrit certaines commandes et fonctions couramment utilisées pour la création et la


manipulation des vecteurs et des matrices sous Matlab. Il est à noter que les des descriptions données
ci-après sont sommaires. Pour une description plus détaillée de ces fonctions il faut consulter le help
de Matlab.

Création et manipulation des vecteurs


linspace(n, m, p) % Commence à n, termine à m(inclus),et comporte p valeurs
n:p:m % Commence à n, augmente par p et se termine à ou avant m
n:m % Commence à n, augmente par 1 et se termine à ou avant m
éme
x(i) % i élément du vecteur x
x(i1:i2) % sous vecteurs composé des éléments i1 à i2 de x
x(i1:i2)=[] % supprimer les éléments de i1 à i2 de x
x([i1, i2]) % sous vecteurs composé des éléments i1 et i2 de x
x([i1, i2])=[] % supprimer les éléments i1 et i2 de x
[x,y] % concaténer horizontalement les vecteurs x et y
[x;y] % concaténer verticalement les vecteurs x et y

Création et manipulation des vecteurs


[mLin,nCol] = size(A) % nombre de lignes et de colonnes de A
n = numel(A) % renvoie le nombre d'éléments, n, dans le tableau A,
% équivalent au produit (mLin*nCol).
L = length(X) % renvoie la longueur de la plus grande dimension de
% tableau dans X.
% Pour les vecteurs, la longueur est simplement le
% nombre d'éléments.
% Pour les matrices L= max(mLin,nCol).
éme éme
A(i,j) % élément de A qui se trouve à la i ligne et j col.
A(i1:i2,:) % sous matrice composée des lignes i1 à i2 de A
A(i1:i2,:) =[] % supprimer les lignes i1 à i2 de A
A(:,j1:j2) % sous matrice composée des colonnes j1 à j2 de A
A(:,j1:j2)=[] % supprimer les colonnes j1 à j2 de A
A([i1,i2],:) % sous matrice composée des lignes i1 et i2 de A
A([i1,i2],:) =[] % supprimer les lignes i1 et i2 de A
A(:,[j1,j2]) % sous matrice composée des colonnes j1 et j2 de A
A(:,[j1,j2])=[] % supprimer les colonnes j1 et j2 de A
A(:) % indexation linéaire de A, (concat.des colonnes de A)

Construction de matrices élémentaires


A = eye(n) % renvoie une matrice identité de dimension n x n.
A = zeros(n,m) % renvoie une matrice de zéros de dimension n x m
A = ones(n,m) % renvoie une matrice de uns de dimension n x m
A = diag(v) % renvoie une matrice diagonale avec le vecteur v sur la
% diagonale
v = diag(A) % renvoie le vecteur v qui est la diagonale de A
A = rand(n,m) % renvoie une matrice aléatoire de dimension n x m
A = randn(m,n) % renvoie une matrice m x n de nombres aléatoires normalement
% distribués
A = magic(n) % carré magique de taille n
reshape(A,m,n) % réarrange une matrice A de dimension donnée en une matrice de
% dimension m x n. Le nombre d’éléments doit correspondre !
B = repmat(A,n) % renvoie une matrice contenant n copies de A.

1 © 2019 H. Airouche
Quelques fonctions élémentaires sur les matrices
max(M) % renvoie un vecteur-ligne contenant les valeurs maximales
% associées à chaque colonne.
min(M) % un vecteur-ligne contenant les valeurs minimales associées à
% chaque colonne.
sum(M) % renvoie un vecteur-ligne contenant la somme des éléments de
% chaque colonne.
prod(M) % renvoie un vecteur-ligne contenant le produit des éléments de
% chaque colonne.
sort(M) % réarrange les colonnes de M dans l’ordre croissant

Opérations sur les matrices


Opérations terme à terme
C = A .* B % produit, Cij = Aij Bij
C = A ./ B % division droite, Cij = Aij/Bij
C = A .\ B % division gauche, Cij = Bij\Aij
C = A.^n % nième puissance, Cij = (Aij)n
Opérations matricielle
C = A + Cst % somme matrice constante, Cij = Aij + Cst
C = A - Cst % différence matrice constante, Cij = Aij - Cst
C = A * Cst % produit matrice constante, Cij = Aij * Cst
C = A / Cst % division matrice constante, Cij = Aij / Cst
C = A + B % somme matricielle, Cij = Aij + Bij
C = A * B % produit matriciel
C = A / B % division matricielle
C = A^n % nième puissance matricielle (matrices carrées uniqu.)

Le tableau suivant résume quelques uns des opérateurs évoqués précédemment

2 © 2019 H. Airouche
Opérations matricielles de base en algèbre linéaire
C = A' % transposée de A, Cij = Aji
-1
C = inv(A) % inverse de A, C = A
d = det(A) % déterminant de A
r = rank(A) % rang de A
n = norm(A) % norme de A
b = trace(A) % somme des éléments de la diagonale de A
[V, D] = eig(A) % Valeurs propres et vecteurs propre de (D: valeur propre,
% V: vecteur propre)
[V, D] = eig(K) % (K – D * I) * V = 0
[V, D] = eig(K,M) % (K – D * M) * V = 0
C = triu(A) % extrait la matrice-triangle supérieure de A
C = tril(A) % extrait la matrice-triangle inférieure.

3 © 2019 H. Airouche
Série d’exercice : Vecteurs et Matrices sous Matlab
Q1: En utilisant la commande (:) créer les vecteur a et b
5
⎛4⎞
𝑎 = (1 2 3 4 5) 𝑏 = ⎜3⎟
2
⎝1⎠
Que pensez-vous des affirmations suivantes
1. size(a) est égal à size(b)
2. length(a) est égal à length(b)
3. length(a) est égal à length(b’)
4. a(3) est égal à b(3)
5. a(1:2) – b(2:3) est égal à [-3 -1]
6. a est égal à b’’
7. a(2:4) * b(1:3) est égal à 34

Q2: Parmi les opérations suivantes, lesquelles s'exécutent correctement sans provoquer une erreur (du
type « Matrix dimensions must agree » ou «Inner matrix dimensions must agree»).
1. V = [1 1 1 1] + [1 2 3 4];
2. V = [1 1 1 1] + [1 ; 2 ; 3 ; 4];
3. V = [1 1 1 1] + [1 1 ; 2 2 ; 3 3 ; 4 4];
4. V = [1 1 1 1] - (1:4);

Q3: On souhaite générer un vecteur V de longueur n (scalaire entier >0 prédéfini) contenant des 0.
Déterminez les syntaxes correctes réalisant cette opération :
1. V = zeros(1,n);
2. V = linspace(0,eps,n);
3. V = 0*ones(1,n);
4. V = ones(n,1)-1;

Q4: On veut évaluer la fonction 𝑦 = √x + 4 × sin2 (𝑥) + 4 pour les différentes valeurs de x
contenues dans le vecteur ligne défini par x = linspace(-10,10,1000);. Quels sont les syntaxes
correctes ? :
1. y = sqrt(x + 4) *sin(x)^2 + 4;
2. y = sqrt(x + 4).*sin(x)^2 + 4;
3. y = sqrt(x + 4).*sin(x).^2 + 4;
4. y = sqrt(x .+ 4).*sin(x).^2 .+ 4;

Q5: Générer les matrices suivantes :


A5 = magic(5), et A4 = magic(4)
1- Pour chaque matrice calculer la somme de chaque ligne, de chaque colonne, ainsi que la
diagonale. Que peut-on conclure ?
2- Rajouter une 5ème colonne [0; 0; 0; 9] à la matrice A4.

Q6: Générer les matrices suivantes :


2 ⋯ 2
1- 𝐴 = � ⋮ ⋱ ⋮ �matrice (9x9) (utiliser zeros ou ones)
2 ⋯ 2

4 © 2019 H. Airouche
1 0 ⋯ 0
⎡0 ⋱ 0 ⋱ ⎤
⎢ ⎥
2- 𝐵 = ⎢ ⋮ 0 5 0 ⋮ ⎥ ou 𝑉 = [1 2 … 5 … 2 1]
⎢ ⋱ 0 ⋱ 0⎥
⎣0 ⋯ 0 1⎦
1 2 ⋯ 10
3- 𝐶 = � 11 12 ⋯ 20 � utiliser la fonction reshape
⋮ ⋮ ⋱ ⋮
91 92 ⋯ 100

Q7 : Construire la matrice T tridiagonale à l’aide de la commande diag() utilisée 3 fois :


2 −1 0 0 0
⎡ −1 2 −1 0 0 ⎤
⎢ ⎥
𝑇 = ⎢ 0 −1 2 −1 0 ⎥
⎢ 0 0 −1 2 −1 ⎥
⎣ 0 0 0 −1 2 ⎦
1- Extraire de T les deux premières colonnes
2- Extraire de T la dernière ligne
3- Effacer la ligne 2
4- Créer une matrice T2 où la ligne 1 est échangée avec la ligne 3 puis la colonne 2 est remplacée
par la colonne 4

Q8: On pose u=[1 2 3]; u=[1;1;1]; M=[1 2 3;4 5 6] . Parmi les opérations suivantes,
indiquer lesquelles s'exécutent correctement sans provoquer une erreur du type « Matrix dimensions
must agree » ou «Inner matrix dimensions must agree».
1. M*u
2. M*v
3. u.*v
4. (u.*v’)*M
5. (u*v)*M
6. Rajouter une 3ème ligne [7, 8, 9] à la matrice M.
7. Expliquer la différence entre les réponses que donne Matlab quand on tape les commandes
suivantes M^2, M*M et M.^2 ?

Pb1 : Ecrire un programme et une fonction, sous Matlab, qui permettent de générer la matrice
paramétrée en fonction de N, suivante :

1 −1 0 ⋯ 0
⎡ −1 2 ⋱ ⋮⎤
⎢ ⎥
⎢ 0 −1 ⋱ −1 ⎥
𝐴= ⎢ ⋱ 𝑁 ⋱ ⎥ ou 𝑉 = [1 2 … 𝑁 … 2 1] 𝑒𝑡 𝑁 𝑒𝑛𝑡𝑖𝑒𝑟 > 2
⎢ −1 ⋱ −1 0⎥
⎢ ⋮ ⋱ 2 −1⎥
⎣ 0 ⋯ 0 −1 1⎦

Pb2 : Ecrire un programme et une fonction, sous Matlab, qui permettent de générer la matrice
paramétrée en fonction de N, suivante :

1 2 ⋯ 𝑁
𝑁+1 𝑁+2 ⋯ 𝑁+𝑁
𝐵=� �
⋮ ⋮ ⋱ ⋮
𝑁(𝑁 − 1) + 1 𝑁(𝑁 − 1) + 2 ⋯ 𝑁∗𝑁

Exemple N =10 donnera la matrice C de l’exercice Q6.

5 © 2019 H. Airouche

Vous aimerez peut-être aussi