Définition

### 6.51.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`.