Appunti per Scuola e Università
humanisticheUmanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
sceintificheScientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
tecnicheTecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
informatica
CComputerDatabaseInternetJava
Linux unixReti


AppuntiMania.com » Informatica » Appunti di computer » Calcolo dell'Esponenziale

Calcolo dell'Esponenziale




Visite: 1654Gradito:apreciate 4-stela [ Picolo appunti ]
Leggi anche appunti:

Il computer al servizio del progresso dell'umanità


Il computer al servizio del progresso dell'umanità   La nostra era moderna,

Architettura 68000d


Architettura 68000d Il 68000 possiede i tipi binari Byte, Word, Longword

La comunicazione multimediale


1.1       Introduzione La comunicazione multimediale è un campo in continua
immagine di categoria

Scarica gratis Calcolo dell'Esponenziale

Calcolo dell'Esponenziale




Scopo


Calcolo dell'esponenziale tramite la determinazione della n-ma somma della serie esponenziale.




Specifiche e Parametri


sum=espon(x)



Parametro

Tipo

Input/output

Descrizione

x

Reale (fp)

Input

Numero reale del sistema floating point positivo o negativo.

k

Intero

Input

Valore della Tolleranza

sum

Reale (fp)

Output

Risultato ottenuto dalla somma.




Routine Ausiliarie


y = epsmac(x) (per determinare il valore della massima precisione relativa del sistema)



Descrizione


L'algoritmo calcola la somma n-ma della serie esponenziale mediante sviluppo in serie di Taylor, determinando in run-time il numero delle somme da effettuare per avere il risultato più accurato possibile. La somma si arresta automaticamente al termine n-mo definito come il più piccolo elemento che da contributo al valore della somma precedente.

In caso di segno negativo dell'esponente l'algoritmo procede calcolando normalmente la serie, come se l'esponente fosse positivo, ed alla fine ne calcola il reciproco.



Complessità ed Accuratezza


L'accuratezza dipende dalla macchina su cui viene eseguito l'algoritmo. Per evitare una perdita di cifre significative dovute alla cancellazione catastrofica, pochè otterremmo una serie a segni alterni, nel caso in cui x<0 si è voluto porre e^(-x)=1/e^x.

T(n) = O(n)


Indicatori di errore


Errore dovuto all'inserimento dei dati:

- Mancato Inserimento dell'esponente.

- Inserimento di un carattere come esponente.

- Inserimento di un esponte al di fuori dell'intervallo

[-709, 709]

Errore nell'inserimento della Tolleranza:

- Inserimento di tolleranza negativa

- Inserimento di un vettore per la tolleranza

- Inserimento di un carattere come tolleranza


Testo della Funzione


function sum=espon(x,k)


%Controllo errore nell'inserimento dei dati: Parametri non inseriti

if (nargin==0)

