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.

  1. #include <iostream>
  2. #include <cmath>
  3. int main() {
  4. double x = 25;
  5. std::cout << "Radice quadrata di " << x << " è " << sqrt(x) << std::endl;
  6. return 0;
  7. }

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.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin