Exo15-17.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 15

> M:=array(1..3,1..3,[[1,-2,2],[1,-1,3],[5,-8,12]]);

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

Calcul du rang

> Grang(M);

L[2],

L[3],

L[3],

Donc rang(M)=2

>

Calcul du noyau (recherche d'une base)

>

(x,y,z) est dans le noyau ssi il est solution du systeme

> Mk:=array(1..3,1..3,[[1,-2,2],[1,-1,3],[5,-8,12]]):

> Gsyst(Mk,[x,y,z],[0,0,0]); c'est l'équation cartésienne du noyau

L[2],

L[3],

L[3],

0 = 0

L[1],

on voit que z peut jouer le rôle d'un parametre (normal dim Ker M=1) et on a alors

D'où un vecteur générateur de ker M est

> e_1=(4,1,-1);

e_1 = (4, 1, -1)

>

D'où une équation paramétrique du noyau (de paramètre t)

> x=4*t;y=t;z=-t;

x = 4*t

y = t

z = -t

Calcul de l'image

cherchons parmi les vacteurs f(e1), f(2), f(e3) deux d'entre eux qui soient libres, ils formeront alors une base de l'image puisque rg(M)=2

par exemple f(e1) et f(e2) car non colinéaires (évident)

D'où une base (f1,f2) de Im(M)

> f1=(1,1,5),f2=(2,-1,-8);

f1 = (1, 1, 5), f2 = (2, -1, -8)

D'où une équation paramétrique de Im(M) (de parametre s et t)

> x=s+2*t;y=s-t;z=5*s-8*t;

x = s+2*t

y = s-t

z = 5*s-8*t

En éliminant les paramtres en les exprimant en fonction de y et z (grace aux deux premiere equations par exemple)

> s=(x+2*y)/3;t=(x-y)/3;

s = 1/3*x+2/3*y

t = 1/3*x-1/3*y

on trouve l'équation cartésienne (de cet hyperplan)

> z-5*(x+2*y)/3+8*(x-y)/3=0;

z+x-6*y = 0

>

> Exercice 16

relativement aux bases canoniques on a

> M:=array(1..2,1..4,[[0,0,4,0],[0,0,0,12]]);

M := matrix([[0, 0, 4, 0], [0, 0, 0, 12]])

question c)

> x^3,x^2*(x-1),x*(x-1)^2,(x-1)^3; est la famille relativement à la base canonique

>

x^3, x^2*(x-1), x*(x-1)^2, (x-1)^3

> map(expand,[%]);

[x^3, x^3-x^2, x^3-2*x^2+x, x^3-3*x^2+3*x-1]

d'où la matrice associée

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

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

> Grang(P);

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

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

L[2],

L[4],

cette famille est de rang 4, c'est donc une base.

>

question d)

>

la base x,x-1 admet pour matrice de passage

>

> Q:=array(1..2,1..2,[[0,-1],[1,1]]);

Q := matrix([[0, -1], [1, 1]])

> inv_Q:=inverse(Q);

inv_Q := matrix([[1, 1], [-1, 0]])

d'où la matrice de M dans la nouvelle base

> M_prime:=evalm(inv_Q&*M&*P);

M_prime := matrix([[12, 8, 4, 0], [0, 4, 8, 12]])

question e)

> x^3+2*x^2(x-1)-x(x-1)^2+(x-1)^3=(1,2,-1,1);

x^3+2*x^2-x(x-1)^2+(x-1)^3 = (1, 2, -1, 1)

d'où les coordonnées dans la nouvelle base

> X_prime:=array(1..4,1..1,[[1],[2],[-1],[1]]);

X_prime := matrix([[1], [2], [-1], [1]])

d'où f(x^3+2*x^2(x-1)-x(x-1)^2+(x-1)^3) a pour coordonnées dans la nouvelle base

> Y_prime:=evalm(M_prime&*X_prime);

Y_prime := matrix([[24], [12]])

et dans l'ancienne base

> Y:=evalm(Q&*Y_prime);

Y := matrix([[-12], [36]])

en effet on le vérifie à la main:

> T:=x->x^3+2*x^2*(x-1)-x*(x-1)^2+(x-1)^3;f(T)=simplify(D(T)(x+1)-D(T)(x-1));

T := proc (x) options operator, arrow; x^3+2*x^2*(x-1)-x*(x-1)^2+(x-1)^3 end proc

f(T) = 36*x-12

>

>

> Exercice 17

>

> I_3:=array(1..3,1..3,[[1,0,0],[0,1,0],[0,0,1]]);

I_3 := matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

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

A := 1/2*matrix([[4, -1, -3], [-4, 1, -3], [-4, 1, 5]])

question a)

Calcul de E0

> Grang(A);

L[1],

L[2],

L[3],

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

L[2],

L[3],

