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