Quadratura numerica
Alvise Sommariva
Universit`a degli Studi di PadovaQuadratura numerica
Problema.
Un classico problema dell’analisi numerica `e quello di calcolare l’integrale definito di una funzione f in un intervallo avente estremi di integrazione
−∞ < a < b < +∞cio`e [1, p.206, p.270].
I (f ) := I (f , a, b) =
Z b
a
f (x )dx . La nostra intenzione `e di approssimare I (f ) come
I (f ) ≈ QN(f ) :=
N
X
i =1
wif (xi) (1)
Formule di Newton-Cotes
Vediamo alcune formule di Newton-Cotes. Definizione (Regola del trapezio)
La formula
I (f ) ≈ S1(f ) := S1(f , a, b) :=
(b − a) (f (a) + f (b)) 2
si chiamaregola del trapezio. Si dimostra che l’errore compiuto `e E1(f ) := I (f ) − S1(f ) = −h3 12 f (2) (ξ), ξ ∈ (a, b) (2)
da (2), si vede che il suo grado di precisione `e 1 in quanto
se f ∈ P1, allora f(2)(ξ) = 0 e quindi la formula `e esatta,
Formule di Newton-Cotes
Definizione (Regola di Cavalieri-Simpson) La formula I (f ) ≈ S3(f ) := S3(f , a, b) := b − a 6 f (a) + 4f (a + b 2 ) + f (b)
si chiamaregola di Cavalieri-Simpson. Si dimostra che l’errore compiuto `e E3(f ) := I (f ) − S3(f ) = −h5 90 f (4) (ξ), h = b − a 2 , ξ ∈ (a, b)
il grado di precisione `e 3 (e non 2 come previsto!) in quanto
se f ∈ P3, allora f(4)(ξ) = 0 e quindi la formula `e esatta,
Formule di Newton-Cotes composte
Definizione (Formule composte)
Si suddivida l’intervallo (chiuso e limitato) [a, b] in N subintervalli Tj= [xj, xj +1] tali che xj= a + jh con h = (b − a)/N. Dalle propriet`a dell’integrale Z b a f (x ) dx = N−1 X j =0 Z xj +1 xj f (x ) dx ≈ N−1 X j =0 S (f , xj, xj +1) (3)
dove S `e una delle regole di quadratura finora esposte (ad esempio S3(f )). Le formule descritte in (3) sono dettecomposte.
Formule di Newton-Cotes composte
Due casi particolari sono le formule dei trapezi e di Cavalieri-Simpson composta. Definizione (Formula dei trapezi)
Siano xi = a + i − 1h, i = 1, . . . , N con h = (b − a)/N. La formula S1(c):= h f (x0) 2 + f (x1) + . . . + f (xN−1) + f (xN) 2 (4) si chiamadei trapezi(o del trapezio composta).
Si dimostra che
l’errore compiuto `e per un certo ξ ∈ (a, b)
E1(c)(f ) := I (f ) − S1(c)(f ) =−(b − a)
12 h
2
f(2)(ξ), h = (b − a)
N .
Formule di Newton-Cotes composte
Definizione (Formula di Cavalieri-Simpson composta) Fissati N subintervalli, sia h =b−a
N . Siano inoltre xk= a + kh/2, k = 0, . . . , 2N. La formula I (f ) ≈ S3(c)(f ) := h 6 " f (x0) + 2 N−1 X r =1 f (x2r) + 4 N−1 X s=0 f (x2s+1) + f (x2N) # (5) `e nota come diCavalieri-Simpson composta.
Si dimostra che
Implementazione Matlab di alcune formule composte
Mostreremo di seguito un’implementazione in Matlab/Octave della formula composta dei trapezi e di Cavalieri-Simpson.
f u n c t i o n [ x , w ]= t r a p e z i _ c o m p o s t a ( N , a , b )
% FORMULA DEI TRAPEZI COMPOSTA. % INPUT :
% N : NUMERO SUBINTERVALLI . % a , b : ESTREMI DI INTEGRAZIONE . % OUTPUT :
% x : NODI INTEGRAZIONE .
% w : PESI INTEGRAZIONE ( INCLUDE I L PASSO ! ) .
h=(b−a ) / N ; % PASSO INTEGRAZIONE .
x=a : h : b ; x=x ’ ; % NODI INTEGRAZIONE .
w=o n e s ( N + 1 , 1 ) ; % PESI INTEGRAZIONE .
Implementazione Matlab di alcune formule composte
La funzionetrapezi compostaappena esposta calcola i nodi e i pesi della omonima formula composta.
L’unica difficolt`a del codice consiste nel calcolo dei pesi w. Essendo per loro definizione I (f ) ≈ S1c(f ) := N X i =0 wif (xi) (6)
come pure per (4)
Implementazione Matlab di alcune formule composte:
trapz
Si potrebbe usare il comando Matlabtrapznella sua implementazione >> h e l p t r a p z
T R A P Z T r a p e z o i d a l n u m e r i c a l i n t e g r a t i o n .
Z = T R A P Z ( Y ) c o m p u t e s an a p p r o x i m a t i o n of the i n t e g r a l of Y via the t r a p e z o i d a l m e t h o d ( with unit s p a c i n g ) . To c o m p u t e the i n t e g r a l
f o r s p a c i n g d i f f e r e n t f r o m one , m u l t i p l y Z by the s p a c i n g i n c r e m e n t .
For vectors , T R A P Z ( Y ) is the i n t e g r a l of Y . . . . .
Implementazione Matlab di alcune formule composte
Vediamone i dettagli in Matlab per il calcolo di Z 1
0
sin(x )dx = − cos(1) − (− cos(0)) = − cos(1) + 1
≈ 0.45969769413186.
Implementazione Matlab di alcune formule composte
Nota.
Per implementare la regola `e del tutto equivalente usare la function
trapezi compostaotrapz.
Si osserva che `e sbagliato chiamaretrapzsenza il passo h (nell’esempio non si dividerebbe per 10, e invece di 0.45931454885798 avremmo 4.5931454885798).
Implementazione Matlab di alcune formule composte
Per quanto riguarda la formula di Cavalieri-Simpson composta
f u n c t i o n [ x , w ]= s i m p s o n _ c o m p o s t a ( N , a , b )
% FORMULA DI SIMPSON COMPOSTA. % INPUT :
% N : NUMERO SUBINTERVALLI . % a , b : ESTREMI DI INTEGRAZIONE . % OUTPUT :
% x : INTEGRAZIONE .
% w : PESI INTEGRAZIONE ( INCLUDE I L PASSO ! ) .
h=(b−a ) / N ; % AMPIEZZA INTERVALLO .
x=a : ( h / 2 ) : b ; x=x ’ ; % NODI INTEGRAZIONE .
w=o n e s ( 2∗ N +1 ,1) ; % PESI INTEGRAZIONE .
Implementazione Matlab di alcune formule composte
Una volta noti il vettore (colonna) x dei nodi e w dei pesi di integrazione, se la funzione f `e richiamata da un m-file f.m, basta
fx=f ( x ) ; % VALUT . FUNZIONE .
I=w ’∗ fx ; % VALORE INTEGRALE .
per calcolare il risultato fornito dalla formula di quad. composta.
Ricordiamo che se w = (wk)k=1,...,M, fx = (f (xk))k=1,...,M sono due vettori colonna allora il prodotto scalare
w ∗ fx := M X k=1 wk· fxk:= M X k=1 wk· f (xk)
Implementazione Matlab di alcune formule composte
Implementazione Matlab di alcune formule composte
Facciamo ora un altro esempio. Calcoliamo numericamente utilizzando le formule composte sopra citate
Z 1
−1
x20dx = (121/21) − (−1)21/21 = 2/21 ≈ 0.09523809523810. A tal proposito scriviamo il seguente codice demo composte.
a=−1; b =1; N =11; %SCEGLIERE N DISPARI .
N _ t r a p=N −1;
[ x_trap , w_trap ]= t r a p e z i _ c o m p o s t a ( N_trap , a , b ) ;
f x _ t r a p=x _ t r a p . ˆ 2 0 ; % VALUT . FUNZIONE .
I _ t r a p=w_trap ’∗ fx_trap ; % TRAPEZI COMPOSTA.
N _ s i m p s o n =(N−1) / 2 ;
[ x_simp , w_simp ]= s i m p s o n _ c o m p o s t a ( N_simpson , a , b ) f x _ s i m p=x _ s i m p . ˆ 2 0 ; % VALUT . FUNZIONE .
I _ s i m p=w_simp ’∗ fx_simp ; % SIMPSON COMPOSTA.
f p r i n t f(’ \n\ t [ TPZ COMP ] [ PTS ] : % 4 . 0 f ’,l e n g t h( x_trap ) ) ;
f p r i n t f(’ \n\ t [ TPZ COMP ] [ RIS ] : % 1 4 . 1 4 f ’, I_trap ) ;
f p r i n t f(’ \n\ t [ SIMPS .COMP ] [ PTS ] : % 4 . 0 f ’,l e n g t h( x_simp ) ) ;
f p r i n t f(’ \n\ t [ SIMPS .COMP ] [ RIS ] : % 1 4 . 1 4 f ’, I_simp ) ;
ottenendo
[ TPZ COMP ] [ PTS ] : 11
[ TPZ COMP ] [ RIS ] : 0 . 2 0 4 6 2 6 3 1 5 0 5 0 2 4 [ SIMPS . COMP ] [ PTS ] : 11
Esercizio
Usando la formula composta dei trapezi e di Cavalieri-Simpson, con n = 2, 4, 8, . . . , 512 suddivisioni equispaziate dell’intervallo di integrazione, calcolare Rπ 0 exp (x ) · cos (4x )dx = exp (π)−1 17 ; R1 0x 5/2dx = 2 7; Rπ −πexp (cos (x ))dx = 7.95492652101284; Rπ/4 0 exp (cos (x ))dx = 1.93973485062365; R1 0x 1/2 dx = 23.
Bibliografia
K. Atkinson, Introduction to Numerical Analysis, Wiley, 1989. K. Atkinson e W. Han, Theoretical Numerical Analysis, Springer, 2001. V. Comincioli, Analisi Numerica, metodi modelli applicazioni, Mc Graw-Hill, 1990. S.D. Conte e C. de Boor, Elementary Numerical Analysis, 3rd Edition, Mc Graw-Hill, 1980. A. Quarteroni e F. Saleri, Introduzione al calcolo scientifico, Springer Verlag, 2006. A. Suli e D. Mayers, An Introduction to Numerical Analysis, Cambridge University Press, 2003. Wikipedia, Regola del trapezio,http://it.wikipedia.org/wiki/Regola del trapezio.