SharedM403TP2.sagewsOpen in CoCalc

TP 2: espaces bilinéaires cont.

Exo 1

(1) Écrivez une fonction Python qui calcule la signature d'une forme quadratique avec la techinque des mineurs principaux (voir antisèche pour les commandes utiles, en particulier matrix_from_rows_and_columns). Remarque: cela n'est pas toujours possible, dans quel cas votre fonction retourne juste un tuple vide ()().

(2) Pour les forme quadratiques

  • q1(x1,x2,x3)=x12+2x1x2+2x22+2x1x3+2x2x3+2x32q1(x_1,x_2,x_3) = x_1^2 + 2x_1x_2 + 2x_2^2 + 2x_1x_3 + 2x_2x_3 + 2x_3^2
  • q2(x1,x2,x3)=2x12+2x1x2x223x32q2(x_1,x_2,x_3) = -2x_1^2 + 2x_1x_2 - x_2^2 - 3x_3^2
  • q3(x1,x2,x3)=x12+x22+2x1x3+4x2x3q3(x_1,x_2,x_3) = x_1^2 + x_2^2 + 2x_1x_3 + 4x_2x_3

(a) Tracez quelques surfaces de niveau q(x1,x2,x3)=kq(x_1,x_2,x_3) = k pour k=0k = 0, k>0k > 0 et k<0k < 0 (voir la commande implicit_plot3d). Qu'observez-vous?
(b) Déterminez la signature de qq avec votre fonction du #(1) si cela est possible. Quelles conclusion pouvez-vous en tirer?

Exo 2

(1) Déclarez l'algèbre des quaternions Q.<i,j,k> = QuaternionAlgebra(SR,-1,-1) (voir tuto). Calculez i2i^2, j2j^2, k2k^2 et ijki j k.
(2) Calculez

  • iji j et jij i;
  • jkj k et kjk j;
  • kik i et iki k.

Qu'observez-vous? En particulier: la multiplication des quaternions est-elle commutative?

Exo 3

(1) Calculez le quaternion correspondant à la rotation d'axe (1,1,1)(1,1,1) et d'angle 2π3\frac{2 \pi}{3}.
(2) Appliquez ce quaternion aux vecteurs de la base canonique de R3\mathbb{R}^3.
(3) Determinez la matrice de cette rotation (voir ici) pour la méthode. (4) Écrivez et testez une fonction Python compose_rotations qui prend une liste de rotations (couples angle/axe) et renvoie la rotation composée et sa matrice.