Integrazione di funzioni
Il problema della quadratura Data una funzione f(x) definita in un intervallo [a,b], si vuole valutare l’integrale: a partire dai valori della funzione integranda f(x) in un insieme di punti compresi nell’intervallo di integrazione In tutti i metodi di quadratura si effettua una somma di valori della funzione integranda Un buon metodo di quadratura deve: valutare l’integrale con la maggior precisione possibile sfruttare il minor numero possibile di valori della funzione integranda
Notazioni Supponiamo di avere una serie di N ascisse equispaziate x1, x2, ... , xN : x1=a; xN=b h = distanza tra ciascuna coppia di ascisse (b-a) = (N-1)h xk=xk+(k-1)h con k=1,...,N poniamo f(xi)=fi Formule chiuse: utilizzano nel calcolo i valori di f1 e fN Formule aperte: non utilizzano nel calcolo uno o entrambi i valori di f1 e fN possono essere utili se il valore di f in uno degli estremi di integrazione è infinito (purché la singolarità sia integrabile) x1=a x2 xN=b x y xi fi=f(xi) h
Regola del trapezio Consiste nell’approssimare l’integrale nell’intervallo tra xj e xj+1 nel modo seguente: Se f(x)≥0, tale valore rappresenta l’area del trapezio di basi fj e fj+1 e altezza h in sostanza, nell’intervallo tra xj e xj+1 la f(x) viene approssimata da un polinomio di primo grado Il valore dell’integrale calcolato con la regola del trapezio differisce dal valore vero per un termine che è dell’ordine di h3 per la derivata seconda della funzione calcolata in un punto (non noto) dell’intervallo [xj,xj+1] La formula del trapezio è esatta per polinomi fino al primo grado
Regola del trapezio estesa Utilizziamo la regola del trapezio N-1 volte negli intervalli [x1,x2], [x2,x3], ..., [xN-1,xN]: nel calcolo precedente si è assunto N-1≈N, il che è vero per N grande La precisione migliora con il quadrato del numero di punti utilizzati per il calcolo raddoppiando i punti l’errore diminuisce di un fattore 4
Applicazione della regola del trapezio 1 2 3 4 ... iterazioni Si procede per approssimazioni successive: nella prima iterazione si utilizzano i valori di f(x) negli estremi di integrazione nella n-esima iterazione vengono aggiunti 2n-2 valori di f(x) in corrispondenza dei punti medi degli intervalli elementari definiti dall’iterazione precedente alla n-esima iterazione l’intervallo di integrazione risulta diviso in 2n-1 intervalli elementari
Implementazione dell’algoritmo (1) Poniamo b-a=Δ e indichiamo con In l’integrale calcolato nella n-esima iterazione. Alla prima iterazione si ha: Alla seconda iterazione avremo: Alla terza iterazione si avrà:
Implementazione dell’algoritmo (2) Generalizzando il risultato trovato in precedenza possiamo concludere che: Poiché nel passare da un’iterazione alla successiva il numero di punti utilizzati per il calcolo raddoppia, la precisione del calcolo migliora di un fattore 4. In generale, la procedura iterativa viene fermata quando: dove ε è la precisione richiesta per il calcolo
Esempi (1) Supponiamo di voler calcolare l’integrale con una precisione ε=10-6. Si ha: Iterazione (n) In 1 0.75 2 0.775 3 0.782794 4 0.784747 5 0.785235 6 0.785357 7 0.785388 8 0.785396 9 0.785398 10
Esempi (2) Supponiamo di voler calcolare l’integrale con una precisione ε=10-6. Si ha: Iterazione (n) In 1 0.75 2 0.708333 3 0.697024 4 0.694122 5 0.693391 6 0.693208 7 0.693162 8 0.693151 9 0.693148 10 0.693147 11
Regola di Simpson (1) Consideriamo l’intervallo tra xj-1 e xj+1 Usiamo la seguente notazione: xj-1=xj-h; f(xj-1)=fj-1 f(xj)=fj xj+1=xj+h; f(xj+1)=fj+1 Nell’intervallo in esame approssimiamo la f(x) con una parabola passante per i tre punti (xj-1,fj-1), (xj,fj), (xj+1,fj+1): scrivendo l’equazione della parabola in questa forma è automaticamente rispettata la condizione f(xj)=fj I coefficienti a e b si determinano imponendo le condizioni; f(xj-h)=fj-1 f(xj+h)=fj+1
Regola di Simpson (2) xj xj+1 xj-1 fj fj+1 fj-1 h x y L’integrale tra xj-1 e xj+1 della f(x) è dato da:
Regola di Simpson (3) Calcoliamo quindi il coefficiente b: Sommando membro a membro le due equazioni si ha: Sostituendo il valore di b nella formula dell’integrale: Il valore dell’integrale calcolato con la formula di Simpson differisce dal valore vero per un termine che è dell’ordine di h5 per la derivata quarta della funzione calcolata in un punto (non noto) dell’intervallo [xj,xj+1] La formula di Simpson è esatta per polinomi fino al terzo grado
Formula di Simpson estesa x a=x1 x2 x3 x4 x5 xN-2 xN-1 xN=b ... 2h Dividiamo l’intervallo [a,b] negli (N-1)/2 intervalli: [x1,x3], [x3,x5], ..., [xN-2,xN] a=x1; b=xN h=(b-a)/(N-1) Si ha:
Applicazione della regola di Simpson L’algoritmo è molto simile a quello usato per la regola del trapezio Anche in questo caso si procede per approssimazioni successive: nella n-esima iterazione vengono aggiunti 2n-2 valori di f(x) in corrispondenza dei punti medi degli intervalli elementari definiti dall’iterazione precedente alla n-esima iterazione l’intervallo di integrazione risulta diviso in 2n-1 intervalli elementari nella n-esima iterazione si sfrutta il risultato ottenuto con la regola del trapezio nell’iterazione precedente 1 2 3 4 ... iterazioni
Implementazione dell’algoritmo (1) Poniamo ancora b-a=Δ Per la n-esima iterazione poniamo: Sn = integrale calcolato con la regola di Simpson Tn = integrale calcolato con la regola del trapezio Alla prima iterazione si ha: notare che S1=0 perché nella prima iterazione si considerano solo due punti, mentre per applicare la regola di Simpson ne occorrono tre
Implementazione dell’algoritmo (2) Alla seconda iterazione si ha: Alla terza iterazione si ha:
Implementazione dell’algoritmo (3) Alla n-esima iterazione si avrà: Poiché nel passare da un’iterazione alla successiva il numero di punti utilizzati per il calcolo raddoppia, la precisione del calcolo migliora di un fattore 16. Come nel caso precedente, la procedura iterativa viene fermata quando: dove ε è la precisione richiesta per il calcolo
Esempi (1) Supponiamo di voler calcolare l’integrale con una precisione ε=10-6. Si ha: Iterazione (n) Tn Sn 1 0.75 2 0.775 0.783333 3 0.782794 0.785392 4 0.784747 0.785398 5 0.785235
Esempi (2) Supponiamo di voler calcolare l’integrale con una precisione ε=10-6. Si ha: Iterazione (n) Tn Sn 1 0.75 2 0.708333 0.694444 3 0.697024 0.693254 4 0.694122 0.693155 5 0.693391 0.693148 6 0.693208 0.693147
Calcolo di integrali impropri Casi di integrali impropri estesi ad intervalli finiti: la funzione integranda ha limite finito in uno degli estremi di integrazione, ma non può essere calcolata (esempio sinx/x per x0) la funzione ha limite superiore + e/o limite inferiore - la funzione ha una singolarità integrabile in uno dei due estremi di integrazione (esempio x-1/2 per x 0) la funzione ha una singolarità integrabile in un punto noto dell’intervallo di integrazione (ci si può ricondurre al caso precedente) la funzione ha una singolarità integrabile in un punto non noto dell’intervallo di integrazione (questo caso non verrà studiato) In tutti i casi in esame, per poter effettuare il calcolo, è necessario che l’integrale esista e sia finito se l’integrale non esiste oppure è infinito, qualunque procedura di calcolo sarà priva di senso e darà risultati errati! Studieremo il calcolo di integrali impropri con una singolarità in corrispondenza di uno degli estremi di integrazione (o di entrambi) in tal caso non è possibile usare una formula chiusa, perché implicherebbe il calcolo del valore della funzione integranda in corrispondenza della singolarità
Regola del punto medio La regola del punto medio consiste nell’approssimare l’integrale tra xj e xj+1 nel modo seguente: ove fj+1/2 è il valore della funzione nel punto medio dell’intervallo [xj,xj+1] se f(x)>0, l’integrale viene approssimato con l’area del rettangolo di base h=xj+1-xj e altezza fj+1/2 x y xj xj+1 xj+1/2 fj fj+1/2 fj+1
Regola estesa del punto medio x a=x1 x3/2 x2 x5/2 x3 xN-1 xN-1/2 xN=b ... h Dividiamo l’intervallo [a,b] negli N-1 intervalli: [x1,x2], [x2,x3], ... , [xN-1,xN] a=x1; b=xN h=(b-a)/(N-1) Si ha:
Applicazione della regola del punto medio (1) L’algoritmo è simile a quelli visti per la regola del trapezio e per la regola di Simpson In questo caso, però, per poter usare il risultato ottenuto dopo ogni iterazione come punto di partenza per l’iterazione successiva, in ciascuna iterazione occorrerà suddividere gli intervalli di partenza in 3 parti invece che in 2 questa complicazione nasce dal fatto che si utilizzano i valori della funzione nei punti medi di ciascun intervallo invece che negli estremi
Applicazione della regola del punto medio (2) 1 2 3 ... iterazioni nella n-esima iterazione vengono aggiunti 23n-2 valori di f(x) in corrispondenza dei punti medi dei nuovi intervalli alla n-esima iterazione l’intervallo di integrazione risulta diviso in 3n-1 intervalli elementari in ciascuna iterazione si sfrutta il risultato ottenuto nell’iterazione precedente
Implementazione dell’algoritmo (1) L’integrale calcolato nella n-esima iterazione è: dove Δ=b-a Occorre cercare una formula ricorsiva che permetta di legare In+1 a In Applicando la definizione precedente si ha:
Implementazione dell’algoritmo (2) La sommatoria con l’indice k che varia da 1 a 3n può essere spezzata in 3 sommatorie distinte: nella prima raggruppiamo i termini con k=1,4,7,...,3n-2 in tali termini k=3k1-2 con k1=1,2,...,3n-1 nella seconda raggruppiamo i termini con k=2,5,8,...,3n-1 in tali termini k=3k2-1 con k2=1,2,...,3n-1 nella terza raggruppiamo i termini con k=3,6,9,...,3n in tali termini k=3k3 con k3=1,2,...,3n-1
Implementazione dell’algoritmo (3) Nel passare da un’iterazione alla successiva il numero di punti utilizzati per il calcolo viene triplicato, e dunque la precisione del calcolo migliora di un fattore 9. Come negli altri casi, la procedura iterativa viene fermata quando: dove ε è la precisione richiesta per il calcolo L’algoritmo sviluppato per il calcolo di integrali impropri può essere usato anche per il calcolo di integrali “normali” Il tempo di calcolo richiesto per un integrale improprio è in genere maggiore rispetto a quello richiesto per un integrale “normale” per via della singolarità
Esempio Supponiamo di voler calcolare l’integrale improprio con una precisione ε=10-6. Si ha: Iterazione (n) In 1 -0.693147 2 -0.896696 3 -0.965451 4 -0.988471 5 -0.996156 6 -0.998718 7 -0.999573 8 -0.999858 9 -0.999953 10 -0.999984 11 -0.999995 12 -0.999998 13 -0.999999 14 -1.000000