Re: Problema con una simulazione

From: Giorgio Pastore <pastgio_at_univ.trieste.it>
Date: Tue, 19 Apr 2005 12:24:21 +0200

> v(t+dt)=v(t)-(k/m)*x(t)*dt
>
> x(t+dt)=x(t)+v(t)*dt


prova ad aggiungere il termine di forza anche nell' equazione per x
(algoritmo di Eulero):

a(t) = -(k/m)*x(t)
x(t+dt)=x(t)+v(t)*dt+0.5*a(t)*dt**2

Ancora meglio e'di riorganizzare il calcolo secondo il seguente
algoritmo (alg. di Verlet con le velocita', valido solo per forze non
dipendenti dalla velocita'):


x(t+dt)=x(t)+v(t)*dt+0.5*a(t)*dt**2
v(t+dt)=v(t)+0.5*(a(t)+a(t+dt))*dt


che puo' essere implementato come:

dati x = x(0) e v=v(0)
calcola a = a(0) = -k/m * x(0)
per n volte ripeti:
     x = x + v*dt + 0.5*a*dt**2
     v = v + 0.5*a*dt ! modifica parziale della v.
     a = -(k/m)*x
     v = v + 0.5*a*dt ! questa e'la velocita' all'istante consiterato
        ! qui puoi far scrivere x e v, nonche' calcolare energia
cinetica e potenziale per verificare quanto bene si conserva l' energia
meccanica ad ogni step
ripeti

Giorgio
Received on Tue Apr 19 2005 - 12:24:21 CEST

This archive was generated by hypermail 2.3.0 : Thu Nov 21 2024 - 05:10:21 CET