Re: Problema con una simulazione

From: Daniel <daniele.fua_at_unimib.it>
Date: Tue, 19 Apr 2005 09:32:47 GMT

NoNICK wrote:
> Salve,
> ho voluto provare a simulare un oscillatore ideale a molla con un peso
> attaccato senza fare ricorso all'analisi matematica ma semplicemente
> iterando le seguente funzione:
>
> v(t+dt)=v(t)-(k/m)*x(t)*dt
>
> x(t+dt)=x(t)+v(t)*dt
>
>
> Impostando valori di dt sempre piu piccoli(partendo da dt=0.3) ottengo
> ovviamente simulazioni sempre piu precise e grafici sempre piu
> dettagliati(uso excel per creare il grafico) ma per quanto sia piccolo dt
> ho andamento crescente dell'ampiezza dell'onda cosa che ovviamente non e'
> vera.
>
> Dove sbaglio? Devo forse utilizzare un altro metodo? Se si', qual'e?
>
> Grazie!
>

Che i sistemi di integrazione numerica possano essere instabili e' una
cosa nota da quando sono stati inventati.
Nel caso tuo si puo' ottenere un miglioramento immediato approssimando
le derivate in modo diverso.

Tu hai approssimato la derivata della funzione generica y(t) in questo modo:

y'(t)= [y(t+dt)-y(t)]/dt

che si chiama "forward-difference formula".
Ti propongo di rifare i conti approssimando la derivata con

y'(t)= [y(t+dt)-y(t-dt)]/[2*dt]

che invece si chiama "central-difference formula".

Come vedrai questo impone di ipotizzare qualche numero aggiuntivo
all'inizio e lo devi fare con una certa saggezza. Mi sembra che tu
possa cavartela da solo e quindi ti lascio divertire.

Daniele Fua'
Uni.Mi.B.
Received on Tue Apr 19 2005 - 11:32:47 CEST

This archive was generated by hypermail 2.3.0 : Mon Feb 10 2025 - 04:23:39 CET