Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Francesco Giannino » 6.Introduzione alle equazioni differenziali ordinarie (ode)


Obiettivo della lezione:

Introduzione alle equazioni differenziali, problema di Cauchy, metodo di Eulero, metodi Runge-Kutta.

Problema di Cauchy

I sistemi dinamici possono essere rappresentati matematicamente dall’equazioni differenziali ordinarie (ODE).

Si chiama problema di Cauchy il problema delle ricerca di una funzione y continua e derivabile nell’intervallo [a,b] a valori in R tale che:

y’=f(t,y(t)) a<=t<=b

y(a)=ya

Con il linguaggio simbolico dei sistemi dinamici, il compartimento è la variabile di stato y(t), ed i flussi entranti/uscenti sono la parte positiva/negativa dell’equazione differenziale y’.

Simile – equazioni differenziali


Introduzione metodi numerici

L’esigenza di avere dei metodi numerici per la risoluzione delle ODE è in classicamente giustificata dal fatto che solo una piccola parte dei modelli matematici possono essere risolti attraverso l’analisi matematica classica, ma non è l’unica ragione infatti è importante sottolineare che spesso anche la valutazione di una soluzione analitica richiede una approssimazione numerica e quindi affetta da errore, e che proprio questa valutazione può avere un elevato costo computazionale. Un ultima “ragione” che vogliamo sottolineare è che spesso si desidera un avere un sistema (software) in grado di trovare la soluzione per una batteria di problemi spesso molto simili tra loro.

Introduzione metodi numerici

I metodi numerici sono basati su una semplice idea. Si discretezza l’intervallo [a,b] considerando un numero finito di punti (chiamati nodi)

a=t0<t1<t2<…<tn-1<tn=b

e si calcola in ti una approssimazione yi di y(ti)

In altri termini in corrispondenza dei nodi ti, un particolare metodo genera una sequenza di valori yi che definiscono la soluzione discreta e rappresentano le approssimazioni dei valori y(ti) della soluzione continua. E’ importante notare che in prima approssimazione, per semplicita’ possiamo supporre che i nodi ti sono equispaziati cioe’

ti+1-ti=h=(b-a)/n con i=0,1,…,n

Tipi di metodi numerici

I metodi numerici per la soluzione delle equazioni differenziali si possono dividere in due diversi tipi: metodi one-step e metodi multi-step.

Nei metodi one-step il valore yi viene calcolato utilizzando unicamente l’approssimazione precedente yi-1; nei metodi multi-step invece il valore yi viene calcolato utilizzando piu’ approssimazioni precedenti.

Inoltre i metodi possono essere di carattere esplicito o implicito. Si dice che il metodo è esplicito se il calcolo di yi non è funzione di yi, altrimenti si dice implicito.

Il metodo di Eulero

Il metodo di Eulero è il piu semplice metodo one-step esplicito per risolvere il problema di Cauchy

y’=f(x,y)

y(x0)=y0

Sia [a,b], con x0=a , l’intervallo in cui si vuole approssimare la soluzione del problema di Cauchy; dividiamo l’intervallo in n sottointervalli uguali con i punti equidistanti

xk=a+kh k=0,1,…,n

Indichiamo con y(xk) il valore esatto della soluzione nel punto xk e con yk il valore approssimato. Supponiamo che le funzioni y(x), y’(x) e y”(x) siano continue e usiamo la formula di Taylor per sviluppare y(x) nell’intorno del punto x0.

y(x)=y(x0)+ y’(x0)(x-x0)+(x-x0)^2/2 y”(c)

con c opportuno punto compreso fra x0 e x.

Sostituendo y’(x0)=f(x0,y(x0)) e h=x1-x0 nello sviluppo di Taylor si ha:

y(x)=y(x0)+ hf(x0,y(x0))+h^2/2 y”(c)

Se il passo h è sufficientemente piccolo si può trascurare il termine contenente la derivata seconda e si ottiene la formula di Eulero:

