Matrices centro-symétriques [Python]

Les questions [P] utilisent Python ; [P?] permet de l’utiliser, avec des justifications mathématiques complémentaires. Pour {A\in M_n(\mathbb R)}, sa centro-transposée {\widehat A} est définie par {\widehat a_{i,j}=a_{n+1-i,n+1-j}}.
On note {J_n=(\delta_{i,n+1-j})}, matrice dont les seuls coefficients non nuls sont les {1} de l’antidiagonale. Par exemple, la centro-transposée de la matrice dont les lignes sont {(1,2,3,4)}, {(5,6,7,8)}, {(9,10,11,12)}, {(13,14,15,16)} a pour lignes {(16,15,14,13)}, {(12,11,10,9)}, {(8,7,6,5)}, {(4,3,2,1)}.

1. (a) [P] Écrire J(n) renvoyant {J_n}.

1. (b) [P] Écrire randMatrix(n,p) à coefficients entiers dans {[0,100[}. Conjecturer la relation entre {J_n} et la centro-transposition, puis la justifier.

1. (c) [P] Écrire centro(A).

2. (a) Montrer que la centro-transposition est un automorphisme involutif de {M_n(\mathbb R)}.

2. (b) Montrer que {\widehat{AB}=\widehat A\widehat B} et {\widehat{A^{-1}}=(\widehat A)^{-1}} si {A} est inversible.

2. (c) Montrer que {\widehat{A^t}=(\widehat A)^t}.

2. (d) Montrer que {\det\widehat A=\det A}.

On définit {C_n^+=\{A:\widehat A=A\}} et {C_n^-=\{A:\widehat A=-A\}}. On note {S_n} et {\mathcal A_n} les espaces des matrices symétriques et antisymétriques.

3. (a) Montrer que {C_n^+} et {C_n^-} sont supplémentaires.

3. (b) Montrer que
{\begin{array}{rl}M_n(\mathbb R)=&(S_n\cap C_n^+)\oplus(S_n\cap C_n^-)\\[4pt]&\oplus(\mathcal A_n\cap C_n^+)\oplus(\mathcal A_n\cap C_n^-)\end{array}}Préciser les dimensions selon la parité de {n}.

3. (c) [P] Écrire decomp(A) renvoyant ces quatre composantes et donner un exemple non trivial.

Pour {n\ge1}, on pose {Q_n=\begin{pmatrix}I_n&-J_n\\[4pt]J_n&I_n\end{pmatrix}}.

4. (a) [P] Écrire Q(n).

4. (b) Montrer que {Q_n/\sqrt2} est orthogonale.

4. (c) Soit {M=\begin{pmatrix}A&B\\[4pt]C&D\end{pmatrix}\in C_{2n}^+}. Relier {D} à {A} et {C} à {B}. Calculer {N=Q_n^tMQ_n/2} et en déduire {\det M=\det(A+BJ_n)\det(A-BJ_n)}.

5. [P?] Étudier la diagonalisabilité de
{M=\begin{pmatrix}4&1&-9&6\\[4pt]3&2&-4&1\\[4pt]1&-4&2&3\\[4pt]6&-9&1&4\end{pmatrix}}

Question complémentaire du corrigé

Complément. Montrer que {Q_n/\sqrt2} est orthogonale positive.

Indications Python

np.zeros, np.eye, np.random.randint créent les matrices utiles. A.shape donne les dimensions ; np.hstack et np.vstack assemblent des blocs. A.T transpose et np.linalg.eigvals calcule les valeurs propres.