Exo18-19.mw

> restart;with(linalg);

Warning, the protected names norm and trace have been redefined and unprotected

[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, cold...[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, cold...[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, cold...[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, cold...

>

>

> Exercice 18

>

question a)

> x1:=[1,0,1,0,1];x2:=[2,-1,2,-1,2];x3:=[1,-1,1,-1,1];x4:=[3,0,2,1,2];x5:=[1,1,0,2,1];x6:=[2,1,1,2,1];

x1 := [1, 0, 1, 0, 1]

x2 := [2, -1, 2, -1, 2]

x3 := [1, -1, 1, -1, 1]

x4 := [3, 0, 2, 1, 2]

x5 := [1, 1, 0, 2, 1]

x6 := [2, 1, 1, 2, 1]

> tM:=array(1..6,1..5,[x1,x2,x3,x4,x5,x6]):

> M:=transpose(tM);

M := matrix([[1, 2, 1, 3, 1, 2], [0, -1, -1, 0, 1, 1], [1, 2, 1, 2, 0, 1], [0, -1, -1, 1, 2, 2], [1, 2, 1, 2, 1, 1]])

>

Calcul du rang

> Grang(M);

L[3],

L[5],

L[2],

L[4],

C[3], ", C[4], matrix([[1, 2, 3, 1, 1, 2], [0, 1, 0, 1, -1, -1], [0, 0, -1, 0, -1, -1], [0, 0, 1, 0, 1, 1], [0, 0, -1, 0, 0, -1]])" align="center">

L[3],

L[4],

L[5],

C[4], ", C[5], matrix([[1, 2, 3, 1, 1, 2], [0, 1, 0, -1, 1, -1], [0, 0, 1, 1, 0, 1], [0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0]])" align="center">

L[5], ", L[4], matrix([[1, 2, 3, 1, 1, 2], [0, 1, 0, -1, 1, -1], [0, 0, 1, 1, 0, 1], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0]])" align="center">

C[5], ", C[6], matrix([[1, 2, 3, 1, 2, 1], [0, 1, 0, -1, -1, 1], [0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0]])" align="center">

Donc rang(M)=4

>

question b)

recherche d'une base, à l'aide de 4 vecteurs libres parmi les six proposés

>

> tM:=array(1..3,1..5,[x1,x2,x3]):

> M:=transpose(tM);

M := matrix([[1, 2, 1], [0, -1, -1], [1, 2, 1], [0, -1, -1], [1, 2, 1]])

> Grang(M);

L[3],

L[5],

L[2],

L[4],

Donc (x1,x2,x3) liée

> tM:=array(1..3,1..5,[x1,x2,x4]):

> M:=transpose(tM);

M := matrix([[1, 2, 3], [0, -1, 0], [1, 2, 2], [0, -1, 1], [1, 2, 2]])

> Grang(M);

L[3],

L[5],

L[2],

L[4],

L[3],

L[4],

L[5],

> Donc (x1,x2,x4) libre

> tM:=array(1..4,1..5,[x1,x2,x4,x5]):

> M:=transpose(tM);

M := matrix([[1, 2, 3, 1], [0, -1, 0, 1], [1, 2, 2, 0], [0, -1, 1, 2], [1, 2, 2, 1]])

> Grang(M);

L[3],

L[5],

L[2],

L[4],

L[3],

L[4],

L[5],

L[5], ", L[4], matrix([[1, 2, 3, 1], [0, 1, 0, -1], [0, 0, 1, 1], [0, 0, 0, 1], [0, 0, 0, 0]])" align="center">

Donc (x1,x2,x4,x5) libre et donc base de Vect(x1,..,x6)

>

S'agissant d'un hyperplan, il suffit de trouver un vecteur n'appartenant pas à celui-ci pour avoir une droite supplémentaire

Ici nous allons plutot rajouter une colonne (non CL des précedentes) à la matrice obtenue après le pivot de Gauss et remonter les équivalences pour retrouver  un quatrieme vecteur qui forme une base

> N:=array(1..5,1..5,[[1,2,3,1,0],[0,1,0,-1,0],[0,0,1,1,0],[0,0,0,1,0],[0,0,0,0,1]]);

N := matrix([[1, 2, 3, 1, 0], [0, 1, 0, -1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]])

> Grang_inverse(M,N);

L[5], ", L[4], matrix([[1, 2, 3, 1, 0], [0, 1, 0, -1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 0, 1], [0, 0, 0, 1, 0]])" align="center">

L[5],

L[4],

L[3],

L[4],

L[2],

L[5],

L[3],

Donc le vecteur (0,0,0,1,0) complete la famille précédente en une base

>

question c)

Voici les coordonnées relatives à la base canonique

> P1:=[1,1,-1,1];P2:=[2,-1,0,1];P3:=[1,1,2,-1];P4:=[-1,1,1,0];

P1 := [1, 1, -1, 1]

P2 := [2, -1, 0, 1]

P3 := [1, 1, 2, -1]

P4 := [-1, 1, 1, 0]

> tM:=array(1..4,1..4,[P1,P2,P3,P4]):

> M:=transpose(tM);

M := matrix([[1, 2, 1, -1], [1, -1, 1, 1], [-1, 0, 2, 1], [1, 1, -1, 0]])

>

Mk := matrix([[1, -2, 2, 0], [1, -1, 3, 0], [5, -8, 12, 0]])

> Grang(M);

L[2],

L[3],

L[4],

L[2],

L[3],

L[4],

L[3],

L[4],

L[4],

C'est donc bien une base

>

> Exercice 19

relativement aux bases canoniques on a

> A:=array(1..4,1..4,[[-6,-2,0,10],[-3,1,0,4],[-5,-1,2,6],[-6,-2,0,10]]);

A := matrix([[-6, -2, 0, 10], [-3, 1, 0, 4], [-5, -1, 2, 6], [-6, -2, 0, 10]])

question a)

