Complementi di Matematica e Calcolo Numerico A.A. 2015-2016 Laboratorio 6 - Integrazione numerica Data una funzione f a valori reali per calcolare fornisce la funzione predefinita quad Sintassi: q=quad(f,a,b,tol) input: f Rb a f (x) dx, Matlab funzione integranda a, b estremi di integrazione tol tolleranza per l’errore ( default : 1e − 6) output: q approssimazione dell’integrale Esercizio 1 R5 1 Approssimare l’ integrale −5 1+x2 dx (= arctg(5) − arctg(−5)) con la funzione quad di Matlab: prima con la precisione di default poi richiedendo una precisione di 1e-10; in ogni caso calcolare l’errore assoluto e verificare che corrisponda all’ordine di precisione imposta. (N.B. arctg −→ atan in Matlab) Formule di quadratura semplici per approssimare sono ad esempio: Ipm(f ) = (b − a) f ( a+b 2 ) It(f ) = (b−a) 2 Isim(f ) = a f (x) dx Punto medio (f (a) + f (b)) (b−a) 6 Rb Trapezi (f (a) + 4f ( a+b 2 ) + f (b)) Cavalieri − Simpson Def: Una formula di quadratura si dice che ha grado di precisione p se è esatta per polinomi di grado minore o uguale a p, ovvero Z b f (x) dx ∀f ∈ Pp I(f ) = a Le formule del punto medio e dei trapezi hanno grado di precisione 1 la formula di Simpson ha grado di precisione 3. Esercizio 2 Assegnati i seguenti integrali: Z Z 5 Z 5 5x2 − 3x + 8 dx; 7x − 5 dx; −2 −2 5 3x3 − 2x2 + 5x − 1 dx −2 scegliere in maniera appropriata una tra le seguenti formule di quadratura semplici: punto medio, trapezi e Simpson e calcolare gli integrali indicati. Confrontare il risultato con la soluzione esatta calcolata utilizzando il comando polyint. 2 Formule di quadratura composite Scegliendo una partizione dell’intervallo di integrazione in fissati sottointervalli a = x1 < x2 < · · · < xm+1 = b e sfruttando l’additività dell’integrale rispetto al dominio di integrazione ovvero Z b n Z xi+1 X f (x) dx = f (x) dx a i=1 xi si generano formule composite applicando una formula di quadratura semplice su ogni sottointervallo della partizione data. Formula dei trapezi composita Rb Per approssimare a f (x) dx con la formula dei trapezi composita, si considerano i punti di coordinate (xk , yk ), x1 = a ≤ x2 ≤ · · · ≤ xm+1 = b, yk = f (xk ) e si calcola la quantità: ITc = m X hk k=1 2 (yk + yk+1) dove hk = (xk+1 − xk ), k = 1, . . . m Matlab fornisce la funzione di libreria trapz che implementa tale metodo. Sintassi: int=trapz(x,y) input: x nodi di quadratura y = f (x) output: int funzione integranda nei nodi di quadratura approssimazione dell’integrale 3 Esercizio 3 Si approssimino i seguenti integrali (tra parentesi i valori esatti): R π/2 (= 1) • 0 sin(x) dx R 10 (= esin(10) − e− sin(10)) • −10 cos(x) esin(x) dx A tal scopo si consideri una suddivisione dell’intervallo di integrazione [a, b] in m sottontervalli di uguale ampiezza H = b−a m e si utilizzi il metodo dei trapezi compositi per diversi valori di m = 10, 100, 1000, 10000. Per ogni integrale si calcoli l’errore assoluto e si compili la seguente tabella m 10 100 1000 10000 H Errore assoluto Si verifichi che l’errore è O(H 2). 4 Formula del punto R b medio composita Per approssimare a f (x) dx con la formula del punto medio composita, possiamo suddividere l’intervallo di integrazione [a, b] in m sottointervalli di uguale ampiezza H = b−a m individuati dai punti xk = a + (k − 1) H, k = 1, . . . , m + 1 e calcolare la quantità: IPc M = H m X f (xk + k=1 H ), 2 (Si osservi che la funzione integranda va valutata nei punti medi dei sottointervalli di ampiezza H). Esercizio Si scriva una funzione Matlab con la sintassi indicata che implementi la formula del punto medio composita su m sottointervalli di uguale ampiezza.. Sintassi: int=pmedc(a,b,m,f ) input: a, b estremi di integrazione m numero dei sottointervalli f funzione integranda output: int approssimazione dell’integrale 5 Metodo di Cavalieri Simpson composita Rb Per approssimare a f (x) dx con la formula di Cavalieri-Simpson composita, possiamo suddividere l’intervallo di integrazione [a, b] in m sottointervalli di uguale ampiezza H = b−a m individuati dai punti xk = a+(k−1) H, k = 1, . . . , m+1 e calcolare la quantità: " # m m X X H H c f (xk + ) + f (xm+1) f (xk ) + 4 ISIM = f (x1) + 2 6 2 k=1 k=2 (Si osservi che la funzione integranda va valutata sia negli estremi che nei punti medi dei sottointervalli di ampiezza H). Esercizio Si scriva una funzione Matlab con la sintassi indicata che implementi la formula di Cavalieri Simpson composita su m sottointervalli di uguale ampiezza.. Sintassi: int=simpsc(a,b,m,f ) input: a, b estremi di integrazione m numero dei sottointervalli f funzione integranda output: int approssimazione dell’integrale 6 Esercizio 4 Si considerino i seguenti integrali (tra parentesi i valori esatti): R2 (= log(2) + e2 − e) • 1 x1 + ex dx R5 1 • 0 1+x2 dx (= arctan(5)) e si ripeta quanto richiesto nell’Esercizio 3 ma utilizzando i codici sviluppati per i metodi del punto medio e di Simpson compositi. Si calcoli il valore assoluto dell’errore commesso e si compili la seguente tabella per ciascun integrale e ciascun metodo. m 10 100 1000 10000 H Errore assoluto Si verifichi che l’errore è O(H 2) per il metodo del punto medio e b−a che l’errore è O(H 4) per il metodo di Simpson, con H = . m 7