I[f]
Transcript
I[f]
QUADRATURA NUMERICA CALCOLO DI AREE E VOLUMI A. Murli a.a. 2002/2003 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 ? A. Murli a.a. 2002/2003 1 Il calcolo delle aree di B,C,D, ed E può essere ricondotto al calcolo dell’area della figura sottesa da una curva: 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 ) = b ∫a f (x )dx A. Murli a.a. 2002/2003 PROBLEMA: Come calcolare l’area di un RETTANGOLOIDE ? A. Murli a.a. 2002/2003 2 ESEMPI: Area(R) ≅ Area(U)= f(a) (b-a) Area(R) FORMULA RETTANGOLARE ≅ Area(V)= f(m) (b-a) FORMULA DEL PUNTO MEDIO A. Murli a.a. 2002/2003 ESEMPI: S Area(R) ≅ Area(T) = [f(a)+f(b)] (b − a ) 2 Area(R) ≅ Area(S)= [f(a)+ 4f(m)+f(b)] FORMULA TRAPEZOIDALE (b − a ) 6 FORMULA DI SIMPSON A. Murli a.a. 2002/2003 3 ESEMPIO: SOMMA DI RIEMANN a=t0 t1 t2 t3 t4=b A. Murli a.a. 2002/2003 L’approccio più naturale per il calcolo di un integrale è quello di approssimare con combinazioni lineari della funzione integranda FORMULE DI QUADRATURA A. Murli a.a. 2002/2003 4 ¾ Formula Rettangolare ¾ Formula del Punto Medio ¾ Formula Trapezoidale ¾ Formula di Simpson ¾ Somme di Riemann FORMULE DI QUADRATURA sono tutte combinazioni lineari della funzione integranda, ovvero A1 , A2 , . . . , A n sono detti pesi o coefficienti x 1 , x 2 , . . . , x n sono detti nodi A. Murli a.a. 2002/2003 ESEMPIO: Ω D B Calcolo dell’area del cerchio Ω di raggio 1 in un sistema aritmetico floating-point con β=10 e t=5 ( Area(Ω) = π = 3,1415926….) Dividiamo il cerchio Ω in un quadrato B, ed in 4 calotte circolari. Area(Ω) = Area(B)+4Area(D) PQ = 2 MA 2 Area(B)= PQ = 2 Come calcolare l’area delle calotte ? A. Murli a.a. 2002/2003 5 AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = s D W Area(V) + Area(W) = 2Area(V) . V V è la porzione di piano compresa tra il semiasse positivo delle y, il semiasse positivo delle x e l’arco di circonferenza s. A. Murli a.a. 2002/2003 AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = s D Area(V) + Area(W) = 2Area(V) . W V Per determinare l’equazione dell’arco di circonferenza s, consideriamo la semicirconferenza, nel semipiano delle y positive, centrata nell’origine, di equazione: y = 1 − x2 ( −1 ≤ x ≤ 1) y ( x2 + y2 = 1) (1,0) x A. Murli a.a. 2002/2003 6 AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = s D W Area(V) + Area(W) = 2Area(V) . V Per determinare l’equazione dell’arco di circonferenza s, consideriamo la semicirconferenza, nel semipiano delle y positive, centrata nell’origine, di equazione: ( 0 ≤ x ≤ 2 / 2) y = 1 − x2 L’equazione dell’arco y di circonferenza s, si ottiene spostando verso P M=O Q=( 2 / 2,0) il basso di 2 / 2 la x s circonferenza centrata nell’origine, A. Murli a.a. 2002/2003 AREA DELLA CALOTTA CIRCOLARE D Per la simmetria della calotta D Area(D) = s D W Area(V) + Area(W) = 2Area(V) . V Quindi per avere l’equazione dell’arco di circonferenza s, è sufficiente sottrarre 2 / 2 , ottenendo: f( x ) = y = 1 − x2 − 2 2 (0 ≤ x ≤ 2 / 2) Area(D)/2 = Area(V)= I[f] = ∫ 0 2 2 1 − x2 − π−2 2 dx = = 0.142699075… 2 8 A. Murli a.a. 2002/2003 7 APPLICHIAMO LA FORMULA TRAPEZOIDALE V T Q = 2 /2 0 I[ f] ≅ Q[ f] = 2 2 ≅ 0.10355 x 10 0 f( 0) + f 4 2 Ma il valore esatto di I[f] è I[f]=0.14269... IN GENERALE I[f] ≠ Q[f] A. Murli a.a. 2002/2003 ERRORE = I[f] – Q[f] PROBLEMA: Quanto vale L’errore ? ERRORE = I[f] – Q[f] = 0.14269 x 100 0.39149 x 10-1 0.10355 x 100 A. Murli a.a. 2002/2003 8 CONSIDERIAMO ANCORA IL CERCHIO Ω Ω Su ogni calotta abbiamo applicato due volte la Formula Trapezoidale PROBLEMA: QUANTO VALE L’ERRORE SU Ω? A. Murli a.a. 2002/2003 ERRORE COMMESSO SU Ω L’esatto valore di Area(Ω) è Area(Ω)= π ERRORE (Ω) = Il valore approssimato di Area(Ω) con la Formula Trapezoidale è Area(Ω) ≅ 2+8(0.10355 x 100 ) =0.28484 x 101 π-2,8484 ≅ 3.1415-2,8484= 0.31310 x 100 A. Murli a.a. 2002/2003 9 DEFINIZIONE: La differenza E[f] = I[f] - Q[f] = ∫ b a f( x )dx − n ∑ A f( x ) i =1 i i è detta ERRORE DI DISCRETIZZAZIONE della FORMULA DI QUADRATURA Q[f] A. Murli a.a. 2002/2003 INTERPRETAZIONE GEOMETRICA DELL’ERRORE DI DISCRETIZZAZIONE E[f] Q[f] I[f] a b I[f] = Q[f]+E[f] A. Murli a.a. 2002/2003 10 PROBLEMA: Come ridurre L’ERRORE DI DISCRETIZZAZIONE di una FORMULA DI QUADRATURA ? A. Murli a.a. 2002/2003 Relativamente all’esempio dell’area della semicalotta circolare V. . . .: V T Q = 2 /2 0 Applicando la FORMULA TRAPEZOIDALE sull’intero intervallo [0, 2 / 2 ] si è ottenuto: I[f] = 0.14269 x 100 Q[f] = 0.10355 x 100 E[f]= 0.39149 x 10-1 A. Murli a.a. 2002/2003 11 Applicando invece la FORMULA TRAPEZOIDALE nei due sottointervalli 0, 2 e 2, 2 , si ottiene 4 4 2 Errore E2[f] T1 T2 0 2 2 /2 2 f(0) + f 2 + 2 f 2 + f 2 2 4 8 4 8 Q2[f]=Area(T1)+Area(T2)= ≅ 0.13250 x 10 0 π − 2 − 0.13250 x10 0 8 E2[f]= ≅ 0.10199 x 10-1 A. Murli a.a. 2002/2003 Ricordando che E[f]= 0.39149 x 10-1 si ha E2[f] ≅ 1 E[f] 4 DIMEZZANDO L’AMPIEZZA DEGLI INTERVALLI L’ERRORE SI E’ RIDOTTO DI CIRCA 4 VOLTE ! A. Murli a.a. 2002/2003 12 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) T1 T2 a b (a+b)/2 Formula trapezoidale su 1 sottointervallo Formula trapezoidale su 2 sottointervalli A. Murli a.a. 2002/2003 Dimezzando ancora l’ampiezza dei sottointervalli v Errore E4[f] Q4[f] = = T1 0 Area(T1)+ Area(T2)+ Area(T3)+ Area(T4) = T2 T3 2/4 3 2/8 2/8 2 2 2 3 2 2 + f f f(0) + f + ...+ 16 8 2 16 8 π − 2 − 0.14014 x10 0 8 E4[f]= T4 ≅ 2 ≅ 0.14014 x 10 0 0.25591 x 10-2 A. Murli a.a. 2002/2003 13 Ricordando ancora che E[f] = 0.39149 x 10-1 E2[f]= 0.10199 x 10-1 si ha E4[f] ≅ 1 E2[f] 4 ≅ 1 E[f] 16 DIMEZZANDO L’AMPIEZZA DEGLI INTERVALLI L’ERRORE SI E’ RIDOTTO ANCORA DI 4 VOLTE ! A. Murli a.a. 2002/2003 IDEA: FORMULE COMPOSITE a b Applicare la FORMULA TRAPEZOIDALE su m sottointervalli di [a,b]. A. Murli a.a. 2002/2003 14 DEFINIZIONE: Suddiviso l’intervallo [a,b] in m sottointervalli [t0,t1], [t1,t2],..., [t(m-1),tm] di uguale ampiezza h=(b-a)/m mediante gli m+1 punti a = t0 < t1 < ... < tm = b SI DEFINISCE Tm[f] FORMULA TRAPEZOIDALE COMPOSITA la somma h h [f(t0)+f(t1)] + . . . + 2 2 f(t0 ) m − 1 f(tm ) h + ∑ f(tj ) + 2 2 j = 1 Tm[f] = [f(t(m-1))+f(tm)] = A. Murli a.a. 2002/2003 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 ? A. Murli a.a. 2002/2003 15 TEOREMA IPOTESI ¾ f(x) funzione integrabile ¾ Tm[f] formula trapezoidale composita su [a,b] ¾ Em[f]=I[f]-Tm[f], errore di discretizzazione di Tm[f] ¾ h=(b-a)/m, ampiezza dei sottointervalli di [a,b] f(t0 ) Tm[f] = h 2 + m −1 ∑ f(tj ) + j =1 f(tm ) 2 TESI La famiglia Tm[f] lim Em[f]=0 m 8 cioè è CONVERGENTE m=1,2,…. A. Murli a.a. 2002/2003 Dimostrazione: tj ∫ f(x)dx ≅ tj−1 Applichiamo la formula base T[f] nell’intervallo [tj-1,tj] [ ] (b − a) f(tj −1 ) + f(tj ) 2m Sommando su tutti gli intervalli [tj-1,tj], si ottiene ( ) (b − a) f(tj−1) + f(tj ) 2m j =1 m Tm [f] = ∑ SOMME DI RIEMANN = m 1 (b − a) (b − a) + f ( t ) f ( t ) ∑ ∑ j j − 1 2 j=1 m m j =1 m A. Murli a.a. 2002/2003 16 Poichè f(x) è integrabile tutte le somme di Riemann convergono, quindi b m m (b − a) (b − a) f(tj ) = ∫ f(x)dx = I[f] f(tj−1) = lim∑ lim∑ m→∞ m→∞ m m j=1 j=1 a ricordando che in generale Em=I-Tm , abbiamo lim E m [f ] = I [f ] − lim Tm [f ] = m→∞ m→∞ = I [f ] − 1 2 I [f ] = 0 2 A. Murli a.a. 2002/2003 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 Em[f] della Formula Trapezoidale Composita Tm[f] ? A. Murli a.a. 2002/2003 17 ESEMPIO:Come stimare l’errore di discretizzazione ? Indichiamo con Tm[f] la Formula Trapezoidale Composita su [a,b] con m sottointervalli. Per l’errore di Tm[f] vale: Em[f] = I[f]-Tm[f] Indichiamo con T2m[f] la Formula Trapezoidale Composita su [a,b] con 2m sottointervalli. Per l’errore di T2m[f] vale: E2m[f] = I[f]-T2m[f] A. Murli a.a. 2002/2003 ESEMPIO:Come stimare l’errore di discretizzazione ? Em= I-Tm E2m = I-T2m errore di Tm[f] errore di T2m[f] Sottraendo Em[f] da E2m[f], otteniamo E2m- Em= I-T2m-( I-Tm ) = I-T2m- I+Tm=Tm-T2m E2m[f]-Em[f]=Tm[f]-T2m[f] (A) A. Murli a.a. 2002/2003 18 ESEMPIO:Come stimare l’errore di discretizzazione ? Em= I-Tm E2m = I-T2m errore di Tm[f] errore di T2m[f] E2m[f]-Em[f]=Tm[f]-T2m[f] (A) Em[f] ≅ 4E2m[f] Ricordando che i sottointervalli l’errore diventa circa un quarto, (B) raddoppiando Sostituendo (B) in (A), e passando ai valori assoluti,... A. Murli a.a. 2002/2003 ESEMPIO:Come stimare l’errore di discretizzazione ? |Tm[f]-T2m[f] | = |Em[f]-E2m[f] | ≅ |4E2m[f]-E2m[f]| |Tm[f]-T2m[f] | ≅ 3|E2m[f]| STIMA CALCOLABILE DELL’ERRORE |E2m[f]| ≅ |Tm[f]-T2m[f] | / 3 A. Murli a.a. 2002/2003 19 Nota Dalla definizione segue che l’errore di dicretizzazione, può essere POSITIVO E[f] Q[f] a I[f] b I[f]>Q[f] E[f]>0 A. Murli a.a. 2002/2003 Nota Dalla definizione segue che l’errore di dicretizzazione, può essere NEGATIVO E[f] I[f] Q[f] a b I[f]<Q[f] E[f]<0 A. Murli a.a. 2002/2003 20 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. A. Murli a.a. 2002/2003 OSSERVAZIONE: Se la Formula Trapezoidale Composita Tm è già stata calcolata, utilizzando la formula T2m, si hanno 2 VANTAGGI: Un miglioramento dell’accuratezza dovuto all’aumento del numero dei nodi. la funzione integranda è valutata solo nei punti medi degli m sottointervalli di Tm RIDUZIONE DELL’ERRORE DI DISCRETIZZAZIONE RISPARMIO SULLE VALUTAZIONI DI FUNZIONE A. Murli a.a. 2002/2003 21 RISPARMIO SULLE VALUTAZIONI DI FUNZIONE Sia [a,b] l’intervallo di integrazione. Per il calcolo di Tm sono utilizzati i nodi: * Nodi di Tm a* * * * * *b A. Murli a.a. 2002/2003 RISPARMIO SULLE VALUTAZIONI DI FUNZIONE Sia [a,b] l’intervallo di integrazione. Per il calcolo di T2m sono utilizzati i nodi: o Nodi di T2m * Nodi di Tm o a* o o* o o* o o * o o * o o *b A. Murli a.a. 2002/2003 22 RISPARMIO SULLE VALUTAZIONI DI FUNZIONE Sia [a,b] l’intervallo di integrazione. o Nodi di T2m * Nodi di Tm o a* o o* o o* o o * o o * o o *b A. Murli a.a. 2002/2003 DEFINIZIONE: Una coppia di formule di quadratura (Tm[f],T2m[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 (Tm[f],T2m[f]), è una coppia di FORMULE INNESTATE. A. Murli a.a. 2002/2003 23 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. A. Murli a.a. 2002/2003 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.) A. Murli a.a. 2002/2003 24 DEFINIZIONE: Un INTEGRATORE AUTOMATICO è una ROUTINE che f(x) a,b TOL MAXVAL RICHIEDE IN INPUT una funzione numero un estremi massimo tolleranza TOL gli integrabile MAXVAL di f(x) valutazioni dell’intervallo [a,b] per la f(x) INTEGRATORE AUTOMATICO A. Murli a.a. 2002/2003 DEFINIZIONE: Un INTEGRATORE AUTOMATICO è una ROUTINE che f(x) a,b TOL MAXVAL FORNISCE IN OUTPUT messaggio,IFLAG, una stima dell’errore Q[f] per informare l’utente di dicretizzazione E[f] dell’integrale I[f] se è stata raggiunta la tolleranza TOL. INTEGRATORE AUTOMATICO Q[f] E[f] IFLAG A. Murli a.a. 2002/2003 25 DEFINIZIONE: Un INTEGRATORE AUTOMATICO è una ROUTINE che f(x) a,b TOL FASE DI INPUT MAXVAL INTEGRATORE AUTOMATICO FASE DI OUTPUT Q[f] E[f] IFLAG A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 26 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 A. Murli a.a. 2002/2003 ESEMPIO: VOGLIAMO CALCOLARE I[f] = 5 ∫ (3e − x2 + 1)dx −5 UTILIZZANDO LA PRECEDENTE ROUTINE A. Murli a.a. 2002/2003 27 APPROSSIMAZIONE DI I[f] SU 5 SOTTOINTERVALLI ( T5[f] ) Grafico di f(x)=3e-x^2+1 4 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. A. Murli a.a. 2002/2003 APPROSSIMAZIONE DI I[f] SU 10 SOTTOINTERVALLI ( T10[f] ) Grafico di f(x)=3e-x^2+1 o 4 3 2 1 o o o o o o o o o o 2 3 4 5 0 -1 -5 -4 -3 -2 -1 0 1 In giallo tratteggiato l’area calcolata. A. Murli a.a. 2002/2003 28 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 A. Murli a.a. 2002/2003 PROBLEMA: E’ possibile PROGETTARE un ALGORITMO che “SI ADATTA” alla funzione ? A. Murli a.a. 2002/2003 29 SOLUZIONE: NON UNIFORME PARTIZIONAMENTO DELL’INTERVALLO DI INTEGRAZIONE ALGORITMI ADATTATIVI A. Murli a.a. 2002/2003 ALGORITMI ADATTATIVI STRATEGIA 1: infittire dove l’errore è massimo in modulo. E2 E1 PASSO 1 a=x0 x2 b=x1 E1 E2 a=x0 x3 x2 L’errore massimo in modulo è E1, in corrispondenza dell’intervallo [x0,x2], E3 b=x1 Suddividiamo [x0,x2] in [x0,x3] e [x3,x2] . (CONTINUA...) A. Murli a.a. 2002/2003 30 CONTINUA: ALGORITMI ADATTATIVI STRATEGIA 1: infittire dove l’errore è massimo in modulo. E1 E3 E2 PASSO 2 a=x0 x3 x2 b=x1 E1 E2 E3 E4 a=x0 x3 x2 x4 b=x1 L’errore massimo in modulo è E3, in corrispondenza dell’intervallo [x2,x1]. Suddividiamo [x2,x1] in [x2,x4] e [x4,x1] . (CONTINUA...) A. Murli a.a. 2002/2003 CONTINUA: ALGORITMI ADATTATIVI STRATEGIA 1: infittire dove l’errore è massimo in modulo. E2 E3 E2 E1 E4 PASSO 3 a=x0 x3 x2 x4 b=x1 E1 E3 E4 E5 a=x0 x3 x5 x2 x4 b=x1 L’errore massimo in modulo è E2, in corrispondenza dell’intervallo [x3,x2]. Suddividiamo [x3,x2] in [x3,x5] e [x5,x2] . ( e così via...) A. Murli a.a. 2002/2003 31 ALGORITMI ADATTATIVI STRATEGIA 2: infittire finchè non si è soddisfatta la tolleranza locale (TOL’), esaminando l’intervallo più a sinistra Prossimo intervallo da esaminare [xo,x2]. E2 PASSO 1 E1 a=x0 x2 E1 a=x0 x3 x2 b=x1 TOLLERANZA LOCALE NON SODDISFATTA Cosa si intende con TOLLERANZA LOCALE ? b=x1 Suddividiamo [x0,x2] in [x0,x3 ] e [x3,x2] . (CONTINUA...) A. Murli a.a. 2002/2003 CONTINUA: E3 E2 ALGORITMI ADATTATIVI STRATEGIA 2: infittire finchè non si è soddisfatta la tolleranza locale (TOL’), esaminando l’intervallo più a sinistra Prossimo intervallo da esaminare [xo,x3]. E1 a=x0 E2 E3 E2 PASSO 2 x3 x2 E1 E3 a=x0 x4 x3 x2 b=x1 TOLLERANZA LOCALE NON SODDISFATTA E4 b=x1 Suddividiamo [x0,x3] in [x0,x4 ] e [x4,x3] . A. Murli a.a. 2002/2003 (CONTINUA...) 32 CONTINUA: ALGORITMI ADATTATIVI STRATEGIA 2: infittire finchè non si è soddisfatta la tolleranza locale (TOL’), esaminando l’intervallo più a sinistra Prossimo intervallo da esaminare [xo,x4]. E2 E3 E2 E4 E1 PASSO 3 a=x0 x4 x3 x2 E3 E4 E1 a=x0 x4 x3 x2 b=x1 b=x1 L’intervallo [xo,x4] non viene più esaminato. TOLLERANZA LOCALE Si passa ad esaminare il SODDISFATTA successivo più a sinistra. A. Murli a.a. 2002/2003 (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 [x4,x3]. E2 E3 E2 E4 E1 a=x0 x4 x3 x2 PASSO 4 b=x1 E3 E4 E1 a=x0 x4 x3 x2 b=x1 L’intervallo [x4,x3] non viene più esaminato. TOLLERANZA LOCALE Si passa ad esaminare il SODDISFATTA successivo più a sinistra. A. Murli a.a. 2002/2003 ( e così via...) 33 ALGORITMI ADATTATIVI DUE POSSIBILI STRATEGIE STRATEGIA 1 STRATEGIA 2 ADATTATIVA GLOBALE ADATTATIVA LOCALE Si suddivide l’intervallo dove è massima la stima del modulo dell’errore. Si suddivide l’intervallo più a sinistra fino al raggiungimento dell’accuratezza richiesta. A. Murli a.a. 2002/2003 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 l’algoritmo termina e Q[a,b] è l’approssimazione di I[f]. Altrimenti si divide [a,b] in due sottointervalli, [a,m] e [m,b]. Si calcolano poi E[a,m] Q[a,m] Q[m,b] E[m,b] A. Murli a.a. 2002/2003 34 ADATTATIVA GLOBALE STRATEGIA 1 |E[a,b] | > TOL Al secondo passo Se |E |+ |E[m,b] | ≤ TOL l’algoritmo termina e Q[a,m]+Q[m,b] è l’approssimazione di I[f]. Altrimenti [a,m] 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. A. Murli a.a. 2002/2003 ADATTATIVA GLOBALE STRATEGIA 1 L’intervallo [a,b] si trova suddiviso in una partizione di n sottointervalli [cj,dj]. Al n-esimo passo | E[cj , dj ] | ≤ TOL Se ∑ j l’algoritmo termina e l’approssimazione di I[f] è Q[cj , dj ] , ∑ altrimenti j 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. A. Murli a.a. 2002/2003 35 ADATTATIVA GLOBALE STRATEGIA 1 In generale l’algoritmo termina quando ¾ La stima del modulo dell’errore è non superiore a TOL. ∑| E j [cj ,dj ] | ≤ TOL OPPURE A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 36 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 A. Murli a.a. 2002/2003 STRATEGIA 1 ADATTATIVA GLOBALE In ogni caso, quando termina, l’algoritmo fornisce come stima di I[f], l’ultima approssimazione data da: I[f] ≅ ∑Q j [ cj ,dj ] A. Murli a.a. 2002/2003 37 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 l’algoritmo termina e Q[a,b] è l’approssimazione di I[f]. Altrimenti si divide [a,b] in due sottointervalli, [a,m] e [m,b]. Si calcolano poi E[a,m] E[m,b] Q[a,m] Q[m,b] A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 38 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. ¾ si aggiunge |E[a,m]| al valore della variabile ERROR. La variabile ERROR al termine dell’algoritmo contiene l’approssimazione dell’ERRORE A. Murli a.a. 2002/2003 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, ¾ 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. A. Murli a.a. 2002/2003 39 ADATTATIVA LOCALE STRATEGIA 2 Si esamina l’intervallo [c,d] più a sinistra disponibile Al generico passo d−c | ≤ TOL b−a TOLLERANZA RELATIVA LOCALE Se |E[c,d] ¾ 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. A. Murli a.a. 2002/2003 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 |E[d,b]| ≤ TOL b−d b−a OPPURE A. Murli a.a. 2002/2003 40 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 A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 41 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 A. Murli a.a. 2002/2003 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. A. Murli a.a. 2002/2003 42 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 A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 43 STRATEGIA ADATTATIVA GLOBALE Si suddivide l’intervallo dove è massima la stima del modulo dell’errore. Nodo della lista LISTA: Testa della lista A. Murli a.a. 2002/2003 STRATEGIA ADATTATIVA GLOBALE Si suddivide l’intervallo dove è massima la stima del modulo dell’errore. LISTA: Ogni nodo della lista contiene le informazioni su: NODO DELLA LISTA ¾ Intervallo, ¾ stima dell’integrale, ¾ stima dell’errore, ¾ indirizzo del nodo successivo nella lista (LINK). [p,q] Q[p,q] |E[p,q]| LINK NUOVO NODO A. Murli a.a. 2002/2003 44 STRATEGIA ADATTATIVA GLOBALE Si suddivide l’intervallo dove è massima la stima del modulo dell’errore. ESEMPIO: riordinamento della lista Testa della lista L’intervallo da esaminare è [ X3,X4 ] [a,x1] [x1,x2] [x3,x4] [x4,b] [x2,x3] A. Murli a.a. 2002/2003 STRATEGIA ADATTATIVA GLOBALE Si suddivide l’intervallo dove è massima la stima del modulo dell’errore. ESEMPIO: riordinamento della lista Testa della lista Il link da eliminare è [a,x1] [x1,x2] [x3,x4] [x4,b] [x2,x3] A. Murli a.a. 2002/2003 45 STRATEGIA ADATTATIVA GLOBALE Si suddivide l’intervallo dove è massima la stima del modulo dell’errore. ESEMPIO: riordinamento della lista Testa della lista Il link da eliminare è [a,x1] [x1,x2] [x3,x4] [x4,b] [x2,x3] A. Murli a.a. 2002/2003 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]. A. Murli a.a. 2002/2003 46 STRATEGIA ADATTATIVA LOCALE Si suddivide l’intervallo più a sinistra Tutte le informazioni degli intervalli da esaminare sono conservate in una PILA A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 47 STRATEGIA ADATTATIVA LOCALE Si suddivide l’intervallo più a sinistra PILA: TOP della PILA Prossimo intervallo da esaminare Errore accettabile [a,x1] a X1 X2 X3 X4 b [x1,x2] [x2,x3] [x3,x4] Altri intervalli da esaminare [x4,b] A. Murli a.a. 2002/2003 STRATEGIA ADATTATIVA LOCALE Si suddivide l’intervallo più a sinistra PILA: Ogni nodo della pila contiene le informazioni su: ¾ Intervallo, ¾ stima dell’integrale, ¾ stima del modulo dell’errore. NODO DELLA PILA [p,q] Q[p,q] |E[p,q]| A. Murli a.a. 2002/2003 48 ENTRAMBE LE STRATEGIE HANNO BISOGNO DI UNA PROCEDURA QE(c,d,f,Q,E) Q[c,d][f] [c,d] QE f La quale ricevuti in input un intervallo [c,d] contenuto in [a,b], ed una funzione integrabile f, E[c,d][f] fornisce in output le stime di I[f] ed E[f] sull’intervallo [c,d] ottenute mediante una COPPIA DI FORMULE INNESTATE. A. Murli a.a. 2002/2003 ESEMPIO di procedura QE con la Formula Trapezoidale Composita. T1[f] = h [f(c) + f(d)] 2 T2[f] = h c + d f(c) + f + f(d) 4 2 |E2[f]| ≅ |T1[f]-T2[f] | / 3 h=d-c A. Murli a.a. 2002/2003 49 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 A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 50 CONTINUA: Un algoritmo ADATTATIVO LOCALE Basato sulla Formula Trapezoidale Composita else endwhile endif 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 A. Murli a.a. 2002/2003 CONTINUA: Un algoritmo ADATTATIVO LOCALE Basato sulla Formula Trapezoidale Composita if (NVAL>=NMAX) then IFAIL:=1 endif print INTEG,ERROR,IFAIL end ADAPT A. Murli a.a. 2002/2003 51 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. A. Murli a.a. 2002/2003 MATLAB E LA QUADRATURA QUAD (fun’,a,b,tol,graf) fun funzione integranda. Deve essere presente in un FILE di nome Fun.m a,b estremi di integrazione. tol tolleranza (opzionale). Se non specificata TOL=10-3. graf intero (opzionale).Se GRAF=1 viene mostrato il grafico della funzione con i nodi utilizzati. A. Murli a.a. 2002/2003 52 MATLAB E LA QUADRATURA ESEMPIO: I[ f ] = 2π ∫ | sin( x ) | dx = 4 0 Creazione del file fun.m contenente la funzione integranda function y = fun(x) y = abs(sin(x)) return end A. Murli a.a. 2002/2003 MATLAB E LA QUADRATURA ESEMPIO: I[ f ] = 2π ∫ | sin( x ) | dx 0 = 4 QUINDI >> a=0; >> b=2*3.1415926; >> res=quad(‘fun’,a,b); res= 4.00000207024612 A. Murli a.a. 2002/2003 53 Domanda: Sia assegnata una tolleranza TOL, da voler rispettare sull’intero intervallo [a,b] . Che tolleranza dobbiamo rispettare sul generico sottointervallo [c,d] ? A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 54 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], m-a b-a a b m m-a = (b-a) / 2 A. Murli a.a. 2002/2003 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 A. Murli a.a. 2002/2003 55 In generale Il rapporto tra le ampiezze di [c,d] e [a,b] è d − c Scegliamo un sottointervallo [c,d], dell’intervallo [a,b] . b−a d-c b-a a c d d-c = (b-a) b d−c b−a A. Murli a.a. 2002/2003 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à d−c TOL’ = TOL b − a A. Murli a.a. 2002/2003 56