σμ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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • 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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Roteiro de Matrix Decompositions›Módulo 1 · Autovalores e espectros›Tópico 1.2·~50 minIntermediário

A iteração de potência

Posição no roteiroMódulo 1 de 5 · Tópico 2 de 3
1.2 A iteração de potência
—Nota do lab— / 100XP total—Sequência—

Achar a direção dominante por multiplicações repetidas

Resolver um polinômio característico é inviável para uma matriz 1000×10001000\times10001000×1000, e muitas vezes só se quer o maior par próprio, por exemplo o primeiro componente principal. A iteração de potência o encontra apenas com produtos matriz-vetor. Parta de qualquer vetor x0\mathbf x_0x0​ e repita xk+1=Axk/∥Axk∥\mathbf x_{k+1}=A\mathbf x_k/\lVert A\mathbf x_k\rVertxk+1​=Axk​/∥Axk​∥. Cada multiplicação estica a componente ao longo do autovetor dominante mais que todas as outras, de modo que, após passos suficientes, o vetor aponta nessa direção.

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)

Escreva x0=c1v1+c2v2+⋯\mathbf x_0=c_1\mathbf v_1+c_2\mathbf v_2+\cdotsx0​=c1​v1​+c2​v2​+⋯ em autovetores. Após kkk passos os coeficientes são multiplicados por λik\lambda_i^kλik​, então a razão do segundo para o primeiro é (λ2/λ1)k(\lambda_2/\lambda_1)^k(λ2​/λ1​)k. O método converge quando ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣ e o vetor inicial tem alguma componente ao longo de v1\mathbf v_1v1​, e a velocidade depende de ∣λ2/λ1∣|\lambda_2/\lambda_1|∣λ2​/λ1​∣: autovalores próximos significam convergência lenta. A normalização apenas evita o estouro numérico; o que importa é a direção. A estimativa do autovalor é o quociente de Rayleigh. Para o próximo par, subtrai-se λ1v1v1T\lambda_1\mathbf v_1\mathbf v_1^{T}λ1​v1​v1T​ de uma matriz simétrica AAA e repete-se, o que se chama deflação.

Alguns passos à mãoTome A=(2112)A=\begin{pmatrix}2&1\\1&2\end{pmatrix}A=(21​12​), com autovalores 3 e 1 e autovetor dominante (1,1)(1,1)(1,1). Parta de x0=(1,0)\mathbf x_0=(1,0)x0​=(1,0). Então Ax0=(2,1)A\mathbf x_0=(2,1)Ax0​=(2,1) e o quociente de Rayleigh de (2,1)(2,1)(2,1) é (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, já perto de 3. O produto seguinte é A(2,1)=(5,4)A(2,1)=(5,4)A(2,1)=(5,4), quase na direção de (1,1)(1,1)(1,1). O erro diminui por ∣λ2/λ1∣=1/3|\lambda_2/\lambda_1|=1/3∣λ2​/λ1​∣=1/3 a cada passo, então para ganhar um fator 10−610^{-6}10−6 é preciso kkk com 3k≥1063^k\ge10^63k≥106, isto é, k=13k=13k=13.
  • Atualização: multiplicar por AAA, dividir pela norma e repetir; cada passo custa um produto matriz-vetor.
  • Velocidade: o erro cai como ∣λ2/λ1∣k|\lambda_2/\lambda_1|^k∣λ2​/λ1​∣k, então autovalores maiores próximos convergem devagar.
  • Requisitos: uma folga ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣ e um vetor inicial não ortogonal a v1\mathbf v_1v1​.
A mesma ideia ordena páginas da webA iteração de potência é o método por trás do PageRank e é assim que se calcula barato o primeiro componente principal de milhares de ativos quando a matriz de covariância é enorme ou nunca é formada explicitamente (só há produtos AxA\mathbf xAx). As rotinas de biblioteca para a decomposição completa custam cerca de n3n^3n3 operações, enquanto cada passo de potência custa n2n^2n2 numa matriz densa.

Lab: o que é avaliado

  • A que converge15 pts
  • Um quociente de Rayleigh20 pts
  • A razão de convergência10 pts
  • Quantas iterações15 pts
  • O algoritmo em ordem15 pts
  • Quando é lenta ou falha15 pts
  • Por que normalizar10 pts
0/ 7 respondidas
Tarefas
1Escolha15 ptsSem resposta

Quando ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣, a iteração de potência converge (em direção) para qual vetor?

2Resposta numérica20 ptsSem resposta

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

Rayleighquotient=Rayleigh quotient =Rayleighquotient=aceito: ± 0.01
3Resposta numérica10 ptsSem resposta

Uma matriz tem autovalores 3 e 1. Por qual fator o erro diminui em cada passo de potência?

ratio=ratio =ratio=aceito: ± 0.005
4Resposta numérica15 ptsSem resposta

Com razão de 1/3 por passo, qual é o menor número inteiro de passos kkk que reduz o erro por um fator de pelo menos 10610^{6}106 (isto é, 3k≥1063^k\ge10^63k≥106)?

k=k =k=aceito: ± 0.01
5Ordenar os passos15 ptsSem resposta

Coloque em ordem os passos da iteração de potência.

Arraste para reordenar, ou foque um item, Espaço para levantá-lo, setas para movê-lo e Espaço para soltá-lo.

  1. 1Dividir pela norma para obter um vetor unitário
  2. 2Informar o quociente de Rayleigh como autovalor
  3. 3Partir de um vetor não nulo
  4. 4Repetir até que a direção pare de mudar
  5. 5Multiplicar o vetor pela matriz
6Escolha15 ptsSem resposta

Selecione todas as situações em que a iteração de potência simples converge devagar ou não converge.

7Explicar com palavras10 ptsSem resposta

Em uma ou duas frases, diga por que dividimos pela norma após cada multiplicação.

Modo matemáticaEntrada por teclado ou LaTeXTarefa 1 de 7 · Ctrl ⏎ para verificar

Entre para executar o seu código.

Todas as aulas são gratuitas para ler. Crie uma conta ou entre para executar código, rodar os testes e enviar este lab.

  • IDE no navegador com terminal bash — nada para instalar
  • Correção instantânea, XP e o seu lugar no roteiro
Criar uma contaEntrar
OU
Continuar com o GitHub