24.10.2014 Views

Approssimazione dell'esponenziale

Approssimazione dell'esponenziale

Approssimazione dell'esponenziale

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Approssimazione</strong> dell’esponenziale<br />

Si calcola l’approssimazione di exp(x) mediante sviluppo in serie di Taylor opportunamente<br />

troncato.<br />

Più precisamente, per ogni fissato valore di x (si considereranno poi valori di<br />

x equispaziati in un intervallo di estremi assegnati in input) si implementa il<br />

seguente algoritmo di calcolo:<br />

EXP n = EXP n−1 + xn<br />

n! , n ≥ 1<br />

EXP 0 = 1<br />

fintanto che il valore di EXP n differisce dal valore di EXP n−1 .<br />

È consigliabile calcolare il nuovo termine x n /n! facendo uso del termine precedentemente<br />

calcolato x n−1 /(n − 1)!.<br />

Si può inoltre verificare che per valori negativi di x è preferibile considerare<br />

l’espressione equivalente<br />

exp(x) = 1/ exp(−x)<br />

ove exp(−x) viene approssimata con il metodo sopra indicato.<br />

Di seguito trovate il diary dello svolgimento dell’esercizio, unitamente ai grafici<br />

dei risultati ottenuti.<br />

esponenziale_1<br />

Estremo sinistro intervallo di campionamento=-10<br />

Estremo destro intervallo di campionamento=10<br />

whos<br />

Numero di campionamenti=1000<br />

Name Size Bytes Class<br />

ERRORE_RELATIVO 1x1000 8000 double array<br />

EXP_APP 1x1000 8000 double array<br />

Nserie 1x1000 8000 double array<br />

XCAMPIO 1x1000 8000 double array<br />

Y_ESATTA 1x1000 8000 double array<br />

Grand total is 5000 elements using 40000 bytes<br />

f1=figure;<br />

figure(f1)<br />

plot(XCAMPIO,Y_ESATTA)<br />

xlabel(’Valore di x’)<br />

ylabel(’Valore esatto di exp(x)’)<br />

title(’Calcolo exp(x) con funzione di libreria matlab’)<br />

print -depsc2 exp_1<br />

1


Calcolo exp(x) con funzione di libreria matlab<br />

2.5 x 104 Valore di x<br />

2<br />

Valore esatto di exp(x)<br />

1.5<br />

1<br />

0.5<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 1: exp 1<br />

f2=figure;<br />

figure(f2)<br />

plot(XCAMPIO,EXP_APP)<br />

xlabel(’Valore di x’)<br />

ylabel(’Valore approssimato di exp(x)’)<br />

title(’Calcolo exp(x) con funzione esponenziale taylor 1’)<br />

print -depsc2 exp_2<br />

Calcolo exp(x) con funzione esponenziale taylor 1<br />

2.5 x 104 Valore di x<br />

2<br />

Valore approssimato di exp(x)<br />

1.5<br />

1<br />

0.5<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 2: exp 2<br />

f3=figure;<br />

figure(f3)<br />

plot(XCAMPIO,EXP_APP,XCAMPIO,Y_ESATTA)<br />

xlabel(’Valore di x’)<br />

ylabel(’Valore esatto e approssimato di exp(x)’)<br />

2


title(’Calcolo exp(x) con funzione di libreria matlab e con funzione esponenziale<br />

taylor 1’) legend(’valore approssimato’,’valore esatto’)<br />

print -depsc2 exp_3<br />

Calcolo exp(x) con funzione di libreria matlab e con funzione esponenziale taylor 1<br />

2.5 x 104 Valore di x<br />

valore approssimato<br />

valore esatto<br />

2<br />

Valore esatto e approssimato di exp(x)<br />

1.5<br />

1<br />

0.5<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 3: exp 3<br />

f4=figure; figure(f4)<br />

plot(XCAMPIO,ERRORE_RELATIVO)<br />

xlabel(’Valore di x’)<br />

ylabel(’Errore relativo di approssimazione’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1’)<br />

print -depsc2 exp_4<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1<br />

2 x 10−8 Valore di x<br />

1.8<br />

1.6<br />

Errore relativo di approssimazione<br />

1.4<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 4: exp 4<br />

f5=figure; figure(f5)<br />

3


semilogy(XCAMPIO,ERRORE_RELATIVO)<br />

xlabel(’Valore di x’)<br />

ylabel(’Logaritmo Errore relativo di approssimazione’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1’)<br />

print -depsc2 exp_5<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1<br />

10 −7 Valore di x<br />

10 −8<br />

Logaritmo Errore relativo di approssimazione<br />

10 −9<br />

10 −10<br />

10 −11<br />

10 −12<br />

10 −13<br />

10 −14<br />

10 −15<br />

10 −16<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 5: exp 5<br />

f6=figure; figure(f6)<br />

plot(XCAMPIO,Nserie)<br />

xlabel(’Valore di x’)<br />

ylabel(’Valore di ultimo n usato’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1’)<br />

print -depsc2 exp_6<br />

60<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1<br />

50<br />

Valore di ultimo n usato<br />

40<br />

30<br />

20<br />

10<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Valore di x<br />

Figura 6: exp 6<br />

4


ERRORE_RELATIVO_1=ERRORE_RELATIVO; EXP_APP_1=EXP_APP; Nserie_1=Nserie;<br />

clear ERRORE_RELATIVO EXP_APP Nserie<br />

whos<br />

Name Size Bytes Class<br />

ERRORE_RELATIVO_1 1x1000 8000 double array<br />

