{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 }