error('Non hai Inserito il Valore di x'

end


%Controllo errore nell'inserimento dei dati: Inserimento di Caratteri

if(ischar(x)==1)

error('Non puoi Inserire un Carattere come Esponente'

end


%Controllo dei dati inseriti: Evitare Overflow ed Underflow

if (x<-709)

disp('Hai Inserito un Esponente Troppo Piccolo: Esponente Minimo -709'

x=0;

elseif (x>709.7)

disp('Hai Inserito un Esponente Troppo Elevato: Esponente Massimo 709'

end


%Valitazione della Tolleranza: Massima Precisione

if nargin==1

disp('Hai Scelto di Proseguire con la Precisione Massima'

tol=epsmac;

else

%Controllo dei dati inseriti: Evitare Valori di k negativi

if (k<=0)

error('Il Valore della Tolleranza deve essere Positivo'

end


%Controllo dei dati inseriti: Evitare che k sia un vettore

if (length(k)~=1)

error('Il Valore della Tolleranza deve essere uno Scalare'

end


%Controllo errore nell'inserimento dei dati: Inserimento di Caratteri

if(ischar(k)==1)

error('Non Puoi Inserire un Carattere come Tolleranza'

end


tol=power(10, -k);

end


%Escludo valori impossibili nella tolleranza

tol=max(tol,epsmac);


%Evito l'underflow della tolleranza

if(abs(x)>=minr/tol)

tol=abs(x)*tol;

else

tol=minr;

end


%Inizializzazione delle variabili  

sum=1;

n=1;

add=abs(x);



%Criterio di Arresto Dimanico

while (abs(add)>sum*tol)

sum=sum+add;

n=n+1;

add=add*(abs(x)/n);

end


%Valutazione dell'esponente negativo: Stabilizzazione dell'Algoritmo

if x<0

sum=1/sum;

end


return




Esempi d'uso



>>espon(7,8)


ans =


1.096633127134126e+003



Casi di Test


Esempi con massima precisione


Esempio 1: Esponenziale 6


>> espon(6)

Hai Scelto di Proseguire con la Precisione Massima


ans =


4.034287934927349e+002


Funzione del Matlab y=esp(x)


>> exp(6)


ans =


4.034287934927351e+002

Esempio 1: Esponenziale 1


>> espon(1)

Hai Scelto di Proseguire con la Precisione Massima


ans =


2.71828182845905


Funzione del Matlab y=esp(x)


>> exp(1)


ans =


2.71828182845905

Esempio 1: Esponenziale 4.67


>> espon(4.67)

Hai Scelto di Proseguire con la Precisione Massima


ans =


1.066977424324507e+002


Funzione del Matlab y=esp(x)


>> exp(4.67)


ans =


1.066977424324508e+002

Esempio 1: Esponenziale -23


>> espon(-23)

Hai Scelto di Proseguire con la Precisione Massima


ans =


1.026187963170192e-010

Funzione del Matlab y=esp(x)


>> exp(-23)


ans =


1.026187963170189e-010

Esempi con precisione definita dall'utente


Esempio 1: Esponenziale 6, tolleranza 10


>> espon(6,10)


ans =


4.03428793 e+002


Funzione del Matlab y=esp(x)


>> exp(6)


ans =


4.034287934927351e+002

Esempio 1: Esponenziale 1, tolleranza 12


>> espon(1,12)


ans =


2.71828182845


Funzione del Matlab y=esp(x)


>> exp(1)


ans =


2.71828182845905

Esempio 1: Esponenziale 4.67, tolleranza 5


>> espon(4.67,5)


ans =


1.0669 e+002


Funzione del Matlab y=esp(x)


>> exp(4.67)


ans =


1.066977424324508e+002

Esempio 1: Esponenziale -23, tolleranza 3


>> espon(-23,3)


ans =


1.0 e-010

Funzione del Matlab y=esp(x)


>> exp(-23)


ans =


1.026187963170189e-010

Casi di test particolari



>> espon

??? Error using ==> espon

Non hai Inserito il Valore di x




Mancato Inserimento dell'Esponente X



>> espon('k')

??? Error using ==> espon

Non puoi Inserire un Carattere come Esponente




Inserimento di un carattere come esponente


>> espon(709.79)

Hai Inserito un Esponente Troppo Elevato: Esponente Massimo 709

Hai Scelto di Proseguire con la Precisione Massima


ans =


Inf






Inserimento di un esponente troppo elevato


>> espon(-709.1)

Hai Inserito un Esponente Troppo Piccolo: Esponente Minimo -709

Hai Scelto di Proseguire con la Precisione Massima


ans =


1






Inserimento di un esponente troppo piccolo


>> espon(45,-7)

??? Error using ==> espon

Il Valore della Tolleranza deve essere Positivo




Inserimento di una tolleranza negativa


>> k = [1 2 3; 23 4 0; 6 7 8];

>> espon(45,k)

??? Error using ==> espon

Il Valore della Tolleranza deve essere uno Scalare





Inserimento di una matrice come tolleranza


>> k = [1 2 3];

>> espon(45,k)

??? Error using ==> espon

Il Valore della Tolleranza deve essere uno Scalare





Inserimento di un vettore come tolleranza


>> espon(45,'k')

??? Error using ==> espon

Non Puoi Inserire un Carattere come Tolleranza




Inserimento di un carattere come tolleranza


Scarica gratis Calcolo dell'Esponenziale
Appunti su: esponenziale 002,



Scarica 100% gratis e , tesine, riassunti



Registrati ora

Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...