Laboratorio Calcolo Numerico
Esercizio
PROBELEMA MATEMATICO: Si vuole calcolare l’integrale In= 1
e Z 1
0
xnex dx con n ≥ 0
1. PRIMO METODO ED ALGORITMO per risolvere il problema matematico: Utiliz- zando l’integrazione per parti, gli integrali Ii, i = 1, . . . , n possono essere calcolati con il seguente schema iterativo
(
I1 = 1
Ii = 1 − i Ie i−1, i = 2, . . . , n
E possibile dimostrare che, ∀i, 0 < I` i <
Z 1 0
xi dx = 1
i + 1. Pertanto lim
i→∞Ii = 0 ed i valori devono essere decrescenti in valore assoluto.
Si scriva un algoritmo per calcolare, fissato n = 21, gli integrali Ii, i = 1, . . . , n, lo si traduca poi in uno script Matlab e lo si esegua definendo le variabili in semplice precisione, visualizzando tutti i valori ottenuti e confrontandoli con la tabella di pag. 40 del libro. Si produca poi un altro script Matlab che lavori con il default della doppia precizione. Cosa cambia nei risultati?
Tale algoritmo per il calcolo dell’integrale In `e instabile.
2. SECONDO METODO ED ALGORITMO per risolvere il problema matematico: Es- iste un algoritmo stabile (noto come algoritmo di Miller) che costruisce la famiglia di integrali in senso regressivo, ovvero facendo decrescere gli indici.
Si fissa un indice N ∈ N (anche non troppo grande) con N > n, si pone IN uguale ad un valore arbitrario qualsiasi, oppure a zero e si considera il seguente algoritmo iterativo
( IN = a Ii−1 = 1
i (1 − Ii) , i = N, N − 1, . . . , n con a ∈ R arbitrario.
Naturalmente i primi integrali calcolati, rispetto agli integrali esatti, saranno affetti da un errore non trascurabile che per`o diminuir`a proseguendo con il calcolo degli integrali.
Si scriva un algoritmo per calcolare gli integrali Ii, i = N, . . . , n, lo si traduca poi in uno script Matlab e lo si esegua definendo le variabili in semplice precisione, visualizzando tutti i valori ottenuti.
Si esegua programma con i seguenti dati
• N = 13, I13= 1000, n = 2 e si confrontino i risultati con la prima tabella di pag. 41.
• N = 20, I20= 1000, n = 2 e si confrontino i risultati con la seconda tabella di pag. 41.
• N = 50, I50= 1000, n = 20
Si produca poi un altro script Matlab che lavori con il default della doppia precizione. Cosa cambia nei risultati?
Tale algoritmo per il calcolo dell’integrale `e stabile.