|  | 
 | 
| Appunti scientifiche | 
 | 
| Visite: 2681 | Gradito: |    [ Medio appunti ] | 
| Leggi anche appunti: Estremo superiore e inferiore di un insieme numericoESTREMO SUPERIORE E INFERIORE DI UN INSIEME NUMERICO Definizione NUOVI TEOREMI per la nuova geometriaNUOVI TEOREMI per la nuova geometria Quali teoremi Bolyai e Lobacevskij riuscirono La serie armonicaLa serie armonica La serie armonica è una serie divergente e può essere |  | 
|  | 
Metodi numerici per i sistemi dinamici
Come si è visto un PLL del secondo ordine può essere descritto efficacemente tramite un sistema di equazioni differenziali non lineari del secondo ordine; le soluzioni di un sistema di questo tipo solo raramente possono essere scritte in forma esplicita, quindi nasce l'esigenza di trovare metodi alternativi per studiarne il funzionamento. Un metodo molto potente è sicuramente la simulazione del PLL per via numerica. La simulazione numerica di sistemi dinamici continui attraverso equazioni alle differenze porta a espressioni numeriche in cui le derivate vengono sostituite da metodi numerici di integrazione. Il problema principale nella simulazione numerica è la stabilità e la precisione dei risultati della simulazione, comparati con i risultati esatti.
Esistono vari metodi per la simulazione numerica e vari gradi di complessità realizzativi. Come verrà mostrato in seguito, metodi con un alto tasso di complessità danno risultati migliori in termini di stabilità e precisione, a scapito però del tempo di simulazione.
Introduzione
Prima di illustrare i metodi che verranno confrontati in questo capitolo occorre dare qualche definizione che verrà usata in seguito.
Il problema è quello di trovare un soluzione numerica del problema di Cauchy :

con

dove
 è il vettore delle
variabili di stato,
 è il vettore delle
variabili di stato,  è il vettore degli
ingressi.
 è il vettore degli
ingressi.
Un generico metodo numerico ad un passo è espresso nella forma:

Dove
 dipende dalla funzione
 dipende dalla funzione
 relativa al problema
trattato e dal metodo usato, mentre
 relativa al problema
trattato e dal metodo usato, mentre  è la risoluzione
temporale del metodo numerico e si mantiene costante per tutta la simulazione,
in modo che
 è la risoluzione
temporale del metodo numerico e si mantiene costante per tutta la simulazione,
in modo che  per ogni
per ogni  . Posto
. Posto  questa formula serve a
calcolare iterativamente i valori che assumono le variabili di stato al tempo
 questa formula serve a
calcolare iterativamente i valori che assumono le variabili di stato al tempo  . Ovviamente questa approssimazione numerica introduce un
errore ad ogni passo, da
. Ovviamente questa approssimazione numerica introduce un
errore ad ogni passo, da  a
 a  , che può essere calcolato come la differenza tra il valore
esatto
, che può essere calcolato come la differenza tra il valore
esatto  e quello teorico
 e quello teorico  che si ottiene usando
il metodo numerico con il valore esatto
 che si ottiene usando
il metodo numerico con il valore esatto  , cioè :
, cioè :
 
 
con
 ;
;
la
quantità  è chiamata errore locale di troncamento, la figura 1
spiega graficamente il significato
 è chiamata errore locale di troncamento, la figura 1
spiega graficamente il significato

Figura 1 Errore locale di troncamento
Un metodo si dice coerente se vale :

Inoltre, si può definire l'ordine del metodo come il più grande intero positivo per cui vale:
 .
.
Un'altra caratteristica importante di un metodo numerico è la convergenza che si verifica se vale la relazione :

dove  è l'errore globale di troncamento al passo n+1, cioè
l'errore che viene commesso dopo n+1 passi.
 è l'errore globale di troncamento al passo n+1, cioè
l'errore che viene commesso dopo n+1 passi.

Figura 2 Errore globale di troncamento
Metodo di Eulero
Il più semplice procedimento per approssimare un sistema dinamico continuo con uno discreto è quello di Eulero. Le soluzioni del sistema discreto così ottenuto approssimano le soluzioni del sistema continuo. La differenza tra sistema analogico e discreto, cioè l'errore di discretizzazione, è una funzione rapidamente crescente con il passare del tempo, per cui la potenza di calcolo richiesta per ottenere soluzioni accurate è notevole.
Per ottenere il metodo di Eulero si parte dallo sviluppo in serie di X(t)
in  calcolato in
 calcolato in 

calcolato in 

E lo si interrompe alla derivata prima,
quindi, ricordando che  e sostituendo
 e sostituendo  con
 con  si ottiene la formula
di Eulero
 si ottiene la formula
di Eulero 

nella quale per comodità abbiamo omesso il
vettore U(t) degli ingressi. Si nota subito che  è un infinitesimo di
ordine superiore al secondo rispetto a T,
infatti
 è un infinitesimo di
ordine superiore al secondo rispetto a T,
infatti 

e quindi Eulero è un metodo del primo ordine.
In
poche parole il metodo di Eulero consiste nell'aggiornare il valore di  calcolando la devirata
prima nel punto
  calcolando la devirata
prima nel punto  , la figura 3 illustra questo concetto.
, la figura 3 illustra questo concetto.

Figura 3.1 Metodo numerico di Eulero
Metodo di Runge-Kutta
Si
è visto che Eulero è un'applicazione dello sviluppo in serie di Taylor in  , calcolato su un passo di lunghezza T, proviamo a calcolarlo ora su due passi di lunghezza T/2:
, calcolato su un passo di lunghezza T, proviamo a calcolarlo ora su due passi di lunghezza T/2:
 

con  , per il primo passo e
, per il primo passo e 

per il passo intero; anche in questo caso risulta

combinando però
opportunamente  ,
,  possiamo eliminare
l'errore di secondo ordine, infatti
 possiamo eliminare
l'errore di secondo ordine, infatti

Se
confrontiamo l'espressione precedente con quella relativa al metodo di Eulero,
osserviamo che è necessario valutare la funzione  due volte per
intervallo di tempo anziché una, per
guadagnare un'unità sull'ordine di convergenza. Sembra quindi possibile
ricavare algoritmi di ordine superiore aumentando il numero di valutazioni
della funzione
 due volte per
intervallo di tempo anziché una, per
guadagnare un'unità sull'ordine di convergenza. Sembra quindi possibile
ricavare algoritmi di ordine superiore aumentando il numero di valutazioni
della funzione  .
.
Si
può però dimostrare che servono più di k valutazioni a tempi intermedi di  per ottenere un ordine
di convergenza uguale a k per k>4 (cfr. tabella 1) , per questo motivo
l'algoritmo di calcolo più vantaggioso e anche più usato è quello di ordine 4,
che prende il nome di Runge-Kutta classico o a 4 passi intermedi.
 per ottenere un ordine
di convergenza uguale a k per k>4 (cfr. tabella 1) , per questo motivo
l'algoritmo di calcolo più vantaggioso e anche più usato è quello di ordine 4,
che prende il nome di Runge-Kutta classico o a 4 passi intermedi.
| Ordine di coerenza | 2 3 4 5 6 7 8 9 10 | 
| Numero minimo di stati "s" | 2 3 4 6 7 9 11 12 < s < 17 13 < s < 17 | 
Tabella 1 Corrispondenza tra ordine e numero minimo di stati
La struttura generale dei metodi di Runge-Kutta è:

dove s è il numero di stati e con

I
parametri  ,
,  ,
,  sono reali e
definiscono il metodo insieme a s.
 sono reali e
definiscono il metodo insieme a s.
Per quanto detto risulta

inoltre, tenendo conto che una condizione necessaria affinché il metodo converga e

si può dedurre che la condizione di coerenza equivale a :

Per
trovare i coefficienti  ,
,  ,
,  per l'algoritmo di
Runge-Kutta di 4° ordine occorre imporre che risolva esattamente equazioni differenziali
che abbiano come soluzioni polinomi di 4° grado, il che ci assicura che il
metodo sia di ordine massimo. I coefficienti possono essere efficacemente
rappresentati attraverso le tavole di Butcher. Omettendo la dimostrazione RIFERIMENTO BIBLIOGRAFICO MANCANTE si trovano i
seguenti valori:
 per l'algoritmo di
