restart;
taille:=proc(A)
local t,u,n,p;
t:=[op(2,evalm(A))];
n:=op(2,t[1]);p:=op(2,t[2]);
[n,p];
end:produit:=proc(A,B)
local k,C,n,p,q,i,j,t;
t:=taille(A); n:=t[1]; p:=t[2];
t:=taille(B); q:=t[2];
if (t[1]<>p) then RETURN(IMPOSSIBLE); fi;
C:=array(1..n,1..q);
for i from 1 to n do
for j from 1 to q do
C[i,j]:=add(A[i,k]*B[k,j],k=1..p);
od;
od;
RETURN(evalm(C));
end:MatPermut:=proc(i,j,n)
local k,l,P;
P:=array(1..n,1..n);
for k from 1 to n do
for l from 1 to n do
P[k,l]:=0;
od;
P[k,k]:=1;
od;
P[i,i]:=0;P[j,j]:=0;P[i,j]:=1;P[j,i]:=1;
evalm(P);
end: MatDilat:=proc(a,j,n)
local k,l,P;
P:=array(1..n,1..n);
for k from 1 to n do
for l from 1 to n do
P[k,l]:=0;
od;
P[k,k]:=1;
od;
P[j,j]:=a;
evalm(P);
end:MatTransvect:=proc(i,a,j,n)
local k,l,P;
P:=array(1..n,1..n);
for k from 1 to n do
for l from 1 to n do
P[k,l]:=0;
od;
P[k,k]:=1;
od;
P[i,j]:=a;
evalm(P);
end:Exercice 2bisEtant donn\351 que les op\351rations \351l\351mentaires s'obtiennent par produit de la matrice initiale par des matrices \351l\351mentaires d\351j\340 construites on a:question a)Permut_ligne:=proc(i,j,A)
local B,k,t;
t:=taille(A);
B:=array(1..t[1],1..t[2]);
B:=MatPermut(i,j,t[1]);
evalm(Produit(B,A));
end: question b)Dilat_ligne:=proc(a,i,A)
local B,k,t;
t:=taille(A);
B:=array(1..t[1],1..t[2]);
B:=MatDilat(a,i,t[1]);
evalm(Produit(B,A));
end: question c)Transvect_ligne:=proc(i,a,j,A)
local B,k,t;
t:=taille(A);
B:=array(1..t[1],1..t[2]);
B:=MatTransvect(i,a,j,t[1]);
evalm(Produit(B,A));
end: question e)Permut_colonne:=proc(i,j,A)
local B,k,t;
t:=taille(A);
B:=array(1..t[1],1..t[2]);
B:=MatPermut(i,j,t[1]);
evalm(Produit(A,B));
end: