Opérations

Section : Cours
Avant : Construire des matrices
Après : Types de données

and2>
Opérations Les opérations numériques s'effectuent en suivant les ordres de priorité classiques (puissance avant multiplication, et multiplication avant addition). Pour éviter les doutes il est toujours prudent de mettre des parenthèses. 2+3*4 (2+3)*4 2^3*4 2^(3*4) 2^3^4 (2^3)^4

Toutes les opérations habituelles +, -, *, ^, / sont matricielles. Tenter une opération entre matrices de tailles non compatibles retournera en général un message d'erreur, sauf si une des matrices est un scalaire. Dans ce cas, l'opération (addition, multiplication, puissance) s'appliquera terme à terme.

A=[1,2,3;4,5,6] A+ones(1,3) // erreur A+ones(A) A+10 A*10 A*ones(A) // erreur A*ones(A') A'*ones(A)

Il n'y a pas d'ambiguïté sur l'addition, mais il est souvent utile de pouvoir appliquer des multiplications terme à terme sans qu'elles soient interprétées comme des produits matriciels.

Dans ce cas on considère que les matrices sont des tableaux qui doivent avoir les mêmes dimensions afin de garantir un sens aux opérations terme à terme. Le symbole d'opérateur, * ou ^, doit alors être précédé d'un point, .* ou .^

A=[1,2,3;4,5,6] A*A // erreur A*A' A.*A' // erreur A.*A A=[1,2;3,4] A^3 A.^3 // attention 2.^A 2^A // attention A.^A

La division est un cas particulier dangereux. Par défaut, la division à droite, A/B, calcule une solution d'un système linéaire, X*B=A.

A=[1,2;3,4] B=[1,2;2,2] D=A./B X=A/B X*B

Si v est un vecteur colonne, 1/v retourne un vecteur ligne w tel que w*v=1. Ceci engendre des erreurs fréquentes, d'autant que 1./v, compris comme (1.0)/v, retourne la même chose. Il y a plusieurs solutions à ce problème, dont la plus simple consiste à mettre des parenthèses : (1)./v

v=[1,2,3]' w=1/v w*v 1./v (1)./v ones(v)./v v.^(-1) v=v' w=1/v 1./v

addition, soustractionmultiplication, puissance (matricielles)multiplication, puissance terme à termesolution de A*x=bsolution de x*A=bdivision terme à terme
Opérations matricielles
+ -
* ^
.* .^
A\b
b/A
./

         © UJF Grenoble, 2011                              Mentions légales