### 6.52.1 Définition

Pour définir une matrice creuse i.e. une matrice de grande taille ayant peu de coefficients non nuls on peut tout d’abord définir une table puis on transforme cette table en une matrice par la commande matrix.
On tape :
A:=table((0,0)=1,(1,1)=2,(2,2)=3,(3,3)=4,(4,4)=5)
Ou plus simplement en utilisant une multi-affectation à condition que la variable soit purgée.
Ou on tape :
purge(A)
A[0..4,0..4]:=[1,2,3,4,5]
On obtient :
table((0,0)=1,(1,1)=2,(2,2)=3,(3,3)=4,(4,4)=5)
On tape :
purge(B)
B[0..3,1..4]:=[1,2,3,4];
On obtient :
table((0,1)=1,(1,2)=2,(2,3)=3,(3,4)=4) On peut ajouter des éléments à cette table plus tard, éventuellement après avoir fait des opérations dessus.
On tape :
B [0..2,0]:=5
On obtient :
table((0,1)=1,(1,2)=2,(2,3)=3,(3,4)=4)
(0,0)=5,(0,1)=5,(0,2)=5
On convertit ensuite ces tables avec la fonction convert avec comme option array ou avec la commande matrix.
Pour convertir une matrice en une table on utilise la commande table.
On tape :
a:=convert(A,array)
Ou on tape :
a:=matrix(A)
On obtient :
[[1,0,0,0,0],[0,2,0,0,0],[0,0,3,0,0],[0,0,0,4,0],[0,0,0,0,5]]
On tape :
b:=convert(B,array)
Ou on tape :
b:=matrix(B)
On obtient :
[[0,1,0,0,0],[0,0,2,0,0],[0,0,0,3,0],[0,0,0,0,4]]
On peut continuer à modifier B, on tape par exemple:
B[0..4,0]:=5
b:=convert(B,array) (ou b:=matrix(B)
On obtient :
[[5,1,0,0,0],[5,0,2,0,0],[5,0,0,3,0],[5,0,0,0,4],[5,0,0,0,0]]
On tape :
C:=table(b)
On a alors C==B.