La libreria cmath di C++
La libreria cmath in C++ è un'utilissima raccolta di funzioni che facilitano la realizzazione di calcoli matematici, specialmente quelli legati ai numeri complessi. Ecco una guida pratica per capirne l'utilizzo e l'applicazione.
Introduzione a cmath
La libreria cmath ti fornisce una serie di funzioni per eseguire operazioni matematiche, come radici quadrate, logaritmi, funzioni trigonometriche, e molto altro.
È una libreria standard del C++, che significa che è disponibile in qualsiasi ambiente di sviluppo C++ standard senza la necessità di installare pacchetti aggiuntivi.
Per utilizzare le funzioni di cmath, devi soltanto includere la libreria nel tuo programma C++:
#include <cmath>
Una volta inclusa, puoi richiamare tutte le funzioni matematiche presenti nel modulo.
Ad esempio, questo programma calcola la radice quadrata di 25.
- #include <iostream>
- #include <cmath>
- int main() {
- double x = 25;
- std::cout << "Radice quadrata di " << x << " è " << sqrt(x) << std::endl;
- return 0;
- }
Le funzioni matematiche
Nella libreria cmath trovi un'ampia varietà di funzioni matematiche. Ecco le principali:
Funzioni trigonometriche
- sin(x)
calcola il seno di x dove x è un valore in radianti. - cos(x)
calcola il coseno di x. - tan(x)
calcola la tangente di x. - asin(x)
calcola l'arcoseno di x, il risultato è in radianti. - acos(x)
calcola l'arcocoseno di x. - atan(x)
calcola l'arcotangente di x.
Funzioni iperboliche
- sinh(x)
calcola il seno iperbolico di x. - cosh(x)
calcola il coseno iperbolico di x. - tanh(x)
calcola la tangente iperbolica di x.
Funzioni esponenziali e logaritmiche
- exp(x)
calcola e^x, dove e è la base dei logaritmi naturali. - log(x)
calcola il logaritmo naturale di x. - log10(x)
calcola il logaritmo in base 10 di x. - pow(base, exp)
eleva la `base` alla potenza `exp`.
Funzioni di arrotondamento e valore assoluto
- abs(x)
calcola il valore assoluto di un numero intero x. - ceil(x)
arrotonda x al più piccolo intero non minore di x. - floor(x)
arrotonda x al più grande intero non maggiore di x. - fabs(x)
restituisce il valore assoluto di x.
Radici e potenze
- sqrt(x)
calcola la radice quadrata di x. - cbrt(x)
calcola la radice cubica di x. - hypot(x, y)
calcola \(\sqrt{x^2 + y^2}\) senza rischio di overflow intermedio.
Numeri complessi
- complex<double>
tipo di dato usato per rappresentare numeri complessi. - real(x)
restituisce la parte reale. Dove x è un numero complesso. - imag(x)
restituisce la parte immaginaria. - abs(x)
restituisce il modulo del numero complesso. - arg(x)
restituisce l'argomento (angolo) in radianti. - norm(x)
restituisce il quadrato del modulo. - conj(x)
restituisce il coniugato.
Esempio pratico
Ecco un esempio semplice che utilizza alcune delle funzioni di `cmath`:
- #include <iostream>
- #include <cmath>
- #include <complex>
- int main() {
- double x = 9.0;
- std::cout << "Radice quadrata di " << x << " è " << sqrt(x) << std::endl;
- std::cout << "e^" << x << " è " << exp(x) << std::endl;
- std::complex<double> comp(3.0, 4.0);
- std::cout << "Modulo di " << comp << " è " << abs(comp) << std::endl;
- std::cout << "Coniugato di " << comp << " è " << conj(comp) << std::endl;
- return 0;
- }
Questo codice utilizza funzioni matematiche di base come sqrt (radice quadrata) e exp (esponenziale), nonché alcune operazioni su numeri complessi.
Il risultato in output è il seguente
Radice quadrata di 9 è 3
e^9 è 8103.08
Modulo di (3,4) è 5
Coniugato di (3,4) è (3,-4)
Ricorda che queste sono solo alcune delle funzioni disponibili in cmath, e la libreria è molto più ampia e versatile.