next up previous contents index
Next: Funzioni di arrotondamento Up: Funzioni matematiche Previous: Funzioni potenza   Indice   Indice analitico

Funzioni esponenziali

Le funzioni esponenziali più importanti sono:
double exp (double x)
double log (double x)
che tornano, rispettivamente, la $x$-esima potenza di $e$ (numero di Nepero, base dei logaritmi naturali) e il logaritmo naturale di $x$. Si noti che, sfruttando la proprietà $x^\alpha = e^{\alpha \log x}$ possiamo utilizzare tali funzioni in alternativa alla funzione pow, come vediamo nel seguente esempio


// ex4_7_4.cpp
#include <iostream.h>
#include <math.h>

double potenza (double base, double esponente) {
  double x = exp (esponente * log(base) );
  return x;
}

void main() {
  double base, esponente;
  while (true) {   // infinite loop
    cout << "\n\nscrivi base = 0 per terminare\n";
    cout << "base? "; cin >> base;
    if (base == 0)
      break;
    cout << "esponente? "; cin >> esponente;
    double x = potenza (base, esponente);
    cout << "risultato = " << x;
  }
}

esempio di output:
scrivi base = 0 per terminare
base? 2.5
esponente? 2
risultato = 6.25

scrivi base = 0 per terminare
base? 16
esponente? .25
risultato = 2

Come è ovvio dalle proprietà dei logaritmi, è semplice ricavare dai logaritmi in base naturale tutti gli altri, ricordando che:

\begin{displaymath}
\log_\alpha x = \frac{\log x}{\log \alpha}
\end{displaymath}


// ex4_7_5.cpp
#include <iostream.h>
#include <math.h>

void main() {
  double base, argomento;
  cout << "base? "; cin >> base;
  cout << "argomento? "; cin >> argomento;
  double risultato = log(argomento) / log(base);
  cout << "risultato = " << risultato;
}

esempio di output:
base? 4
argomento? 16
risultato = 2



Claudio Cicconetti
2000-09-06