Integrazi one

31
Calcolo per l’Astronomia a.a. 2014/2015 Lauro Moscardini [email protected] Tel. 051‐2095726 Sito web: apps.difa.unibo.it/files/people/lauro.moscardini/calcolo_14‐15

description

scheda di spiegazione integrazione

Transcript of Integrazi one

Page 1: Integrazi one

Calcolo per l’Astronomia a.a. 2014/2015 

Lauro Moscardini [email protected] 

Tel. 051‐2095726 Sito web:  

apps.difa.unibo.it/files/people/lauro.moscardini/calcolo_14‐15 

Page 2: Integrazi one

Programma del corso  

•  Integrazione di funzioni • Metodi di interpolazione di daG 

•  Generazione di numeri casuali e metodi Monte Carlo 

•  Equazioni differenziali ordinarie •  Equazioni differenziali parziali 

Page 3: Integrazi one

Integrazione di funzioni 

Page 4: Integrazi one

Integrazione di funzioni: caso unidimensionale 

Il problema generale e’: 

I = f (x)dxa

b

Grazie al teorema fondamentale del Calcolo Integrale, si cerca la funzione primiBva F(x) tale per cui F’(x)= f(x). Dopo di che si ha che:  

I = f (x)dxa

b

∫ = F(x) ab = F(b) − F(a)

Page 5: Integrazi one

Formule di Integrazione di  Newton‐Cotes 

Strategia: sosGtuire una funzione complicata con una sua approssimazione facile da integrale: 

I = f (x)dxa

b

∫ ≈ fn (x)dxa

b

dove fn(x) e’ un polinomio di forma 

fn x( ) = a0 + a1x1 + a2x

2 + a3x3 + ...+ an−1x

n−1 + anxn

Page 6: Integrazi one

Ordine 1: Regola del trapezoide In questo caso il polinomio e’ al prim’ordine (reOa): 

I = f (x)dxa

b

∫ ≈ f1(x)dxa

b

f1 x( ) = a0 + a1x

f1 x( ) = f (a) +f (b) − f (a)b − a

x − a( )

Equazione della reUa passante per i due punG [a, f(a)] e [b, f(b)]  

Page 7: Integrazi one

Ordine 1: Regola del trapezoide Integrando il polinomio si ha: 

I ≅ f (a) +f (b) − f (a)b − a

x − a( )

a

b

∫ dx

I ≅ b − a( ) f (a) + f (b)2

SBma dell’errore totale locale: 

Et = −112

′ ′ f ξ( ) b − a( )3 dove ξ punto tra a e b 

CommenB:  ‐  l’errore cresce con il cubo della lunghezza dell’intervallino ‐  il risultato e’ esaUo se l’integranda e’ una funzione costante o lineare (f”=0)  

Page 8: Integrazi one

Ordine 1: Regola del trapezoide Come fare a migliorare?  Ridurre la lunghezza dell’intervallino, facendo una applicazione mulBpla del 

metodo su n intervallini! 

Commento:  ‐  l’integrale e’ approssimato dal prodoUo tra la lunghezza dell’intervallino e una sGma dell’altezza media della funzione sullo stesso intervallino  

h =b − an

I = f (x)dxa

a+h

∫ + f (x)dxa+h

a+2h

∫ + ...+ f (x)dxa+(n−2)h

a+(n−1)h

∫ + f (x)dxa+(n−1)h

b

I ≅ b − a( )f (a) + 2 f (a + ih) + f (b)

i=1

n−1

∑2n 

Page 9: Integrazi one

Ordine 1: Regola del trapezoide Come varia la sBma dell’errore? L’intervallo e’ ora lungo  

Commento:  ‐  dimezzando la lunghezza degli intervallini, l’errore si riduce di un faUore 4! e cosi’ via… AUenzione pero’: a un certo punto si diventa dominaG dall’errore di arrotondamento!  

  €

Ei = −112

′ ′ f ξ i( ) b − an

3

h =b − an

Su ogni singolo intervallino si ha 

Et = −1

12n3b − a( )3 ′ ′ f ξ i( ) ≅

i=1

n

∑ −b − a( )3

12n2f "

