#!/usr/bin/env python # coding: utf-8 #
#
DL n°4 (éléments propres ; réduction) : Éléments de correction
# In[1]: get_ipython().run_line_magic('matplotlib', 'inline') # In[1]: import numpy as np import numpy.linalg as alg # $\require{color}$ # $%\fcolorbox{red}{yellow}{Writing on yellow background!}$ # $\newcommand{\myfbox}[1]{\fcolorbox{red}{white}{$\textrm{#1}$}}$ # $\require{stmaryrd}$ # $\require{cancel}$ # $\newcommand{\ient}{[\![}$ # $\newcommand{\fient}{]\!]}$ # $\newcommand{\R}{\mathbb R}$ # $\newcommand{\K}{\mathbb K}$ # $\newcommand{\N}{\mathbb N}$ # $\newcommand{\Z}{\mathbb Z}$ # $\newcommand{\id}{\operatorname{Id}}$ # $\newcommand{\rg}{\mathrm{rg}}$ # $\newcommand{\dis}{\displaystyle}$ # $\newcommand{\fonction}[5]{#1\ \colon \left\{\begin{array}{ccl}#2 & \longrightarrow & #3\\#4 & \longmapsto & #5\end{array}\right.}$ # $\newcommand{\tendvers}[1]{\xrightarrow[#1]{}}$ # L'énoncé qui suit est très légèrement adapté (petite indication) du sujet d'oral disponible sur le [site de Centrale](https://www.concours-centrale-supelec.fr/CentraleSupelec/SujetsOral/PC/2015-025-PC-Mat2.pdf). # **Énoncé :** # # Soient $a_1,\dots,a_n\in\R$ deux à deux distincts. # # On considère la matrice $A\left(a_{1}, . ., a_{n}\right)$ suivante : # # $$ # A\left(a_{1}, . ., a_{n}\right)=\begin{pmatrix} # 0 & a_{1} & a_{2} & \cdots & a_{n-1} & a_{n} \\ # a_{1} & 0 & a_{2} & \cdots & a_{n-1} & a_{n} \\ # a_{1} & a_{2} & 0 & \cdots & a_{n-1} & a_{n} \\ # \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ # a_{1} & a_{2} & a_{3} & \cdots & a_{n} & 0 # \end{pmatrix} # $$ # # **1.** On suppose dans cette question que $n=4$. # # $\qquad$ **a.** Écrire une fonction Python de paramètre $(a, b, c, d)$ qui calcule la matrice $A(a, b, c, d)$. # # $\qquad$ **b.** Donner les valeurs propres des matrices $A(1,2,3,4), A(4,2,3,1)$ et $A(-3,-1,1,2)$. # # $\qquad\quad$En déduire une conjecture sur les valeurs propres de la matrice $A(a, b, c, d)$. # # $\qquad$ **c.** Donner les vecteurs propres des matrices $A(1,2,3,4), A(4,2,3,1)$ et $A(-3,-1,1,2)$. # # $\qquad\quad$*On pourra faire des rapports des coordonnées d'un vecteur pour l'identifier. On pourra par exemple quotienter par la dernière composante.* # # $\qquad\quad$Que peut-on dire de la matrice dans ces trois cas? # # **2.** Montrer les conjectures précédentes dans le cas général. # # *Indication :* on pourra chercher des vecteurs propres pour la valeur propre $-a_k$ sous la forme $\begin{pmatrix}\alpha\\\vdots\\\alpha\\\beta\\\vdots\\\beta\end{pmatrix}$ avec le nombre adéquat de $\alpha$ intuité expérimentalement. # # **3.** On suppose que les réels $\left(a_{k}\right)_{1\leqslant k\leqslant n}$ sont strictement positifs et que $\sum\limits_{k=1}^{n} a_{k}=1$. # # $\quad$Que peut-on dire de la suite $\big(A\left(a_{1}, . ., a_{n}\right)^{m}\big)_{m \in \mathbb{N}} ?$ # **Correction :** # $\fbox{$\textbf{Q1}$}$ On peut généraliser la fonction demandée à une liste de taille $n$ quelconque : # In[17]: def A(L): L=np.array(L) M=[] for i in range(5): M.append(np.insert(L,i,0)) return np.array(M) # In[73]: A1=A([1,2,3,4]) print(A1) print("valeurs propres :",alg.eigvals(A1)) print("vecteurs propres :") print(alg.eig(A1)[1]) # On peut rendre les vecteurs propres pour les rendre plus lisibles, on les normalisant : # In[155]: sp=alg.eig(A1)[0] vp=alg.eig(A1)[1] print("valeur propre :",round(sp[0],2),"; vecteur propre :",vp[:,0]/vp[1,0]) print("valeur propre :",round(sp[1],2),"; vecteur propre :",vp[:,1]/vp[1,1]) print("valeur propre :",round(sp[2],2),"; vecteur propre :",3*vp[:,2]/vp[1,2]) print("valeur propre :",round(sp[3],2),"; vecteur propre :",7*vp[:,3]/vp[0,3]) print("valeur propre :",round(sp[4],2),"; vecteur propre :",2*vp[:,4]/vp[0,4]) # In[156]: A2=A([4,2,3,1]) print(A2) print("valeurs propres :",alg.eigvals(A2)) print("vecteurs propres :") print(alg.eig(A2)[1]) # In[122]: sp=alg.eig(A2)[0] vp=alg.eig(A2)[1] print("valeur propre :",round(sp[0],2),"; vecteur propre :",2*vp[:,0]/vp[1,0]) print("valeur propre :",round(sp[1],2),"; vecteur propre :",vp[:,1]/vp[1,1]) print("valeur propre :",round(sp[2],2),"; vecteur propre :",3*vp[:,2]/vp[1,2]) print("valeur propre :",round(sp[3],2),"; vecteur propre :",vp[:,3]/vp[0,3]) print("valeur propre :",round(sp[4],2),"; vecteur propre :",4*vp[:,4]/vp[0,4]) # In[132]: A3=A([-3,-1,1,2]) print(A3) print("valeurs propres :",alg.eigvals(A3)) print("vecteurs propres :") print(alg.eig(A3)[1]) # In[152]: sp=alg.eig(A3)[0] vp=alg.eig(A3)[1] print("valeur propre :",round(sp[0],2),"; vecteur propre :",vp[:,0]/vp[-1,0]) print("valeur propre :",round(sp[1],2),"; vecteur propre :",vp[:,1]/vp[-1,1]) print("valeur propre :",round(sp[2],2),"; vecteur propre :",vp[:,2]/vp[-1,2]) print("valeur propre :",round(sp[3],2),"; vecteur propre :",vp[:,3]/vp[-1,3]) print("valeur propre :",round(sp[4],2),"; vecteur propre :",vp[:,4]/vp[-1,4]) # On peut émettre la conjecture suivante : # # $$\myfbox{$ \mathrm{Sp}\big(A(a_1,\dots,a_n)\big) = \left\{-a_1,\dots,-a_n,\sum\limits_{k=1}^n a_k\right\}$}$$ # Dans les 2 premiers cas ci-dessus, la somme des dimensions des espaces propres est égale à la taille de la matrice $A(a_1,\dots,a_n)$, donc $\myfbox{$A(1,2,3,4)$ et $A(4,2,3,1)$ sont diagonalisables}$ sur $\R$. # # Dans le dernier cas, $1$ est valeur propre double, mais l'espace propre associé est de dimension $1$, donc $\myfbox{$A(-3,-1,1,2)$ n'est pas diagonalisable}$ . # Plus généralement, on peut conjecturer que : # # $\bullet$ Si $\sum\limits_{k=1}^n a_k\notin \left\{-a_1,\dots,-a_n\right\}$, alors $A(a_1,\dots,a_n)$ est diagonalisable # # $\bullet$ Si $\sum\limits_{k=1}^n a_k\in \left\{-a_1,\dots,-a_n\right\}$, alors $A(a_1,\dots,a_n)$ n'est pas diagonalisable. # $\fbox{$\textbf{Q2}$}$ Montrons les conjectures énoncés ci-dessus. # $\bullet$ On peut calculer le polynôme caractéristique $\chi_A$ de $A(a_1,\dots,a_n)$ : # # \begin{align*} # \chi_A(X) &= \begin{vmatrix} # X & -a_{1} & -a_{2} & \cdots & -a_{n-1} & -a_{n} \\ # -a_{1} & X & -a_{2} & \cdots & -a_{n-1} & -a_{n} \\ # -a_{1} & -a_{2} & X & \cdots & -a_{n-1} & -a_{n} \\ # \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ # -a_{1} & -a_{2} & -a_{3} & \cdots & -a_{n} & X # \end{vmatrix}\\ # &= \left(X-\sum\limits_{k=1}^n a_k\right)\begin{vmatrix} # 1 & -a_{1} & -a_{2} & \cdots & -a_{n-1} & -a_{n} \\ # 1 & X & -a_{2} & \cdots & -a_{n-1} & -a_{n} \\ # 1 & -a_{2} & X & \cdots & -a_{n-1} & -a_{n} \\ # \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ # 1 & -a_{2} & -a_{3} & \cdots & -a_{n} & X # \end{vmatrix} \qquad C_1\leftarrow C_1+\dots+C_{n+1}\\ # &= \left(X-\sum\limits_{k=1}^n a_k\right)\begin{vmatrix} # 1 & -a_{1} & -a_{2} & \cdots & -a_{n-1} & -a_{n} \\ # 0 & X+a_1 & 0 & \cdots & 0 & 0 \\ # 0 & a_1-a_{2} & X+a_2 & \cdots & 0 & 0 \\ # \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ # 0 & a_1-a_{2} & a_1-a_{3} & \cdots & a_1-a_{n} & X+a_n # \end{vmatrix} \qquad \forall i\in\ient2,n+1\fient,\ L_i\leftarrow L_i-L_1\\ # &= \left(X-\sum\limits_{k=1}^n a_k\right)\begin{vmatrix} # X+a_1 & 0 & \cdots & 0 & 0 \\ # a_1-a_{2} & X+a_2 & \cdots & 0 & 0 \\ # \vdots & \vdots & \vdots & \vdots & \vdots \\ # a_1-a_{2} & a_1-a_{3} & \cdots & a_1-a_{n} & X+a_n # \end{vmatrix} \qquad \textrm{(en développant par rapport à $C_1$)}\\ # &= \left(X-\sum\limits_{k=1}^n a_k\right) \left(X+a_1\right)\dots \left(X+a_n\right)\qquad\textrm{(déterminant d'une matrice triangulaire)} # \end{align*} # On a prouvé que $\myfbox{$ \mathrm{Sp}\big(A(a_1,\dots,a_n)\big) = \left\{-a_1,\dots,-a_n,\sum\limits_{k=1}^n a_k\right\}$}$ . # $\bullet$ On détermine les espaces propres associés : # # # $\circ$ On calcule sans peine ${A}(a_1,\dots,a_n)\left(\begin{array}{c}1 \\ \vdots \\ 1\end{array}\right)=\left(\sum\limits_{i=1}^{n} a_{i}\right)\left(\begin{array}{c}1 \\ \vdots \\ 1\end{array}\right)$ donc $\sum\limits_{i=1}^{n} a_{i}$ est valeur propre et $\left(\begin{array}{c}1 \\ \vdots \\ 1\end{array}\right)$ est un vecteur propre associé. # # $\circ$ On calcule maintenant ${A}(a_1,\dots,a_n)\left(\begin{array}{c}\alpha \\ \vdots\\ \alpha \\ \beta \\ \vdots \\ \beta\end{array}\right)=\left(\begin{array}{c}\alpha\left(a_{1}+\cdots+a_{k-1}\right)+\beta\left(a_{k}+\cdots+a_{n}\right) \\ \vdots \\ \alpha\left(a_{1}+\cdots+a_{k-1}\right)+\beta\left(a_{k}+\cdots+a_{n}\right) \\ \alpha\left(a_{1}+\cdots+a_{k}\right)+\beta\left(a_{k+1}+\cdots+a_{n}\right) \\ \vdots \\ \alpha\left(a_{1}+\cdots+a_{k}\right)+\beta\left(a_{k+1}+\cdots+a_{n}\right)\end{array}\right)$ (avec $k$ $\alpha$ dans le vecteur). # # Cherchons $\alpha$ et $\beta$ pour que ce vecteur soit propre pour la valeur propre $-a_{k}$ ; il faut et il suffit que # # $$ # \left\{\begin{array}{l} # \alpha\left(a_{1}+\cdots+a_{k-1}\right)+\beta\left(a_{k}+\cdots+a_{n}\right)=-a_{k} \alpha \\ # \alpha\left(a_{1}+\cdots+a_{k}\right)+\beta\left(a_{k+1}+\cdots+a_{n}\right)=-a_{k} \beta # \end{array} \Longleftrightarrow \alpha\left(a_{1}+\cdots+a_{k}\right)+\beta\left(a_{k}+\cdots+a_{n}\right)=0\right. # $$ # # Lorsque $\left(a_{1}+\cdots+a_{k}, a_{k}+\cdots+a_{n}\right) \neq(0,0),-a_{k}$ est bien valeur propre pour le vecteur propre défini si dessus avec $\alpha=\left(a_{k}+\cdots+a_{n}\right)$ et $\beta=-\left(a_{1}+\cdots+a_{k}\right)$. # $\bullet$ Étudions maintenant la diagonalisabilité : # $\circ$ $\myfbox{Si $\sum\limits_{\ell=1}^n a_\ell\notin \left\{-a_1,\dots,-a_n\right\}$}$ : # # alors $A(a_1,\dots,a_n)$ possède $n+1$ valeurs propres distinctes (et est de taille $n+1$), donc $\myfbox{$A(a_1,\dots,a_n)$ est diagonalisable}$ , et les vecteurs propres ont été déterminés ci-dessus. # # *Remarque :* Si $\sum\limits_{\ell=1}^n a_\ell\notin \left\{-a_1,\dots,-a_n\right\}$, alors, avec les notations ci-dessus, $(\alpha,\beta)\neq(0,0)$ : sinon, on aurait $0=a_{1}+\cdots+a_{k}=-a_{k}-\cdots-a_{n}$, d'où $-a_k = \sum\limits_{\ell=1}^n a_\ell$. # $\circ$ $\myfbox{Si $\sum\limits_{\ell=1}^n a_\ell\in \left\{-a_1,\dots,-a_n\right\}$}$ : # # Alors les calculs précédents sont encore valides, sauf pour le calcul du vecteur propre de $-a_k = \sum\limits_{\ell=1}^n a_\ell$. Toutes les autres valeurs propres sont simples, et $-a_k$ est double. # # On montre maintenant que la dimension de $E_{-a_k}$ vaut $1$, ce qui montre la non-diagonalisabilité de $A(a_1,\dots,a_n)$. # # Il suffit pour cela de montrer que le rang de $A+a_k\mathrm{I}_n$ vaut $n$ (théorème du rang). # # On suppose pour simplifier que $k=n$. # Or : # # \begin{align*} # \rg (A+a_n\mathrm{I}_n) &= \rg \begin{pmatrix} # a_n & a_{1} & a_{2} & \cdots & a_{n-1} & a_{n} \\ # a_{1} & a_n & a_{2} & \cdots & a_{n-1} & a_{n} \\ # a_{1} & a_{2} & a_n & \cdots & a_{n-1} & a_{n} \\ # \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ # a_{1} & a_{2} & a_{3} & \cdots & a_{n} & a_n # \end{pmatrix}\\[5pt] # &= \rg \begin{pmatrix} # a_n & a_{1} & a_{2} & \cdots & a_{n-1} & 0 \\ # a_{1} & a_n & a_{2} & \cdots & a_{n-1} & 0 \\ # a_{1} & a_{2} & a_n & \cdots & a_{n-1} & 0 \\ # \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ # a_{1} & a_{2} & a_{3} & \cdots & a_{n} & 0 # \end{pmatrix}\qquad C_{n+1} \gets C_1+\dots+C_{n+1}\\[5pt] # &= \rg \begin{pmatrix} # a_n & a_1 & a_2 & \dots & a_{n-1} & 0\\ # a_1-a_n&a_n-a_1& & & &0\\ # & a_2-a_n&a_n-a_2& & \dots&\vdots \\ # \\ # & & & & a_{n-1}-a_n&0 # \end{pmatrix}\qquad \begin{cases} # L_{n+1}\gets L_{n+1}-L_{n}\\ # \vdots\\ # L_2 \gets L_2-L_1 # \end{cases} # \end{align*} # D'une part, puisque la dernière colonne est nulle, $\rg (A+a_n\mathrm{I}_n)\leqslant n$. # # D'autre part, puisque les $n$ dernières lignes sont linéairement indépendantes (échelonnées, avec pivots non nuls par hypothèse), on obtient $\rg (A+a_n\mathrm{I}_n)=n$, comme voulu. # $\fbox{$\textbf{Q3}$}$ Lorsque les $a_{i}$ sont strictement positifs, on dispose de $n+1$ valeurs propres deux à deux distinctes : les $-a_{k}$ et $\sum\limits_{\ell=1}^{n} a_{\ell}=1$. # # Il existe donc ${P} \in \mathcal{M}_{n+1}(\mathbb{R})$ tel que : # # $${A}\left(a_{1}, \ldots, a_{n}\right)={P} \operatorname{diag}\left(-a_{1}, \ldots,-a_{n}, 1\right) {P}^{-1} # $$ # # où l'on a noté $\operatorname{diag}\left(-a_{1}, \ldots,-a_{n}, 1\right) =\begin{pmatrix} # -a_1 &&&&\\ # &-a_2&&&\\ # &&\ddots&&\\ # &&&-a_n&\\\ # &&&&1 # \end{pmatrix}$. # # # Ainsi, ${A}\left(a_{1}, \ldots, a_{n}\right)^m={P} \operatorname{diag}\Big(\left(-a_{1}\right)^{m}, \ldots,\left(-a_{n}\right)^{m}, 1\Big) {P}^{-1}$ et puisque les $a_{i}$ sont dans $] 0,1[$ : # # $$\dis\lim_{m \rightarrow+\infty} {A}\left(a_{1}, \ldots, a_{n}\right)^{m}= P \operatorname{diag}(0, \ldots, 0,1) P^{-1}$$ # # # *Remarque :* il s'agit en fait de la matrice du projecteur sur le sous-espace propre associé à la valeur propre $1$, autrement dit sur $\mathrm{Vect}\left[\left(\begin{array}{l}1 \\ \vdots \\ 1\end{array}\right)\right]$, parallèlement à la somme directe des autres sous-espaces propres.