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
cnsidero
nodi equispaziati, e nel passo successivo
ne considero
. Utilizzo 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[modifica | modifica wikitesto]
Per stimare
, uso 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

Posso 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[modifica | modifica wikitesto]
Questa strategia è utile quando la funzione ha delle singolarità.
Considero un sottointervallo qualsiasi
dell'intervallo su cui si vuole integrare, e si pone

Pongo

. Per il metodo di Simpson

e per l'errore si ha
![{\displaystyle I(f(\alpha ,\beta ))-s(f(\alpha ,\beta ))=-H^{5}/90f^{(4)}(\xi ),\xi \in [\alpha ,\beta ],\quad {\hbox{formula 1}}}](//restbase.wikitolearn.org/it.wikitolearn.org/v1/media/math/render/svg/96c5c3cb5a3e4132fb9e584369f40b64d22d4444)
Considero Simson su 2 sottointervalli, e definisco

![{\displaystyle I(f(\alpha ,\beta ))-s_{2}(f(\alpha ,\beta ))=-{\frac {H^{5}}{90}}*[f^{(4)}(\xi )+f^{(4)}(\eta )],\quad \xi \in [\alpha ,\alpha +\beta /2],\eta \in [\alpha +\beta /2,\beta ]}](//restbase.wikitolearn.org/it.wikitolearn.org/v1/media/math/render/svg/ccf3b135e75d895192ad40a5c52ec811b6a041ab)
Se assumo che le due derivate quarte siano circa uguali, si può scrivere

e siccome

si ha


e ho un fattore

di riduzione dell'errore.
Sottraggo membro a membro le formule di errore 1 e 2.

![{\displaystyle H_{0}^{5}/90f^{(4)}(\xi )=[s(f(\alpha ,\beta ))-s_{2}(f(\alpha ,\beta ))]*16/15}](//restbase.wikitolearn.org/it.wikitolearn.org/v1/media/math/render/svg/dfc588606f460aeb7d447e60ce2517cabfa74079)
e sostituendo nella formula 2:

L'errore si stima come

Questa è una stima a posteriori dell'errore applicando Simpson quando lo applico al generico intervallo

.
Nella pratica, si considera il seguente test

dove chiamo

la quantità al numeratore.
Per ottenere la stima d'errore sull'intero intervallo
![[a,b]](//restbase.wikitolearn.org/it.wikitolearn.org/v1/media/math/render/svg/9c4b788fc5c637e26ee98b45f89a5c08c85f7935)
, ci si arresta quando

Infatti, se questo avviene, per l'errore totale si ha:


perché la somma delle lunghezze degli intervallini è la lunghezza di

.
Chiamiamo
l'intervallo di integrazione attivo in cui si deve calcolare l'integrale. Chiamo
l'intervallo di integrazione già esaminato, in cui il test

è verificato.
Chiamo

l'intervallo di integrazione non ancora esaminato.
- Fisso i tre intervalli:

![{\displaystyle A=[a,b]}](//restbase.wikitolearn.org/it.wikitolearn.org/v1/media/math/render/svg/6edb111a0369489b1346e0c8d2ea1f44a0fe5c62)

- Al generico istante dell'algoritmo chiamo


Suppongo di aver calcolato
. Se il test d'arresto è verificato, aggiungo a
il nuovo pezzo di integrale, altrimenti divido
in due parti.












- Sul calcolatore si controlla anche che
non diventi eccessivamente piccolo.
La function quad è il metodo utilizzato da Matlab per calcolare gli integrali ed è ricorsiva:
- Considero il punto medio di
, pongo
, e considero 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
.
- Pongo
. Divido
esattamente a metà, considerandone il punto medio
.Pongo 
,
.
- Per poter applicare il test d'arresto, calcolo
![{\displaystyle {\bar {q}}(s_{1})=h/6[f({\bar {a}})+4f(c)+f({\bar {b}})]}](//restbase.wikitolearn.org/it.wikitolearn.org/v1/media/math/render/svg/1ac8487e34420e5a859cebbeb2219288fd7b583e)
e raddoppiando il numero dei nodi:![{\displaystyle {\bar {q}}(s_{2})=H/12[f({\bar {a}})+4f(d)+2f(c)+4f(e)+f({\bar {b}})]}](//restbase.wikitolearn.org/it.wikitolearn.org/v1/media/math/render/svg/680ad68eab2973f1f3a0191fafcb44d0fff696e3)
e pongo 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.
Ho 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.