En fait, la description des groupes de Lie par Sophus Lie est le fruit d’un travail collaboratif mené par celui-ci avec Felix Klein qui faisant la même chose (tout ramener à la théorie des groupes de transformation) pour la géométrie. Ces échanges quotidiens entre Sophus Lie et Felix Klein ont eu lieu dans les années 1870, soit plusieurs décennies après l’apparition de la théorie des groupes. Autres travaux qui étaient à l’époque considérés comme modernes étaient
les notations de Grassmann (A+u pour le translaté de A par le vecteur u ; B-A pour le vecteur allant de A à B ; (A+B)/2 pour le milieu de [AB]...) ;
l’élimination de Gauss-Jordan consistant à résoudre un système en additionnant ou soustrayant des équations entre elles (ce qui suppose de donner un sens à ces notions...)
Or les deux notions semblent très naturelles pour des élèves de 2nde qui les réinventent spontanément...
Remarque : La possibilité d’augmenter un vecteur d’un autre vecteur était propre à l’ancienne version de Sofus (alors orthographiée Sophus). L’évolution du langage et de son interface ayant amené à l’introduction de matrices et vecteurs dans Blockly, c’est cette nouvelle version qui est présentée ici. L’ancienne version est lisible en bas de l’article dans un « bloc »
Points et vecteurs
Un point est une matrice ayant deux coordonnées. Un vecteur est aussi une matrice ayant deux coordonnées (ou 3 si on est dans l’espace). Autrement dit, matriciellement parlant, Sofus ne sait pas faire la différence entre points et vecteurs. Ce qui permet de faire des calculs entre eux. Voici donc avec les roulements de tambour de circonstance, la notation de Grassman :
Pour calculer les coordonnées du vecteur allant de A (point) à B (point), on soustrait A à B :
On voit qu’il ne suffit pas d’afficher (ou « ajouter en bas », de la zone d’affichage en l’occurence) un point ou un vecteur pour connaître ses coordonnées : Il faut insérer le dessin représentant l’examen d’une flèche à la loupe pour que ces coordonnées soient affichées en lieu et place du « object Object » qui sert d’objection à JavaScript quand il ne connaît pas le type d’un objet. Pour toutes les matrices il faut insérer cet inspecteur sans lequel on ne peut inspecter les matrices.
Maintenant, pour calculer l’image de A (un point) par la translation de vecteur u, on additionne u à A :
On peut additionner, soustraire des vecteurs mais aussi les multiplier scalairement ou par des réels, et même calculer leur angle. Les addition, soustraction et multiplication par un réel fonctionnent aussi avec d’autres matrices que les vecteurs.
Pour avoir les coordonnées du milieu de AB, on additionne A avec B et on multiplie le résultat par 0,5 :
Sofus a aussi un bloc « symétrique par rapport à » dont on devine l’usage...
Distances et droites
On a vu ci-dessus comment calculer un vecteur à partir de son origine et de son extrémité. Or ce vecteur possède, entre autres, une norme, ce qui permet de calculer la distance AB :
On remarque que pour une fois, on n’a pas eu besoin de la loupe sur la flèche, c’est parce que la norme est un réel et que celui-là n’a pas besoin de subir une inspection puisque JavaScript le connaît.
On peut faire plus simple :
Et pour l’équation réduite de la droite (AB), on a juste à traduire les formules du cours :
Résolution de systèmes
Soit à résoudre le système
2x+3y = 31
x-y = 3
On constate que si on multiplie la seconde équation par 3, il y figurera -3y qui va s’annuler avec 3y si on additionne ensuite les deux équations. Pour effectuer cette multiplication par 3, on peut représenter l’équation ax+by=c par le vecteur de coordonnées (a,b,c) et tripler ce vecteur :
L’affichage, avec le codage vectoriel choisi ici, se note 5x=40 qu’il est aisé de résoudre. Mais on peut résoudre tout le système d’un coup, avec les matrices, en se calquant sur la résolution de ax=b, dont la solution x=b/a s’obtient en multipliant les deux membres par l’inverse de a : AX=B peut se résoudre de façon analogue en multipliant les deux membres par l’inverse de A, même si A est une matrice. Une précaution à prendre toutefois : La multiplication des matrices n’étant pas commutative, c’est bien à gauche qu’on doit effectuer la multiplication par A1 (inverse de A) :
Si on essaye de multiplier à droite, on a d’ailleurs une erreur de dimensions...
Une similitude directe est le produit d’une constante (le rapport de similitude) par une matrice de rotation. De telles matrices peuvent être définies directement :
Ici, en itérant la similitude, on crée un nuage de points que la tortue de Sofus peut dessiner :
Diagonaliser la matrice $\left( \begin{array}{rr}1&1\\1&0\end{array}\right)$, c’est trouver une matrice diagonale D et surtout une matrice « de passage » P telles que $\left( \begin{array}{rr}1&1\\1&0\end{array}\right) = P D P^{-1}$. On note P1 l’inverse de P, pour des questions de notation des variables dans Blockly. L’algorithme illustré ci-dessous permet de calculer P avant D, c’est-à-dire de donner les vecteurs propres de la matrice, et pour un vecteur propre V, le produit MV donne directement la valeur propre correspondante. L’idée est la suivante :
Lorsque que l’exposant tend vers l’infini, les vecteurs colonne de la matrice deviennent asymptotiquement des vecteurs propres associés à la plus grande valeur propre.
On commence donc par calculer les puissances successives de la matrice pour vérifier ça :
Comme les vecteurs colonne tendent vers l’infini, on s’est permis de normer la première colonne qui « l’emporte sur les autres ». Cela révèle que ses coordonnées convergent vers des nombres que l’on va copier-coller dans les coordonnées d’un vecteur U :
Alors MU est colinéaire avec U, comme le montrent les affichages des quotients des abscisses (respectivement, des ordonnées) : Ces quotients sont non seulement égaux entre eux, mais à une constante qui se trouve dans le menu de Blockly :
Et voilà ! Une valeur propre avec son vecteur propre. Le problème qui se pose maintenant est de voir comment obtenir les autres valeurs propres. L’idée est de se restreindre à un sous-espace perpendiculaire au sous-espace propre déjà connu. Ici on est en dimension 2 et on n’a qu’une droite à trouver, on essaye en faisant tourner U d’un angle droit pour avoir un nouveau vecteur que l’on espère propre à la matrice (remarquer la syntaxe de JavaScript pour les expressions) :
Bingo : On a un vecteur propre et la valeur propre associée est aisément reconnaissable : C’est φ-1. Ensuite, on a les coordonnées (obtenues numériquement) des vecteurs propres, on les copie-colle dans une matrice P que l’on inverse pour avoir P1 et on vérifie que le produit P1×M×P est bien une matrice diagonale à la précision de la machine près, et que c’est même $\left( \begin{array}{rr}\varphi&0\\0&\varphi - 1\end{array}\right)$ :
De nombreux exemples sont fournis avec le logiciel, sous la forme de « corrigés » de sujets du bac S.
Un point, dans Sophus, est une variable dont la valeur est un tableau de deux nombres. Par exemple, le point A(-3,1) est la variable
A de valeur [-3,1]. De même, le point B(2,4) est la variable B dont la valeur est [2,4]:
Le script ci-dessus calcule le vecteur v allant de A à B. Inversement, pour transformer A par la translation de vecteur
u(2,1), on peut faire ceci
Milieu
Pour calculer les coordonnées du milieu M de [AB] on peut faire ceci:
Résolution de systèmes
On veut résoudre le système
2x+3y=31 (E)
x-y=3 (F)
Ce système est formé de deux équations, dont chacune est représentée sous forme d'un tableau de nombres: [2,3,31] pour la première et
[1,-1,3] pour la seconde. Pour résoudre le système, on va additionner ou soustraire les équations entre elles par exemple comme ceci:
Cela permet de savoir que toute solution du système est aussi solution de 3x+2y=34 (et, en remplaçant l'augmentation par une diminution,
que toute solution du système est aussi solution de x+4y=28), ce qui n'est pas un grand progrès vers la résolution du système. Mais si on
multiplie l'équation F par 3 avant de l'ajouter à l'équation E, la somme est plus intéressante, puisqu'elle ne contient plus de terme en y:
Visiblement, il suffit de diviser l'équation résultante pour trouver x; alors on peut créer une variable x, initialement de même valeur
que E, et qui se mette finalement sous la forme [1,0,a] où a est la valeur de x cherchée. En l'occurence on divise par 5:
Comme x=8, l'affichage final est donc [1,0,8]; c'est un tableau donc son troisième élément x.valeur[2] contient 8. Et comme on a laissé
les équations E et F inchangées, on peut recommencer pour y (multiplier F par 2 avant de la soustraire à E).
Algorithme de résoulution du système
Dans le script ci-dessous, il suffit de changer les nombres dans les tableaux des deux premières lignes, pour résoudre un système
quelconque.
Dans un site très personnel, Olivier Sicard nous offres quelques « délires » de mathématiques, algorithmique et programmation. Entre autres pépites, on découvrira le Rubix-Tore, la loi normale asymétrique, la théorie du choix social et le dessin à l’aide des séries de Fourier.
Après Elwyn Berlekamp l’année dernière, c’est au tour du centenaire Richard Guy et de l’immense John Conway. Ce document de Richard Guy (une mise en garde contre le raisonnement inductif) montre bien le style unique de son auteur, en plus d’être une mine de ressources pour des exercices. Conway, outre son jeu de la vie, a créé des dizaines de jeux, dont Sprouts, très populaire dès le CP.
On sait bien que Nicolas Bourbaki n’était pas le nom d’une personne mais le pseudonyme d’un groupe. L’équivalent en informatique théorique est Claude Livercy, auteur de la théorie des programmes. Roger Mohr était un des membres de Claude Livercy.
Quand les chercheurs mettent au point des modèles d’optimisation et de recherche de plus court chemin qui s’inspirent du comportement de masse de colonies de fourmis...
À écouter : Sur les Épaules de Darwin, émission diffusée sur France Inter samedi 31 août 2013.
Les RMLLd se dérouleront pour la 2e fois à Saint-Joseph du 22 au 25 août.
C’est une opportunité pour les élèves qui suivent la spécialité ISN et les passionnés d’informatique.
Commentaires