Page 10: Integrazi one

Ordine 2: Regola di Simpson 1/3 In questo caso il polinomio e’ al second’ordine (parabola): 

I = f (x)dxa

b

∫ ≈ f2(x)dxa

b

f2 x( ) = a0 + a1x + a2x2

h =b − a2

I ≅ b − a( ) f (a) + 4 f (a + h) + f (b)6

I ≅ h3f (a) + 4 f (a + h) + f (b)[ ]

Per definire una parabola servono  3 punB, quindi 

Page 11: Integrazi one

Ordine 2: Regola di Simpson 1/3 

SBma errore totale: 

Et = −h5

90f (4 ) ξ( ) = −

b − a( )5

2880f (4 ) ξ( )

dove ξ punto tra a e b 

Commento:  ‐  Nonostante sia al second’ordine, l’errore cresce con la quinta potenza della lunghezza dell’intervallino!!!  

h =b − an

I ≅ b − a( )f (a) + 4 f (a + ih) + 2 f (a + ih) + f (b)

i= 2,4,6

n−2

∑i=1,3,5

n−1

∑3n

Applicazione mulBpla su n intervallini 

Et ≅ −b − a( )5

180n4f (4 )

SBma errore totale si riduce a: 

Page 12: Integrazi one

Ordine 3: Regola di Simpson 3/8 In questo caso il polinomio e’ al terz’ordine (cubica): 

I = f (x)dxa

b

∫ ≈ f3(x)dxa

b

f3 x( ) = a0 + a1x + a2x2 + a3x

3

h =b − a3

I ≅ b − a( ) f (a) + 3 f (a + h) + 3(a + 2h) + f (b)8

I ≅ 3h8

f (a) + 3 f (a + h) + 3 f (a + 2h) + f (b)[ ]

Per definire una parabola servono 4 punB, quindi 

Page 13: Integrazi one

Ordine 3: Regola di Simpson 3/8 

SBma errore totale: 

Et = −3h5

80f (4 ) ξ( ) = −

b − a( )5

6480f (4 ) ξ( )

dove ξ punto tra a e b 

Commento:  ‐  Stesso ordine di Simpson 1/3, ma con coefficiente minore   solo leggermente piu’ accurata (coefficiente numerico inferiore).  

Page 14: Integrazi one

Ordini superiori 

SBma errore totale: 

Et = −8h7

945f (6) ξ( ) dove ξ punto tra 

a e b 

Ordine 4: Regola di Boole 

I ≅ b − a( ) 7 f (a) + 32 f (a + h) +12(a + 2h) + 32 f (a + 3h) + 7 f (b)90

Ordine 5 

I ≅ b − a( )19 f (a) + 75 f (a + h) + 50(a + 2h) + 50 f (a + 3h) + 75 f (x + 4h) +19 f (b)288

dove ξ punto tra a e b 

SBma errore totale: 

Et = −275h7

12096f (6) ξ( )

Page 15: Integrazi one

Estrapolazione di Richardson 

•  L’estrapolazione di Richardson rappresenta un metodo in cui si combinano tra di loro due diverse sGme numeriche dell’integrale per oUenerne una piu’ accurata, sfruUando la conoscenza dell’andamento dell’errore. 

•  La sua implementazione numerica piu’ efficiente e’ il metodo di Romberg, una tecnica ricorsiva ideale per generare una sGma dell’integrale con una tolleranza sull’errore pre‐definita. 

Page 16: Integrazi one

Estrapolazione di Richardson 

Supponiamo di avere applicato un dato metodo per sGmare l’integrale. Avremo: 

I = I(h) + E(h) I(h) e’ la sBma dell’integrale E(h) e’ il suo errore di troncamento 

Et ≅ −b − a( )3

12n2f " = −

b − a12

h2 f "

h =b − an

Considerando il trapezoide con spaziatura h: 

N.B. Il trapezoide ha un’accuratezza O(h2) 

Page 17: Integrazi one

Estrapolazione di Richardson Supponiamo ora di avere oUenuto due sGme dell’integrale con 

due spaziature diverse, h1 e h2. Avremo: 

