Integració de Verlet

De testwiki
Salta a la navegació Salta a la cerca

La integració de Verlet o algorisme de Verlet és un procediment per la integració numèrica d'equacions diferencials ordinàries de segon grau amb valors inicials coneguts (problema de Cauchy), i és la base d'un conjunt d'algorismes d'integració de forces. És particularment útil en situacions on l'expressió de la segona derivada només és funció de les variables, i no de la primera derivada.[1] Aquest és el cas de molts problemes de dinàmica newtoniana, motiu pel qual s'utilitza sovint en astronomia i mecànica molecular.

Descripció de l'algorisme

Mètode simple: càlcul de la x pròxima

La integració de Verlet és essencialment una solució a l'equació de moviment de qualsevol objecte:

x=x0+v0t+12at2+16bt3+

on x és la posició, v és la velocitat, a és l'acceleració, b és la sobreacceleració, i t és el temps.[2]

Suposem que volem resoldre x pel pas de temps següent; x(t+Δt). Utilitzant la Sèrie de Taylor obtenim:

x(t+Δt)=x(t)+v(t)Δt+12a(t)Δt2+16b(t)Δt3+𝒪(Δt4)

Això significa que per trobar la pròxima x necessitem els valors actuals de x, v, a i b.[3] Com que sovint no es calcula la sobreacceleració, tenim un error 𝒪(Δt3). Tot i això podem reduir aquest error significativament calculant la x anterior, és a dir x(tΔt), de manera similar:

x(tΔt)=x(t)v(t)Δt+12a(t)Δt216b(t)Δt3+𝒪(Δt4)

D'aquesta manera ara tenim dues equacions per calcular x en temps diferents, una de les quals ja tenim, per tant podem combinar-les per obtenir la pròxima x de forma acurada, amb un error de només 𝒪(Δt4):

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

Ara bé, aquesta darrera equació té la particularitat de que no utilitza la velocitat, i en alguns casos podem necessitar-la, per exemple si volem calcular l'energia cinètica. En aquest cas podem calcular-la a part amb una variació de la fórmula.[1]

Mètode de Störmer-Verlet

Utilitzem la funció principal per calcular la velocitat v=ΔxΔt amb un error de 𝒪(Δt2). De manera similar podem calcular la velocitat pròxima amb un error de 𝒪(Δt).[4]

v(t)=x(t+Δt)x(tΔt)2Δt+𝒪(Δt2)

v(t+Δt)=x(t+Δt)x(t)Δt+𝒪(Δt)

Tot i això, si necessitem la velocitat per calcular Δt no podem fer servir aquesta aproximació, en aquest cas ens cal utilitzar l'algorisme de velocitat de Verlet.

Algorisme de velocitat de Verlet

S'utilitza l'equació de moviment per resoldre la x, v i a posteriors directament.[5]

x(t+Δt)=x(t)+v(t)Δt+12a(t)Δt2a(t+Δt)=f(x(t+Δt))v(t+Δt)=v(t)+12(a(t)+a(t+Δt))Δt

Tot i que aquest mètode s'utilitza més que el mètode simple de Verlet, té un error molt alt, concretament 𝒪(Δt2). Per aquest motiu, si es vol crear una simulació on molts cossos depenen els uns dels altres cal utilitzar altres mètodes que redueixin la complexitat del sistema, per exemple la simulació de Barnes–Hut.

Referències

Plantilla:Referències