Les questions [P] utilisent Python. Pour {n\ge1}, on note {\varphi(n)} le nombre d’entiers de {\{1,\ldots,n\}} premiers avec {n}. On définit {G_n=(i\wedge j)_{1\le i,j\le n}}, {F_n=\operatorname{diag}(\varphi(1),\ldots,\varphi(n))} et {A_n=(a_{i,j})}, où {a_{i,j}=1} si {i\mid j} et {0} sinon. La transposée de {M} est notée {M^t}.
Soit {D_n} l’ensemble des diviseurs positifs de {n}.
1. (a) Pour {f:\{1,\ldots,n\}\to D_n}, {f(k)=n\wedge k}, montrer que {d\in D_n} possède exactement {\varphi(n/d)} antécédents.
1. (b) En déduire {\sum\limits_{d\mid n}\varphi(d)=n}.
2. (a) [P] Écrire
phi(n) à partir de la définition, en utilisant gcd.2. (b) [P] Écrire
G(n) et F(n).2. (c) [P] Écrire
test(i,j) renvoyant {1} si {i} divise {j}, et {0} sinon. En déduire A(n).2. (d) [P] Vérifier {G_n=A_n^tF_nA_n} pour quelques valeurs de {n}.
3. (a) Démontrer cette égalité pour tout {n\ge1}.
3. (b) En déduire {\det G_n}.
3. (c) [P] Vérifier le résultat pour quelques valeurs de {n}.
4. (a) Déterminer une matrice triangulaire supérieure {B_n}, de diagonale strictement positive, telle que {G_n=B_n^tB_n}. Prouver son unicité.
4. (b) [P] Définir
B(n) et vérifier {G_n=B_n^tB_n}.Indications Python
from math import gcd importe le pgcd. np.array crée une matrice, np.diag une diagonale, A.T la transposée et A.dot(B) le produit matriciel.