Les questions utilisant Python commencent par [P]. Une fonction arithmétique multiplicative est ici une application {f:\mathbb N^*\to\mathbb C}, avec {f(1)=1}, telle que {f(mn)=f(m)f(n)} lorsque {m\wedge n=1}. Le symbole {m\wedge n} désigne le pgcd. On veut calculer les déterminants des matrices de terme général {f(i\wedge j)}.
gcd(a,b) renvoyant le pgcd de deux entiers strictement positifs. On peut aussi importer gcd depuis math.On définit {\varphi(n)=\#\{x\in\{1,\ldots,n\}:x\wedge n=1\}}, {\tau(n)=\#\{d\ge1:d\mid n\}} et {\sigma(n)=\sum\limits_{d\mid n}d}.
On pose {\mu(n)=0} si {n} est divisible par le carré d’un entier strictement supérieur à {1}, et {\mu(n)=(-1)^k} sinon, où {k} est le nombre de diviseurs premiers de {n}.
phi(n), tau(n) et sigma(n).Sur l’ensemble {\mathcal M} des fonctions multiplicatives, on définit
{(f\star g)(n)=\sum_{d\mid n}f(d)g(n/d)}On admet que {(\mathcal M,\star)} est un groupe commutatif.
{(E)\quad H(n)=\sum_{d\mid n}\mu(d)h(n/d)}Déterminer {h} pour {H=\varphi} et écrire l’égalité correspondante.
Soit {M=(f(i\wedge j))_{1\le i,j\le n}}, {F=\mu\star f}, {D=\operatorname{diag}(F(1),\ldots,F(n))} et {A=(a_{i,j})}, où {a_{i,j}=1} si {i\mid j} et {0} sinon.
Indications Python
math.gcd calcule le pgcd ; np.array forme une matrice et np.linalg.det son déterminant numérique.
|
1 2 3 4 5 |
import numpy as np def makemat(f, n): return np.array([[f(i+1,j+1) for j in range(n)] for i in range(n)]) |