Académique Documents
Professionnel Documents
Culture Documents
Vecteurs et Matrices
>> X= [1 3 5 7]
X=1 3 5 7
définit un vecteur (ligne) de dimension (1,4) (1 ligne et 4 colonnes) confirmé par la commande
size(X) qui donne la dimension de la variable X :
>> size(X)
ans = 1 4
Il existe plusieurs manières de définir un vecteur. On peut utiliser la virgule « , » qui
sert de séparateur de colonne. Ainsi pour définir le vecteur suivant, on aurait pu écrire :
>> X= [1,3,5,7]
Pour définir un vecteur colonne, il faut séparer les éléments par des points virgules :
>> Y= [1;2;3;4]
Y=
1
2
3
4
X=
1 3 5 7
1
Remarques :
- dans le cas où x = 1 :2 :6, x ne peut prendre la valeur 6 car le pas n’est pas en accord
avec la plage à couvrir (6-1 = 5)... Il est alors préférable d’utiliser une syntaxe du type :
Pas = (fin-début)/(n-1) avec n le nombre de points entre le début et la fin.
- Il est possible d’utiliser un pas négatif pourvu que début > fin :
>> X = 5: -1: 2
X=
5 4 3 2
La façon la plus simple de définir une matrice dans l’environnement Matlab est d’entrer
au clavier la liste de ses éléments, en adoptant les conventions suivantes :
Les éléments d’une même ligne sont séparés par des espaces ou des virgules.
La liste des éléments doit être entourée de crochets [ ].
Chaque ligne, sauf la dernière, doit se terminer par un point-virgule.
Par exemple la commande :
>> A=[1 1 1 ; 2 4 8 ; 3 9 27] (ou encore >> A= [1,1,1 ; 2,4,8 ; 3,9,27]
A=
1 1 1
2 4 8
3 9 27
Pour des matrices de grandes dimensions, nous pourrons utiliser une boucle que nous
verrons au paragraphe 6.2.
2
3.3 ACCES A DES ELEMENTS D’UNE MATRICE SOUS MATLAB
0 4 3 1 7
7 8 9 0
A 6 7 8 9 0 B
1 2 3 4 5 2 3 4 5
3
C=
0 4 3 1 7
2 3 4 5 7
Les opérations arithmétiques telles que l’addition et la soustraction sont utilisables avec
des matrices et se font terme à terme entre les matrices de même dimension et de même type.
Si A et B sont deux matrices carrées (2,2) définies par :
1 2 2 3
A et B
4 6 5 7
>> S=A+B fait la somme élément par élément.
S=
3 5
9 13
2 6 1 * 2 2 * 3 1 2 2 3
C *
20 42 4 * 5 6 * 7 4 6 5 7
4
>> C=A*B réalise un produit matriciel. Le nombre de colonne de A doit être égal au
nombre de lignes de B (sauf si A ou B, est un scalaire) :
12 17 1 * 2 2 * 5 1 * 3 2 * 7 1 2 2 3
C *
38 54 4 * 2 6 * 5 4 * 3 6 * 7 4 6 5 7
Commande find : elle est utile pour trouver rapidement les éléments d’un tableau qui
vérifient une condition. Par exemple, si l’on veut récupérer tous les éléments d’une
matrice y qui sont supérieurs à 4 :
>> y = [12 6 2 0 7 1 0 15 8 9 1 2] ; création d’un vecteur y
>> ind = find(y > 4)
ind prend les indices (les numéros des colonnes) des éléments de y qui sont supérieurs
ou égales à 4.
ind =
1 2 5 8 9 10
>> z = y(ind) récupère les éléments de y qui vérifient la condition (y>=4)
z=
12 6 7 15 8 9
Commande B= reshape(A,M,N) : permet de redimensionner la matrice A en une
matrice B de dimension MxN. Le produit MxN doit évidemment être égal au nombre
total d’éléments de A. Par exemple :
>> A= [ 1 2 3 4 ; 6 7 8 9 ; 0 5 8 4 ; 7 5 2 1] ;
A=
1 2 3 4
6 7 8 9
0 5 8 4
7 5 2 1
5
est une matrice 4x4 qui peut être redimensionnée en une matrice 2x8 :
>> B = reshape (A,2,8) redimensionne B en une matrice 2 lignes et 8 colonnes :
B=
1 0 2 5 3 8 4 4
6 7 7 5 8 2 9 1
Commande repmat : permet de construire une matrice par répétition d’une autre
matrice :
1 2
A
3 4
>> B = repmat (A,2,3) construit la matrice B en répétant 2 fois A suivant les lignes et 3
fois suivant les colonnes :
B= x3
1 2 1 2 1 2
3 4 3 4 3 4 x2
1 2 1 2 1 2
3 4 3 4 3 4
Commande unique : permet de supprimer toutes les valeurs dédoublées (ou répétées)
dans une matrice et de classer les éléments par ordre croissant.
>> A = [5 1 5 6 2 3 3 9 8 6 2 4]
>> B = unique (A)
B=[1 2 3 4 5 6 8 9 ] reproduit A dans un ordre croissant sans
répétition.
Agrandir une matrice avec des zéros : si l’on veut transformer la matrice carrée A :
1 2
A
3 4
1 2 0 0
3 4 0 0
en une matrice du type : A , il suffit d’écrire : A(4,4) = 1. Matlab
0 0 0 0
0 0 0 1
construit automatiquement une matrice suffisamment grande pour arriver jusqu’aux
indices spécifiés et met des zéros partout sauf au terme considéré (qui peut être zéro
également !).
6
Résolution d’un système d’équations linéaires : si l’on veut résoudre un système
d’équations linéaires s’écrivant sous la forme matricielle AX = B, la solution cherchée
est X = A-1B. Avec Matlab, cela revient à effectuer l’opération : X = A \ B (division à
gauche).
Par exemple, on cherche à résoudre AX = B :
1 2 x1 5
3 4 x 6
2
>>A= [1 2 ; 3 4]
>> B = [5 ; 6]
>> A\B
ans =
-4.0000
4.5000
On obtient immédiatement les solutions x1 = - 4 et x2 = 4.5.
Matrice identité :
>> A = eye(3) définit une matrice carrée de dimension 3x3 dont les éléments de la
diagonale principale sont des 1. Les autres éléments sont nuls.
A=
1 0 0
0 1 0
0 0 1
Matrice nulle :
>> A = zeros(2,3) définit une matrice remplie de 0 de 2 lignes et 3 colonnes :
A=
0 0 0
0 0 0
Matrice unité :
>> A = ones(1,3) définit un vecteur ligne (1 ligne, 3 colonnes) rempli de 1 :
A=
1 1 1
Matrice diagonale :
>> x = [2 3 5] ;
7
A = diag(x) produit une matrice diagonale, c'est-à-dire dont tous les éléments sont nuls
sauf ceux se trouvant sur la diagonale :
A=
2 0 0
0 3 0
0 0 5
Matrice aléatoire :
>> A = rand(2,2) définit une matrice de nombres réels aléatoires compris entre 0 et 1.
A=
0.8147 0.1270
0.9058 0.9134
8
3.7 EXERCICES I : MANIPULATIONS DE SCALAIRES, VECTEURS ET MATRICES
1-Scalaire
2
- La racine carré. Calculer 10 et vérifier que 10 10 .
- x = linspace(1,10,20)
- length(x) ? size(x) ?
2-Vecteurs
- Construire le vecteur ligne V1 contenant les nombres entiers pairs de 1 à 20. L’utiliser
pour calculer la racine carrée de ces nombres.
- Construire le vecteur colonne V2 contenant les mêmes éléments que V1. Calculez le
produit scalaire de V1 par V2.
2 4 6 8
A 10 12 14 16
18 20 22 24
- Pour une valeur de N fixée, construire le vecteur ligne :
9
La commande doit fonctionner pour n’importe quelle valeur de N (N = 100 par
exemple !). On pourra utiliser la commande fliplr.
- Définir un vecteur V4 comportant 100 éléments tous égaux à 4.
3-Matrices
- Entrer une valeur pour un élément de la 2ème ligne et 6ème colonne. Que se passe-t-il ?
1 0 1
- Construire la matrice C 0 1 0 , puis calculez B*C et B.*C. Conclusion ?
1 0 1
10 7 87
7 5 65
- Calculez la matrice inverse de : D .
8 6 10 9
7 5 9 10
32
23
- Calculez la solution du système DX=Y avec Y
33
31
10