y1=y0+ hf(x0,y(x0))

Il metodo di Eulero

Il procedimento può essere ripetuto, generando una successione di valori yk , k = 0,1,…,n, che approssimano la soluzione nei punti xk; il generico passo del metodo di Eulero è dato dalla seguente formula alle differenze finite.

Diamo ora una interpretazione geometrica della formula di Eulero.

La retta tangente in xk al grafico di y=y(x) ha coefficiente angolare:

y’(xk)=f(xk,y(xk))

Il metodo consiste nell’assumere come approssimazione di y(xk+1) il valore assunto in xk+1 dalla retta tangente alla curva y =y(x) nel punto (xk, yk).

Formula di Eulero

yk+1 =yk +hf (xk , yk) k =0,1,….,n -1

In figura una rappresentazione grafica del metodo di Eulero

In figura una rappresentazione grafica del metodo di Eulero


Algoritmo di Eulero

L’algoritmo del metodo di Eulero può essere scritto come segue:

.
h:=(T-t0)/n
y(0):=y0
for i=1,n do
t:=t0+I*h
y(i):=y(i-1)+h*f(t,y(i-1))
endfor
.

Errori del metodo di Eulero

Come abbiamo visto, il metodo di Eulero non fornisce un’approssimazione accurata della soluzione e l’errore cresce allontanandosi dal punto x0 in cui è assegnata la condizione iniziale. In generale, tutti i metodi numerici per la risoluzione di equazioni differenziali generano due tipi diversi di errore:

  1. errori di troncamento o di discretizzazione, insiti nei metodi usati per approssimare i valori della soluzione y;
  2. errori di arrotondamento, dovuti al numero limitato di cifre significative che possono essere usate da un computer.

Errori di troncamento del metodo di Eulero

Gli errori di troncamento sono di due tipi diversi: il primo è detto errore locale di troncamento, il secondo è detto errore globale di troncamento.

L’errore locale è l’errore commesso nel singolo passo del metodo da xk a xk+1, e non tiene conto degli errori introdotti nei passi precedenti (come se il valore trovato al passo precedente fosse esatto). Quindi, l’errore locale di troncamento nel punto xk+1 è definito da:

EL =y(xk+1)-yk –hF(xk, yk,h)

L’errore globale è l’errore su yk quando tutti i precedenti valori yk -1, yk -2 ,… sono determinati anch’essi col metodo numerico, ossia l’errore globale tiene conto della propagazione degli errori. Questo errore è molto difficilmente valutabile in quanto y(xk) non è noto; poiché però l’errore globale dipende da h, si può ragionevolmente pensare che scegliendo un passo h sufficientemente piccolo l’errore diminuisca.

L’errore globale di troncamento nel punto xk è, quindi, definito da:

EG =y(xk) -yk

ed è la differenza fra il valore analitico della soluzione in xk e il valore approssimato ottenuto con il metodo numerico. Inoltre, se l’errore globale EG=O(hp), il metodo si dice di ordine p.

I metodi Runge-Kutta

Abbiamo visto che il metodo di Eulero è del 1° ordine; è un metodo convergente, ma non molto usato perche bisogna scegliere un passo h molto piccolo per avere un errore globale accettabile. Infatti se si dimezza il passo h, l’errore globale viene ridotto a metà. Scegliendo però un passo molto piccolo, l’errore di arrotondamento dovuto alla precisione finita del calcolo cresce e può prevalere sull’errore globale di troncamento. In tal caso l’errore complessivo del metodo, a cui contribuiscono sia l’errore globale di troncamento che l’errore di arrotondamento, cresce. C’è quindi la necessità di introdurre dei metodi con maggiore accuratezza: i metodi Runge-Kutta.

Questi metodi si ottengono dalla formula di Taylor ma non fermandosi semplicemente alla derivata prima della funzione f(t,y) ma fino alla derivata di ordine 3 o 4

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion