Integrazione Numerica

Introduzione

Molti problemi scientifici vengono modellizzati attraverso l'uso di equazioni differenziali, talvolta tali equazioni non hanno una soluzione analitica e per conoscerne il loro andamento è necessario integrarle numericamente.

Gli algoritmi

Gli algoritmi di integrazione qui presentati non saranno trattati approfonditamente a livello analitico (vedi il libro Programmazione scientifica) ma saranno analizzati gli aspetti più interessanti a livello di implementazione del codice. Gli algoritmi presentati sono:

  • Algoritmo di Eulero
  • Algoritmo di Eulero-Cromer
  • Algoritmo del punto centrale

Ciascuno di essi presenta pregi e difetti, c'è da dire che nessuno dei tre raggiunge un ottimo livello di accuratezza, quale ad esempio quello dell'algoritmo di Runge-Kutta. In particolare, fra i tre il più stabile per una forza oscillante è quello di Eulero-Cromer, seppure quello di Eulero sembra convergere più rapidamente alla soluzione, non dà valori corretti dell'energia.

Il problema

Il problema da risolvere è quello newtoniano per cui l'equazione del moto è descritta da:

{x}over{..}(t)=F(t)

Nel nostro caso ci occuperemo di risolvere il problema di un oscillatore armonico, ovvero date le condizioni iniziali:

  • Posizione
  • Velocità
  • Pulsazione
  • Passo di integrazione Delta t
  • Intervallo totale di integrazione t_{tot}

L'equazione: {t_{tot}}/{Delta t}=n fornisce il numero di passi dell'integrazione Ponendo il tempo iniziale t_{0}=0, si ha che t_{n}=t_{n-1}+Delta t. Vedremo come l'uso di differenti algoritmi influenzi la correttezza del risultato.

Autore

Luca Cipriani

 
codice/integrazione_numerica.txt · Ultima modifica: 07/11/2008 12:11 da luca_cipriani
 
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki