restart;
<Text-field layout="Heading 1" style="Heading 1"/>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:
Exercice 2question a)Permut_ligne:=proc(i,j,A) local B,k,t; t:=taille(A); B:=array(1..t[1],1..t[2]); B:=evalm(A); for k from 1 to t[2] do B[i,k]:=A[j,k]; B[j,k]:=A[i,k]; on ne modifie que la i-eme et j-eme lignes de B od; evalm(B); end: question b)Dilat_ligne:=proc(a,i,A) local k,t,B; t:=taille(A); B:=array(1..t[1],1..t[2]); B:=evalm(A); for k from 1 to t[2] do B[i,k]:=a*A[i,k]; on ne modifie que la i-eme ligne de B od; evalm(B); end:question c)Transvect_ligne:=proc(i,a,j,A) local k,t,B; t:=taille(A); B:=array(1..t[1],1..t[2]); B:=evalm(A); for k from 1 to t[2] do B[i,k]:=A[i,k]+a*A[j,k]; on ne modifie que la i-eme ligne de B od; evalm(B); end:question d)CherchePivot_colonne:=proc(A,i) local t,k; t:=taille(A); if is(i>t[1])then RETURN(IMPOSSIBLE); fi; la proc\351dure ne fonctionne que si l'indice i ne d\351passe pas le nombre de colonnes for k from i to t[1] do if is(A[k,i]<>0) then RETURN(k); fi; renvoi le premier indice correspondant \340 un coefficent non nul \340 partir de aii dans la colonne i od; RETURN(0); sinon renvoi 0 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:=evalm(A); for k from 1 to t[1] do B[k,i]:=A[k,j]; B[k,j]:=A[k,i]; on ne modifie que la i-eme et j-eme colonnes de B od; evalm(B); end: