Calcolo numerico/Algoritmi per la risoluzione
Metodi a un passo
Dato il problema
supponiamo di volerlo risolvere in .
Creiamo una successione di valori dove approssima e , e viene chiamato passo di discretizzazione.
Per calcolare conoscendo consideriamo il rapporto incrementale
che deve essere approssimato. Per l'approssimazione si utilizza la derivata prima, che in questo caso è un dato del problema. Quindi si pone
ed esplicitando :
Metodo di Eulero esplicito
Otteniamo quindi il seguente metodo detto metodo di Eulero esplicito:
con , e approssimazione della soluzione esatta all'istante .
Questo metodo è detto esplicito perché la quantità da calcolare, , non compare nel membro di destra.
Sappiamo che
e sostituendo alla funzione il polinomio interpolante di grado 0 in , cioè la retta otteniamo il metodo di Eulero esplicito:
Generalizzazione del metodo
Consideriamo la generalizzazione del metodo
e lo confronto con la corrispondente espressione nel continuo (soluzione esatta):
All'istante definisco il residuo . Ci si chiede di quanto la soluzione esatta non soddisfa lo schema numerico considerato.
è funzione del passo di discretizzazione, e si può scrivere
dove è detto errore di troncamento locale. è la differenza tra la soluzione e la soluzione che si ottiene considerando come il valore esatto .
Più precisamente
Per dire che l'errore commesso tende a 0, non basta richiedere che , altrimenti si elimina la dipendenza del metodo da .
Consistenza
La condizione di consistenza è la minima condizione che dev'essere soddisfatta affinché il metodo funzioni.
Considerando il metodo di Eulero esplicito:
e sviluppando con Taylor e tenendo conto che :
e in seguito a cancellazioni:
e il metodo di Eulero esplicito è consistente di ordine .
Si ricava anche
Convergenza nell'intervallo
Per , l'insieme di valori tende a ricoprire l'intervallo in questione.
Chiediamo che converga alla soluzione esatta per ogni .
Il problema è convergente di ordine se
Disegniamo un grafico con il tempo in ascissa e la condizione in ordinata. Tenendo conto che , segue che al diminuire del passo , sono necessari più passi per raggiungere un fissato istante di tempo . Non si può scegliere come condizione di convergenza
perché questo tiene conto solo della condizione iniziale e non dà importanza al fatto che dopo un fissato numero di passi, a differenti scelte di corrispondono istanti diversi. Bisogna quindi fissare , e fare contemporaneamente
Abbiamo un metodo convergente se per ogni problema ai valori iniziali
per ogni successione generata a partire da .
Analisi di convergenza
Dato il metodo
Consideriamo l'errore all'istante , e definiamo
dove è il valore che otteniamo se all'istante prendiamo come dato il valore esatto , cioè
e rappresenta l'errore locale, di consistenza.
Possiamo sostituire i primi due addendi con l'errore di troncamento moltiplicato per , quindi
e sostituendo l'espressione di :
e siccome ,
Passando ai moduli
Poniamo e teniamo conto della lipschitzianità di , allora otteniamo
e avendo trovato la relazione ricorsiva si prosegue fino al passo 0:
e siccome in conclusione si ha
Siccome in generale , si ha
Siccome si ha
Se , nel caso di Eulero esplicito si ha per la formula 1
quindi dove .
Allora segue che
per ogni .
La quantità tende a 0 per , con lo stesso ordine 1 dell'errore di troncamento locale.
Metodo di Eulero implicito
Il metodo di Eulero implicito è dato da
Consideriamo l'errore di troncamento
e tenendo conto della definizione del problema di Cauchy:
e abbiamo un ordine di consistenza .
Metodo dei trapezi
A destra ci sono due valutazioni di e l'unica incognita è .
Esercizio 7.1
Verificare, usando Taylor, che l'ordine di consistenza di questo metodo è 2.
Dim. L'errore di troncamento si definisce come
Considerando il metodo di Eulero implicito:
si ha un'equazione non lineare e può essere trattata in due modi.
1. Definiamo il metodo di punto fisso:
Affinché il metodo converga si richiede che . In questo caso, con si ha:
quindi la costante di Lipschitz influenza la scelta del passo di discretizzazione. Se la costante di Lipschitz è grande, bisogna scegliere un passo di discretizzazione piccolo per poter avere convergenza.
2. Applichiamo il metodo di Newton. Poniamo e cerchiamo lo zero di
con il metodo
con vettore d'innesco .
Come test d'arresto si ha il test dell'incremento.