exo15-16.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

question a)

> x:='x':y:='y':z:='z':

> u:=z+1:

> v:=-x:

> w:=-y-2:

> f:=vector([u,v,w]):'f'(x,y,z)=evalm(f);

f(x, y, z) = vector([z+1, -x, -y-2])

>

Etude de la partie linéaire

> A:=matrix(3,3,[[0,0,1],[-1,0,0],[0,-1,0]]);

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

A est une matrice orthogonale

> tAA:=evalm(transpose(A)&*A);

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

A est dans le groupe spécial orthogonal

> det_A=det(A);

det_A = 1

Calculons Inv(A)

X:=[x,y,z] est dans inv(A) ssi il est solution du système AX=X

>

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

L[1],

L[2],

L[2],

L[3],

0 = 0

A est la matrice de la rotation autour de

> W:=1/sqrt(3)*vector([1,-1,1]);Wv:=transpose(matrix(1,3,[evalm(W)])):

W := 1/3*3^(1/2)*vector([1, -1, 1])

Calculons l'angle theta de la rotation

le vecteur a ci-dessous est unitaire et orthogonal à W

> a:=1/sqrt(2)*[1,1,0];av:=transpose(matrix(1,3,[evalm(a)])):

a := 1/2*2^(1/2)*[1, 1, 0]

> ct:=evalm(transpose(av)&*A&*av):

> cos(theta)=('a','A'('a')),"=",op(ct);Aa:=[seq(evalm(A&*av)[i,1],i=1..3)]:

cos(theta) = (a, A(a)),

> st:=det(matrix(3,3,[evalm(a),evalm(Aa),evalm(W)])):

> sin(theta)=Det('a','A'('a'),'W'),"=",st;

sin(theta) = Det(a, A(a), W),

C'est donc une rotation d'angle

> theta=4*Pi/3;

theta = 4/3*Pi

>

Cherchons l'ensemble des invariants de f

> Gsyst(A-tAA,[x,y,z],[-1,0,2]);

L[1],

L[2],

L[2],

L[3],

1 = 0

l'ensemble des invariants est donc

> [1,-1,0]+R*W;

[1, -1, 0]+1/3*R*3^(1/2)*vector([1, -1, 1])

> f est donc la rotation d'angle 4*Pi/3 autour de [1,-1,1]  d'axe  [1, -1, 0]+R*[1, -1, 1]

Ce qui compléte la caractérisation de la rotation f

>

question b)

> x:='x':y:='y':z:='z':

> u:=(alpha+2*x+2*y-z)/3:

> v:=(alpha-1-x+2*y+2*z)/3:

> w:=(alpha-2+2*x-y+2*z)/3:

> f:=vector([u,v,w]):'f'(x,y,z)=evalm(f);

f(x, y, z) = vector([1/3*alpha+2/3*x+2/3*y-1/3*z, 1/3*alpha-1/3-1/3*x+2/3*y+2/3*z, 1/3*alpha-2/3+2/3*x-1/3*y+2/3*z])

>

Etude de la partie linéaire

> A:=(1/3)*matrix(3,3,[[2,2,-1],[-1,2,2],[2,-1,2]]);

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

A est une matrice orthogonale

> tAA:=evalm(transpose(A)&*A);

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

A est dans le groupe spécial orthogonal

> det_A=det(A);

det_A = 1

Calculons Inv(A)

X:=[x,y,z] est dans inv(A) ssi il est solution du système AX=X

>

> Gsyst(3*A-3*tAA,[x,y,z],[0,0,0]);

L[1],

L[2],

L[3],

L[2],

L[3],

0 = 0

L[1],

A est la matrice de la rotation autour de

> W:=1/sqrt(3)*vector([1,1,1]);Wv:=transpose(matrix(1,3,[evalm(W)])):

W := 1/3*3^(1/2)*vector([1, 1, 1])

Calculons l'angle theta de la rotation

le vecteur a ci-dessous est unitaire et orthogonal à W

> a:=1/sqrt(2)*[1,-1,0];av:=transpose(matrix(1,3,[evalm(a)])):

a := 1/2*2^(1/2)*[1, -1, 0]

> ct:=evalm(transpose(av)&*A&*av):

> cos(theta)=('a','A'('a')),"=",op(ct);Aa:=[seq(evalm(A&*av)[i,1],i=1..3)]:

cos(theta) = (a, A(a)),

> st:=det(matrix(3,3,[evalm(a),evalm(Aa),evalm(W)])):

> sin(theta)=Det('a','A'('a'),'W'),"=",st;

sin(theta) = Det(a, A(a), W),

C'est donc une rotation d'angle

> theta=-Pi/3;

theta = -1/3*Pi

>

Cherchons Omega tel que Omegaf(Omega) soit colinéaire à W

> Omega:=[x,y,z];OmfOm:=evalm(f-Omega):

Omega := [x, y, z]

> pv:=crossprod(OmfOm,W):

> produit_vectoriel(Omegaf('Omega'),'W')=simplify(evalm(pv)),"=",[0,0,0];

