Método de Verlet

De Física Computacional
Revisão de 18h35min de 22 de fevereiro de 2022 por Jhordan (discussão | contribs)
Ir para navegação Ir para pesquisar

Para o método de Euler implícito havíamos utilizado a derivada a esquerda:

f′(t)≈f(t)−f(t−Δt)Δt

Então se y(t)=f′(t) a segunda derivada é y′(t)=f″(t), pela definição, da derivada a direita:

y′(t)=limΔt→0y(t+Δt)−y(t)Δt=limΔt→0f′(t+Δt)−f′(t)Δt

Logo utilizando as aproximações:

f″(t)≈1Δt(f′(t+Δt)−f′(t))≈1Δt(f(t+Δt)−f(t+Δt−Δt)Δt−f(t)−f(t−Δt)Δt)≈f(t+Δt)+f(t−Δt)−2f(t)(Δt)2

Isolando então f(t+Δt):

f(t+Δt)=(Δt)2f″(t)−f(t−Δt)+2f(t)

Temos o método de Verlet. Podemos notar que precisamos conhecer f(t) em dois tempos anteriores. Podemos utilizar outro algoritmo para o primeiro passo. Se f(t)=x(t) é posição, então f″(t)=x¨(t)=a(x,t) logo podemos reescrever:

x(t+Δt)=a(x,t)(Δt)2−x(t−Δt)+2x(t)

Para calcular a energia, podemos obter a velocidade então utilizando a derivada centrada: v(t)=x˙(t)=x(t+Δt)−x(t−Δt)2Δt Alternativamente podemos obter o mesmo resultado em termos da expansão de Taylor:

x(t+Δt)=x(t)+v(t)Δt+12a(t)Δt2+16a′(t)Δt3+…x(t−Δt)=x(t)−v(t)Δt+12a(t)Δt2−16a′(t)Δt3+…

Somando os dois termos, ficamos então com:

x(t+Δt)+x(t−Δt)=2x(t)+a(t)Δt2+𝒪(Δt4)

Obtemos então não só o algoritmo de Verlet, além de que sabemos que é uma expansão até a terceir ordem. Então o erro envolvido na truncação é 𝒪(Δt4), e este é o erro local, associao a um único passo.

Além disso, se fizermos a diferença, obtemos o algoritmo da velocidade:

x(t+Δt)+x(t−Δt)=2v(t)+13a′(t)Δt3

Então:

v(t)=x(t+Δt)+x(t−Δt)Δt−13a′(t)Δt2

Logo temos um erro 𝒪(Δt2) na velocidade. Além do erro de truncação associado ao método de dierenças finita e que decai com o decaimento de Δt, também podemos lembrar que um erro de arredondamento, pois o computador usa uma quantidade finita de memória para representar os números. Isto, é, existe um número ϵ em que para qualquer número α≤ϵ então 1+α=1. ϵ é o maior número que pode ser somado a 1 sem alterar o resultado.


Principais materiais utilizados

  1. The Second Derivative (Matthew Boelkins, David Austin & Steven Schlicker; LibreTexts)