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.