2022-FM-01
On note E ⊂ M3 (R) l’ensemble des matrices dont les sommes des coefficients de chaque
ligne, de chaque colonne et de chacune des deux diagonales sont toutes égales.
1. Trouver à la main un élément de E à coefficients dans Z non tous égaux.
2. Écrire une fonction Python magic(M) renvoyant True si la matrice carrée de taille
3 à coefficients entiers représentée par M est dans E et False sinon.
Tester cette fonction sur la matrice précédente et sur quelques variantes obtenues en
changeant un seul coefficient de cette matrice.
Est-il pertinent de tester numériquement les matrices à coefficients réels?
3. Montrer que E est un sous-espace vectoriel de M3 (R) et dim(E) ≥ 2.
4. Montrer à l’aide de Python que dim(E) = 3.
Pourquoi n’est-ce pas une démonstration mathématique?
On admettra que cette dimension est exacte.
r
On munit M3 (R) du produit scalaire associé à la norme définie par (mi, j )i, j = ∑ m2i, j .
i, j
On travaille désormais dans E, qu’on munit de la restriction de ce produit scalaire à E × E.
On définit les sous-ensembles de E suivants:
a b c
E0 = {M ∈ E|tr (M) = 0} , C− = M ∈ E0 ∃ a, b, c ∈ R, M = b c a
c a b
a b c
et C+ = M ∈ E0 ∃ a, b, c ∈ R, M = c a b .
b c a
5. Montrer que C− et C+ sont des sous-espaces de E vérifiant E = C− ⊕ E0⊥ ⊕C+ .
Exhiber une base orthonormée B = (B− , B0 , B+ ) de E adaptée à cette décomposition
en somme directe.
Soient f , g ∈ L (E) ayant pour matrices respectives dans la base B :
0 0 1 0 0 1
0 1 0 et 0 1 0 .
1 0 0 −1 0 0
6. Caractériser géométriquement f et g.
7. Exprimer simplement f (M) et g(M) à l’aide des coefficients mi, j de M ∈ E.
8. Déterminer toutes les M = (mi, j )i, j ∈ E telles que mi, j ; (i, j) ∈ [[1, 3]]2 = [[1, 9]].
Matrices magiques 2022-FM-01
Questions supplémentaires
8 1 6
9. Écrire la matrice 3 5 7 comme somme d’un élément de C− , d’un élément de
4 9 2
⊥
E0 et d’un élément de C+ .
10. Décrire le sous-groupe de GL3 (R) engendré par f et g ainsi que sa table de multiplica-
tion.
Correction
On note E ⊂ M3 (R) l’ensemble des matrices dont les sommes des coefficients de chaque ligne,
de chaque colonne et de chacune des deux diagonales sont toutes égales.
1. Trouver à la main un élément de E à coefficients dans Z non tous égaux.
1 −1 0
Par exemple −1 0 1 .
0 1 −1
2. Écrire une fonction Python magic(M) renvoyant True si la matrice carrée de taille 3 à
coefficients entiers représentée par M est dans E et False sinon.
Tester cette fonction sur la matrice précédente et sur quelques variantes obtenues en
changeant un seul coefficient de cette matrice.
Est-il pertinent de tester numériquement les matrices à coefficients réels?
Le code suivant:
import numpy as np
import [Link] as rd
def magic(M):
n = len(M)
S = sum([M[i,n-1-i] for i in range(n)])
b = [Link]()==S
b = b and all([sum(M[i])==S for i in range(n)])
b = b and all([sum(M[:,j])==S for j in range(n)])
return b
MM = [Link]([
[[1,1,1],[1,1,1],[1,1,1]],
[[1,-1,0],[-1,0,1],[0,1,-1]],
[[8,1,6],[3,5,7],[4,9,2]]])
print(’Matrices magiques:’,[magic(M) for M in MM])
MNM = []
for k in range(5):
M = MM[1].copy()
i,j = [Link](3),[Link](3)
M[i,j] += 1
[Link](M)
print(’Matrices non magiques:’,[magic(M) for M in MNM])
fournit la sortie suivante:
Matrices magiques: [True, True, True]
Matrices non magiques: [False, False, False, False, False]
La représentation en machine des nombres réels sous forme de flottants est un approximation.
Deux nombres théoriquement égaux peuvent avoir des représentations différentes (et inverse-
ment). Tester l’égalité entre deux nombres réels par le biais de leurs représentations numériques
en machine n’a donc pas de sens. On ne peut et doit donc pas tester numériquement les égalités
entre flottants. En conséquence, appliquer la fonction ci-dessus pour tester l’appartenance à E de
matrices à coefficients non entiers n’est pas pertinent.
3. Montrer que E est un sous-espace vectoriel de M3 (R) et dim(E) ≥ 2.
On définit les formes linéaires non nulles suivantes sur M3 (R) par l’image qu’elles donnent
d’une matrice quelconque M = (mi, j )i, j :
• tr (M) = ∑i mi,i (trace usuelle).
• atr (M) = ∑i mi,4−i (qu’on appellera antitrace).
• Pour i ∈ [[1, 3]], ϕi (M) = ∑ j mi, j .
• Pour j ∈ [[1, 3]], ψ j (M) = ∑i mi, j .
On a alors ! !
3
\ 3
\
E= Ker (ϕi − tr ) ∩ Ker (ψ j − tr ) ∩ Ker (atr − tr ),
i=1 j=1
donc E est un sous-espace vectoriel de M3 (R) de dimension au moins 2 comme intersection de
7 hyperplans vectoriels en dimension 9.
Remarque. Si on a montré autrement que E est un sous-espace vectoriel de M3 (R), par exemple
par la caractérisation usuelle, on peut aussi voir que dim E ≥ 2 parce qu’il admet comme élé-
ments la matrice de la question 1 et la matrice dont tous les coefficients valent 1, qui sont non
proportionnelles.
4. Montrer à l’aide de Python que dim(E) = 3.
Pourquoi n’est-ce pas une démonstration mathématique?
On admettra que cette dimension est exacte.
L’écriture de E ci-dessus permet de traduire l’appartenance à E par la vérification d’un système
linéaire homogène de 7 équations à 9 inconnues (m1,1 , m1,2 , m1,3 , m2,1 , m2,2 , m2,3 , m3,1 , m3,2 ,
m3,3 ), dont la matrice est
0 1 1 0 −1 0 0 0 −1
−1 0 0 1 0 1 0 0 −1
−1 0 0 0 −1 0 1 1 0
0 0 0 1 −1 0 1 0 −1 .
−1 1 0 0 0 0 0 1 −1
−1 0 1 0 −1 1 0 0 0
−1 0 1 0 0 0 1 0 −1
Le code suivant:
import [Link] as alg
A = [Link]([
[ 0, 1, 1, 0,-1, 0, 0, 0,-1],
[-1, 0, 0, 1, 0, 1, 0, 0,-1],
[-1, 0, 0, 0,-1, 0, 1, 1, 0],
[ 0, 0, 0, 1,-1, 0, 1, 0,-1],
[-1, 1, 0, 0, 0, 0, 0, 1,-1],
[-1, 0, 1, 0,-1, 1, 0, 0, 0],
[-1, 0, 1, 0, 0, 0, 1, 0,-1]])
print(’Rang du système:’,alg.matrix_rank(A))
produit le résultat suivant:
Rang du système: 6
et par la formule du rang, on en déduit que dim E = 9 − rg A = 3.
La fonction de calcul du rang s’appuie sur du calcul numérique (i.e. en nombres flottants) et la
présence d’erreurs de calcul éventuellement mal prises en compte par la fonction de calcul de
rang fait que cela n’est pas une preuve au sens mathématique du terme.
r
On munit M3 (R) du produit scalaire associé à la norme définie par (mi, j )i, j = ∑ m2i, j .
i, j
On travaille désormais dans E, qu’on munit de la restriction de ce produit scalaire à E × E.
On définit les sous-ensembles de E suivants:
a b c
E0 = {M ∈ E|tr (M) = 0} , C− = M ∈ E0 ∃ a, b, c ∈ R, M = b c a
c a b
a b c
et C+ = M ∈ E0 ∃ a, b, c ∈ R, M = c a b .
b c a
5. Montrer que C− et C+ sont des sous-espaces de E vérifiant E = C− ⊕ E0⊥ ⊕C+ .
Exhiber une base orthonormée B = (B− , B0 , B+ ) de E adaptée à cette décomposition en
somme directe.
Les ensembles E0 = E ∩ Ker (tr ),
1 0 0 0 1 0 0 0 1
C− = E0 ∩ Vect 0 0 1 , 1 0 0 , 0 1 0
0 1 0 0 0 1 1 0 0
et
1 0 0 0 1 0 0 0 1
C+ = E0 ∩ Vect 0 1 0 , 0 0 1 , 1 0 0
0 0 1 1 0 0 0 1 0
sont des sous-espaces vectoriels de M3 (R) comme intersections de sous-espaces vectoriels de
M3 (R). Comme ils sont de plus inclus dans E, alors ce sont des sous-espaces vectoriels de E.
⊥
Comme E0 est de dimension finie, alors E = E0 ⊕ E0⊥ .
Par ailleurs,
0 b c 0 −1 1
1
C+ = c 0 b b, c ∈ R, b + c = 0 = Vect (B+ ) avec B+ = √ 1 0 −1
b c 0
6 −1 1 0
et de même
1 −1 0
1
C− = Vect (B− ) avec B− = √ −1 0 1
6 0 1 −1
ce qui prouve au passage, puisque hB− , B+ i = 0, que C− ⊥ C+ et donc aussi que dim E0 ≥ 2. On
a aussi
1 1 1
1
B0 = √ 1 1 1 ∈ E0⊥
9 1 1 1
puisqu’une matrice de trace nulle élément de E a forcément la somme de tous ses éléments nulle.
Comme dim E0⊥ ≤ 3 − 2 = 1, c’est donc que dim E0⊥ = 1 et E0⊥ = Vect (B0 ), puis que dim E0 = 2
⊥
et donc E0 = C− ⊕ C+ . Finalement,
⊥ ⊥
E = C− ⊕ E0⊥ ⊕ C+
et B = (B− , B0 , B+ ) est une b.o.n. de E adaptée à cette décomposition, car ces trois vecteurs
sont clairement normés.
Soient f , g ∈ L (E) ayant pour matrices respectives dans la base B :
0 0 1 0 0 1
0 1 0 et 0 1 0 .
1 0 0 −1 0 0
6. Caractériser géométriquement f et g.
Les deux matrices étant clairement orthogonales et la base B orthonormée, f et g sont des
isométries.
Comme {x ∈ E| f (x) = x} ⊃ Vect (B0 , B− + B+ ) qui est de dimension 2, et f 6= IdE , alors il y a
égalité entre ces deux sous-espaces et
f est une symétrie orthogonale par rapport au plan Vect (B0 , B− + B+ ).
Comme det(g) = 1 et g 6= IdE , alors g est une rotation autour d’une droite et cette droite est E0⊥
puisque g(B0 ) = B0 . Le sous-espace E0 est stable par g et si on oriente l’espace E par la base B
et l’axe E0⊥ par B0 , avec l’orientation compatible sur E0 , la base (B+ , B− ) est directe. La matrice,
dans cette base, de l’endomorphisme ge induit par g sur E0 étant
0 −1
Mat (B+ ,B− ) (ge) = ,
1 0
g est la rotation d’axe E0 et d’angle congru à π
2 modulo 2π lorsqu’on oriente l’axe par E0 et E par B .
7. Exprimer simplement f (M) et g(M) à l’aide des coefficients mi, j de M ∈ E.
L’application fb de M3 (R) vers M3 (R) définie par
m1,1 m1,2 m1,3 m1,3 m1,2 m1,1
fb m2,1 m2,2 m2,3 = m2,3 m2,2 m2,1
m3,1 m3,2 m3,3 m3,3 m3,2 m3,1
est clairement linéaire et E est stable par fb. De plus fb(B0 ) = B0 = f (B0 ), fb(B− ) = B+ = f (B− )
et fb(B+ ) = B− = f (B+ ), et B est une base de E, donc f est l’endomorphisme induit par fb sur
E. Ainsi
∀M = (mi, j )i, j ∈ E, f (M) = (mi,4− j )i, j .
On montre de la même manière que
m1,3 m2,3 m3,3
∀M = (mi, j )i, j ∈ E, g(M) = m1,2 m2,2 m3,2 .
m1,1 m2,1 m3,1
On peut noter la similitude formelle entre l’interprétation géométrique de f et g (symétrie et
rotation d’angle π2 ) et les permutations des coefficients de la matrice M opérées par f et g.
8. Déterminer toutes les M = (mi, j )i, j ∈ E telles que mi, j ; (i, j) ∈ [[1, 3]]2 = [[1, 9]].
Analyse: Soit√M une√telle matrice.
√ Comme c’est un élément de E, elle est combinaison linéaire
des vecteurs 6B+ , 6B− et 9B0 , avec des coefficients α, β et γ, donc elle s’écrit
β+γ −α − β + γ α+γ
M = α−β+γ γ −α + β + γ .
−α + γ α+β+γ −β + γ
Comme M doit être à coefficients entiers, γ ∈ Z puis α, β ∈ Z (regarder m1,1 et m1,3 ).
Par ailleurs, la somme de tous les coefficients doit être 45, mais elle vaut aussi 9γ, donc γ = 5.
Comme les coefficients de M doivent être tous différents, α et β ne sont pas nuls et leur valeurs
absolues sont différentes.
En regardant les coefficient “latéraux”, on voit que pour tous ε, ε0 ∈ {±1}, 5 + εα + ε0 β ≥ 1,
donc |α| + |β| ≤ 4. Quitte à faire opérer éventuellement g (possiblement plusieurs fois), puis
éventuellement f sur M, on peut alors supposer d’une part que α et β sont strictement positifs et
d’autre part que α < β. On a dans ce cas 1 ≤ α < β ≤ 3.
Ainsi, quitte à faire opérer f et g sur M, on peut supposer que 1 ≤ α < β ≤ 3.
Il ne reste donc plus que deux cas pour β:
— β = 2: dans ce cas, α = 1 et les coefficients α + γ et −α + β + γ coîncident, ce qui ne convient
pas.
— β = 3: dans ce cas, α = 1 (car α + β ≤ 4) et on obtient la matrice
8 1 6
M0 = 3 5 7 .
4 9 2
En faisant opérer les inverses de f et g, i.e. en faisant opérer f et g, on obtient alors les
matrices suivantes. D’abord les images de M0 par les puissances de g:
8 1 6 6 7 2 2 9 4 4 3 8
3 5 7 , 1 5 9 , 7 5 3 , 9 5 1
4 9 2 8 3 4 6 1 8 2 7 6
et leurs images par f:
6 1 8 2 7 6 4 9 2 8 3 4
7 5 3 , 9 5 1 , 3 5 7 , 1 5 9
2 9 4 4 3 8 8 1 6 6 7 2
On peut alors vérifier que l’ensemble de ces huit matrices est stable par f et g, donc par le sous
groupe de GL(M3 (R)) engendré par f et g puisque f et g sont d’ordres finis.
Les seules matrices possibles sont donc celles-là.
Synthèse: Il est immédiat que ces matrices conviennent bien.
8 1 6
9. Écrire la matrice 3 5 7 comme somme d’un élément de C− , d’un élément de
4 9 2
⊥
E0 et d’un élément de C+ .
La démonstration de la somme directe fournit la décomposition:
8 1 6 0 −1 1 5 5 5 3 −3 0
3 5 7 = 1 0 −1 + 5 5 5 + −3 0 3 .
4 9 2 −1 1 0 5 5 5 0 3 −3
10. Décrire le sous-groupe de GL3 (R) engendré par f et g ainsi que sa table de multiplica-
tion.
On a vu précédemment que ce sous-groupe est d’ordre 8 et on trouve facilement sa table.
C’est le groupe diédral d’ordre 8.