Funzione 'esp'
Scopo
Calcolare il valore di ex
Specifiche
[y Nadd] = esp(x, TOL)
Descrizione algoritmo
L'algoritmo calcola ex come somma parziale di una serie di Taylor facendo uso della tecnica di arresto naturale, mediante la scelta di una tolleranza sull'errore di calcolo gestita dall'utente, o impostata di default alla massima precisione possibile. Inoltre l'algoritmo evita di effettuare calcoli in caso si presentino situazioni di overflow oppure underflow dovuti ai dati in ingresso.
Lista parametri
Input:
- x scalare, punto in cui calcolare il valore della funzione
- TOL scalare FACOLTATIVO, valore che imposta il numero di cifre esatte sul risultato della funzione. Di default (nessun TOL inserito come input) va ad impostare la tolleranza pari all'epsilon macchina.
Output:
- y valore calcolato per ex con tolleranza scelta
- N numero di termini della serie di Taylor per calcolare ex con la precisione scelta
Indicatori di errore
- 'Numero di parametri di input insufficiente' -> L'utente non ha inserito almeno un parametro in input;
- 'x deve essere un numero reale' -> L'utente ha inserito un carattere come punto in cui calcolare la funzione;
- 'x deve essere uno scalare' -> L'utente ha inserito un vettore come punto in cui calcolare la funzione;
- 'TOL deve essere un numero reale maggiore di zero' -> L'utente ha inserito un carattere come tolleranza, oppure ha inserito un valore negativo per la tolleranza;
- 'TOL deve essere uno scalare' -> L'utente ha inserito un vettore come tolleranza.
Complessità
La complessità della funzione dipende da N, cioè dal numero di addizioni fatte.
Accuratezza
L'accuratezza del risultato può essere scelta dall'utente come secondo parametro di input. Quindi il numero di cifre significative sono date da TOL=10-k, oppure da TOL=epsilon macchina, in modo da avere la massima precisione se l'utente non richiede in modo esplicito un numero di cifre significative.
Esempio d'uso
>> [y N]=esp(320,24) y = 9.423976816163541e+138 N = 474
esp.m
%ESP% [y N]= esp(x, TOL) % La funzione esp calcola e^x con possibilità di % scegliere il numero di cifre significative esatte % che si cerca nel calcolo. %>> [y N]=esp(320,24) %y = % 9.423976816163541e+138 %N = % 474
function [y Nadd]= esp(x, TOL)
%Controllo sul numero di dati in input
if (nargin == 0)
error('Numero di parametri di input insufficiente')
end