Anteprima
Vedrai una selezione di 3 pagine su 6
Calcolo Numerico – Funzione Espo Pag. 1 Calcolo Numerico – Funzione Espo Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Calcolo Numerico – Funzione Espo Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Calcolo Numerico - Elaborato 1

Esempi d'uso:

<< [y,N]=espo(25,35)
y = 7.200489933738553e+010
N = 73
<< [y,N]=espo(40)
y = 2.353852668370183e+017
N = 98

Situazioni di errore:

<< [y,N]=espo(25,35,45)
??? Error using ==> espo
Too many input arguments.
<< [y,N,M]=espo(25,35)
??? Error using ==> espo
Too many output arguments.
<< [y,N]=espo
??? Error using ==> espo
Nessun input specificato.
<< [y,N]=espo('x')
??? Error using ==> espo
x deve essere un numero reale.
<< [y,N]=espo([1 2 3])
??? Error using ==> espo
x deve essere uno scalare.
<< [y,N]=espo(25,[1 2 3])
??? Error using ==> espo
TOL deve essere uno scalare.
<< [y,N]=espo(710)
??? Error using ==> espo
Overflow.
<< [y,N]=espo(-710)
??? Error using ==> espo
Underflow.

Test dei casi funzionanti:

<< [y,N]=espo(25,eps)
y = 1.000000000000000e+000
N = 1

macchina>> [y,N]=espo(32,13)
y =7.896296018230850e+013
N =78% ESPO con esponente negativo e tolleranza maggiore dell’epsilon macchina>> [y,N]=espo(-32,14)
y =1.266416554909790e-014
N =81% ESPO senza tolleranza>> [y,N]=espo(32)
y =7.896296018268023e+013
N =85% ESPO con esponente uguale a zero>> [y,N]=espo(0)
y = 1
N =1% ESPO con tolleranza minore dell’epsilon macchina>> [y,N]=espo(4,18)
y =54.59815003314422
N =29

berragazzo 3/6
Calcolo Numerico - Elaborato 1

Confronto con il Matlab:
x ESPO con tolleranza massima EXP di Matlab
1 2.71828182845905 2.718281828459055
5 1.484131591025765e+00 1.484131591025766e+00
30 1.068647458152442e+013 1.068647458152446e+013
100 2.688117141816041e+043 2.688117141816136e+043
350 1.007090887027834e+152 1.007090887028080e+152
710 Overflow. Inf
-710 Underflow. 4.476286225675130e-309

Come si può notare dalla tabella, con l’aumentare di x le cifre esatte della funzione ESPOdiminuiscono rispetto alla funzione EXP di Matlab.

Inoltre la funzione ESPO nel caso x=-710 dà underflow mentre la funzione EXP dà un determinato valore perché quest'ultima gestisce isubnormal numbers. File espo.m: ```matlab function [y,N]=espo(x,TOL) % ESPO calcola l'esponenziale di x % Parametri di ingresso: % x = Valore dell'esponente % TOL = Tolleranza, numero di cifre esatte richieste % Parametri di uscita: % y = Risultato della funzione e^x % N = Numero di termini della serie % Esempi d'uso: tenendo conto di [S,n]=espo(x,TOL) si può avere % 1) Esponenziale con tolleranza % >> [y,N]=espo(25,35) % y = 7.200489933738553e+010 % N = 73 % 2) Esponenziale con la massima precisione % >> [y,N]=espo(40) % y = 2.353852668370183e+017 % N = 98 format long; if (nargin==0) error('Nessun input specificato.'); end if (ischar(x)==1) error('x deve essere un numero reale.'); end dimx=prod(size(x)); % Controllore dimensione di x if (dimx~=1) error('x deve essere uno scalare.'); end ```
(nargin==1) %Massima precisione
berragazzo 4/6
Calcolo Numerico - Elaborato 1
TOL=eps;
elseif (ischar(TOL)==1)|(TOL<0)
error('TOL deve essere un numero naturale.');
end
TOL=power(10,-TOL);
end
TOL=max(TOL,eps); %Verifica per valori di TOL impossibili
dimTOL=prod(size(TOL)); % Controllore dimensione di TOL
if (dimTOL~=1)
deve essere uno scalare.');
error('TOL
endif abs(x)>(realmin/TOL) % TOL relativo ad x evitando underflow
TOL=abs(x)*TOL;
else
TOL=realmin;
end
y=1; % Algoritmo stabile per il calcolo di e^x
N=1;
add=abs(x);
while (add>(y*TOL))
y=y+add;
N=N+1;
add=(add*(abs(x)/N));
end
if(x<0)
y=1./y;
end
if (y==inf) %Verifica overflow
error('Overflow.');
end
if (y==0) %Verifica underflow
error('Underflow.');
end
berragazzo 5/6
Dettagli
Publisher
A.A. 2012-2013
6 pagine
1 download
SSD Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sara F di informazioni apprese con la frequenza delle lezioni di Calcolo numerico e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof D'Amore Luisa.