Runge-Kutta di 4° ordine occorre imporre che risolva esattamente equazioni differenziali
che abbiano come soluzioni polinomi di 4° grado, il che ci assicura che il
metodo sia di ordine massimo. I coefficienti possono essere efficacemente
rappresentati attraverso le tavole di Butcher. Omettendo la dimostrazione RIFERIMENTO BIBLIOGRAFICO MANCANTE si trovano i
seguenti valori: 
|  |  |  |  |  | ||
|  |  |  |  |  | ||
|  |  |  |  |  | ||
|  |  |  |  |  | ||
|  |  |  |  |  | ||
| c | A | |||||
|  | 
 | |||||
Quindi possiamo riassumere il metodo di Runge-Kutta a 4 stadi come segue


Con
questo algoritmo la funzione  viene valutata 4 volte
per intervallo di tempo, una nel punto iniziale, due volte nel punto intermedio
e ancora una nel punto finale, e i quattro valori così ottenuti vengono
combinati linearmente per calcolare il nuovo valore
 viene valutata 4 volte
per intervallo di tempo, una nel punto iniziale, due volte nel punto intermedio
e ancora una nel punto finale, e i quattro valori così ottenuti vengono
combinati linearmente per calcolare il nuovo valore  , tutto questo è efficacemente illustrato in figura 3.2
, tutto questo è efficacemente illustrato in figura 3.2 

Figura Errore. Nel documento non esiste testo dello stile specificato. Metodo di Runge-Kutta del 4° ordine
E'
facile rendersi conto che il metodo di Runge-Kutta del 1° ordine coincide con il metodo di Eulero sei vengono
scelti i coefficienti in modo tale che  c=0, a=0 e b=1  . Come abbiamo detto per applicare R-K del 4°
ordine servono più valutazioni di  e, quindi, sembrerebbe
che una maggior precisione viene pagata in termini di maggior onere di calcolo.
Sebbene in assoluto questo sia giusto, non lo è se si ragiona in termini di
precisione dell'algoritmo. Prendiamo per esempio un semplicissimo caso scalare:
 e, quindi, sembrerebbe
che una maggior precisione viene pagata in termini di maggior onere di calcolo.
Sebbene in assoluto questo sia giusto, non lo è se si ragiona in termini di
precisione dell'algoritmo. Prendiamo per esempio un semplicissimo caso scalare:

che
ha come soluzione  e supponiamo di essere
interessati al valore che assume la variabile
 e supponiamo di essere
interessati al valore che assume la variabile  al tempo
 al tempo  =10s, che ha come soluzione esatta
=10s, che ha come soluzione esatta  . La tabella 2 riassume i risultati ottenuti.
. La tabella 2 riassume i risultati ottenuti.
|  | R-K T = 0.1s | Eulero T = 0.1s | Eulero T = 0.01s | Eulero T = 0.001s | 
| Soluzione | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
| Numero di valutazioni di  | 4 step per iterazione | 1 step per iterazione | 1 step per iterazione | 1 step per iterazione | 
Tabella Confronto tra R-K del 4° ordine e Eulero
Dalla tabella si desume che nonostante il numero di calcoli a parità di passo di discretizzazione T sia maggiore nel metodo di R-K, per ottenere buoni risultati con il metodo di Eulero serve una discretizzazione decisamente più fine, il che porta ad un aumento dell'onere di calcolo da parte del simulatore.
Stabilità numerica dei metodi
La
convergenza è una condizione necessaria
affinché un metodo numerico produca "buoni" risultati, infatti si riferisce
alla bontà dell'approssimazione su piccoli passi ( ), nella pratica invece è importante usare un valore del
passo di discretizzazione non troppo piccolo per evitare che la simulazione
diventi troppo lunga. Nasce quindi la necessità di capire per quali valori di T
gli errori di discretizzazione si mantengono limitati con il procedere dei
calcoli.
), nella pratica invece è importante usare un valore del
passo di discretizzazione non troppo piccolo per evitare che la simulazione
diventi troppo lunga. Nasce quindi la necessità di capire per quali valori di T
gli errori di discretizzazione si mantengono limitati con il procedere dei
calcoli.
Questa proprietà, che riguarda la sensibilità del metodo agli errori, va sotto il nome di stabilità numerica.
Per semplicità ci possiamo riferire ad un semplice problema nel piano complesso:

