module_bilineaire.mws

Informatique

Algèbre bilinéaire

0. Expression des notions d'algèbre bilinéaire en Maple

Le package linalg  sert aussi à faire de l'algèbre bilinéaire ! L'appel ci-dessous se termine par un " ; "...

>    with(linalg);

... afin de voir la liste des fonctions contenues. Parmi celles-ci, rechercher :

1. Calcul de la distance à un s.e.v.

On se propose de retrouver le calcul, fait en exercice, de la quantité suivante :

  alpha = inf[a,b,c](Int((x^3-a*x^2-b*x-c)^2,x = 0 .. 1))

Définir le produit scalaire approprié à ce calcul.

>   

Définir les fonctions f : proc (x) options operator, arrow; x^3 end proc  et g = g[a,b,c]  : proc (x) options operator, arrow; a*x^2+b*x+c end proc .

>   

Écrire les trois conditions caractérisant le projeté orthogonal de la fonction proc (x) options operator, arrow; x^3 end proc  sur l'espace des fonctions polynomiales de degré d <= 2 . On placera ces trois équations dans un ensemble .

>   

Résoudre le système formé par les trois conditions précédentes et affecter dans a , b  et c  les valeurs correspondantes ( assign ).

>   

>   

a , b  et c  contenant maintenant les bonnes valeurs, faire effectuer par Maple  le calcul approprié à la détermination de alpha .

>   

2. Étude de matrice orthogonale

Définir la matrice A suivante, qui représente l'endomorphisme f  de E = R^3  dans la base canonique (utiliser array  ou matrix ) :

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

>   

En multipliant A  par sa transposée, vérifier que A  est bien une matrice orthogonale. Ne pas oublier evalm  et &* .

>   

Calculer epsilon = det(A)  et en déduire la nature géométrique de f.

>   

Calculer la trace de A et en déduire la valeur de " cos(theta) " (notation du cours).

>   

>   

Définir la matrice identité I[3]  (penser à l'option identity  de array ). Utiliser l'instruction linsolve  ( aide ) pour trouver l'axe de la rotation f.

>   

>   

L'ensemble des solutions prend la forme d'un triplet dépendant d'un paramètre _t1  -- c'est une variable utilisée par Maple . Donner à celle-ci une valeur quelconque afin d'obtenir un vecteur directeur a[1]  de l'axe de f.

>   

Attention, a[1]  est un vecteur. Pour le réutiliser (le multiplier par un scalaire, puis l'inclure dans une matrice de passage) il faut le transformer en liste ( convert(...,list) ) et le développer ( expand ), de telle sorte que le coefficient scalaire soit distribué.

Normer a[1] , et effectuer les manipulations ci-dessus en appelant a le résultat.

>   

Choisir n'importe quel vecteur b[1]  orthogonal à a  et effectuer les même opérations que pour a[1] .

>   

Faire calculer par Maple le vecteur c tel que ( a , b , c ) soit une BON de E . Normer et développer c  comme a  et b.

>   

À l'aide éventuellement d'un schéma, retrouver une expression de " sin(theta) " et la faire calculer par Maple .

>   

>   

À titre de vérification, définir la matrice de passage P  de la base canonique à ( a , b , c ), c'est à dire la matrice dont les colonnes  (attention !) sont les vecteurs a , b et c.

>   

Utiliser alors cette matrice pour déterminer la forme "simple" d'une matrice semblable à A  et retrouver ainsi les valeurs calculées de cos(theta)  et sin(theta) .

>