Funzioni elementari sui numeri reali in MATLAB
Nella lezione precedente ho introdotto il concetto di tipo e, in particolar modo ho introdotto il tipo double
e single
che MATLAB adopera per memorizzare i numeri reali.
In questa lezione entro maggiormente nel dettaglio introducendo alcune delle principali funzioni elementari che MATLAB mette a disposizione per lavorare sui numeri reali.
Funzioni esponenziali
Nelle lezioni precedenti ho già introdotto la funzione sqrt
che può essere utilizzata per calcolare la radice quadrata di un numero. In questa sezione mostrerò alcune delle funzioni esponenziali che MATLAB mette a disposizione.
Potenze e logaritmi
Abbiamo visto che per calcolare la potenza di un numero basta utilizzare l'operatore di elevamento a potenza: ^
>> 12.3 ^ 5.6
ans =
1.2690e+06
Oltre a questo operatore, MATLAB mette a disposizione due funzioni ottimizzate per lavorare con potenze che hanno come base la costante di eulero
In particolare:
Funzione | Descrizione |
---|---|
exp(x) |
Calcola |
expm(x) |
Calcola |
pow2(x) |
Calcola |
Il bisogno di queste due funzioni nasce dal fatto che sono state ottimizzate per ridurre al minimo l'errore numerico in cui si può incappare. Per maggiori dettagli rimando alle mie lezioni di calcolo numerico. In ogni caso, exp
è utile per calcolare potenze che hanno come base
>> format long
>> e = exp(1)
e =
2.718281828459046
Oltre alle potenze, MATLAB permette di calcolare i logaritmi in maniera semplice attraverso le funzioni:
Funzione | Descrizione |
---|---|
log(x) |
calcola il logaritmo naturale di un numero: |
log10(x) |
calcola il logaritmo in base 10 di un numero: |
log2(x) |
calcola il logaritmo in base 2 di un numero: |
log1p(x) |
calcola la funzione |
Anche in questo caso, MATLAB fornisce una serie di funzioni per il logaritmo specializzate a seconda della base. La motivazione sta nel fatto che per ottenere migliore precisione numerica è sempre conveniente scegliere la funzione logaritmo adatta.
Di seguito alcuni esempi di utilizzo:
>> x = 5
x =
5
>> log(5)
ans =
1.609437912434100
>> log10(5)
ans =
0.698970004336019
>> log2(5)
ans =
2.321928094887362
>> log1p(x)
ans =
1.791759469228055
Nel caso in cui volessimo calcolare il logaritmo di un numero con base arbitraria basta applicare la formula per il cambio di base del logaritmo:
Per cui, volendo, ad esempio, calcolare il logaritmo in base 7 di 49 basterebbe inserire:
>> log(49) / log(7)
ans =
2
Radici
Abbiamo già visto la funzione sqrt
che permette di calcolare la radice quadrata. MATLAB, però, mette a disposizione anche un'altra funzione per le radici che permette di calcolare la radice n-esima di un numero:
con
Funzione | Descrizione |
---|---|
nthroot(x, n) |
Calcola |
nthroot(x, n)
prende in input due parametri: x
rappresenta il radicando e n
l'indice della radice. Ad esempio, volendo calcolare:
basta inserire il seguente input:
>> nthroot(3.4, 5.6)
ans =
1.244247994667347
Funzioni trigonometriche
MATLAB fornisce una grande quantità di funzioni trigonometriche e di conversione che prendono in ingresso sia valori espressi in radianti sia espressi in gradi.
Funzioni di conversione
Prima di mostrare le funzioni trigonometriche, è utile mostrare due utili funzioni per la conversione di valori da gradi a radianti e viceversa:
Funzione | Descrizione |
---|---|
deg2rad(x) |
Converte |
rad2deg(x) |
Converte |
Queste due funzioni sono molto utili e semplici da usare:
>> deg2rad(180.0)
ans =
3.141592653589793
>> rad2deg(pi)
ans =
180
Funzioni trigonometriche dirette
Di seguito sono riportate alcune delle funzioni trigonometriche dirette che MATLAB fornisce:
Funzione | Descrizione |
---|---|
cos(x) |
Calcola il coseno di |
sin(x) |
Calcola il seno di |
tan(x) |
Calcola la tangente di |
cot(x) |
Calcola la cotangente di |
sec(x) |
Calcola la secante di |
csc(x) |
Calcola la cosecante di |
Di queste funzioni esiste anche la versione che prende come argomento un valore espresso in gradi:
Funzione | Descrizione |
---|---|
cosd(x) |
Calcola il coseno di |
sind(x) |
Calcola il seno di |
tand(x) |
Calcola la tangente di |
cotd(x) |
Calcola la cotangente di |
secd(x) |
Calcola la secante di |
cscd(x) |
Calcola la cosecante di |
Funzioni trigonometriche inverse
Così come esistono le funzioni trigonometriche dirette, esistono anche le funzioni trigonometriche inverse in MATLAB. Ed anche per queste funzioni, esiste sia la versione che restituisce il risultato in radianti (la versione di default), sia la versione che restituisce il risultato in gradi:
Funzione | Descrizione |
---|---|
acos(x) |
Calcola l'arcocoseno di |
asin(x) |
Calcola l'arcoseno di |
atan(x) |
Calcola l'arcotangente di |
acot(x) |
Calcola l'arcocotangente di |
asec(x) |
Calcola l'arcosecante di |
acsc(x) |
Calcola l'arcocosecante di |
Di seguito le versioni che restituiscono il risultato in gradi:
Funzione | Descrizione |
---|---|
acosd(x) |
Calcola l'arcocoseno di |
asind(x) |
Calcola l'arcoseno di |
atand(x) |
Calcola l'arcotangente di |
acotd(x) |
Calcola l'arcocotangente di |
asecd(x) |
Calcola l'arcosecante di |
acscd(x) |
Calcola l'arcocosecante di |