> Grang(A);

L[1],

L[2],

L[3],

L[4],

L[2],

L[3],

L[3],

D'où rang(A)=3

>

question b)

> Gsyst(A,[x,y,z,t],[0,0,0,0]); On ne fait pas apparaitre la colonne nulle du second membre

L[1],

L[2],

L[3],

L[4],

L[2],

L[3],

L[3],

0 = 0

L[1],

Puisque le noyau est de dimension 1, il suffit d'un vecteur non nul dans celui-ci (par exemple pour t=1)

> e1=[5/3-1/6,1/2,1,1];

e1 = [3/2, 1/2, 1, 1]

(e1) est une base du noyau

>

question c)

A(a,b,c,d)=(x,y,z,t) est une équation paramétrique de Im(A) en [x,y,z,t] et de paramètres (a,b,c,d)

On élimine les paramétres afin d'obtenier une équation en x,y,z (et oui "une" puisque c'est un hyperplan que l'on cherche)

> Gsyst(A,[a,b,c,d],[x,y,z,t]);

L[1],

L[2],

L[3],

L[4],

L[2],

L[3],

L[3],

t-x = 0

L[1],

puisque les trois premiers paramètres (a,b,c) sont  fonction de x,y,z,t et du paramètre d,  la derniere équation (équation de compatibilité) est une équation cartésienne de im(A)

> Eq_caretisenne:=-x+t=0;

Eq_caretisenne := -x+t = 0

Pour chercher une base il suffit de trouver 3 parmi les 4 colonne de A, qui soient indépendantes

> A:=array(1..4,1..3,[[-6,-2,0],[-3,1,0],[-5,-1,2],[-6,-2,0]]);

A := matrix([[-6, -2, 0], [-3, 1, 0], [-5, -1, 2], [-6, -2, 0]])

> Grang(A);

L[1],

L[2],

L[3],

L[4],

L[2],

L[3],

L[3],

>

C'est gagné les trois premières colonnes forment une base de Im(A)