Calcul matriciel dans Sofus

vendredi 29 mai 2015
par  Alain BUSSER

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

Similitudes directes

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 :

-300-200-1000100200-200-1000100

Diagonalisation

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.

Avec Sophus (version clavier)

Géométrie repérée dans le plan

Points et vecteurs

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.


Commentaires

Annonces

Prochains rendez-vous de l’IREM

Séminaire EDIM-IREM

- Mercredi 11 octobre 2017, 14h-18h, campus du Tampon
- Mercredi 22 novembre 2017, 14h-18h, campus du Tampon
- Mercredi 7 février 2018, PTU, Saint-Denis, salle S23.6
- Mercredi 7 mars 2018, 14h-18h, campus du Tampon
- Mercredi 4 avril 2018, PTU, Saint-Denis, salle S23.6
- Mercredi 2 mai, 14h-18h, campus du Tampon
- Mardi 5 juin 2018, PTU, Saint-Denis, salle S23.6
- Mercredi 6 juin, 14h-18h, campus du Tampon

Fête de la science

Du 13 au 18 novembre 2017.
Thème : « La recherche à l’heure du numérique »

Semaine des mathématiques

Du 26 au 31 mars 2018.
Thème : « Mathématiques et mouvement »


Brèves

Décès de Roger Mohr

mardi 27 juin

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.

À travers les labyrinthes : algorithmes et fourmis

dimanche 1er septembre 2013

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.

Rencontres Mondiales du Logiciel Libre à St-Joseph

mardi 20 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.

Voici pour le samedi et le dimanche quelques interventions choisies :
- http://2013.d.rmll.info/Raspberry-votre-ordinateur-au-format-carte-de-credit?lang=fr
- http://2013.d.rmll.info/Materiel-libre-et-DIY?lang=fr
- http://2013.d.rmll.info/Arduino-de-l-electronique-libre?lang=fr

Noter aussi les conférences Art et Culture du dimanche, ainsi qu’une conférence plus engagée.

Le programme complet se trouve ici. Une radio sera ouverte pour l’occasion.
Des plaquettes à distribuer se trouvent ici.

Hyper-vidéos pour l’algorithmique au lycée

dimanche 19 août 2012

Olivier Roizès, à la demande de l’ADIREM, a réalisé une collection d’hyper-vidéos de présentation de logiciels et environnements de programmation. Ces hyper-vidéos, c’est-à-dire des vidéos contenant des éléments clicables, devraient être utiles aux enseignants désireux de se familiariser avec Python, CaRMetal, R, Rurple, Scilab ou Xcas.

Ouverture du SILO

mardi 1er novembre 2011

Le SILO (Science Informatique au Lycée : Oui !) est un espace collaboratif documentaire de partage et de formation collégiale, à destination des professeurs appelés à enseigner l’informatique au lycée.

Une initiative du CNDP, de l’INRIA et de Pasc@line, à laquelle se sont associés SPECIF, fuscia, EPI et ePrep.

Sur le Web : Site du SILO

Introduction à la science informatique

lundi 12 septembre 2011

Le CRDP de Paris publie le premier ouvrage destiné aux professeurs chargés d’enseigner la nouvelle spécialité « Informatique et sciences du numérique » en Terminale S à la rentrée 2012. Cet ouvrage a été coordonné par Gilles Dowek, directeur de recherche à l’INRIA.

Sur la création de la spécialité ISN, on pourra également consulter l’interview donnée au Café pédagogique par l’inspecteur général Robert Cabanne.

Sur le Web : CRDP de Paris

Deux publications sur l’algorithmique

samedi 17 octobre 2009

L’IREM d’Aix-Marseille publie une brochure de 73 pages, téléchargeable librement, intitulée Algorithmes et logique au lycée. Ces notions sont illustrées et déclinées sur des exercices du programme de spécialité mathématique en série L, mais sont adaptables aux programmes à venir.

Le hors série thématique n° 37 du magazine Tangente, disponible actuellement en kiosque, s’intitule « Les algorithmes. Au cœur du raisonnement structuré ». Extrait de l’éditorial : « La rédaction de Tangente a conçu la quasi-totalité de ce hors série thématique pour qu’il puisse être lu par des élèves de Seconde ».

Une carte mentale pour l’algorithmique

jeudi 10 septembre 2009

Sur son site, Jean-Jacques Dhénin a publié une carte mentale géante qui renvoie vers plus de 30 documents en ligne sur l’algorithmique. Tout ce qu’il faut — et même davantage — pour faire face au nouveau programme de Seconde !

Un catalogue libre d’algorithmes pour le lycée

dimanche 30 août 2009

Guillaume Connan, de l’IREM de Nantes, publie un catalogue libre de 119 pages d’algorithmes pour le lycée. Sur son site très riche, on trouvera d’autres documents en rapport avec l’algorithmique, notamment sur l’utilisation des langages fonctionnels au lycée et sur la comparaison programmation fonctionnelle/programmation impérative.

L’algorithmique à l’IREM de Lille

vendredi 26 juin 2009

Le groupe AMECMI de l’IREM de Lille vient de mettre en ligne des ressources importantes au service des professeurs de Seconde :

- Algorithmique et programmation (Emmanuel Ostenne)
- Bibliographie amoureuse de l’algorithmique (Alain Juhel)

Statistiques

Dernière mise à jour

dimanche 22 octobre 2017

Publication

772 Articles
Aucun album photo
133 Brèves
11 Sites Web
132 Auteurs

Visites

849 aujourd'hui
782 hier
2133318 depuis le début
14 visiteurs actuellement connectés