rg(A)=2, donc dim E0=1 un seul vecteur suffit, on résoud f(x,y,z)=0, on trouve le systeme (on n'ecrit pas la colonne  du second membre)

> Gsyst(A,[x,y,z],[0,0,0]);

L[1],

L[2],

L[3],

C[2], ", C[3], matrix([[x, -3/4*z, -1/4*y], [0, -3*z, 0], [0, z, 0]]), "=", matrix([[0], [0], [0]])" align="center">

L[2],

L[3],

0 = 0

L[1],

>

donc un vecteur générateur est

> z0=(1,4,0);

z0 = (1, 4, 0)

>

>

> Ca se voyait tout de suite car les colonnes f(e1) et f(e2) verifient f(e1)=-4f(e2) d'où e1-4e2 est dans le noyau et par l'opération C1<-C1+4*C2, on trouve le rang=2

>

Calcul de E1

> A1:=evalm(A-I_3);

A1 := matrix([[1, (-1)/2, (-3)/2], [-2, (-1)/2, (-3)/2], [-2, 1/2, 3/2]])

> Grang(A1);

L[2],

L[3],

L[2],

L[3],

rg(A1)=2, donc dim E1=1 un seul vecteur suffit, on résoud f(x,y,z)=0, on trouve le systeme (on n'ecrit pas la colonne  du second membre)

> Gsyst(A1,[x,y,z],[0,0,0]);

L[2],

L[3],

L[2],

L[3],

0 = 0

L[1],

>

donc un vecteur générateur est

> z1=(0,-3,1);

z1 = (0, -3, 1)

>

>

> Ca se voyait tout de suite car les colonnes de E1:  f(e2) et f(e3) verifient f(e3)=3f(e2) d'où 3e2-e1 est dans le noyau et par l'opération C3<-C3-3*C2, on trouve le rang=2

>

>

Calcul de E4

> A4:=evalm(A-4*I_3);

A4 := matrix([[-2, (-1)/2, (-3)/2], [-2, (-7)/2, (-3)/2], [-2, 1/2, (-3)/2]])

> Grang(A4);

L[1],

L[2],

L[3],

L[2],

L[3],

rg(A2)=2, donc dim E2=1 un seul vecteur suffit, on résoud f(x,y,z)=0, on trouve le systeme (on n'ecrit pas la colonne  du second membre)

> Gsyst(A4,[x,y,z],[0,0,0]);

L[1],

L[2],

L[3],

L[2],

L[3],

0 = 0

L[1],

>

donc un vecteur générateur est

> z4=(-3,0,4);

z4 = (-3, 0, 4)

>

>

> Ca se voyait tout de suite car les colonnes de E4:  f(e1) et f(e3) verifient f(e1)=4f(e3)/3 d'où e1-3e3/4 est dans le noyau et par l'opération C1<-C1-3*C3/4, on trouve le rang=2

>

>

question b)

les vecteurs z0,z1, z4 sont libres donc forment une base:

> f(z0)=0; f(z1)=1; f(z4)=4*z4;

f(z0) = 0

f(z1) = 1

f(z4) = 4*z4

d'où la matrice dans la nouvelle base

> A_prime:=array(1..3,1..3,[[0,0,0],[0,1,0],[0,0,4]]);

A_prime := matrix([[0, 0, 0], [0, 1, 0], [0, 0, 4]])

question c)

la matrice de passage est:

> P:=array(1..3,1..3,[[1,0,-3],[4,-3,0],[0,1,4]]);

P := matrix([[1, 0, -3], [4, -3, 0], [0, 1, 4]])

c'est en effet une base puisque de rang 3

> Grang(P);

L[2],

L[2],

L[3],

L[3],

et on retrouve la matrice diagonale

> evalm(inverse(P)&*A&*P);

matrix([[0, 0, 0], [0, 1, 0], [0, 0, 4]])

pour info

> inv(P)=inverse(P);

inv(P) = matrix([[1/2, 1/8, 3/8], [2/3, (-1)/6, 1/2], [(-1)/6, 1/24, 1/8]])

il suffit de résoudre P(x,y,z)=(a,b,c)  d'inconnues (a,b,c)

> Gsyst_cramer(P,[x,y,z],[a,b,c]);

L[2],

L[2],

L[3],

L[3],

L[1],

L[2],

ou encore transformet la matrice identité à partir des mêmes opérations sur les lignes résultant du pivot de Gauss qui mènent de P à la matrice identité

> Ginverse(P);

matrix([[1, 0, -3], [4, -3, 0], [0, 1, 4]]),

matrix([[1, 0, -3], [0, -3, 12], [0, 1, 4]]), L[2],

matrix([[1, 0, -3], [0, 1, -4], [0, 1, 4]]), L[2],

matrix([[1, 0, -3], [0, 1, -4], [0, 0, 8]]), L[3],

matrix([[1, 0, -3], [0, 1, -4], [0, 0, 1]]), L[3],

matrix([[1, 0, 0], [0, 1, -4], [0, 0, 1]]), L[1],

matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]]), L[2],

>