Inversion d’une matrice

(cet exercice est issu de l’oral Mines-Ponts Psi 2010)
Soit {M=(m_{i,j})_{1\leq i,j\leq n+1}}{m_{i,j}=0} si {j<i} et {m_{i,j}=\dbinom{j-1}{i-1}} si {j\geq i}.
Calculer l’inverse {M^{-1}} de la matrice M.
On se place dans {\mathbb{K}_n[X]}, muni de sa base canonique {1,X,X^2,\ldots,X^n}.

On observe que M (triangulaire supérieure) représente {\varphi\colon P(X)\mapsto P(X+1)}.

Ainsi {N=M^{-1}} est la matrice de {\varphi\colon P(X)\mapsto P(X-1)} dans cette base.

Il en résulte : {n_{i,j}=0} si {j>i} et {n_{i,j}=(-1)^{j-i}\dbinom{i-1}{j-1}} si {j\leq i}.

Voici comment on peut observer ce résultat avec Python :

import numpy as np
from scipy.special import binom

def M(n):
    m = np.zeros((n,n))
    for i in range(n):
       for j in range(i,n):
          m[i,j] = binom(j,i)
    return m

>>> print(M(6))
[[ 1. 1. 1. 1. 1. 1. ]
 [ 0. 1. 2. 3. 4. 5. ]
 [ 0. 0. 1. 3. 6. 10.]
 [ 0. 0. 0. 1. 4. 10.]
 [ 0. 0. 0. 0. 1. 5. ]
 [ 0. 0. 0. 0. 0. 1. ]]

>>> print(np.linalg.inv(M(6)))
[[ 1. -1.  1. -1.  1.  -1.]
 [ 0.  1. -2.  3. -4.   5.]
 [ 0.  0.  1. -3.  6. -10.]
 [ 0.  0.  0.  1. -4.  10.]
 [ 0.  0.  0.  0.  1.  -5.]
 [ 0.  0.  0.  0.  0.   1.]]