Adloun

Corrigé Ecricome 2026 Maths appliquées ECG — Exercice 3 — Partie III (Q12 à Q17) : Matrice nilpotente : indice de nilpotence en Python, spectre réduit à 0, non-diagonalisabilité, solution X(t) = B(t)X0 du problème de Cauchy

Sujet officiel du concours Ecricome, session 2026, épreuve Maths appliquées ECG. Corrigé rédigé par Ibrahim Alame.

Sujet officiel (PDF, site du concours)

Énoncé

Soit . est nilpotente s'il existe tel que . On admet qu'alors il existe un entier , avec , tel que et pour tout : c'est l'indice de nilpotence de . Soit nilpotente non nulle, d'indice , et le système : pour tout réel , où est la colonne des inconnues .

Q12. Écrire une fonction Python Nil(M) qui renvoie l'indice de nilpotence si est nilpotente, et sinon.
Q13. Montrer que a une unique valeur propre, à déterminer.
Q14. Justifier par l'absurde que n'est pas diagonalisable.

Pour réel, et , où .

Q15. Justifier que .
Q16. En déduire que est l'unique solution du problème de Cauchy formé de et de .
Q17. Compléter la fonction B(N, t) du sujet, qui renvoie : elle teste d'abord la valeur de Nil(N), puis part de T = S = l'identité et, dans une boucle sur k, met à jour T par un quotient multiplié par np.dot(T, ...), avant d'ajouter T à S.

Corrigé

Q12. D'après le résultat admis, si est nilpotente, son indice vérifie , donc . Il suffit donc de calculer et de renvoyer le premier exposant pour lequel ; si aucun ne convient, et n'est pas nilpotente. Le premier tel que est bien l'indice : par minimalité (et couvre le cas ).


import numpy as np

def Nil(M):
    n = len(M)
    Z = np.zeros([n, n])
    P = np.eye(n)                  # P contiendra la puissance M^k
    for k in range(1, n + 1):      # l'indice de nilpotence est au plus n
        P = np.dot(P, M)           # produit matriciel : P = M^k
        if (P == Z).all():
            return k               # premier k tel que M^k = 0
    return 0                       # M^n non nulle : M n'est pas nilpotente

La puissance est obtenue par produits matriciels successifs : M**k calculerait les puissances coefficient par coefficient, et M = np.dot(M, M) élèverait au carré à chaque tour (exposants ). Exécution : sur la fonction renvoie ; sur la matrice de la Partie II, (car ) ; sur , ; sur , . Le test d'égalité exacte convient à des matrices à coefficients entiers ; pour des coefficients flottants, on comparerait à avec une tolérance.

100 % gratuit

La suite du corrigé est sur Adloun

Le corrigé rédigé en entier, question par question, et le tuteur pour poser des questions sur ce sujet.

Voir le corrigé complet, gratuitement

Inscription gratuite en 30 secondes (e-mail, nom d'utilisateur, mot de passe, classe ou profil), sans carte bancaire : arrivée directe sur le corrigé.

Toutes les parties de l'épreuve

Corrigé complet gratuit →