Matrice circulante

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En algèbre linéaire, une matrice circulante est une matrice carrée dans laquelle on passe d'une ligne à la suivante par permutation circulaire (décalage vers la droite) des coefficients.

Une matrice circulante de taille n est donc de la forme


C=
\begin{pmatrix}
c_0     & c_1 & c_2 & \dots  & c_{n-1}     \\
c_{n-1}     & c_0 & c_1 &        & c_{n-2} \\
c_{n-2} & c_{n-1} & c_0 &        & c_{n-3} \\
\vdots  &     &     & \ddots & \vdots  \\
c_1     & c_2 & c_3 & \dots  & c_0
\end{pmatrix}

où les coefficients ci sont des complexes.

Une matrice circulante constitue un cas particulier de matrice de Toeplitz, de matrice de Frobenius (c'est la matrice générique de la multiplication par un élément de l'algèbre de groupe ℂ[ℤ/nℤ] et aussi un cas particulier de carré latin).

La réduction des matrices circulantes fait intervenir les formules de la transformation de Fourier discrète. En analyse numérique, les systèmes circulants peuvent être résolus très efficacement par transformée de Fourier rapide.

On parle parfois de matrice anticirculante ou circulante gauche quand on effectue un décalage à gauche des coefficients en passant d'une ligne à la suivante.

Algèbre des matrices circulantes[modifier | modifier le code]

Pour alléger les notations, on désigne par C(c0, … , cn–1) la matrice circulante précédente.

En notant


J = \begin{pmatrix}
0 & 1 & 0 & \dots & 0 \\
0 & 0 & 1 & \dots & 0 \\
\vdots  &     &     & \ddots & \vdots  \\
0 & & &        & 1 \\
1 & 0 & 0 & \dots  & 0
\end{pmatrix} = C(0,1,0,...,0),

on peut constater que toute matrice circulante est un polynôme en J

C(c_0,\dots,c_{n-1}) = \sum_{j=0}^{n-1} c_j J^j=P_C(J).

Réciproquement, comme Jn est la matrice identité, tout polynôme en J est une matrice circulante.

Ainsi la somme, le produit de matrices circulantes sont circulantes, et un tel produit est commutatif. L'ensemble des matrices circulantes n'est autre que l'algèbre commutative des polynômes en J.

Réduction des matrices circulantes[modifier | modifier le code]

Diagonalisation de J[modifier | modifier le code]

La matrice J, vérifiant Jn = I, est diagonalisable sur avec pour valeurs propres des racines n-ièmes de l'unité.

On appelle donc \omega= e^{\frac{2i\pi}{n}}, racine primitive de l'unité. On vérifie alors sans peine que pour tout k

X_k = \begin{pmatrix} 1 \\\omega^k \\ \omega^{2k}\\ \vdots\\ \omega^{(n-1)k}\end{pmatrix}

est vecteur propre de J associé à la valeur propre ωk.

On a donc exhibé, pour k allant de 0 à n – 1, une famille de n vecteurs propres associés à des valeurs propres distinctes, soit une base propre pour J.

Diagonalisation d'une matrice circulante[modifier | modifier le code]

Par conséquent, c'est une base propre aussi pour tout polynôme en J, c'est-à-dire toute matrice circulante. Les valeurs propres de C(c0, … , cn–1) sont donc les

\lambda_k= \sum_{j=0}^{n-1} c_j \omega^{kj}=P_C(\omega^k)

qui, cette fois, ne sont plus nécessairement distinctes.

On peut prendre, pour matrice de passage de la base canonique à la base propre, la matrice

U= \frac1{\sqrt n}\begin{pmatrix} 
1&1&\dots &1 \\ 1& \omega&\dots &\omega^{n-1} \\ \vdots & \vdots & &\vdots \\ 
1&\omega^{n-1}&\dots &\omega^{(n-1)^2}\end{pmatrix}.

Cette matrice U est unitaire (U*U = I) et les formules de passage précédentes s'écrivent, en notant Λ la matrice diagonale de coefficients les valeurs propres

C= U\Lambda U^{-1} =U\Lambda U^* \qquad \Lambda =U^{-1}CU=U^*CU.

Une nouvelle définition possible pour l'ensemble des matrices circulantes est l'ensemble des matrices de la forme UDU* avec D diagonale. Géométriquement, cela correspond aux endomorphismes qui admettent la base orthonormale des Xk comme base de vecteurs propres.

Déterminant circulant[modifier | modifier le code]

Le déterminant circulant est le déterminant de la matrice circulante ; comme pour toute autre matrice, il est égal au produit des valeurs propres

\det C= \prod_{k=0}^{n-1}  P_C(\omega^k).

Toute matrice est inversible si et seulement si son déterminant est non nul, et dans le cas d'une matrice circulante sa matrice inverse est aussi une matrice circulante.

Intervention de la transformée de Fourier discrète[modifier | modifier le code]

Les formules de changement de base à l'aide de la matrice U ont un intérêt particulier. La formule de passage des coefficients aux valeurs propres est la définition classique d'une transformée de Fourier discrète. On peut retrouver les coefficients à partir des valeurs propres en effectuant cette fois une transformée inverse

c_k= \frac1n \sum_{j=0}^{n-1} \lambda_j \omega^{-kj}.

Système circulant[modifier | modifier le code]

Soit le système circulant Cx = b, avec C matrice circulante de taille n. Ce système peut se réécrire à l'aide d'un produit de convolution discret

\mathbf{c} * \mathbf{x} = \mathbf{b}

en notant c la première colonne de la matrice C et en périodisant les composantes des vecteurs c, x et b. La transformée de Fourier discrète transforme cette équation de convolution en un produit composante par composante.

\mathcal{F}_{n}(\mathbf{c} * \mathbf{x}) = \mathcal{F}_{n}(\mathbf{c}) \mathcal{F}_{n}(\mathbf{x}) = \mathcal{F}_{n}(\mathbf{b})

et ainsi

\mathbf{x} = \mathcal{F}_{n}^{-1} 
\left [ 
\left (
\frac{(\mathcal{F}_n(\mathbf{b}))_{\nu}}
{(\mathcal{F}_n(\mathbf{c}))_{\nu}} 
\right )_{\nu \in \mathbb{Z}}
\right ].

Cet algorithme de résolution est bien plus rapide que l'élimination de Gauss-Jordan, et l'est d'autant plus si l'on a recours à la transformée de Fourier rapide.