EXP_APP_1 1x1000 8000 double array<br />

Nserie_1 1x1000 8000 double array<br />

XCAMPIO 1x1000 8000 double array<br />

Y_ESATTA 1x1000 8000 double array<br />

Grand total is 5000 elements using 40000 bytes<br />

esponenziale_2<br />

Estremo sinistro intervallo di campionamento=-10<br />

Estremo destro intervallo di campionamento=10<br />

Numero di campionamenti=1000<br />

whos<br />

ERRORE_RELATIVO 1x1000 8000 double array<br />

ERRORE_RELATIVO_1 1x1000 8000 double array<br />

EXP_APP 1x1000 8000 double array<br />

EXP_APP_1 1x1000 8000 double array<br />

Nserie 1x1000 8000 double array<br />

Nserie_1 1x1000 8000 double array<br />

XCAMPIO 1x1000 8000 double array<br />

Y_ESATTA 1x1000 8000 double array<br />

f7=figure; figure(f7)<br />

plot(XCAMPIO,EXP_APP,XCAMPIO,Y_ESATTA)<br />

xlabel(’Valore di x’), ylabel(’Valore esatto e approssimato di exp(x)’)<br />

title(’Calcolo exp(x) con funzione di libreria matlab e con funzione esponenziale<br />

taylor 2’) legend(’valore approssimato’,’valore esatto’)<br />

print -depsc2 exp_7<br />

Calcolo exp(x) con funzione di libreria matlab e con funzione esponenziale taylor 2<br />

2.5 x 104 Valore di x<br />

valore approssimato<br />

valore esatto<br />

2<br />

Valore esatto e approssimato di exp(x)<br />

1.5<br />

1<br />

0.5<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 7: exp 7<br />

5


f8=figure; figure(f8)<br />

semilogy(XCAMPIO,ERRORE_RELATIVO)<br />

xlabel(’Valore di x’), ylabel(’Logaritmo Errore relativo di approssimazione’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 2’)<br />

print -depsc2 exp_8<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 2<br />

10 −7 Valore di x<br />

10 −8<br />

Logaritmo Errore relativo di approssimazione<br />

10 −9<br />

10 −10<br />

10 −11<br />

10 −12<br />

10 −13<br />

10 −14<br />

10 −15<br />

10 −16<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 8: exp 8<br />

f9=figure; figure(f9)<br />

semilogy(XCAMPIO,ERRORE_RELATIVO,XCAMPIO,ERRORE_RELATIVO_1)<br />

xlabel(’Valore di x’), ylabel(’Logaritmo Errore relativo di approssimazione’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1 e 2’)<br />

legend(’valore approssimato taylor 1’,’valore approssimato taylor 2’)<br />

print -depsc2 exp_9<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1 e 2<br />

10 −7 Valore di x<br />

10 −8<br />

valore approssimato taylor 1<br />

valore approssimato taylor 2<br />

Logaritmo Errore relativo di approssimazione<br />

10 −9<br />

10 −10<br />

10 −11<br />

10 −12<br />

10 −13<br />

10 −14<br />

10 −15<br />

10 −16<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 9: exp 9<br />

6


f10=figure; figure(f10)<br />

plot(XCAMPIO,Nserie)<br />

xlabel(’Valore di x’), ylabel(’Valore di ultimo n usato’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 2’)<br />

print -depsc2 exp_10<br />

60<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 2<br />

50<br />

Valore di ultimo n usato<br />

40<br />

30<br />

20<br />

10<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Valore di x<br />

Figura 10: exp 10<br />

f11=figure; figure(f11)<br />

[haxes,hlinea1,hlinea2]=plotyy(XCAMPIO,ERRORE_RELATIVO_1,XCAMPIO,ERRORE_RELATIVO_1,<br />

’semilogy’,’plot’); axes(haxes(1)); ylabel(’Scala logaritmica’); axes(haxes(2));<br />

ylabel(’Scala lineare’); xlabel(’Valore di x’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 2’)<br />

legend(’logaritmo valore approssimato taylor 2’,’valore approssimato taylor 2’)<br />

print -depsc2 exp_11<br />

10 −6<br />

10 −7<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 2<br />

logaritmo valore approssimato taylor 2<br />

valore approssimato taylor 2<br />

x 10 −8<br />

2<br />

1.8<br />

10 −8<br />

1.6<br />

10 −9<br />

1.4<br />

Scala logaritmica<br />

10 −10<br />

10 −11<br />

10 −12<br />

1.2<br />

1<br />

0.8<br />

Scala lineare<br />

10 −13<br />

0.6<br />

10 −14<br />

0.4<br />

10 −15<br />

−10 −8 −6 −4 −2 0 2 4 6 8<br />

0.2<br />

10 0<br />

Valore di x<br />

Figura 11: exp 11<br />

7


esponenziale_finale<br />

f12=figure; figure(f12)<br />

semilogy(XCAMPIO,ERRORE_RELATIVO)<br />

xlabel(’Valore di x’); ylabel(’Logaritmo Errore relativo di approssimazione’)<br />

title(’<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1 o 2’)<br />

print -depsc2 exp_12<br />

%<br />

<strong>Approssimazione</strong> exp(x) con funzione esponenziale taylor 1 o 2<br />

10 −15.1 Valore di x<br />

10 −15.2<br />

Logaritmo Errore relativo di approssimazione<br />

10 −15.3<br />

10 −15.4<br />

10 −15.5<br />

10 −15.6<br />

10 −15.7<br />

10 −15.8<br />

10 −15.9<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Figura 12: exp 12<br />

8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!