Sei sulla pagina 1di 2

Laboratorio di Calcolo Numerico e Programmazione

Aritmetica finita

Esercizio 1.
Scrivere uno script che calcoli l’epsilon di macchina (per approssimazioni successive).
Esercizio 2.
Si consideri la successione
2
 
xn = n log 1 − .
3n
Sapendo che la successione è monotona decrescente e che limn→∞ = −2/3:
a) si calcoli xn per n = 10i , i = 0, ..., 20,
b) si confronti il comportamento della successione teorica con quello della successione
ottenuta, motivando le differenze riscontrate.
Esercizio 3.
Scrivere una funzione che, dati x ∈ R e n ∈ N, approssimi il valore di exp(x) usando il suo
sviluppo di Taylor centrato in 0 di ordine n tramite il seguente algoritmo per il calcolo di
Pn xk
k=0 k! .

Input: x ∈ R, n ∈ N.
Output: s

• Poni s = 1 e p = 1

• Per k = 1,2,...,n

p = p · (x/k)
s=s+p

(a) Si utilizzi tale funzione per approssimare ex in x = 10, con n = 40 e n = 50. Sup-
ponendo esatto il valore fornito dalla funzione predefinita Matlab exp, calcolare l’errore
relativo.
(b) Utilizzare poi la funzione per approssimare e−10 , con n = 40, 41, 50, 51, 60, 61.
(c) E’ possibile approssimare il valore di e−10 alla precisione di macchina?
Esercizio 4.
Scrivere una function che, dato x ∈ R e n ∈ N, approssimi il valore di sin(x) usando il
suo sviluppo in serie di Taylor centrato in 0 e di ordine n. Usare la funzione per calcolare
sin(x) per x = π/2, π/2 + 2 · 1016 π (n = 20) e commentare i risultati.

1
Esercizio 5.
Si consideri la funzione f (x) = x4 e l’approssimazione di f 0 (x) con i rapporti incrementali:

f (x + h) − f (x) f (x + h) − f (x − h)
φ1h,f (x) = , φ2h,f (x) = .
h 2h
Calcolare l’errore di discretizzazione assoluto per φ1h,f (x) e φ2h,f (x) in x = 1 per h =
10−j , con j = 1, . . . , 12 stampando i risultati (visualizzati in formato esponenziale) su
due colonne separate in un file. Commentare i risultati considerando che, per funzioni
sufficientemente regolari, l’errore tende a zero come O(h) o O(h2 ) per h → 0 a seconda
del rapporto considerato.
Esercizio 6.
Scrivere uno script che calcoli il massimo ed il minimo valore di tipo double rappre-
sentabile in macchina (per approssimazioni successive). Confrontare i risultati ottenuti
con le costanti MATLAB predefinite realmax e realmin. Commentare i risultati di tale
confronto.
Esercizio 7.
Scrivere una function handle che calcoli il seno iperbolico a partire dalla sua definizione:

ex − e−x
sinh(x) = .
2
Scrivere poi una seconda function handle che rappresenti ragionevolmente il numero di
condizionamento per il seno iperbolico. Considerando di avere in input x = 10−2j , con
j = 1, . . . , 6, confrontare i valori di output della prima funzione con quelli ottenuti con
la funzione predefinita di MATLAB sinh (considerati esatti), calcolando l’errore relativo.
Usare poi la seconda funzione per mostare come il numero di condizionamento moltiplicato
per l’errore di macchina sia una maggiorazione per tale errore relativo.
Esercizio 8.
Si consideri l’equazione di secondo grado

x2 − 2x + δ = 0.

Calcolare √le soluzioni di tale equazione tramite le formule standard x1 = 1 + 1 − δ e
x2 = 1 − 1 − δ, per δ = [10−1 , 10−3 , 10−8 ]> . Confrontare poi tali soluzioni con quelle
ottenute utilizzando la funzione predefinita MATLAB roots (considerate esatte). E’
possibile migliorare il calcolo delle soluzioni di un equazione di secondo grado usando una
differente formula?