Math.exp în Java

exp(x) calculează eˣ; expm1(x) calculează eˣ − 1 precis chiar și pentru x foarte apropiat de 0.

Sintaxă
static double exp(double a)
static double expm1(double x)   // Java 5

Ce face Math.exp

Math.exp(x) returnează ex, unde e ≈ 2.71828 este baza logaritmului natural. Funcția apare în creșteri continue (dobândă compusă continuu, populații), în probabilități și în statistică. Este inversa lui Math.log.

Math.expm1(x) calculează ex − 1. Pentru x foarte mic, exp(x) - 1 pierde aproape toate cifrele exacte (scazi două numere aproape egale), în timp ce expm1 dă rezultatul precis.

Parametri

Parametru Descriere
a / x Exponentul.

Ce returnează

Un double.

Exemple

Exemplul 1: Valori ale lui exp

public class Main {
    public static void main(String[] args) {
        System.out.println(Math.exp(0));
        System.out.println(Math.exp(1));
        System.out.println(Math.exp(2));
        System.out.println(Math.log(Math.exp(3)));
    }
}

Rezultat

1.0
2.7182818284590455
7.38905609893065
3.0

Exemplul 2: Precizia lui expm1

public class Main {
    public static void main(String[] args) {
        double x = 1e-10;
        System.out.println("exp(x) - 1 = " + (Math.exp(x) - 1));
        System.out.println("expm1(x)   = " + Math.expm1(x));
    }
}

Rezultat

exp(x) - 1 = 1.000000082740371E-10
expm1(x)   = 1.00000000005E-10

Exemplul 3: Dobândă compusă continuu

La compunere continuă, suma finală este S · er·t.

public class Main {
    public static void main(String[] args) {
        double suma = 5000;
        double rata = 0.05;
        int ani = 10;
        double finala = suma * Math.exp(rata * ani);
        System.out.printf("%.2f lei%n", finala);
    }
}

Rezultat

8243.61 lei

Greșeli frecvente

  • Scrii Math.pow(Math.E, x): funcționează, dar Math.exp(x) este mai precis și mai rapid.
  • Calculezi exp cu argumente mari (peste ~709): rezultatul devine Infinity.

Comenzi înrudite

  • Math.log: log() dă logaritmul natural (baza e), log10() logaritmul în baza 10, iar log1p(x) calculează precis ln(1 + x).
  • Math.pow: Ridică un număr la o putere și returnează rezultatul ca double; exponentul poate fi și negativ sau cu zecimale.
  • Math.sinh: Funcțiile hiperbolice: sinus, cosinus și tangentă hiperbolică, definite cu ajutorul lui eˣ.
  • Math: Clasa cu funcții matematice gata făcute: rotunjiri, puteri, radicali, trigonometrie, minim/maxim și calcule întregi sigure.