Integrazione numerica: controllo dell`errore

annuncio pubblicitario
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
Scarica