QUADRATURA NUMERICA CALCOLO DI AREE E VOLUMI CALCOLO DELL AREA DI UNA FIGURA NEL PIANO F A Area ( F ) = Area(E) + Area( D ) + Area( C ) +Area( B ) + Area(A) A è un rettangolo, quindi Area(A) = Prodotto dei lati di A PROBLEMA: Come calcolare le aree di B,C,D ed E?
Il calcolo delle aree di B,C,D, ed E può essere ricondotto al calcolo dell area dellafigurasottesadaunacurva: Se y=f(x) è la funzione che rappresenta la curva, a tale figura R si dà il nome di RETTANGOLOIDE ed inoltre Area ( R ) = I ( f ) = f ( x ) dx b a PROBLEMA: Come calcolare l area di un RETTANGOLOIDE?
ESEMPI: Area(R) Area(U)= f(a) (b-a) Area(R) Area(V) = f(m) (b-a) FORMULA RETTANGOLARE FORMULA DEL PUNTO MEDIO ESEMPI: S Area(R) Area(T) = ( b a) [f(a)+f(b)] 2 Area(R) Area(S)= ( b a) [f(a)+ 4f(m)+f(b)] 6 FORMULA TRAPEZOIDALE FORMULA DI SIMPSON
ESEMPIO: SOMMA DI RIEMANN a=t 0 t 1 t 2 t 3 t 4 =b L approccio più naturale per il calcolo di un integrale è quello di approssimare con combinazioni lineari della funzione integranda FORMULE DI QUADRATURA
Formula Rettangolare Formula del Punto Medio Formula Trapezoidale Formula di Simpson Somme di Riemann sono tutte combinazioni lineari della funzione integranda, ovvero FORMULE DI QUADRATURA A1, A2,..., An x 1, x 2,..., x n sono detti pesi o coefficienti sono detti nodi Ω ESEMPIO: Calcolo dell area del cerchio Ω di raggio 1 in un sistema aritmetico floating-point con β=10 e t=5 ( Area(Ω) = π = 3,1415926.) D B PQ = 2 Dividiamo il cerchio Ω in un quadrato B, ed in 4 calotte circolari. Area(Ω) = Area(B)+4Area(D) MA Area(B)= 2 PQ = 2 Come calcolare l area delle calotte?
AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = Area(V) + Area(W) = 2Area(V). D W V s V è la porzione di piano compresa tra il semiasse positivo delle y, il semiasse positivo delle x e l arco di circonferenza s. AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = Area(V) + Area(W) = 2Area(V). D W V s Per determinare l equazione dell arco di circonferenza s, consideriamo la semicirconferenza, nel semipiano delle y positive, centrata nell origine, di equazione: y = 1 2 x ( 1 x 1) y 2 2 ( x + y = 1) (1,0) x
AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = Area(V) + Area(W) = 2Area(V). D W V s Per determinare l equazione dell arco di circonferenza s, consideriamo la semicirconferenza, nel semipiano delle y positive, centrata nell origine, di equazione: L equazione dell arco di circonferenza s, si ottiene spostando verso il basso di 2/2 la circonferenza centrata nell origine, y = 1 2 x ( 0 x y 2 / 2) P M=O Q=( 2/2,0) s x AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = Area(V) + Area(W) = 2Area(V). D W V s Quindi per avere l equazione dell arco di circonferenza s, è sufficiente sottrarre 2/2, ottenendo: f(x) = y = 1 2 x 2 2 ( 0 x 2 / 2) 2 2 0 1 x 2 Area(D)/2 = Area(V)= I[f] = 2 dx 2 = π 2 8 = 0.142699075
APPLICHIAMO LA FORMULA TRAPEZOIDALE V T 0 Q = 2 / 2 2 2 I[f] Q[f] = f(0) + f 0.10355 x 10 4 2 0 Ma il valore esatto di I[f] è I[f]=0.14269... I[f] IN GENERALE Q[f] ERRORE = I[f] Q[f] PROBLEMA: Quanto vale L errore? ERRORE = I[f] Q[f] = 0.39149 x 10-1 0.14269 x 10 0 0.10355 x 10 0
CONSIDERIAMO ANCORA IL CERCHIO Ω Ω Su ogni calotta abbiamo applicato due volte la Formula Trapezoidale PROBLEMA: QUANTO VALE L ERRORE SU Ω? ERRORE COMMESSO SU Ω L esatto valore di Area(Ω) è Area(Ω)= π Il valore approssimato di Area(Ω) con la Formula Trapezoidale è Area(Ω) 2+8(0.10355 x 10 0 ) =0.28484 x 10 1 ERRORE (Ω) =π-2,8484 3.1415-2,8484= 0.31310 x 10 0
DEFINIZIONE: La differenza E[f] = I[f] - Q[f] = b n f(x)dx a i = 1 A f(x i i ) è detta ERRORE DI DISCRETIZZAZIONE della FORMULA DI QUADRATURA Q[f] INTERPRETAZIONE GEOMETRICA DELL ERRORE DI DISCRETIZZAZIONE E[f] Q[f] a I[f] b I[f] = Q[f]+E[f]
PROBLEMA: Come ridurre L ERRORE DI DISCRETIZZAZIONE di una FORMULA DI QUADRATURA? Relativamente all esempio dell area della semicalotta circolare V....: V T 0 Q = 2 / 2 Applicando la FORMULA TRAPEZOIDALE sull intero intervallo [0, 2 / 2 ] si è ottenuto: I[f] = 0.14269 x 10 0 Q[f] = 0.10355 x 10 0 E[f]= 0.39149 x 10-1
Applicando invece la FORMULA TRAPEZOIDALE 2 2 2 nei due sottointervalli 0, e,, si ottiene 4 4 2 Errore E 2 [f] T 1 T 2 0 2 2/ 2 2 Q 2 [f]=area(t 1 )+Area(T 2 )= 2 2 f(0) + f + f 8 4 8 0.13250 x 10 0 2 + f 4 2 2 E 2 [f]= π 2 0 0.13250x10 8 0.10199 x 10-1 Ricordando che E[f]= 0.39149 x 10-1 si ha E 2 [f] 1 4 E[f] DIMEZZANDO L AMPIEZZA DEGLI INTERVALLI L ERRORE SI E RIDOTTO DI CIRCA 4 VOLTE!
Un modo per ridurre l errore di discretizzazione di una formula di quadratura è quello di applicarla più volte su sottointervalli di ampiezza più piccola ESEMPIO f((a+b)/2) f(b) f(a) a T 1 T 2 (a+b)/2 b Formula trapezoidale su 1 sottointervallo Formula trapezoidale su 2 sottointervalli Dimezzando ancora l ampiezza dei sottointervalli Errore E 4 [f] v = Q 4 [f] = Area(T 1 )+ Area(T 2 )+ Area(T 3 )+ Area(T 4 ) = 0 T 1 T 2 T 3 T 4 2/8 2 2 2 3 2 2 f(0) + f + + +... f f 16 8 16 8 2 2/4 3 2/8 2 0.14014 x 10 0 π 2 0 E 4 [f]= 0.14014 x10 0.25591 x 10-2 8
Ricordando ancora che E[f] = 0.39149 x 10-1 E 2 [f]= 0.10199 x 10-1 si ha E 4 [f] 1 4 E 2 [f] 1 16 E[f] DIMEZZANDO L AMPIEZZA DEGLI INTERVALLI L ERRORE SI E RIDOTTO ANCORA DI 4 VOLTE! IDEA: FORMULE COMPOSITE a b Applicare la FORMULA TRAPEZOIDALE su m sottointervalli di [a,b].
DEFINIZIONE: Suddiviso l intervallo [a,b] in m sottointervalli [t 0,t 1 ], [t 1,t 2 ],..., [t (m-1),t m ] di uguale ampiezza h=(b-a)/m mediante gli m+1 punti a = t 0 < t 1 <... < t m = b SI DEFINISCE T m [f] la somma T m [f] = 2 h FORMULA TRAPEZOIDALE COMPOSITA f(t h h [f(t 0 )+f(t 1 )] +... + [f(t (m-1) )+f(t m )] = 2 m + 1 0 ) f(tm ) f(t + j) 2 j= 1 2 L esempio precedente ha messo in luce che raddoppiando il numero dei sottointervalli l errore della formula si riduce di circa quattro volte. PROBLEMA: E sempre possibile RIDURRE l ERRORE riducendo l ampiezza h dei sottointervalli?
TEOREMA IPOTESI f(x) funzione integrabile T m [f] formula trapezoidale composita su [a,b] E m [f]=i[f]-t m [f], errore di discretizzazione di T m [f] h=(b-a)/m, ampiezza dei sottointervalli di [a,b] T m [f] = f(t 0 ) h 2 m + j= 1 1 f(t j ) + f(t m ) 2 TESI La famiglia T m [f] m=1,2,. è CONVERGENTE cioè lim m 8 E m [f]=0 Dimostrazione: t t j j 1 f(x)dx Applichiamo la formula base T[f] nell intervallo [t j-1,t j ] (b a) 2m [ f(t ) + f(t )] j 1 j Sommando su tutti gli intervalli [t j-1,t j ], si ottiene 1 2 (b a) (b a) ( f(t ) f(t ) m m = j 1 + j) j= 1 2m T [f] = (b a) m m f(t j 1) + f(t j) j= 1 m j= 1 m SOMME DI RIEMANN
Poichè f(x) è integrabile tutte le somme di Riemann convergono, quindi lim m m j= 1 (b a) m m (b a) m f(t j 1) = lim f(t j) = f(x)dx= m j= 1 b a I[f] ricordando che in generale E m =I-T m, abbiamo lim m E m [] f = I [] f lim T [] f = m m 1 = I[] f 2 I[] f = 0 2 C.V.D. L errore di discretizzazione è stato definito come E[f]=I[f]-Q[f] MA I[f] NON E NOTO PROBLEMA: Come determinare una stima calcolabile dell errore di discretizzazione E m [f] della Formula Trapezoidale Composita T m [f]?
ESEMPIO:Come stimare l errore di discretizzazione? Indichiamo con T m [f] la Formula Trapezoidale Composita su [a,b] con m sottointervalli. Per l errore di T m [f] vale: E m [f] = I[f]-T m [f] Indichiamo con T 2m [f] la Formula Trapezoidale Composita su [a,b] con 2m sottointervalli. Per l errore di T 2m [f] vale: E 2m [f] = I[f]-T 2m [f] ESEMPIO:Come stimare l errore di discretizzazione? E m = I-T m E 2m = I-T 2m errore di T m [f] errore di T 2m [f] Sottraendo E m [f] da E 2m [f], otteniamo E 2m -E m =I-T 2m -( I-T m ) = I-T 2m -I+T m = T m -T 2m E 2m [f]-e m [f]=t m [f]-t 2m [f] (A)
ESEMPIO:Come stimare l errore di discretizzazione? E m = I-T m E 2m = I-T 2m errore di T m [f] errore di T 2m [f] E 2m [f]-e m [f]=t m [f]-t 2m [f] (A) E m [f] 4E 2m [f] (B) Sostituendo (B) in (A), e passando ai valori assoluti,... Ricordando che raddoppiando i sottointervalli l errore diventa circa un quarto, ESEMPIO:Come stimare l errore di discretizzazione? T m [f]-t 2m [f] = E m [f]-e 2m [f] 4E 2m [f]-e 2m [f] T m [f]-t 2m [f] 3 E 2m [f] STIMA CALCOLABILE DELL ERRORE E 2m [f] T m [f]-t 2m [f] / 3
Nota Dalla definizione segue che l errore di dicretizzazione, può essere POSITIVO E[f] Q[f] I[f] a b I[f]>Q[f] E[f]>0 Nota Dalla definizione segue che l errore di dicretizzazione, può essere NEGATIVO E[f] Q[f] I[f] a b I[f]<Q[f] E[f]<0
Nota Solitamente con errore si intende, la distanza tra approssimazione e soluzione esatta. Di norma le distanze sono POSITIVE. Per questo motivo spesso sarà UTILE ed OPPORTUNO ottenere una STIMA del MODULO dell ERRORE DI DISCRETIZZAZIONE. OSSERVAZIONE: Se la Formula Trapezoidale Composita T m è già stata calcolata, utilizzando la formula T 2m, si hanno 2 VANTAGGI: Un miglioramento dell accuratezza dovuto all aumento del numero dei nodi. RIDUZIONE DELL ERRORE DI DISCRETIZZAZIONE la funzione integranda è valutata solo nei punti medi degli m sottointervalli di T m RISPARMIO SULLE VALUTAZIONI DI FUNZIONE
RISPARMIO SULLE VALUTAZIONI DI FUNZIONE Sia [a,b] l intervallo di integrazione. Per il calcolo di T m sono utilizzati i nodi: * Nodi di T m a * * * * * * b RISPARMIO SULLE VALUTAZIONI DI FUNZIONE Sia [a,b] l intervallo di integrazione. Per il calcolo di T 2m sono utilizzati i nodi: * Nodi di T m o Nodi di T 2m o o o o o o o o o o o a * * * * * * b
RISPARMIO SULLE VALUTAZIONI DI FUNZIONE Sia [a,b] l intervallo di integrazione. * Nodi di T m o Nodi di T 2m o* o o* o o* o * o o * o o o* a b DEFINIZIONE: Una coppia di formule di quadratura (T m [f],t 2m [f]), in cui l insieme dei nodi della prima formula è contenuto nell insieme dei nodi della seconda formula è detta: COPPIA DI FORMULE INNESTATE ESEMPIO: Se m è un qualsiasi numero naturale la coppia di Formule Trapezoidali Composite (T m [f],t 2m [f]), è una coppia di FORMULE INNESTATE.
PROBLEMA: Progettare un ALGORITMO per il CALCOLO di I[f] = b f(x)dx a corretto a meno di una tolleranza fissata TOL con la Formula Trapezoidale Composita. SOLUZIONE: Si dimezza progressivamente l intervallo [a,b], applicando la Formula Trapezoidale Composita su un numero crescente di sottointervalli,finché: La stima dell errore è minore di TOL. OPPURE Si è raggiunto un numero massimo di valutazioni per la funzione integranda MAXVAL (in questo caso si avvisa con un messaggio di errore IFLAG.)
DEFINIZIONE: Un INTEGRATORE AUTOMATICO è una ROUTINE che a,b f(x) TOL MAXVAL RICHIEDE IN INPUT una gli estremi massimo tolleranza funzionenumero TOL MAXVAL dell intervallo integrabile di f(x) valutazioni [a,b] per la f(x) INTEGRATORE AUTOMATICO DEFINIZIONE: Un INTEGRATORE AUTOMATICO è una ROUTINE che a,b f(x) TOL MAXVAL FORNISCE IN OUTPUT una stima messaggio,iflag, dell errore Q[f] di dell integrale per dicretizzazione informare I[f] l utente E[f] se è stata raggiunta la tolleranza TOL. INTEGRATORE AUTOMATICO Q[f] E[f] IFLAG
DEFINIZIONE: Un INTEGRATORE AUTOMATICO è una ROUTINE che FASE DI INPUT a,b f(x) TOL MAXVAL INTEGRATORE AUTOMATICO FASE DI OUTPUT Q[f] E[f] IFLAG ESEMPIO DI ROUTINE PER IL CALCOLO APPROSSIMATO DI UN INTEGRALE procedure Trapez1 (input:a,b,tol,f,maxval; output:int,err,iflag) /* SCOPO: calcolo di un intergrale definito con la formula trapezoidale composita a meno di una tolleranza assegnata. */ /* SPECIFICHE: */ var: a,b,tol,int,err,h,x,oldint,sum real var: Maxval,Iflag,m,fval integer external function f real /* ESECUZIONE: */ m:=2 h:=(b-a)/m x:=(a+b)/m oldint:=h*(f(a)+f(b)) Int:=oldint/2+h*f(x) fval:=3 Err:= Int-oldint /3 /* ciclo di iterazione principale con test sull errore */ while (Err > Tol and fval<maxval) do
m:=2*m h:=h/2 sum:=0 /* calcolo della formula trapezoidale composita su m punti medi */ for k=1,m,2 x:=a+k*h sum:=sum+f(x) fval:= fval+1 endfor oldint:= Int Int:=oldint/2+h*sum /* stima dell errore */ Err:= Int-oldint /3 endwhile /* definizione della variabile Iflag */ if (fval<maxval) then Iflag:=0 else Iflag:=1 endif Return Int,Err,Iflag end Trapez1 ESEMPIO: VOGLIAMO CALCOLARE I[f] = 5 5 (3e x 2 + 1)dx UTILIZZANDO LA PRECEDENTE ROUTINE
APPROSSIMAZIONE DI I[f] SU 5 SOTTOINTERVALLI ( T 5 [f] ) 4 Grafico di f(x)=3e -x^2 +1 3 2 1 o o o o o o 0-1 -5-4 -3-2 -1 0 1 2 3 4 5 In giallo tratteggiato l area calcolata. APPROSSIMAZIONE DI I[f] SU 10 SOTTOINTERVALLI ( T 10 [f] ) 4 3 o Grafico di f(x)=3e -x^2 +1 2 1 0-1 o o o o o o o o o o -5-4 -3-2 -1 0 1 2 3 4 5 In giallo tratteggiato l area calcolata.
PARTIZIONAMENTO UNIFORME DELL INTERVALLO DI INTEGRAZIONE Intervalli troppo larghi nella parte centrale di [a,b] (INSUFFICIENTE) Intervalli troppo stretti verso gli estremi di [a,b] (INUTILE) ALGORITMI NON ADATTATIVI PROBLEMA: E possibile PROGETTARE un ALGORITMO che SI ADATTA alla funzione?
SOLUZIONE: PARTIZIONAMENTO NON UNIFORME DELL INTERVALLO DI INTEGRAZIONE ALGORITMI ADATTATIVI ALGORITMI ADATTATIVI STRATEGIA 1: infittire dove l errore è massimo in modulo. E 1 E 2 PASSO 1 E 1 E 2 E 3 a=x 0 x 2 b=x 1 a=x 0 x 3 x 2 b=x 1 L errore massimo in modulo è E 1, in corrispondenza dell intervallo [x 0,x 2 ], Suddividiamo [x 0,x 2 ] in [x 0,x 3 ] e [x 3,x 2 ]. (CONTINUA...)
CONTINUA: ALGORITMI ADATTATIVI STRATEGIA 1: infittire dove l errore è massimo in modulo. E 1 E 2 E 3 PASSO 2 E 1 E 2 E 3 E 4 a=x 0 x 3 x 2 b=x 1 a=x 0 x 3 x 2 x 4 b=x 1 L errore massimo in modulo è E 3, in corrispondenza dell intervallo [x 2,x 1 ]. Suddividiamo [x 2,x 1 ] in [x 2,x 4 ] e [x 4,x 1 ]. (CONTINUA...) CONTINUA: ALGORITMI ADATTATIVI STRATEGIA 1: infittire dove l errore è massimo in modulo. E 2 E 3 E 2 E 3 E 1 E 4 PASSO 3 E 1 E 4 E 5 a=x 0 x 3 x 2 x 4 b=x 1 a=x 0 x 3 x 5 x 2 x 4 b=x 1 L errore massimo in modulo è E 2, in corrispondenza dell intervallo [x 3,x 2 ]. Suddividiamo [x 3,x 2 ] in [x 3,x 5 ] e [x 5,x 2 ]. ( e così via...)
ALGORITMI ADATTATIVI STRATEGIA 2: infittire finchè non si è soddisfatta la tolleranza locale (TOL ), esaminando l intervallo più a sinistra Prossimo intervallo da esaminare [x o,x 2 ]. E 1 E 2 PASSO 1 E 1 E 2 E 3 a=x 0 x 2 b=x 1 a=x 0 x 3 x 2 b=x 1 TOLLERANZA LOCALE NON SODDISFATTA Cosa si intende con TOLLERANZA LOCALE? Suddividiamo [x 0,x 2 ] in [x 0,x 3 ] e [x 3,x 2 ]. (CONTINUA...) CONTINUA: Prossimo intervallo da esaminare [x o,x 3 ]. ALGORITMI ADATTATIVI STRATEGIA 2: infittire finchè non si è soddisfatta la tolleranza locale (TOL ), esaminando l intervallo più a sinistra E 1 E 2 E 3 PASSO 2 E 1 E 2 E 3 E 4 a=x 0 x 3 x 2 b=x 1 x 4 a=x 0 x 3 x 2 b=x 1 TOLLERANZA LOCALE NON SODDISFATTA Suddividiamo [x 0,x 3 ] in [x 0,x 4 ] e [x 4,x 3 ]. (CONTINUA...)
CONTINUA: ALGORITMI ADATTATIVI STRATEGIA 2: infittire finchè non si è soddisfatta la tolleranza locale (TOL ), esaminando l intervallo più a sinistra Prossimo intervallo da esaminare [x o,x 4 ]. E 2 E 3 E 4 E 2 E 3 E 4 E 1 PASSO 3 E 1 x 4 a=x 0 x 3 x 2 b=x 1 TOLLERANZA LOCALE SODDISFATTA x 4 a=x 0 x 3 x 2 b=x 1 L intervallo [x o,x 4 ] non viene più esaminato. Si passa ad esaminare il successivo più a sinistra. (CONTINUA...) CONTINUA: ALGORITMI ADATTATIVI STRATEGIA 2: infittire finchè non si è soddisfatta la tolleranza locale (TOL ), esaminando l intervallo più a sinistra Prossimo intervallo da esaminare [x 4,x 3 ]. E 2 E 3 E 4 E 2 E 3 E 4 E 1 PASSO 4 E 1 x 4 a=x 0 x 3 x 2 b=x 1 TOLLERANZA LOCALE SODDISFATTA x 4 a=x 0 x 3 x 2 b=x 1 L intervallo [x 4,x 3 ] non viene più esaminato. Si passa ad esaminare il successivo più a sinistra. ( e così via...)
ALGORITMI ADATTATIVI DUE POSSIBILI STRATEGIE STRATEGIA 1 ADATTATIVA GLOBALE Si suddivide l intervallo dove è massima la stima del modulo dell errore. STRATEGIA 2 ADATTATIVA LOCALE Si suddivide l intervallo più a sinistra fino al raggiungimento dell accuratezza richiesta. STRATEGIA 1 ADATTATIVA GLOBALE Si calcolano preliminarmente Q [a,b] ed una stima del modulo di E [a,b]. Al primo passo Se E [a,b] TOL Altrimenti l algoritmo termina e Q [a,b] è l approssimazione di I[f]. si divide [a,b] in due sottointervalli, [a,m] e [m,b]. Si calcolano poi Q [a,m] Q [m,b] E [a,m] E [m,b]
STRATEGIA 1 ADATTATIVA GLOBALE E [a,b] > TOL Al secondo passo Se E [a,m] + E [m,b] TOL Altrimenti l algoritmo termina e Q [a,m] +Q [m,b] è l approssimazione di I[f]. si ricerca l intervallo dove la stima dell errore è massima in modulo e lo si divide in due ulteriori sottointervalli. Si calcolano poi, in tali sottointervalli, le stime del modulo dell errore e dell integrale. STRATEGIA 1 ADATTATIVA GLOBALE L intervallo [a,b] si trova suddiviso in una partizione di n sottointervalli [c j,d j ]. Al n-esimo passo Se E[c,d TOL j j j ] l algoritmo termina e l approssimazione di I[f] è, j altrimenti si ricerca l intervallo dove la stima dell errore è massima in modulo e lo si divide in due ulteriori sottointervalli. Q[c,d Si calcolano poi, in tali sottointervalli, le stime del modulo dell errore e dell integrale. j j ]
STRATEGIA 1 ADATTATIVA GLOBALE In generale l algoritmo termina quando La stima del modulo dell errore è non superiore a TOL. j E [c,d ] j j TOL OPPURE STRATEGIA 1 ADATTATIVA GLOBALE In generale l algoritmo termina quando Si è raggiunto un numero massimo di valutazioni per la funzione integranda MAXVAL. NUMVAL = MAXVAL NUMERO DI VALUTAZIONI EFFETTUATE
STRATEGIA 1 ADATTATIVA GLOBALE In generale l algoritmo termina quando Si è raggiunto un numero massimo di valutazioni per la funzione integranda MAXVAL. In questo caso si avvisa l utente di tale circostanza con un messaggio di errore: IFLAG STRATEGIA 1 ADATTATIVA GLOBALE In ogni caso, quando termina, l algoritmo fornisce come stima di I[f], l ultima approssimazione data da: I[f] j Q [ j j c,d ]
STRATEGIA 2 ADATTATIVA LOCALE Si calcolano preliminarmente Q [a,b] ed una stima del modulo di E [a,b]. Al primo passo Se E [a,b] TOL Altrimenti l algoritmo termina e Q [a,b] è l approssimazione di I[f]. si divide [a,b] in due sottointervalli, [a,m] e [m,b]. Si calcolano poi Q [a,m] Q [m,b] E [a,m] E [m,b] STRATEGIA 2 ADATTATIVA LOCALE E [a,b] > TOL Al secondo passo Se E [a,m] TOL / 2 TOLLERANZA RELATIVA LOCALE si aggiunge Q [a,m] al valore della variabile INTEG. La variabile INTEG al termine dell algoritmo contiene l approssimazione dell INTEGRALE
STRATEGIA 2 Al secondo passo Se E [a,m] TOL / 2 ADATTATIVA LOCALE E [a,b] > TOL TOLLERANZA RELATIVA LOCALE si aggiunge Q [a,m] al valore della variabile INTEG. si aggiunge E [a,m] al valore della variabile ERROR. La variabile ERROR al termine dell algoritmo contiene l approssimazione dell ERRORE STRATEGIA 2 ADATTATIVA LOCALE E [a,b] > TOL Al secondo passo Se E [a,m] TOL / 2 si aggiunge Q [a,m] al valore della variabile INTEG, si aggiunge E [a,m] al valore della variabile ERROR, si esamina l intervallo [m,b]. Altrimenti si divide [a,m] in due sottointervalli, in tali sottointervalli si calcolano le approssimazioni dell errore e dell integrale. TOLLERANZA RELATIVA LOCALE
STRATEGIA 2 ADATTATIVA LOCALE Si esamina l intervallo [c,d] più a sinistra disponibile Al generico passo Se E [c,d] TOL d c b a si aggiunge Q [c,d] al valore della variabile INTEG, si aggiunge E [c,d] al valore della variabile ERROR, si esamina l intervallo successivo [c,d ]. Altrimenti si divide [c,d] in due nuovi sottointervalli, in tali sottointervalli si calcolano le approssimazioni dell errore e dell integrale. TOLLERANZA RELATIVA LOCALE STRATEGIA 2 ADATTATIVA LOCALE In generale l algoritmo termina quando La stima del modulo dell errore nell intervallo più a destra [d,b], è non superiore alla TOLLERANZA RELATIVA LOCALE b d E [d,b] TOL b a OPPURE
STRATEGIA 2 ADATTATIVA LOCALE In generale l algoritmo termina quando Si è raggiunto un numero massimo di valutazioni per la funzione integranda MAXVAL, NUMVAL = MAXVAL NUMERO DI VALUTAZIONI EFFETTUATE STRATEGIA 2 ADATTATIVA LOCALE In generale l algoritmo termina quando Si è raggiunto un numero massimo di valutazioni per la funzione integranda MAXVAL In questo caso si avvisa l utente di tale circostanza con un messaggio di errore: IFLAG
STRATEGIA 2 ADATTATIVA LOCALE In ogni caso, quando termina, l algoritmo fornisce come stima di I[f], l ultima approssimazione data da I[f] INTEG STRATEGIA ADATTATIVA GLOBALE Si suddivide l intervallo dove è massima la stima del modulo dell errore. Abbiamo una riduzione uniforme dell errore su tutto l intervallo [a,b]. Ad ogni passo è necessario gestire tutti i sottointervalli.
STRATEGIA ADATTATIVA GLOBALE Si suddivide l intervallo dove è massima la stima del modulo dell errore. Tutte le informazioni degli intervalli da esaminare sono conservate in una LISTA STRATEGIA ADATTATIVA GLOBALE Si suddivide l intervallo dove è massima la stima del modulo dell errore. LISTA: La lista è ordinata secondo le stime DECRESCENTI dei moduli degli errori QUINDI Il prossimo intervallo da suddividere è nella TESTA DELLA LISTA
STRATEGIA ADATTATIVA GLOBALE Si suddivide l intervallo dove è massima la stima del modulo dell errore. LISTA: Testa della lista Nodo della lista STRATEGIA ADATTATIVA GLOBALE Si suddivide l intervallo dove è massima la stima del modulo dell errore. LISTA: Ogni nodo della lista contiene le informazioni su: Intervallo, stima dell integrale, stima dell errore, indirizzo del nodo successivo nella lista (LINK). NODO DELLA LISTA [p,q] Q [p,q] E [p,q] LINK NUOVO NODO
STRATEGIA ADATTATIVA GLOBALE Si suddivide l intervallo dove è massima la stima del modulo dell errore. ESEMPIO: riordinamento della lista L intervallo da esaminare è [ X 3,X 4 ] Testa della lista [a,x 1 ] [x 1,x 2 ] [x 2,x 3 ] [x 3,x 4 ] [x 4,b] STRATEGIA ADATTATIVA GLOBALE Testa della lista Si suddivide l intervallo dove è massima la stima del modulo dell errore. ESEMPIO: riordinamento della lista Il link da eliminare è [a,x 1 ] [x 1,x 2 ] [x 2,x 3 ] [x 3,x 4 ] [x 4,b]
STRATEGIA ADATTATIVA GLOBALE Testa della lista Si suddivide l intervallo dove è massima la stima del modulo dell errore. ESEMPIO: riordinamento della lista Il link da eliminare è [a,x 1 ] [x 1,x 2 ] [x 2,x 3 ] [x 3,x 4 ] [x 4,b] STRATEGIA ADATTATIVA LOCALE Si suddivide l intervallo più a sinistra Procedendo verso destra si scartano i sottointervalli in cui è stata raggiunta la tolleranza relativa locale In caso di arresto dell algoritmo per IFLAG non è fornita un approssimazione di I[f] su tutto [a,b].
STRATEGIA ADATTATIVA LOCALE Si suddivide l intervallo più a sinistra Tutte le informazioni degli intervalli da esaminare sono conservate in una PILA STRATEGIA ADATTATIVA LOCALE Si suddivide l intervallo più a sinistra PILA: Il prossimo intervallo da esaminare è nel TOP DELLA PILA QUINDI L algoritmo si arresta quando la PILA E VUOTA
STRATEGIA ADATTATIVA LOCALE Si suddivide l intervallo più a sinistra PILA: Errore accettabile Prossimo intervallo da esaminare TOP della PILA a X 1 X 2 X 3 X 4 b Altri intervalli da esaminare [a,x 1 ] [x 1,x 2 ] [x 2,x 3 ] [x 3,x 4 ] [x 4,b] STRATEGIA ADATTATIVA LOCALE Si suddivide l intervallo più a sinistra PILA: Intervallo, Ogni nodo della pila contiene le informazioni su: stima dell integrale, stima del modulo dell errore. NODO DELLA PILA [p,q] Q [p,q] E [p,q]
ENTRAMBE LE STRATEGIE HANNO BISOGNO DI UNA PROCEDURA QE(c,d,f,Q,E) [c,d] f QE Q [c,d] [f] E [c,d] [f] La quale ricevuti in input un intervallo [c,d] contenuto in [a,b], ed una funzione integrabile f, fornisce in output le stime di I[f] ed E[f] sull intervallo [c,d] ottenute mediante una COPPIA DI FORMULE INNESTATE. T 1 [f] = ESEMPIO di procedura QE con la Formula Trapezoidale Composita. h [f(c) 2 h + f(d)] c + d T 2 [f] = f(c) + f + f(d) 4 2 E 2 [f] T 1 [f]-t 2 [f] /3 h=d-c
ESEMPIO di procedura QE con la Formula Trapezoidale Composita. procedure QE(input: c,d,f; output: Q,E) h:=(d-c) fc:=f(c) fd:=f(d) fm:=f((c+d)/2) t1:=h*(fc+fd)/2 t2:=h*(fc+fm+fd)/4 E:= t1-t2 /3 Q:=t2 return Un algoritmo ADATTATIVO LOCALE basato sulla Formula Trapezoidale Composita begin ADAPT read A,B,TOL,NMAX IFAIL:=0 INTEG:=0 ERROR:=0 QE(A,B,f,Q,E) NVAL:=3 A,B,Q,E pila N:=1 while (N 0 AND NVAL<NMAX) do C,D,Q,E pila N:=N-1 if (E<TOL*(D-C)/(B-A)) then INTEG:=INTEG+Q ERROR:= ERROR+E
CONTINUA: Un algoritmo ADATTATIVO LOCALE Basato sulla Formula Trapezoidale Composita else M:=(C+D)/2 QE(C,M,F,QS,ES) NVAL:=NVAL+3 QE(M,D,F,QD,ED) NVAL:=NVAL+3 M,D,QD,ED pila N:=N+1 C,M,,QS,ES pila N:=N+1 endif endwhile CONTINUA: Un algoritmo ADATTATIVO LOCALE Basato sulla Formula Trapezoidale Composita end ADAPT if (NVAL>=NMAX) then IFAIL:=1 endif print INTEG,ERROR,IFAIL
MATLAB E LA QUADRATURA Matlab rende disponibile la funzione QUAD per il calcolo di integrali definiti. QUAD è basata su un algoritmo adattativo locale e sulla formula di SIMPSON COMPOSITA. MATLAB E LA QUADRATURA QUAD (fun,a,b,tol,graf) fun a,b tol graf funzione integranda. Deve essere presente in un FILE di nome Fun.m estremi di integrazione. tolleranza (opzionale). Se non specificata TOL=10-3. intero (opzionale).se GRAF=1 viene mostrato il grafico della funzione con i nodi utilizzati.
MATLAB ESEMPIO: I[f] 2π = E LA QUADRATURA sin( x) dx = 0 Creazione del file fun.m contenente la funzione integranda 4 function y = fun(x) y = abs(sin(x)) return end ESEMPIO: I[f] MATLAB 2π = 0 E LA QUADRATURA sin( x) QUINDI dx >> a=0; >> b=2*3.1415926; >> res=quad( fun,a,b); res= 4.00000207024612 = 4
Domanda: Sia assegnata una tolleranza TOL, da voler rispettare sull intero intervallo [a,b]. Che tolleranza dobbiamo rispettare sul generico sottointervallo [c,d]? Risposta: Affinché una tolleranza TOL, sia rispettata sull intero intervallo [a,b], è sufficiente che su ogni sottointervallo [c,d] sia rispettata una tolleranza TOL, proporzionale all ampiezza del sottointervallo stesso, ovvero una TOLLERANZA RELATIVA LOCALE
Esempio: Scegliamo il sottointervallo [a,m], dove m è il punto medio di [a,b]. m-a L ampiezza di [a,m] è META dell ampiezza di [a,b], b-a a m b m-a = (b-a) / 2 Esempio: Scegliamo il sottointervallo [a,m], dove m è il punto medio di [a,b]. L ampiezza di [a,m] è META dell ampiezza di [a,b], la TOLLERANZA RELATIVA LOCALE su [a,m] sarà la META della tolleranza su [a,b] TOL = TOL / 2
In generale Scegliamo un sottointervallo [c,d], dell intervallo [a,b]. Il rapporto tra le ampiezze di [c,d] e [a,b] è d c b a d-c b-a a c d b d-c = (b-a) d c b a In generale Scegliamo un sottointervallo [c,d], dell intervallo [a,b]. Il rapporto tra le ampiezze di [c,d] e [a,b] è d c b a la TOLLERANZA RELATIVA LOCALE su [c,d] sarà TOL = TOL d c b a