Matematica e statistica Versione didascalica: parte 3 Sito web del corso http://www.labmat.it Docente: Prof. Sergio Invernizzi, Università di Trieste e-mail: inverniz@units.it
2.8. Il problema dell’area Supponiamo che una funzione sia positiva (o zero) f(x) 0 per tutti i valori x di un intervallo [a, b], con a < b. L’integrale della funzione f da a a b è l’area della parte di piano compresa fra l’asse X ed il grafico di f, entro le ascisse a e b
Simbologia area ( ) = Esempi:
2.9. Calcolo numerico degli integrali I metodi per il calcolo di integrali che qui trattiamo sono: Metodi di interpolazione: il metodo dei rettangoli, ed il metodo dei trapezi, basati sulla interpolazione di Lagrange; Metodi probabilistici: il metodo di Monte-Carlo, un metodo molto generale basato sulla simulazione di variabili aleatorie; Metodi esatti (o metodi formali), basati sul Teorema Fondamentale del Calcolo.
2.9.1. Metodi di interpolazione Si supponga di conoscere una tabulazione della funzione f(x) 0 a passo costante h sull’intervallo [a, b], con a < b.
2.9.2/3. Metodi dei rettangoli e dei trapezi La funzione può essere interpolata con la interpolazione costante o con la interpolazione lineare può essere approssimato con le aree verdi Sommando aree di rettangoli (metodo dei rettangoli), oppure Sommando aree di trapezi (metodo dei trapezi)
Regole Regola dei rettangoli: Regola dei trapezi: Qui salta l’ultimo punto Regola dei rettangoli: qua no Regola dei trapezi:
La regola dei rettangoli qui definita può essere detta dei rettangoli destri, in quanto tali rettangoli stanno a destra della ascissa in cui sono calcolate le loro altezze. Chi studia può ricavare le regola dei rettangoli sinistri, che stanno a sinistra della ascissa in cui sono calcolate le loro altezze: viene conseguentemente saltato il primo punto: In questo corso utilizziamo di default i rettangoli destri.
Cenno storico
Etimologia di “trapezio” trapezio = banco, tavolo τραπεζα = banca (Τραπεζα τησ Ελλαδοσ, Banco di Napoli, Banco Monte dei Paschi di Siena)
Regola dei rettangoli su R > f <- function(x) 2*(1+exp((-1/5)*(x-4)^2)) > a <- 1 > b <- 5 > n <- 100 > h <- (b-a)/n > xtab <- a + h*c(0:n-1) > h*(sum(f(xtab))) -> integrale > integrale
Regola dei trapezi su R > f <- function(x) 2*(1+exp((-1/5)*(x-4)^2)) > a <- 1 > b <- 5 > n <- 100 > h <- (b-a)/n > xtab <- a + h*c(0:n) > h*(sum(f(xtab))-(f(a)+f(b))/2) -> integrale > integrale
Regola dei rettangoli su TI-82 ClrHome Input "A= ",A Input "B= ",B Input "N= ",N Input "F(X)= ",Y1 (B-A)/ N -> H Y1(A)-> S For(K,2,N,1) S+Y1(A+(K-1)*H) -> S End S*H -> S Disp "Integrale= ",S
Regola dei trapezi su TI-82 ClrHome Input "A= ",A Input "B= ",B Input "N= ",N Input "F(X)= ",Y1 (B-A)/N -> H (Y1(A)+ Y1(B))/2 -> S For(K,2,N,1) S+Y1(A+(K-1)*H) -> S End S*H -> S Disp "Integrale= ",S
Stima dell’errore Metodo dei rettangoli Metodo dei trapezi Ad esempio per il calcolo di si può assumere M1 = M2 = 1 per cui con “sole” n = 250 suddivisioni si ha | - Rn | 0.0197392 (NB: si divide per n ) | - Tn | 0.00024805 (NB: si divide per n² )
Esercizio Calcolare con il metodo dei trapezi con n = 250 e fornire una stima dell’errore esaminando graficamente la derivata seconda con R (o con la funzione TRACE della TI-82) Suggerimento: I matematici hanno dimostrato che per questo integrale (di una funzione importantissima: la gaussiana) non esistono metodi esatti.
> f <- function(x) 2*(1+exp(-(1/5)*(x-4)^2)) > a <- 1 > b <- 5 > n <- 250 > h <-(b-a)/n> x<-a+c(0:n)*h > y <-f(x) > plot(x,y) > (sum(y)-(y[1]+y[n+1])/2)*h [1] 13.60861 > f2 <- function(x) (4/25)*(27-16*x+2*x^2)*exp(-(1/5)*(x-4)^2) > curve(abs(f2(x)),1,5) > M2 <- 0.8 > (1/8)*M2*(b-a)^3/n^2 [1] 0.0001024 >
2.9.4. Metodo Monte-Carlo Calcolare l’area della parte di piano definita dalla disuguaglianza Fissiamo un rettangolo [a, b] × [c, d ] che contenga tutto il “pesce” e spariamo n = 50000 (cinquantamila) punti a caso nel rettangolo. Contiamo il numero k dei punti che colpiscono il pesce (bordo del pesce compreso). Allora sarà: area cercata = (k / n ) × area totale del rettangolo
Esempio {{a, b}, {c, d}} = {{-0.15, 1.37}, {-0.35, 0.35}}; area totale = (b - a) (d - c) = 1.064; n = 50000; k = 34280; Integrale (o area) = 0.729478 Formalmente sarebbe (ma gli estremi sono comunque calcolati numericamente!)
Metodo Monte-Carlo su R ycaso (insuccesso) ycaso (successo) xcaso xcaso
Metodo Monte-Carlo su R Il comando which > x <- c(1,3,4,1,3,5,6,3) > z <- which(x < 4) > z [1] 1 2 4 5 8 x[1]=1 x[8]=3 x[5]=3 x[2]=3 x[4]=1 z ha 5 elementi, che non sono i cinque elementi di x minori di 4, bensì i cinque indici di tali elementi, ordinati come lo sono in x. La lista c(1,3,1,3,3)degli elementi di x minori di 4 è x[z].
Metodo Monte-Carlo su R > f <- function(x) formula di f(x) > a <- valore di a > b <- valore di b > c <- valore di c > d <- valore di d > prove <- numero delle prove > xcaso <- runif(prove,min=a,max=b) > ycaso <- runif(prove,min=c,max=d) > z <- which(ycaso < f(xcaso)) > successi <- length(z) > p <- successi/prove > integrale <- p*(b-a)*(d-c) > plot(xcaso[z],ycaso[z], col="red") > plot(f,0,b, add=TRUE, col="blue")
Metodo Monte-Carlo su TI-82, I (in blu i comandi essenziali) ClrHome ClrDraw PlotsOff FnOff Disp "----------------" Disp "Integrazione" Disp "di f(x) 0 " Disp "Met. Monte Carlo" Input "A= ",A Input "B= ",B Input "N= ",N Input "f(x)= ", Y1 Esempio:
Metodo Monte-Carlo su TI-82, II (B-A)/100 -> W max(seq(Y1(X),X,A,B,W) -> D A -> Xmin B -> Xmax C -> Ymin D -> Ymax AxesOff DrawF Y1(X) 0 -> S Text(55,1,"Successi =") Text(47,1,"Prove =")
Metodo Monte-Carlo su TI-82, III For(K,1,N) Text(47,28,K) A+rand*(B-A) -> X C+rand*(D-C) -> Y If Y Y1(X) Then Pt-On(X,Y) S+1 -> S Text(55,40,S) End Text(5,60,"[ ENTER ]") Pause ClrHome (B-A)*(D-C)*S/N -> I Disp "Integrale =",I