σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours Matrix Decompositions›Module 1 · Valeurs propres et spectres›Sujet 1.2·~50 minIntermédiaire

L'itération de puissance

Position dans le parcoursModule 1 sur 5 · Sujet 2 sur 3
1.2 L'itération de puissance
—Score du lab— / 100XP total—Série—

Trouver la direction dominante par multiplications répétées

Résoudre un polynôme caractéristique est sans espoir pour une matrice 1000×10001000\times10001000×1000, et l'on ne veut souvent que la plus grande paire propre, par exemple la première composante principale. L'itération de puissance la trouve avec de simples produits matrice-vecteur. Partez d'un vecteur quelconque x0\mathbf x_0x0​ et répétez xk+1=Axk/∥Axk∥\mathbf x_{k+1}=A\mathbf x_k/\lVert A\mathbf x_k\rVertxk+1​=Axk​/∥Axk​∥. Chaque multiplication étire la composante le long du vecteur propre dominant plus que toutes les autres, de sorte qu'après assez d'étapes le vecteur pointe dans cette direction.

xk+1=Axk∥Axk∥,λ≈xkTAxkxkTxk,ek∝∣λ2λ1∣k\mathbf x_{k+1}=\frac{A\mathbf x_k}{\lVert A\mathbf x_k\rVert},\qquad \lambda\approx\frac{\mathbf x_k^{T}A\mathbf x_k}{\mathbf x_k^{T}\mathbf x_k},\qquad e_k\propto\Big|\frac{\lambda_2}{\lambda_1}\Big|^{k}xk+1​=∥Axk​∥Axk​​,λ≈xkT​xk​xkT​Axk​​,ek​∝​λ1​λ2​​​k(1)

Écrivons x0=c1v1+c2v2+⋯\mathbf x_0=c_1\mathbf v_1+c_2\mathbf v_2+\cdotsx0​=c1​v1​+c2​v2​+⋯ dans la base des vecteurs propres. Après kkk étapes, les coefficients sont multipliés par λik\lambda_i^kλik​, donc le rapport du deuxième au premier est (λ2/λ1)k(\lambda_2/\lambda_1)^k(λ2​/λ1​)k. La méthode converge si ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣ et si le vecteur de départ a une composante le long de v1\mathbf v_1v1​ ; la vitesse dépend de ∣λ2/λ1∣|\lambda_2/\lambda_1|∣λ2​/λ1​∣ : des valeurs propres proches donnent une convergence lente. La normalisation évite seulement le débordement ; seule la direction compte. L'estimation de la valeur propre est le quotient de Rayleigh. Pour la paire suivante, on retranche λ1v1v1T\lambda_1\mathbf v_1\mathbf v_1^{T}λ1​v1​v1T​ d'une matrice symétrique AAA et on recommence : c'est la déflation.

Quelques étapes à la mainPrenons A=(2112)A=\begin{pmatrix}2&1\\1&2\end{pmatrix}A=(21​12​), de valeurs propres 3 et 1 et de vecteur propre dominant (1,1)(1,1)(1,1). Partons de x0=(1,0)\mathbf x_0=(1,0)x0​=(1,0). Alors Ax0=(2,1)A\mathbf x_0=(2,1)Ax0​=(2,1), et le quotient de Rayleigh de (2,1)(2,1)(2,1) est (2,1)⋅(5,4)5=145=2,8\frac{(2,1)\cdot(5,4)}{5}=\frac{14}{5}=2{,}85(2,1)⋅(5,4)​=514​=2,8, déjà proche de 3. Le produit suivant est A(2,1)=(5,4)A(2,1)=(5,4)A(2,1)=(5,4), presque dans la direction de (1,1)(1,1)(1,1). L'erreur est divisée par ∣λ2/λ1∣=1/3|\lambda_2/\lambda_1|=1/3∣λ2​/λ1​∣=1/3 à chaque étape ; pour gagner un facteur 10−610^{-6}10−6 il faut kkk tel que 3k≥1063^k\ge10^63k≥106, soit k=13k=13k=13.
  • Mise à jour : multiplier par AAA, diviser par la norme, recommencer ; chaque étape coûte un produit matrice-vecteur.
  • Vitesse : l'erreur décroît comme ∣λ2/λ1∣k|\lambda_2/\lambda_1|^k∣λ2​/λ1​∣k, donc des plus grandes valeurs propres proches convergent lentement.
  • Conditions : un écart ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣ et un vecteur initial non orthogonal à v1\mathbf v_1v1​.
La même idée classe les pages webL'itération de puissance est la méthode derrière PageRank, et c'est ainsi que l'on calcule à bas coût la première composante principale de milliers d'actifs quand la matrice de covariance est énorme ou jamais formée explicitement (seuls les produits AxA\mathbf xAx sont disponibles). Les routines de bibliothèque pour la décomposition complète coûtent environ n3n^3n3 opérations, tandis que chaque étape de puissance coûte n2n^2n2 pour une matrice dense.

Lab : ce qui est noté

  • Vers quoi elle converge15 pts
  • Un quotient de Rayleigh20 pts
  • Le rapport de convergence10 pts
  • Combien d'itérations15 pts
  • L'algorithme dans l'ordre15 pts
  • Quand elle est lente ou échoue15 pts
  • Pourquoi normaliser10 pts
0/ 7 traités
Exercices
1Choix15 ptsSans réponse

Quand ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣, l'itération de puissance converge (en direction) vers quel vecteur ?

2Réponse numérique20 ptsSans réponse

Pour A=(2112)A=\begin{pmatrix}2&1\\1&2\end{pmatrix}A=(21​12​) et x=(2,1)\mathbf x=(2,1)x=(2,1), calculez xTAx / xTx\mathbf x^{T}A\mathbf x\,/\,\mathbf x^{T}\mathbf xxTAx/xTx.

Rayleighquotient=Rayleigh quotient =Rayleighquotient=accepté : ± 0.01
3Réponse numérique10 ptsSans réponse

Une matrice a pour valeurs propres 3 et 1. De quel facteur l'erreur diminue-t-elle à chaque étape de puissance ?

ratio=ratio =ratio=accepté : ± 0.005
4Réponse numérique15 ptsSans réponse

Avec un rapport de 1/3 par étape, quel est le plus petit nombre entier d'étapes kkk qui réduit l'erreur d'un facteur d'au moins 10610^{6}106 (soit 3k≥1063^k\ge10^63k≥106) ?

k=k =k=accepté : ± 0.01
5Remettre les étapes dans l'ordre15 ptsSans réponse

Mettez dans l'ordre les étapes de l'itération de puissance.

Faites glisser pour réordonner, ou placez le focus sur un élément, Espace pour le soulever, les flèches pour le déplacer et Espace pour le déposer.

  1. 1Diviser par la norme pour obtenir un vecteur unité
  2. 2Donner le quotient de Rayleigh comme valeur propre
  3. 3Partir d'un vecteur non nul
  4. 4Répéter jusqu'à ce que la direction ne change plus
  5. 5Multiplier le vecteur par la matrice
6Choix15 ptsSans réponse

Sélectionnez toutes les situations où l'itération de puissance simple converge lentement ou ne converge pas.

7Expliquer avec des mots10 ptsSans réponse

En une ou deux phrases, dites pourquoi on divise par la norme après chaque multiplication.

Mode mathsSaisie au clavier ou en LaTeXExercice 1 sur 7 · Ctrl ⏎ pour vérifier

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub