Réduction par blocs [Python]

Les questions [P] utilisent Python.

1. [P] Soient {A=\begin{pmatrix}4&2\\[4pt]1&3\end{pmatrix}}, {M_0=\begin{pmatrix}A&2A\\[4pt]2A&A\end{pmatrix}} et {M_1=\begin{pmatrix}A&A\\[4pt]0&A\end{pmatrix}}. Définir ces matrices, calculer leurs éléments propres et étudier leur diagonalisabilité.

Dans la question 2, {A\in M_n(\mathbb C)} et {M=\begin{pmatrix}A&2A\\[4pt]2A&A\end{pmatrix}}.

2. (a) Si {A} est diagonalisable, montrer que {M} l’est et comparer leurs éléments propres.

2. (b) Si {M} est diagonalisable, montrer que {A} l’est.

3. Pour {M=\begin{pmatrix}A&A\\[4pt]0&A\end{pmatrix}}, donner une condition nécessaire et suffisante de diagonalisabilité.

4. Soient {A\ne0} et {(a,b,c,d)\ne(0,0,0,0)}. Donner une condition nécessaire et suffisante pour que {M=\begin{pmatrix}aA&bA\\[4pt]cA&dA\end{pmatrix}} soit diagonalisable sur {\mathbb C}. Le résultat reste-t-il vrai pour la diagonalisabilité sur {\mathbb R} ?

5. Reprendre la question 2 et comparer les polynômes caractéristiques de {M} et {A}.

Indications Python

np.array construit une matrice, np.block assemble les blocs, np.eye crée l’identité. np.linalg.eig renvoie les valeurs propres et des vecteurs propres en colonnes.