{VERSION 5 0 "IBM INTEL NT" "5.0" }
{USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 
1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 
0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 }
{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 
2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 3 1 
{CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 
4 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier
" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }
{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 
2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Outpu
t" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }
1 3 0 0 0 0 1 0 1 0 2 2 0 1 }}
{SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "
> " 0 "" {MPLTEXT 1 0 8 "restart:" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 13 "with(linalg):" }}{PARA 7 "" 1 "" {TEXT -1 80 "Warning
, the protected names norm and trace have been redefined and unprotect
ed\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 124 "Le but de ce TP est de p
rogrammer l'algorithme du pivot de Gauss pour \351chelonner une famill
e u_1,...,u_p de vecteurs de R^n." }}{PARA 0 "" 0 "" {TEXT -1 127 "On \+
codera les vecteurs par des listes ; ainsi, une famille de vecteurs se
ra une liste de listes, comme dans l'exemple suivant :" }}{PARA 0 "" 
0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "u[1]:=
[0,2,3];u[2]:=[0,5,6];u[3]:=[7,8,9];u[4]:=[10,11,12];" }}{PARA 11 "" 
1 "" {XPPMATH 20 "6#>&%\"uG6#\"\"\"7%\"\"!\"\"#\"\"$" }}{PARA 11 "" 1 
"" {XPPMATH 20 "6#>&%\"uG6#\"\"#7%\"\"!\"\"&\"\"'" }}{PARA 11 "" 1 "" 
{XPPMATH 20 "6#>&%\"uG6#\"\"$7%\"\"(\"\")\"\"*" }}{PARA 11 "" 1 "" 
{XPPMATH 20 "6#>&%\"uG6#\"\"%7%\"#5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 
"" {MPLTEXT 1 0 31 "famille:=[u[1],u[2],u[3],u[4]];" }}{PARA 11 "" 1 "
" {XPPMATH 20 "6#>%(familleG7&7%\"\"!\"\"#\"\"$7%F'\"\"&\"\"'7%\"\"(\"
\")\"\"*7%\"#5\"#6\"#7" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}
{PARA 0 "" 0 "" {TEXT -1 50 "On manipule cette famille de la mani\350r
e suivante :" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 11 "famille[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7
%\"\"!\"\"&\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "famille
[2][3];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 ">
 " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 24 "Choi
x d'un pivot non nul" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 
0 "" 0 "" {TEXT -1 241 "Ecrire une proc\351dure qui prend en entr\351e
 une famille de vecteurs, et qui donne en sortie, l'indice du premier \+
vecteur dont la premi\350re coordonn\351e est non nulle (la proc\351du
re donnera 0 si tous les vecteurs ont leur premi\350re coordonn\351e n
ulle)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 104 "indice:=proc(L)\nlocal i:\nfor i from 1 to nops(L) d
o\nif L[i][1]<>0 then RETURN(i):\nfi:\nod:\nRETURN(0)\nend;" }}{PARA 
11 "" 1 "" {XPPMATH 20 "6#>%'indiceGf*6#%\"LG6#%\"iG6\"F*C$?(8$\"\"\"F
.-%%nopsG6#9$%%trueG@$0&&F26#F-6#F.\"\"!-%'RETURNGF8-F<6#F:F*F*F*" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "famille;" }}{PARA 11 "" 1 "" 
{XPPMATH 20 "6#7&7%\"\"!\"\"#\"\"$7%F%\"\"&\"\"'7%\"\"(\"\")\"\"*7%\"#
5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "indice(famille
);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "> " 0 
"" {MPLTEXT 1 0 30 "famille2:=[[0,0],[0,1],[0,2]];" }}{PARA 11 "" 1 "
" {XPPMATH 20 "6#>%)famille2G7%7$\"\"!F'7$F'\"\"\"7$F'\"\"#" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "indice(famille2);" }}{PARA 
11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 
1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 
{PARA 3 "" 0 "" {TEXT -1 24 "Permutation des colonnes" }}{EXCHG {PARA 
0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 200 "On suppose qu'
il existe au moins un vecteur dont la premi\350re composante est non n
ulle. La deuxi\350me \351tape de l'algorithme est de le placer en t
\352te de liste ; cette composante est appel\351e premier pivot." }}
{PARA 0 "" 0 "" {TEXT -1 46 "La proc\351dure suivante r\351pond \340 c
ette attente :" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+
" 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "
permute:=proc(L)\nlocal i:\ni:=indice(L):\nconvert(swaprow(L,1,i),list
list);\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(permuteGf*6#%\"LG6#
%\"iG6\"F*C$>8$-%'indiceG6#9$-%(convertG6$-%(swaprowG6%F1\"\"\"F-%)lis
tlistGF*F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "famille;" }}
{PARA 11 "" 1 "" {XPPMATH 20 "6#7&7%\"\"!\"\"#\"\"$7%F%\"\"&\"\"'7%\"
\"(\"\")\"\"*7%\"#5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
17 "permute(famille);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&7%\"\"(\"\"
)\"\"*7%\"\"!\"\"&\"\"'7%F)\"\"#\"\"$7%\"#5\"#6\"#7" }}}{EXCHG {PARA 
0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 46 "L'algorithme du pivot p
our la premi\350re ligne :" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}
{PARA 0 "" 0 "" {TEXT -1 207 "On suppose encore qu'il existe au moins \+
un vecteur dont la premi\350re composante est non nulle. On effectue m
aintenant l'algorithme du pivot afin d'\351liminer les premi\350res co
mposantes des vecteurs u_2,...,u_p :" }}{PARA 0 "" 0 "" {TEXT -1 0 "" 
}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 170 "gauss1:=proc(L)\nlocal j,p,l,pivot:\np:=nops(L)
:\nl:=permute(L):\npivot:=l[1][1]:\nfor j from 2 to p do\nif l[j][1] <
> 0 then\nl[j]:=l[j]-l[j][1] * l[1] / pivot;\nfi:\nod:\nl;\nend;" }}
{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'gauss1Gf*6#%\"LG6&%\"jG%\"pG%\"lG%&
pivotG6\"F-C'>8%-%%nopsG6#9$>8&-%(permuteGF3>8'&&F66#\"\"\"F=?(8$\"\"#
F>F0%%trueG@$0&&F66#F@F=\"\"!>FF,&FFF>*(FEF>F<F>F:!\"\"FLF6F-F-F-" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "famille;" }}{PARA 11 "" 1 "" 
{XPPMATH 20 "6#7&7%\"\"!\"\"#\"\"$7%F%\"\"&\"\"'7%\"\"(\"\")\"\"*7%\"#
5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "gauss1(famille
);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&7%\"\"(\"\")\"\"*7%\"\"!\"\"&
\"\"'7%F)\"\"#\"\"$7%F)#!\"$F%#!\"'F%" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}
{SECT 0 {PARA 3 "" 0 "" {TEXT -1 20 "L'algorithme g\351n\351ral" }}
{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 116 "Q
uestion : programmer l'algorithme g\351n\351ral du pivot de Gauss. On \+
pourra utiliser pour cela les proc\351dures suivantes." }}{PARA 0 "" 
0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "collezero:=proc(L)\n[seq([0,
op(j)],j=L)];\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*collezeroGf*
6#%\"LG6\"F(F(7#-%$seqG6$7$\"\"!-%#opG6#%\"jG/F29$F(F(F(" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "famille;" }}{PARA 11 "" 1 "" 
{XPPMATH 20 "6#7&7%\"\"!\"\"#\"\"$7%F%\"\"&\"\"'7%\"\"(\"\")\"\"*7%\"#
5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "collezero(fami
lle);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&7&\"\"!F%\"\"#\"\"$7&F%F%\"
\"&\"\"'7&F%\"\"(\"\")\"\"*7&F%\"#5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 
"" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "coll
epivot:=proc(v,L)\n[v,op(L)];\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6
#>%+collepivotGf*6$%\"vG%\"LG6\"F)F)7$9$-%#opG6#9%F)F)F)" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "collepivot([alpha,beta,gamma],famil
le);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7'7%%&alphaG%%betaG%&gammaG7%
\"\"!\"\"#\"\"$7%F)\"\"&\"\"'7%\"\"(\"\")\"\"*7%\"#5\"#6\"#7" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" 
{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 70 "La proc\351dure suivante \+
ex\351cute l'algorithme du pivot de Gauss g\351n\351ral :" }}{PARA 0 "
" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 326 "gau
ss:=proc(L)\nlocal i,l,pivot,n,p,res:\np:=nops(L):\nn:=nops(L[1]):\ni:
=indice(L):\nif p = 1 then RETURN(L):fi:\nif n = 1 then\nif i=0 then R
ETURN(L):\nelse RETURN(gauss1(L)):\nfi:\nfi: \nif i = 0 then \nl:=[seq
(i[2..n],i=L)];\nres:=collezero(gauss(l));\nelse\nl:=gauss1(L);\nres:=
collepivot(l[1],gauss([seq(l[i],i=2..nops(l))])); \nfi:\nend;" }}
{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&gaussGf*6#%\"LG6(%\"iG%\"lG%&pivotG
%\"nG%\"pG%$resG6\"F/C(>8(-%%nopsG6#9$>8'-F46#&F66#\"\"\">8$-%'indiceG
F5@$/F2F=-%'RETURNGF5@$/F8F=@%/F?\"\"!FD-FE6#-%'gauss1GF5@%FIC$>8%7#-%
$seqG6$&F?6#;\"\"#F8/F?F6>8)-%*collezeroG6#-F$6#FRC$>FRFM>Fgn-%+collep
ivotG6$&FRF<-F$6#7#-FU6$&FR6#F?/F?;FZ-F4F\\oF/F/F/" }}}{EXCHG {PARA 0 
"> " 0 "" {MPLTEXT 1 0 8 "famille;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#
7&7%\"\"!\"\"#\"\"$7%F%\"\"&\"\"'7%\"\"(\"\")\"\"*7%\"#5\"#6\"#7" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "gauss1(famille);" }}{PARA 
11 "" 1 "" {XPPMATH 20 "6#7&7%\"\"(\"\")\"\"*7%\"\"!\"\"&\"\"'7%F)\"\"
#\"\"$7%F)#!\"$F%#!\"'F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 
"gauss(famille);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&7%\"\"(\"\")\"\"
*7%\"\"!\"\"&\"\"'7%F)F)#\"\"$F*7%F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "famille2:=[[1,2,3],[3,2,1],[
3,3,3],[5,0,-5]];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)famille2G7&7%
\"\"\"\"\"#\"\"$7%F)F(F'7%F)F)F)7%\"\"&\"\"!!\"&" }}}{EXCHG {PARA 0 ">
 " 0 "" {MPLTEXT 1 0 16 "gauss(famille2);" }}{PARA 11 "" 1 "" 
{XPPMATH 20 "6#7&7%\"\"\"\"\"#\"\"$7%\"\"!!\"%!\")7%F)F)F)F," }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" 
{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 228 "Question subsidiaire : \+
\351crire une proc\351dure \"rang\" qui prend en entr\351e une famille
 de vecteurs et donne en sortie le rang de cette famille, i.e. le nomb
re de vecteurs non nuls apr\350s application de l'algorithme du pivot \+
de Gauss." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 0 "" }}}}{MARK "16 20 1 0" 228 }{VIEWOPTS 1 1 0 1 1 
1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }