4 pages

PCSI B Mathematiques Lycee Brizeux annee

Obtenez un accès à la bibliothèque pour le consulter en ligne
En savoir plus

Description

Niveau: Supérieur
PCSI B Mathematiques Lycee Brizeux - annee 2009-2010 T P d ' i n f o r m a t i q u e M a t r i c e s e t p i v o t d e G a u s s Dans ce TP, nous utiliserons la librairie linalg (que l'on charge en tapant >with(linalg) ; en ligne de commande). La librairie linalg permet de faire du calcul matriciel et repond a la plupart des besoins. Une autre librairie plus recente existe : la librairie LinearAlgebra. Nous ne l'utiliserons pas ici, mais les esprits curieux pourront toujours y jeter un oeil une autre fois. I Construction de quelques matrices-test La construction de matrices s'effectue a l'aide de la commande matrix ( ? matrix). A noter que la com- mande equivalente dans la librairie LinearAlgebra est plus souple d'emploi : elle permet de construire plus aisement des matrices dites « structurees ». 1. Emploi de la commande matrix et operations matricielles Exercice 1. Chargez la librairie linalg, puis executez et precisez l'effet de chaque commande executee : ' & $ % > A:=matrix(4,3,[1,2,3,4,5,6,7,8,9,10,11,12]); > M:=matrix(3,4,(i,j)->(i+j)^2); > N:=matrix(10,10,(i,

  • echange

  • pivot

  • ligne ir

  • colonne

  • procedure gauss

  • methode du pivot de gauss

  • commandes utiles

  • rang


Sujets

Informations

Publié par
Nombre de lectures 28

PCSI B Math´ematiques Lyc´ee Brizeux - ann´ee 2009-2010
M a t r i ce s e t p i v o t d e G a u s s
Dans ce TP, nous utiliserons la librairie linalg (que l’on charge en tapant >with(linalg); en ligne de
commande). La librairie linalg permet de faire du calcul matriciel et r´epond `a la plupart des besoins. Une autre
librairie plus r´ecente existe : la librairie LinearAlgebra. Nous ne l’utiliserons pas ici, mais les esprits curieux
pourront toujours y jeter un oeil une autre fois.
I Construction de quelques matrices-test
`La construction de matrices s’effectue `a l’aide de la commande matrix (? matrix). A noter que la com-
mande ´equivalente dans la librairie LinearAlgebra est plus souple d’emploi : elle permet de construire plus
ais´ement des matrices dites « structur´ees ».
1. Emploi de la commande matrix et op´erations matricielles
Exercice 1. Chargez la librairie linalg, puis ex´ecutez et pr´ecisez l’effet de chaque commande ex´ecut´ee :
’ $
> A:=matrix(4,3,[1,2,3,4,5,6,7,8,9,10,11,12]);
> M:=matrix(3,4,(i,j)->(i+j)^2);
> N:=matrix(10,10,(i,j)->‘if‘(irem(abs(i-j),2)=1,1,0));
> rowdim(A);rowdim(M);
> coldim(A);coldim(M);
> A[2,3];
> A[2,3]:=2010;evalm(A);
> T:=transpose(A);
> B:=diag(1,2,3);
> evalm(A&*B);
> evalm(3*B);
> C:=submatrix(A,2..4,1..3);
> evalm(B+C);
> evalm(C^4);
> V:=vector([x,y,z]);
> evalm(A&*V);
> evalm(transpose(V)&*V);
> evalm(V&*transpose(V));
& %
Exercice 2. Construire la matrice suivante
 
0 0 0 1
 1 0 0 0 A = 0 1 0 0
0 0 1 0
i iCalculer A pour i∈ J0,20K. Qu’observe-t-on? Que dire de A en fonction de i? L’´etablir.
Exercice 3. Construire de deux fa¸cons la matrice carr´ee d’ordre 100 dont le coefficient (i,j) est ´egal a` i×j.
1
Penq'uomdaitfiTr2. Quelques matrices-test
´Exercice 4. Ecrire une proc´edure hilbert qui construit la matrice de Hilbert d’ordre n, `a savoir la matrice
1carr´ee d’ordre n dont le coefficient (i,j) est ´egal a` .i+j−1
´Exercice 5. Ecrire une proc´edure nilpotente qui construit la matrice carr´ee d’ordre n suivante
 
0 1 0 ··· 0
. .. . .. . . . . . . .. . 
. . .. . . . .. 0 
 . .. . .. 1
0 ··· ··· ··· 0
En d´eduire une proc´edure circulaire qui retourne la matrice carr´ee d’ordre n suivante
 
0 1 0 ··· 0
. .. . .. . . . . . . .. . 
 . . .. . . . .. 0 
 .. .0 1
1 0 ··· ··· 0
Calculer nilpotente(50)^49 et nilpotente(50)^50. Que donne la matrice transpos´ee de circulaire(n)?
Exercice 6. Ecrire une proc´edure antidiagonale qui construit la matrice carr´ee d’ordre n suivante
 
0 ··· 0 1
 .. . 0 
 .. 0 .
1 0 ··· 0
´Exercice 7. Ecrire une proc´edure tridiagonale_sym qui prend en entr´ee a,b et n et qui retourne la matrice
carr´ee d’ordre n suivante :  
a b 0 ··· 0
 .. . .. . . . . . .b . 
 . . .. . . . . .0 0 
 . . . .. . . . . . .. b
0 ··· 0 b a
II Pivot de Gauss
La librairie linalg permet le calcul de l’image; du noyau; du rang. Plusieurs commandes permettent de
le faire. Les principales commandes sont linsolve qui r´esout des syst`emes lin´eaires sous la forme AX =Y ;
rank qui calcule le rang d’une matrice; gausselim qui effectue un pivot de Gauss sur les lignes; colspace
(resp. rowspace) qui d´etermine une base du s.e.v. engendr´e par les colonnes d’une matrice (resp. les lignes
d’une matrice).
L’objectif ici est d’´ecrire une proc´edure effectuant un pivot de Gauss sur les colonnes.
1. Commandes utiles
Exercice 8. Ex´ecutez et pr´ecisez l’effet de chaque commande ex´ecut´ee :
2’ $
> linsolve(nilpotente(6),vector([1$5,0]);
> linsolve(nilpotente(6),vector([1$6]),’r’);r;
> colswap(circulaire(6),1,6);
> A:=tridiagonale_sym(2,1,4);
> addcol(A,1,2,-1/2);
> gausselim(A,’r’);r;
& %
2. Pivot sans ´echange
Soit A∈M (K) et r = min(m,n).m,n
Ici il s’agit d’appliquer la m´ethode du pivot de Gauss en choisissant les pivots successifs sur la diagonale :
Pivot 1 : coefficient (1,1) de la matrice initiale;
...
Pivot i : coefficient (i,i) de la matrice obtenue apr`es avoir employ´e le i−1-i`eme pivot;
...
Pivot r : coefficient (r,r) de la matrice obtenue apr`es avoir employ´e le r−1-i`eme pivot.
Exercice 9. Appliquer un pivot de Gauss `a la main sur les matrices tridiagonale_sym(2,1,4). Quelles sont
les restrictions sur la m´ethode du pivot de Gauss sans ´echange? Marche-t-elle pour nilpotente(4)?
´Exercice 10. Ecrire une procedure gauss_sans_echange qui applique la m´ethode du pivot de Gauss `a une
matrice m×n
Pour bien d´emarrer
> gauss sans echange :=proc(A)
> local m,n,p,B,pivot,i,j;
> m :=;#a` compl´eter
> n :=; # `a compl´eter
> p :=; #a` compl´eter
> B :=evalm(A);
> for i from 1 to p do
> pivot :=B[i,i];
> for j from i+1 to n do
> B :=; # `a compl´eter
> end do;
> end do;
> evalm(B);
> end proc;
Tester votre proc´edure a` tridiagonale_sym(10) puis a` circulaire(10)
3. Pivot avec ´echange
Ici il s’agit de prendre en compte le fait que le coefficient (i,i) peut ˆetre nul – c’est le cas pour la matrice
retourn´ee par circulaire – que les marches peuvent ˆetre de hauteur sup´erieure a` 1 (qu’on peut interpr´eter
comme une « chute de rang » dans le cas d’une matrice carr´ee) Il faut pour cela ´echanger des colonnes pour
faire apparaˆıtre un coefficient (i,i) non nul ou aller a` la ligne suivante si on ne trouve pas de coefficients non
nuls sur la i−`eme ligne.
L’id´ee formul´ee ici est impr´ecise. La description de la m´ethode est la suivante.
Supposons que le r−i`eme pivot soit en position (i ,r) et qu’on a mis a` 0 les coefficients qui suivent sur lar
ligne i .r
1. On d´etermine dans un premier temps le (r+1)−i`eme pivot. Pour cela, on parcourt les coefficients (i,j)
de la matrice situ´es en bas a` droite de (i ,r) de gauche a` droite et de haut en bas jusqu’a` trouver ler
premier coefficient non nul (i ,s)r+1
32. Si on en trouve, on ´echange les colonnes (r +1) et s. Le pivot de la matrice obtenue est le coefficient
(i ,r +1) (anciennement le coefficient (i ,s)). On met alors a` 0 les coefficients qui suivent sur lar+1 r+1
ligne i .r+1
3. si on n’en trouve pas, cela signifie que les colonnes situ´ees `a droite de la colonne r sont nulles. La matrice
est donc d´ej`a ´echelonn´ee et le rang de la matrice est ´egal `a r.
Exercice 11. Mettez en pratique la m´ethode « `a la main » sur la matrice
 
0 0 1 3
 0 0 3 1 
 1 3 1 0
3 1 0 0
´Exercice 12. Ecrire une proc´edure gauss_echange qui ´echelonne une matrice carr´ee d’ordre 4. Tester-la
sur une batterie d’exemples. Si elle marche, essayer d’´ecrire une proc´edure g´en´erale (pour des matrices de
dimension quelconque).
4