produit_vectoriel(Omegaf(Omega), W) = vector([1/9*3^(1/2)-1/3*3^(1/2)*x+1/3*3^(1/2)*z, -2/9*3^(1/2)+1/3*3^(1/2)*x-1/3*3^(1/2)*y, 1/3*3^(1/2)*y-1/3*3^(1/2)*z+1/9*3^(1/2)]),

> Gsyst(matrix(3,3,[[-3,0,3],[3,-3,0],[0,3,-3]]),[x,y,z],[-1,2,-1]);

L[1],

L[2],

L[2],

L[3],

0 = 0

Donc ceci convient

> x:=1/3:y:=-1/3:z:=0:'Omega'=Omega;

Omega = [1/3, (-1)/3, 0]

Ainsi le vecteur de translation est

> Omegaf('Omega')=[u,v,w]-Omega;

Omegaf(Omega) = [1/3*alpha-1/3, 1/3*alpha-1/3, 1/3*alpha-1/3]

Si a>1

> f est donc le vissage d'axe  [1/3,1/3,0] + R[1,1,1] de vecteur (a-1)/3*[1,1,1] d'angle -Pi/3

Si a<1

> f est donc le vissage d'axe  [1/3,1/3,0] + R[1,1,1] de vecteur (a-1)/3*[1,1,1] d'angle Pi/3

Si a=1

> f est donc la rotation d'angle -Pi/3 autour de [1,1,1]  d'axe [1/3,1/3,0] + R[1,1,1]

Ce qui compléte la caractérisation du vissage f

>

>

>

Exercice 16

>

> u:=(-7*x-4*y-4*z)/9-6:

> v:=(4*x-8*y+z)/9+7:

> w:=(-4*x-y+8*z)/9-10:

> f:=vector([u,v,w]):'f'(x,y,z)=evalm(f);

f(x, y, z) = vector([-7/9*x-4/9*y-4/9*z-6, 4/9*x-8/9*y+1/9*z+7, -4/9*x-1/9*y+8/9*z-10])

>

Etude de la partie linéaire

> A:=(1/9)*matrix(3,3,[[-7,-4,-4],[4,-8,1],[-4,-1,8]]);

A := 1/9*matrix([[-7, -4, -4], [4, -8, 1], [-4, -1, 8]])

A est une matrice orthogonale

> tAA:=evalm(transpose(A)&*A);

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

A est dans le groupe spécial orthogonal

> det_A=det(A);

det_A = 1

Calculons Inv(A)

X:=[x,y,z] est dans inv(A) ssi il est solution du système AX=X

>

> Gsyst(9*A-9*tAA,[x,y,z],[0,0,0]);

L[1],

L[2],

L[3],

L[2],

0 = 0

L[1],

A est la matrice de la rotation autour de

> W:=1/sqrt(17)*vector([-1,0,4]);Wv:=transpose(matrix(1,3,[evalm(W)])):

W := 1/17*17^(1/2)*vector([-1, 0, 4])

Calculons l'angle theta de la rotation

le vecteur a ci-dessous est unitaire et orthogonal à W

> a:=[0,1,0];av:=transpose(matrix(1,3,[a])):

a := [0, 1, 0]

> ct:=evalm(transpose(av)&*A&*av):

> cos(theta)=('a','A'('a')),"=",op(ct);Aa:=[seq(evalm(A&*av)[i,1],i=1..3)]:

cos(theta) = (a, A(a)),

> st:=det(matrix(3,3,[evalm(a),evalm(Aa),evalm(W)])):

> sin(theta)=Det('a','A'('a'),'W'),"=",st;

sin(theta) = Det(a, A(a), W),

Cherchons Omega tel que Omegaf(Omega) soit colinéaire à W

> Omega:=[x,y,z];OmfOm:=evalm(f-Omega):

Omega := [x, y, z]

> pv:=crossprod(OmfOm,W):

> produit_vectoriel(Omegaf('Omega'),'W')=simplify(evalm(pv)),"=",[0,0,0];

produit_vectoriel(Omegaf(Omega), W) = vector([4/153*(4*x-17*y+z+63)*17^(1/2), 4/9*17^(1/2)*x+1/9*17^(1/2)*y+1/9*17^(1/2)*z+2*17^(1/2), 1/153*(4*x-17*y+z+63)*17^(1/2)]),

> Gsyst(matrix(3,3,[[4,-17,1],[4,1,1],[4,-17,1]]),[x,y,z],[-63,-18,-63]);

L[1],

L[2],

L[3],

L[2],

0 = 0

L[1],

Donc ceci convient

> x:=-41/8:y:=5/2:z:=0:

Omega = [(-41)/8, 5/2, 0]

Ainsi le vecteur de translation est

> Omegaf('Omega')=[u,v,w]-Omega;

Omegaf(Omega) = [2, 0, -8]

Or Omegaf(Omega) et W sont de sens oppposé comme le prouve le produit scalaire

> produit_scalaire=innerprod([u,v,w]-Omega,W);

produit_scalaire = -2*17^(1/2)

f est donc le vissage d'axe [-41/8,5/2,0] + R[2,0,-8] de vecteur [2,0,-8] d'angle -theta

>

Ce qui compléte la caractérisation du vissage f

>

>