Calcolo numerico/Integrazione automatica
Descrizione del problema
Problema: approssimare con una tolleranza assoluta o relativa assegnata.
Viene generata una sequenza di valori con , e con stima dell'errore commesso. Ci si arresta al passo tale che
con stima ragionevole dell'integrale.
Si possono scegliere due strategie.
- Strategia non adattiva: nella procedura non adattiva viene calcolato con una legge di distribuzione dei nodi fissata. Al passo consideriamo nodi equispaziati, e nel passo successivo ne consideriamo . Utilizziamo le formule di Newton-Coves composite.
- Strategia adattiva: la distribuzione dei nodi non è fissata a priori, gli intervalli vengono partizionati a seconda delle esigenze e integrati separatamente.
Stima dell'errore a priori nella strategia non adattiva
Per stimare , usiamo un criterio basato sull'estrapolazione di Richardson.
In base alle stime di errore a priori per le formule composite e pari, si ha
Ad esempio, nel caso di Simpson e si ha:
Riscrivo la formula dell'errore con sottointervalli:
Sottraggo membro a membro le formule 1 e 2, e tenendo conto che
segue che
cioè
e sostituendo l'espressione trovata per nella formula 2
Possiamo stimare l'errore commesso con la formula di Simpson su sottointervalli sulla base del calcolo di due formule di quadratura approssimata. Si stima che l'errore assoluto, quando si passa a sottointervalli, si riduca di 15.
Stima dell'errore a posteriori nella strategia adattiva
Questa strategia è utile quando la funzione ha delle singolarità. Consideriamo un sottointervallo qualsiasi dell'intervallo su cui si vuole integrare, e si pone
Poniamo . Per il metodo di Simpson
e per l'errore si ha
Consideriamo Simpson su 2 sottointervalli, e definiamo
Se assumiamo che le due derivate quarte siano circa uguali, si può scrivere
e siccome si ha
e abbiamo un fattore 16 di riduzione dell'errore.
Sottraiamo membro a membro le formule di errore 1 e 2.
e sostituendo nella formula 2:
L'errore si stima come
Questa è una stima a posteriori dell'errore applicando Simpson quando lo applichiamo al generico intervallo .
Test d'arresto
Nella pratica, si considera il seguente test
dove chiamiamo la quantità al numeratore.
Per ottenere la stima d'errore sull'intero intervallo , ci si arresta quando
Infatti, se questo avviene, per l'errore totale si ha:
perché la somma delle lunghezze degli intervallini è la lunghezza di .
Algoritmo dell'integrazione automatica adattiva
Chiamiamo l'intervallo di integrazione attivo in cui si deve calcolare l'integrale. Chiamiamo l'intervallo di integrazione già esaminato, in cui il test
è verificato.
Chiamiamo l'intervallo di integrazione non ancora esaminato.
Fissiamo i tre intervalli:
Al generico istante dell'algoritmo chiamiamo
Supponiamo di aver calcolato . Se il test d'arresto è verificato, aggiungiamo a il nuovo pezzo di integrale, altrimenti dividiamo in due parti.
Sul calcolatore si controlla anche che non diventi eccessivamente piccolo.
Function quad
La function quad è il metodo utilizzato da Matlab per calcolare gli integrali ed è ricorsiva.
Consideriamo il punto medio di , poniamo , e consideriamo i sei sottointervalli ottenuti ponendo:
La distribuzione non è esattamente uniforme.
Si applica Simpson sui punti a tre a tre, e si ottiene l'approssimazione dell'integrale:
dove si ottengono applicando Simpson rispettivamente a , a e a .
Poniamo . Dividiamo esattamente a metà, considerandone il punto medio . Poniamo , .
Per poter applicare il test d'arresto, calcoliamo
e raddoppiando il numero dei nodi:
e poniamo poi (è la stima dell'errore tra il passo 0 e il passo ).
Se , il metodo si arresta, altrimenti viene spezzato in due parti.
e si applica ricorsivamente la function quad ai due sottointervalli ottenuti.
Abbiamo una chiamata ricorsiva alla funzione, l'integrale complessivo viene calcolato come somma di due integrali.
Data una funzione con una singolarità, si spezza l'integrale in quel punto e si fa la somma degli integrali separati.