Algèbre linéaire

La librairie "linalg" est requise pour pouvoir utiliser les commandes que vous retrouverez dans cette section. Cette librairie place en mémoire plus de 100 commandes utilisées dans les calculs d'algèbres linéaires.

Naturellement, les plus utilisées sont: "vector" et "matrix". Ces deux commandes sont des cas particuliers de la commande "array" dont la syntaxe générale est:

> array(option,1..m,1..n,[[a11,...,a1n],...,[am1,...,amn]]);

option: identity donne la "matrice" identitée de la dimension voulue
sparse place des 0 aux positions non spécifiées
symetric retourne une matrice symétrique
antisymétric retourne une matrice antisymétrique
diagonal retourne une matrice diagonale

Dans le cas de "vector", on a

> array(1..n,[x1,...,xn]);

et dans celui de matrix

> array(1..m,1..n,[[a11,...,a1n],...,[am1,...,amn]]);

Les éléments d'un "array" (vecteur ou matrice) peuvent être obtenus en spécifiant la position de ces éléments à l'aide des [ ]. On peut aussi réassigner un élément d'un array en utilisant l'assignation habituelle.

Exemple

> with(linalg):
Warning: new definition for norm
Warning: new definition for trace

> A := array(1..2,1..3,[[1,2,3],[4,5,6]]);
A := é
ë
1 2 3
4 5 6
ù
û

> A[1,2];
2

> A[1,2] := x;
A1,2 := x

> evalm(A);
é
ë
1 x 3
4 5 6
ù
û

Remarque: si certains éléments ne sont pas connus, on peut spécifier la position des éléments connus en remplaçant le dernier paramètre par
[(i,j) = aij,...]
pour tous les éléments connus.

Exemple

> with(linalg):
Warning: new definition for norm
Warning: new definition for trace

> A := array(1..2,1..3,[(1,2)=x,(2,3)=y]);
A := é
ë
A1,1 x A1,3
A2,1 A2,2 y
ù
û

Attention: lorsqu'un "array" est assigné à une variable et que nous "tapons" le nom de cette variable, le résultat obtenu sera le nom de la variable et non son contenu. Il faut utiliser la commande evalm pour obtenir le contenu de la variable.

Exemple

> with(linalg):
Warning: new definition for norm
Warning: new definition for trace

> A : = array(1..2,1..3,[[1,2,3],[4,5,6]]);
A := é
ë
1 2 3
4 5 6
ù
û

> A;
A

> evalm(A);
A := é
ë
1 2 3
4 5 6
ù
û