Bonjour a tous

Je débute sur maple et je dois écrire une procédure.
J'ai une matrice A de M(n,p) (matrice rectangulaire à n lignes et p colonnes) à coefficient dans R.

Je dois écrire une procédure qui prend comme argument la matrice A et qui renvoie
le rang de A
une matrice P appartenant à GL(n) de R
une matrice Q appartenant à GL(p) de R
une matrice B appartenant à M(n,p) de R

avec B=P*A*Q
La matrice B étant telle que si r est son rang, on ait b(1,1),...,b(r,r) non nuls et b(i,j)=0 si i>r ou si (j<=r et j<i)

pouvez vous m'aidez ?
merci.