I = I(h1) + E(h1) = I(h2) + E(h2)Considerando indipendente da h il valore medio di f”, si ha:    

E h1( )E h2( )

=h12

h22

I(h1) + E h2( ) h1h2

2

= I(h2) + E(h2)€

E h1( ) = E h2( ) h12

h22 

sosGtuendo 

Page 18: Integrazi one

Estrapolazione di Richardson Da cui possiamo ricavare: 

E(h2) ≅I h1( ) − I h2( )1− h1 /h2( )2

Pertanto possiamo migliorare la sGma precedente:    

I = I(h2) + E(h2) ≅ I h2( ) +I h1( ) − I h2( )1− h1 /h2( )2

In parBcolare se h2=h1/2 

I ≅ I h2( ) +I h2( ) − I h1( )22 −1

=43I h2( ) − 1

3I h1( )

Anche se basata sul metodo del trapezoide (applicato due volte!), la nuova sBma ha un’accuratezza O(h4)! 

Page 19: Integrazi one

Estrapolazione di Richardson Il metodo puo’ essere ulteriormente iterato. Se si hanno due 

diverse sGme con accuratezza O(h4) oUenute sempre con h2=h1/2, queste possono essere combinate per oUenere una nuova sGma che avra’ accuratezza O(h6): 

I ≅ 1615I h2( ) − 1

15I h1( )

Combinando due sGme con accuratezza O(h6) si puo’ oUenere una nuova sGma che avra’ accuratezza O(h8): 

I ≅ 6463I h2( ) − 1

63I h1( )

e cosi’ via… 

Page 20: Integrazi one

Algoritmo di integrazione di Romberg Corrisponde all’implementazione numerica dell’estrapolazione di Richardson, 

sempre con h2=h1/2. In generale i coefficienG necessari per combinare le diverse sGme possono essere scrif come: 

I j,k =4 k−1I j+1,k−1 − I j ,k−1

4 k−1 −1k rappresenta l’ordine di accuratezza: k=1 O(h2), k=2 O(h4), k=3 O(h6), … 

j rappresenta il livello di accuratezza: (j+1) e’ piu’ accurato di j 

O(h2)      O(h4)         O(h6)         O(h8)        O(h10) 

Page 21: Integrazi one

Algoritmo di integrazione di Romberg: pseudo‐codice I 

INPUT a, b (limiG di integrazione), INPUT εs (criterio di stop),INPUT maxit (numero massimo di iterazioni) n =1 CALL TRAPEZOIDE (n,a,b,integrale) I1,1= integrale εa=1.1 εs  i=0 DOWHILE (εa> εs) and (i<maxit)      i=i+1      n=2i 

     CALL TRAPEZOIDE(n,a,b,integrale) 

        I i+1,1= integrale       DOFOR k=2 to i+1              j=2+i+k 

       ENDDO 

ENDDO 

I j,k =4 k−1I j+1,k−1 − I j ,k−1

4 k−1 −1

εa =I1,i+1 − I1,iI1,i+1

⋅100

Page 22: Integrazi one

Algoritmo di integrazione di Romberg: pseudo‐codice II (implementata!) 

INPUT a, b (limiG di integrazione), INPUT εs (criterio di stop),INPUT maxit (numero massimo di iterazioni) 

εa=1.1 εs  i=0 DOWHILE (εa> εs) and (i<maxit)      i=i+1      n=2i‐1 

     CALL TRAPEZOIDE(n,a,b,integrale) 

        I i,1= integrale       DOFOR k=2 to i              j=1+i‐k 

       ENDDO 

ENDDO 

I j,k =4 k−1I j+1,k−1 − I j ,k−1

4 k−1 −1

εa =I1,i − I1,i−1I1,i

⋅100

Page 23: Integrazi one

QUADRATURA DI GAUSS •  Nelle formule di Newton‐Cotes, sono uGlizzaG valori della funzione 

in punB predeterminaB regolari.  

•  Nella Quadratura di Gauss, i punG di integrazione sono indeterminaB. 

•  Nell’esempio, l’approssimazione dell’integrale puo’ essere migliorata usando due punB interni scelB in modo ‘intelligente’. 

