Calcolo numerico - elaborato 1
Scopo
La funzione ESPO calcola un’approssimazione della funzione esponenziale mediante l’algoritmo stabile e con il criterio di arresto con la tolleranza gestita dall'utente.
Specifica
L’intestazione della funzione è [y, N] = espo(x, TOL).
Parametri di input
- x: Scalare, punto di valutazione dell'esponenziale;
- TOL: Facoltativo, accuratezza richiesta dall'utente, se omesso viene posto pari all’epsilon macchina.
Parametri di output
- y: Valore dell'approssimazione;
- N: Numero di termini della serie.
Descrizione
La funzione non effettua calcoli inutili in caso di Overflow (pone y=inf) o Underflow (pone y=0) del risultato.
Indicatori di errore
- Too many input arguments. Controllore definito dal Matlab. Indica che sono stati inseriti più parametri di ingresso di quelli consentiti.
- Too many output arguments. Controllore definito dal Matlab. Indica che sono stati inseriti più parametri di uscita di quelli consentiti.
- Nessun input specificato. Indica che non è stato inserito nessun parametro di ingresso.
- x deve essere un numero reale. Indica che è stato inserito un valore di x non corretto, come un carattere o una parola.
- x deve essere uno scalare. Indica che è stato scelto un vettore per x piuttosto che uno scalare.
- TOL deve essere uno scalare. Indica che è stato scelto un vettore per TOL piuttosto che uno scalare.
- Overflow. Indica un risultato in overflow.
- Underflow. Indica un risultato in underflow.
Esempi d’uso
ESPO con tolleranza gestita dall’utente:
>> [y, N] = espo(25, 35)
y = 7.200489933738553e+010
N = 73
ESPO con tolleranza massima:
>> [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
ESPO con tolleranza maggiore dell’epsil