Corso di Approssimazioni Numeriche, A.A. 2007/08 Esercitazione di laboratorio su: Calcolo di integrali su domini bi-dimensionali Prof. S. De Marchi - 28 febbraio 2008 1 Generalità sulla cubatura Sia D R n, n 2. Sia x = (x 1,...,x n un generico punto di D. Una formula di cubatura è un espressione l I(f = f(xdx w j f(x j := Ĩ(f (1 D dove i punti x j sono in D. Per ragioni di stabilità chiederemo che w j 0. Definizione 1. Una formula di cubatura si dirà di ordine o grado di precisione k se essa è esatta per tutti i polinomi p P n k (ovvero polinomi di grado k in Rn. Circa l errore di cubatura, se f C k+1 ( D e la formula è di ordine k, vale la stima j=0 I(f Ĩ(f c f k+1,,d (2 dove k+1,,d indica la seminorma delle derivate parziali di ordine k + 1 in norma e c indica una costante indipendente da f Teorema 1. Sia D convesso e limitato in R n. Allora il numero minimo m di nodi x j affinchè (1 abbia ordine k è ( n + k 2 ( m + k k 2 m. k Inoltre, il solo metodo di ordine 1 ad un solo nodo è f(xdx mis(df(µ, dove µ indica il baricentro di D. D 2 Formule su un n-simplesso T n Ci soffermeremo sulle cosidette formule simmetriche Definizione 2. Una formula di cubatura su T n è simmetrica se è invariante per permutazioni delle coordinate baricentriche dei nodi x j. Definizione 3. Indicando con λ i le n + 1 coordinate (dipendenti baricentriche su T n, nel caso del triangolo ovvero, i metodi simmetrici sono caratterizzati dalle seguenti proprietà 1
Un metodo è simmetrico di ordine 1 se è esatto per f(λ 1,λ 2,λ 3 = λ 1 (ovvero coincide con un polinomio di primo grado. Un metodo è simmetrico di ordine 2 se è esatto per f(λ 1,λ 2,λ 3 = λ 1, λ 2 1, λ 1λ 2 (non servono λ 2 e λ 3 perchè si usa la simmetria. Un metodo è simmetrico di ordine 3 se è esatto per f(λ 1,λ 2,λ 3 = λ 1, λ 2 1, λ2 1 λ 2, λ 1 λ 2 λ 3. 2.1 Metodi simmetrici ottimali sul triangolo Sia il triangolo di vertici A,B,C T1. Si tratta di una formula di ordine 1 ad un nodo. f(xdx mis( f(a ( dove a = 1 n+1,..., 1 n+1. Facciamo osservare che questo metodo funziona anche su T n, per questo lo abbiamo definito nel caso generale, ovvero con n 2. T2. Si tratta di una formula di ordine 2 a 3 nodi. f(xdx mis( 1 3 {f(a A,B + f(a A,C + f(a B,C } dove a A,B, a A,C e a B,C indicano i punti medi dei del corrispondenti lati. Alternativamente lo stesso ordine di esattezza lo si ottiene con la formula seguente. T3. Si tratta di una formula di ordine 2 a 3 nodi. f(xdx mis( 1 3 {f(x 1 + f(x 2 + f(x 3 } dove x 1 = ( 2 3, 1 6, 1 6 x2 = ( 1 6, 2 3, 1 6 e x3 = ( 1 6, 1 6, 2 3. T4. Si tratta di una formula di ordine 3 a 4 nodi. [ 25 f(xdx mis( 48 {f(x 1 + f(x 2 + f(x 3 } 9 ] 16 f(a dove x 1 = ( 3 5, 1 5, 1 5 x2 = ( 1 5, 3 5, 1 5 e x3 = ( 1 5, 1 5, 3 5 e a indica il baricentro. 2.2 Metodi simmetrici ottimali sul tetraedro Presentiamo solo 2 formule ottimali. 2
S1. Si tratta di una formula di ordine 2. f(xdx mis(t 3 T 3 4 f(x j ( dove x j = 5 5 20, 5 5 20, 5 5 20, 5+3 5 20 e i suoi tre permutati. Una formula analoga, in termini di precisione, è la seguente: f(xdx mis(t 3 1 T 3 10 f(a i,j + 2 5 f(a dove a i,j sono i punti medi dei lati del tetraedro e a indica il baricentro. S2. Si tratta di una formula di ordine 3. f(xdx mis(t 3 T 3 20 9 j i j=1 f(x j 16f(a j=1 dove x j = ( 1 6, 1 6, 1 6, 1 2 e come al solito a indica il baricentro. 3 Formule su ipercubi Sia C n = [ 1,1] n un ipercubo in R n. Essendo la struttura di un ipercubo abbastanza semplice, un procedimento elementare consiste nel costruire dei metodi simmetrici come prodotto-tensoriale di n metodi elementari in dimensione 1 sul segmento [ 1,1]. Usando la tecnica del prodotto-tensoriale si ottengono metodi esatti sullo spazio p(x Q n k ovvero dei polinomi di grado k sull ipercubo C n p(x = 0 i j k,1 j n α i1...i n x i 1 1 x in n. Nota: dim(q n k := (k + 1n e P n k Q k P n k. Come fatto nella precedente sezione, iniziamo con il quadrato, per poi passare al cubo. 3.1 Metodi sul quadrato Indichiamo con C 2 = [ 1,1] 2 il quadrato di vertici a i, 1,...,4. Q1. Questa è la formula dei trapezi. Si tratta di una formula di ordine 1 a 4 nodi. C 2 f(xdx f(a i 3
Q2. Questa è la formula di Simpson. Si tratta di una formula di ordine 3 (esatta su Q 3 a 9 nodi. [ ] f(xdx 1 f(a i + 4 f(a i,j + 16f(0 C 2 9 dove a i,j = 1 2 (a i + a j sono i punti medi dei 4 lati, mentre 0 indica il baricentro del quadrato. Q3. Questa è una formula di Gauss-Legendre. Si tratta di una formula di ordine 3 (esatta su Q 3 a 4 nodi, quindi ottimale [ ] f(xdx C 2 f(x i dove x i = (± 3 1, ± 3 1 sono i punti ottenuti prendendo il prodotto tensoriale degli zeri dei polinomi di Legendre di grado 2 in [ 1,1]. 3.2 Metodi sul cubo Indichiamo con C 3 il cubo. C1. Si tratta di una formula non simmetrica a 4 nodi, di ordine 2 e ottimale. C 3 f(xdx 2 ( dove x 1 = 2,0, 3 1 2 x 6 2 = (0, 6, 3 1 x 3 = f(x i ( 6 2 1,0, 3 e x 4 = C2. Si tratta di una formula simmetrica a 15 nodi, di ordine 5. [ 8 ] f(xdx 1 6 f(a i + 20 f(x i 56f(0 C 3 9 dove al solito, a i, i = 1,...,8 sono i vertici, mentre x 1 = permutando e cambiando il segno. 4 Esercitazione proposta ( 0, 2 6, 1 3 ( 2 5,0,0 e gli altri si ottengono Si consideri la funzione f(x,y = y sin(x + x cos(y su D = {(x,y : π x 2π, 0 y π}. 1. Calcolare l errore assoluto di cubatura usando le formule Q 1, Q 2, Q 3. Come valore esatto dell integrale, usare il valore restituito usando la funzione dblquad. 4
2. Per avere un approssimazione più accurata, calcolare l integrale usando N = n 2, n > 3 punti di Chebyshev-Lobatto. Per rispondere al secondo quesito, facciamo prima alcune osservazioni analitiche, partendo dal caso uni-dimensionale 1 1 f(xdx = b a f(y(xdy (3 dove la trasformazione lineare y(x = (b + a/2 + x(b a/2 consente di passare dall integrale tra [ 1,1] all integrale in [a,b]. Da cui dy = (b a/2 dx ovvero 2/(b ady = dx. Inoltre, la funzione da integrare nel membro di sinistra in (3 non è f(x ma 1 x 2 f(x, essendo associata all integrale nella misura di Chebyshev. Pertanto per passare alla funzione peso corretta in [a, b], dovremo applicare la trasformazione ( 1 ( 2y (b + a 1 + b a 2y (b + a b a che trasforma la funzione peso 1 x 2 da [ 1,1] ad [a,b]. Se indichiamo con n i=0 w if(x i la formula di quadratura in [ 1,1], la formula corrispondente n i=0 ŵif(ˆx i in [a,b], avrà i nodi ˆx i e i pesi ŵ i (4 ˆx i ŵ i = (b + a/2 + (b a/2x i = (b a/2w i Vediamo come procedere dal punto di vista implementativo. Facciamo uso delle funzioni Matlab/Octave r jacobi.m e lobatto.m del toolbox di quadratura di W. Gautschi (visto alla prima esercitazione, che ci consentono di determinare i nodi e i pesi di cubatura in [ 1,1], dando le due istruzioni ab=r_jacobi(n,-0.5; xw=lobatto(n-2,ab,-1,1 L array xw ha dimensione n 2: nella prima colonna avremo i nodi in [-1,1] (ovvero i punti di Chebyshev-Lobatto, nella seconda i relativi pesi di Chebyshev-Lobatto. Per ottenere i nodi di cubatura nel dominio D = [ax,bx] [ay,by] basterà dare l istruzione [X,Y]=meshgrid((bx-ax/2*xw(:,1+(ax+bx/2,(by-ay/2*xw(:,1+(ay+by/2; Per determinare i pesi corretti, relativi al dominio D, faremo uso delle trasformazioni Wx=diag(xw(:,2*(bx-ax/2; Wy=diag(xw(:,2*(by-ay/2; 5
che ci consentono di determinare due matrici diagonali le cui diagonali sono proprio i pesi nelle direzioni x e y. Per avere l approssimazione dell integrale cercata basterà calcolare il seguente prodotto scalare Wx*F(X,Y,ax,bx,ay,by*Wy dove F( indica la matrice della funzione valutata nei nodi. Infatti, la formula di cubatura-prodotto si scrive, nel nostro caso, come n j=1 n w i,x w j,y f(x i,y j. La funzione F( deve pesare la funzione originale con il peso trasformato(cfr. equazione (4 (1 y(x(1 + y(x (1 z(y(1 + z(y. Una possibile implementazione della funzione F( è come segue: function z=f(x,y,ax,bx,ay,by A=(2*x-(bx+ax/(bx-ax; B=(2*y-(by+ay/(by-ay; peso=sqrt((1-a.*(1+a.*(1-b.*(1+b; z=(y.*sin(x+x.*cos(y.*peso; end Tempo assegnato: 2 ore. 5 Approffondimenti 5.1 Cubatura su domini generali Forse il più completo package di cubatura in due dimensioni è il CUBPACK++ di Ronald Cools dell Università di Leuven (Belgio http://www.cs.kuleuven.be/ ronald/ a cui si rimanda per approffondimenti teorici e implementativi. 5.2 Il metodo Monte-Carlo e il calcolo di integrali Il Metodo Monte Carlo fa parte della famiglia dei metodi statistici non parametrici. È utile per superare i problemi computazionali legati ai test esatti (ad esempio i metodi basati sulla distribuzione binomiale e calcolo combinatorio, che per grandi campioni generano un numero di permutazioni eccessivo. Il metodo è usato per trarre stime attraverso simulazioni. Si basa su un algoritmo che genera una serie di numeri tra loro incorrelati, che seguono la distribuzione di probabilità che si suppone abbia il fenomeno da indagare. L incorrelazione tra i numeri è assicurata da un test χ quadrato. La simulazione Monte Carlo calcola una serie di realizzazioni possibili del fenomeno in esame, con il peso proprio della probabilità di tale evenienza, cercando di esplorare in modo denso tutto 6
lo spazio dei parametri del fenomeno. Una volta calcolato questo campione rappresentativo, la simulazione esegue delle misure delle grandezze di interesse su tale campione. La simulazione Monte Carlo è ben eseguita se il valore medio di queste misure sulle realizzazioni del sistema converge al valore vero. Da un altro punto di vista le simulazioni Monte Carlo non sono altro che una tecnica numerica per calcolare integrali. Esempio 1. Questo è un esempio classico della divulgazione del metodo Monte-Carlo. Sia data una zona rettangolare o quadrata di cui la lunghezza dei lati è conosciuta. Al centro di quest area si trova un lago la cui superficie è sconosciuta. Grazie alle misure dei lati della zona, si conosce l area del rettangolo. Per determinare l area del lago, si chiede ad una truppa armata di tirare X colpi di cannone in modo aleatorio su questa zona. Contiamo in seguito il numero N di palle che sono restate sulla terra, possiamo quindi determinare il numero di palle che sono cadute dentro il lago: X-N. È sufficiente quindi stabilire un rapporto tra i valori: S T S L = X X N S L = (X N S T X Per esempio, se il terreno ha superficie di S T = 1000m 2, e supponiamo che l armata tiri 500 palle e che 100 proiettili sono caduti dentro il lago allora la superficie del lago è: S L = 100 1000/500 = 200 m 2. Stima della superficie del lago grazie a dei tiri di cannone casuali Naturalmente, la qualità della stima migliora aumentando il numero dei tiri ed assicurandosi che l artiglieria non miri sempre lo stesso posto ma copra bene la zona. Questa ultima ipotesi coincide con l ipotesi di avere un buon generatore di numeri aleatori, questa condizione è indispensabile per avere dei buoni risultati con il metodo Monte Carlo. Un generatore distorto è come un cannone che tira sempre nello stesso punto: le informazioni che genera sono ridotte. 7