Aller au contenu

Puissance rapide d'une matrice

Exponentiation en $O(\log n)$

Exercice Intermédiaire · Prepa-eco · prepa scientifique et economique (CPGE)

Enonce

Implémenter $A^n$ par exponentiation rapide, sans utiliser np.linalg.matrix_power. $A$ est carrée, $n \geq 0$. Utiliser l'opérateur @ pour le produit matriciel.

Signature attendue

def puissance_rapide(A: np.ndarray, n: int) -> np.ndarray:

Exemples

  • int(puissance_rapide(F, 10)[0, 1]) → F(10) = 55
  • int(puissance_rapide(F, 20)[0, 1]) → F(20) = 6765

📖 Rappel de cours

Calculer $A^n$ naïvement par $n-1$ multiplications coûte $O(k^3 \cdot n)$ ($k$ = taille de $A$). L'exponentiation rapide exploite la décomposition binaire de $n$ :

$A^n = \begin{cases} I & \text{si } n = 0 \\ (A^{n/2})^2 & \text{si } n \text{ pair} \\ A \cdot A^{n-1} & \text{si } n \text{ impair} \end{cases}$

Exemple : $A^{13} = A \cdot A^{12} = A \cdot (A^6)^2 = A \cdot ((A^3)^2)^2$, soit 5 multiplications au lieu de 12.

Application ECG : calcul du $n$-ième terme d'une suite récurrente linéaire (Fibonacci, suites arithmético-géométriques) ou de la distribution à long terme d'une chaîne de Markov.

← Exercices Python pour la prépa ECG — probabilités, matrices, suites

Exercices du meme theme

  • Loi des grands nombres
  • Produit matriciel
  • Résolution d'un système linéaire
  • Chaîne de Markov — distribution à $n$ étapes
  • Distribution stationnaire d'une chaîne de Markov
  • Mensualité d'un prêt à taux fixe

La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Essai gratuit
Testez toutes les fonctionnalités sans engagement
En continuant, vous acceptez notre politique de confidentialité.
Déjà abonné ? Se reconnecter
Recevez un lien de connexion par email
Parcourir gratuitement →
Aperçu limité · sans inscription · sans vérification IA
€4,99
/ mois · accès illimité · résiliable
Paiement sécurisé
En vous abonnant, vous acceptez nos conditions et politique de confidentialité.
Résiliation possible depuis votre espace PayPal.

Chargement...

Initialisation de l'environnement

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Progression
0 / 0
Solo
— / —
Python... SQL...
Recherche
🔬 Bac a sable Python ↗ 🧪 Bac a sable SQL ↗ 📝 Concours blanc ↗ 🏖️ Code à la plage ↗ 📚 Listes de rentrée ↗ 🛠️ Admin ↗
Tu aimes PrepaPython ?
Fais-le savoir !
← Retour à l'accueil Mentions legales & confidentialite