Corso di Laurea Triennale in Matematica
Laboratorio di Calcolo Numerico A.A. 2007/2008 – II semestre
Esercitazione 2
Creare una cartella <cognome> dove verranno salvati i file creati nella sessione di lavoro.
Appena entrati in MATLAB posizionarsi in <cognome>.
Risolvere in ambiente MATLAB i seguenti esercizi.
1. Siano a=1.234567890123400 E+15, b=-1.234567890123401 E+15, c=0.06.
Dopo aver dato il comando format long e, calcolare (a+b)+c, (a+c)+b, a+(b+c).
Che cosa si osserva?
Ripetere l'esercizio con a=0.23371258 E-4, b=0.33678429 E+2, c=-0.33677811 E+2.
2. Utilizzando il comando digits, impostare l'aritmetica di Matlab a 3 cifre decimali.
Siano x=0.916 E+1, y=0.928 E+1, z=0.0167. Provare che z*(x+y) (z*x)+(z*y).
3. Considerare la funzione y=tan(x) per x ∈ ]-π/2, π/2[.
Spiegare perché per valori di x vicini a multipli di π/2 la valutazione della funzione risulta un problema mal condizionato.
4. Come si può operare per calcolare f x =xx+ 1x , quando x=10n con n=7,10,13,16,19?
5. Come si può operare per calcolare f x =1cos x
x2 , quando x=10-n con n=1:2:12?
6. Scrivere uno script Matlab che fornisca le approssimazioni di e=exp(1) ottenute con la formula f(n)=(1/n+1)n per n=10k e k=0,...,16. Cosa si osserva e perché?
7. Scrivere uno script Matlab per calcolare En=
0 1
xnex1 dx con n=1,…,30, tramite la formula ricorsiva En=1-n*En-1, n=2,…,30, E1=1/e, che si ottiene risolvendo l'integrale assegnato per parti. Osservare cosa succede per n>=18. Come mai?
Risolvere il problema utilizzando un algoritmo più stabile.
8. Scrivere uno script Matlab per calcolare
i= 1 N 1
i con N=50,500,1500.
Implementare in aritmetica a 4 cifre due algoritmi risolutivi che operino rispettivamente sommando i termini dal più piccolo al più grande e viceversa. Che cosa si osserva?