•  La Quadratura di Gauss offre un metodo per trovare quesG punG. 

Page 24: Integrazi one

QUADRATURA DI GAUSS: metodo dei coefficienB indeterminaB Per il trapezoide avevamo: 

I ≅ b − a( ) f (a) + f (b)2

=b − a2

f a( ) +b − aa

f b( )

Generalizzando: 

I ≅ c0 f x0( ) + c1 f x1( )dove x0 e x1 sono punG incogniG interni all’intervallo di integrazione e c0 e c1 sono opportuni coefficienG, pure da determinarsi  abbiamo 4 incognite da determinare! 

Page 25: Integrazi one

QUADRATURA DI GAUSS: Servono quaUro condizioni per trovare le quaUro incognite: 

c0 f x0( ) + c1 f x1( ) = 1dx−1

1

∫ = 2

c0 f x0( ) + c1 f x1( ) = xdx−1

1

∫ = 0

c0 f x0( ) + c1 f x1( ) = x 2dx−1

1

∫ =23

c0 f x0( ) + c1 f x1( ) = x 3dx−1

1

∫ = 0

NOTA: con un semplice cambiamento di variabile, qualsiasi integrale puo’ essere trasformato in un integrale tra ‐1 e 1! 

Page 26: Integrazi one

QUADRATURA DI GAUSS: 

SosGtuendo si ha: 

c0 + c1 = 2c0x0 + c1x1 = 0

c0x02 + c1x1

2 =23

c0x03 + c1x1

3 = 0

NOTA: con la scelta delle condizioni imposte, i valori risultanG delle incognite (c0, c1, x0, x1) sono tali da garanGre che l’integrale sia esaOo fino all’ordine cubico! 

Page 27: Integrazi one

QUADRATURA DI GAUSS: 

Risolvendo si ha: 

c0 =1c1 =1

x0 = −13≈ −0.5773503

x1 =13≈ 0.5773503

Pertanto: 

I ≅ f − 13

+ f 1

3

Formula a due punB di 

Gauss‐Legendre 

Page 28: Integrazi one

Per cambiare i limiB di integrazione, e’ necessario fare il seguente cambio di variabile: 

x = a0 + a1xdDall’estremo inferiore (x=a  xd=‐1) 

Dall’estremo superiore (x=b  xd=1) 

a = a0 + a1 ⋅ −1( )

b = a0 + a1 ⋅ +1( )

Le soluzioni sono: 

a0 =b + a2

a1 =b − a2

x =b + a( ) + b − a( )xd

2

dx =b − a( )2

dxd

Per cui 

il cui differenziale e’ 

Page 29: Integrazi one

QUADRATURA DI GAUSS: Formule agli ordini superiori 

In maniera analoga si possono sviluppare versioni della quadratura di Gauss agli ordini superiori. UGlizzando n punG si ha : 

I ≅ c0 f x0( ) + c1 f x1( ) + ...+ cn−1 f (xn−1)

Per esempio, la formula di Gauss‐Legendre a 3 punB ha i seguenG 6 parametri: 

c0 = 0.555555556c1 = 0.888888889c2 = 0.555555556

x0 = −0.774596669x1 = 0.0x2 = 0.774596669

Per oUenerli sono staG uGlizzaG 6 condizioni, pertanto la formula e’ esaOa per funzioni fino all’ordine 5 compreso!    

Et ≈ f (6) ξ( )

Page 30: Integrazi one

Formule agli ordini superiori 

Et ≈ f (6) ξ( )

Et ≈ f (4 ) ξ( )

Et ≈ f (8) ξ( )

Et ≈ f (10) ξ( )

Page 31: Integrazi one

INTEGRALI IMPROPRI Bisogna fare un cambio di variabile! 

f x( )a

b

∫ dx =1t 21/ b

1/ a

∫ f 1t

dt

Funziona quando f tende a zero piu’ velocemente di 1/x2 quando x tende a ∞ e per ab>0. AltrimenG conviene spezzare l’integrale in due parG. Esempio: 

f x( )−∞

b>0

∫ dx = f x( )−∞

−A

∫ dx + f x( )−A

b

∫ dx

FaUo normalmente FaUo cambiando variabile