con
 e
 e  , la cui soluzione,
, la cui soluzione,  con c una costante che
dipende dalle condizioni iniziali. Poiché
 con c una costante che
dipende dalle condizioni iniziali. Poiché  , è naturale richiedere che la soluzione numerica abbia un
comportamento analogo a quello della soluzione continua, cioè deve valere:
, è naturale richiedere che la soluzione numerica abbia un
comportamento analogo a quello della soluzione continua, cioè deve valere: 

con
 qualsiasi, e
 qualsiasi, e  .Prendiamo in esame il metodo di Eulero :
.Prendiamo in esame il metodo di Eulero :

Affinché sia rispettata la condizione per la stabilità, deve essere verificata la disuguaglianza

quindi
 deve essere interno al
cerchio di raggio unitario con centro [-1, 0] nel piano complesso.
 deve essere interno al
cerchio di raggio unitario con centro [-1, 0] nel piano complesso.

Figura 3.2 Regione di assoluta stabilità del metodo di Eulero
Tutto
questo può essere generalizzato per un metodo di Runge-Kutta qualunque. Cioè se
applichiamo un algoritmo R-K problema  , si ottiene un'equazione della forma
, si ottiene un'equazione della forma 

dove
 è detta funzione di stabilità. Se
 è detta funzione di stabilità. Se  allora il metodo è
assolutamente stabile.
 allora il metodo è
assolutamente stabile.
Introducendo
il vettore  , si può dimostrare RIFERIMENTO
BIBLIOGRAFICO MANCANTE che la funzione di stabilità di un metodo di
Runge-Kutta è della forma:
, si può dimostrare RIFERIMENTO
BIBLIOGRAFICO MANCANTE che la funzione di stabilità di un metodo di
Runge-Kutta è della forma:
 ,
,
che nel caso di R-K del 4° ordine si specializza nella formula:


Figura 3.3 Regione di asintotica stabilità per il metodo di Runge-Kutta del 4°ordine
Fino ad adesso ci siamo riferiti ad un caso scalare e lineare, se invece siamo interessati allo studio di un sistema dinamico non lineare a più variabili possiamo ottenere ugualmente risultati importanti sull'assoluta stabilità studiando il sistema linearizzata intorno ad un punto di equilibrio.
Prendiamo il caso

Supponiamo
che  sia un punto di
equilibrio del sistema dinamico, nel senso che
 sia un punto di
equilibrio del sistema dinamico, nel senso che 

allora
in un intorno di  vale la relazione
 vale la relazione 

dove
 è la matrice Jacobiana
di
 è la matrice Jacobiana
di  calcolata nel punto di
equilibrio.
 calcolata nel punto di
equilibrio.

Prendiamo,
ora, in considerazione gli autovalori di J,
 , possiamo dire che un
metodo numerico, applicato ad un sistema dinamico non lineare, è assolutamente
stabile localmente se
, possiamo dire che un
metodo numerico, applicato ad un sistema dinamico non lineare, è assolutamente
stabile localmente se 

dove la funzione di stabilità è quella ricavata per un sistema monodimensionale lineare.
E' molto interessante notare che se siamo in
presenza di un sistema dinamico lineare, il polinomio caratteristico di J , cioè , , è nella stessa forma del denominatore della funzione di
trasferimento del sistema e che quindi i valori che assumono gli autovalori di J,
, è nella stessa forma del denominatore della funzione di
trasferimento del sistema e che quindi i valori che assumono gli autovalori di J,  , corrispondono ai poli stessi del sistema.
, corrispondono ai poli stessi del sistema. 
|  | 
| Appunti su: Metodi numerici per sistemi dinamici, appuntimania, tavole di runge e kutta, | 
| 
 | 
| Appunti Contabilita |  | 
| Tesine Statistica |  | 
| Lezioni Geografia |  |