Clase Math

Antiguamente Math implementaba cada uno de sus métodos, pero hoy en día hace uso de la clase java.lang.StrictMath para llevar adelante sus tareas, llegando al punto que prácticamente es lo mismo llamar a un método de Math como uno de StrictMath.

StrictMath utiliza librerías nativas (escritas en C) para realizar sus cálculos, asegurando entre otras cosas una mejor performance con números flotantes y repetibilidad de los resultados (si se llama un método con los mismos parámetros obtenemos exactamente el mismo resultado, bit a bit).

La clase Math tiene miembros dato y funciones miembro estáticas, vamos a conocer algunas de estas funciones, cómo se llaman y qué tarea realizan.

Funciones trigonométricas

En las funciones trigonométricas los argumentos se expresan en radianes. Por ejemplo, el ángulo 45º se convierte en radianes y luego se halla el seno, el coseno y la tangente

  double angulo = 45.0 * Math.PI/180.0;
    System.out.println("cos(" + angulo + ") es " + Math.cos(angulo));
    System.out.println("sin(" + angulo + ") es " + Math.sin(angulo));
    System.out.println("tan(" + angulo + ") es " + Math.tan(angulo));

Para pasar de coordenadas rectangulares a polares es útil la función atan2, que admite dos argumentos, la ordenada y la abscisa del punto. Devuelve el ángulo en radianes.

  double y=-6.2;  //ordenada
    double x=1.2;   //abscisa
    System.out.println("atan2(" + y+" , "+x + ") es " + Math.atan2(y, x));

Funciones exponencial y logarítmica

La función exponencial exp devuelve el número e elevado a una potencia

    System.out.println("exp(1.0) es " +  Math.exp(1.0));
    System.out.println("exp(10.0) es " + Math.exp(10.0));
    System.out.println("exp(0.0) es " +  Math.exp(0.0));

La función log calcula el logaritmo natural (de base e) de un número

    System.out.println("log(1.0) es " + Math.log(1.0));
    System.out.println("log(10.0) es " + Math.log(10.0));
    System.out.println("log(Math.E) es " + Math.log(Math.E));

Función potencia y raíz cuadrada

Para elevar un número x a la potencia y, se emplea pow(x, y)

   System.out.println("pow(10.0, 3.5) es " +  Math.pow(10.0,3.5));

Para hallar la raíz cuadrada de un número, se emplea la función sqrt

   System.out.println("La raíz cuadrada de " + x + " is " + Math.sqrt(x));

Números aleatorios

La clase Math define una función denominada random que devuelve un número pseudoaleatorio comprendido en el intervalo [0.0, 1.0). Existe otra alternativa, se pueden generar números pseudoaleatorios a partir de un objeto de la clase Random, que llame a la función miembro nextDouble.

    System.out.println("Número aleatorio: " + Math.random());
    System.out.println("Otro número aleatorio: " + Math.random());