Algoritmi e dintorni Integrazione numerica: controllo dell’errore Prof. Ettore Limoli Metodi di integrazione numerica Nei vari metodi di integrazione numerica non è di facile determinazione l’errore di approssimazione. Il metodo più semplice per avere una stima dell’errore è quello di far variare il numero N di divisioni dell’intervallo di integrazione e confrontare le varie stime ottenute. Prendiamo, ad esempio, la formula di Simpson 1/3, già presentata in altra lezione. Essa è data da: π π 2 π π β 2 2 −1 ∫ π(π₯) ππ₯ ≈ ∑ π½π = β (π¦0 + 4 ∑ π¦2π−1 + 2 ∑ π¦2π + π¦π ) 3 π=1 π=1 π=1 π Dove l’intervallo [a, b] è suddiviso in un numero pari n di sottointervalli di ampiezza β = π−π π mediante i punti di suddivisione xi = a + i ο h, con i =0, 1, 2,…, n. Costruiamo le seguenti funzioni VBA in Excel: Option Explicit Public Function f(x As Double) As Double f = Sin(x) End Function Public Function Simpson(a As Double, b As Double, n As Integer) As Double Dim x As Double, h As Double, S As Double Dim i As Integer n = Int(Abs(n)) If Int(n / 2) <> n / 2 Then MsgBox ("N deve essere pari") Simpson = 1 / 0 Else h = (b - a) / n S=0 For i = 0 To n / 2 - 1 x=a+2*i*h S = S + f(x) + 4 * f(x + h) + f(x + 2 * h) Next i Simpson = S * h / 3 End If End Function ‘evita n non interi o negativi ‘se n non è pari ‘visualizza la finestra di dialogo ‘forza condizione di errore ‘determina h ‘azzera il sommatore ‘determina il valore di x di inizio intervallo ‘aggiorna il sommatore ‘assegna il valore della funzione Ad ogni passo del ciclo FOR…NEXT si aggiorna il sommatore calcolando la funzione nei tre punti: x 0 = x; x1 = x+h; x2 = x+2h. Si veda la lezione online: Integrazione numerica. A questo punto vediamo come interfacciarci con il foglio di calcolo. 1 Dove sono assegnati i nomi E le formule inserite sono: L’errore è calcolato come differenza, in valore assoluto, tra una stima e la precedente. Le varie stime sono ottenute al variare di N. Ancora un esempio π Vogliamo calcolare una stima di ∫1 ln(π₯) ππ₯ , dove ln(x) è il logaritmo neperiano di x. In VBA di Excel cambiamo la definizione della funzione f come segue: Public Function f(x As Double) As Double f = Log(x) End Function 2 Si noti che le funzioni predefinite VBA non sono le stesse di quelle usate all’interno del foglio di calcolo. Il foglio assumerà l’aspetto seguente: Le formule non cambiano, cambiano solo i valori di a e di b come in figura. Abbiamo usato la funzione Excel EXP() per ottenere il valore di EXP(1) = e1 = e. Considerazioni finali La stima di integrali può essere effettuata quando la funzione data è di difficile integrazione o, addirittura, non è noto un procedimento algebrico di integrazione. Ancora, quando della funzione integranda si conosce solo una tabulazione dei valori e non la sua espressione analitica. La stima dell’errore, fatta in questo modo, ci consente di sapere subito quante cifre decimali esatte abbiamo. Prof. Ettore Limoli 3