Páginas

lunes, 24 de marzo de 2014

Funciones matematicas en Java

En algunos programas es necesario el uso de funciones matematicas, como ser sacar raiz cuadrada, obtener el logaritmo de un numero, hacer uso del numero pi, etc. En JAVA se tiene para estos casos el uso de la clase Math, de las cuales mencionaremos las mas utilizadas.


Math.sqrt(valor) Raiz cuadrada


        int valor;
        double res;
        valor=10
        res=Math.sqrt(valor);
        System.out.println(res);

Math.pow(a,b) Potencia , es decir si queremos hallar 25 es igual a 32

        double res; 
        res=Math.pow(2,5);
        System.out.println(res);

Para trigonometria (sen, cos, tan).

  double a,b,c,valor,rad;
  valor=30;
  //primero convertimos valor en radianes
  rad=Math.PI/180 * valor;
  a=Math.sin(rad);
  b=Math.cos(rad);
  c=Math.tan(rad);
  System.out.println("sen("+valor+") es "+a);
  System.out.println("cos("+valor+") es "+b);
  System.out.println("tan("+valor+") es "+c);

Logaritmos (ln, log). 


  double a,b,c,pi,e,valor,rad;
  //valor de pi=3.14...
  pi=Math.PI;
  //valor de e
  e=Math.E;
  //logaritmo neperiano Ln()
  a=Math.log(e);
  //logaritmo en base 10()
  b=Math.log10(10);

Redondear numeros Math.round(numero) de un numero por ejemplo: 25.7485506 se redondea a 26

  double x = Math.round(25.7485506);
  System.out.println(x);

El resultado que tenemos en la variable x es 26.0 pero si yo necesito manejar ese valor como entero se realiza el siguiente cambio

  int x;  
  x = (int)Math.round(25.7485506);   
  System.out.println(x);

Como puedes observar cuando se utiliza (int) se le denomina hacer un cast, ya que recuerda que las funciones matematicas se manejan con numero reales, entonces para cambiar de un numero real a un entero se realiza esta accion, no solamente para el caso de numeros sino tambien para otros casos.

Math.random()  Numeros Aleatorios

Cuando se utiliza esta funcion el resultado obtenido esta entre 0 y 1, es decir 0.98 0.01 etc.

  double z=Math.random();
  System.out.println(z);

Si necesitamos obtener numero aleatorio entre 1 y 100 se hace lo siguiente

  double z=Math.random()*100;
  System.out.println(z);

El anterio codigo devuelve un numero entre 1 y 100, por ejemplo 70.4301793345856 pero nos gustaria que solo mostrase 70, para esto se hace lo siguiente

  double z=(int)(Math.random()*100);
  System.out.println(z);

Si necesitamos obtener numero aleatorio entre 5 y 20 se hace lo siguiente

  int z=(int)(Math.random()*15)+5;
  System.out.println(z);

Limitar numero de decimales

Ahora bien si necesitamos mostramos el resultado de una raiz cuadrada por ejemplo de 5, Math.sqrt(5) =2.23606797749979, pero quisieramos que nos muestre con dos decimales es decir 2.24 hacemos lo siguiente:

import java.text.DecimalFormat;

public class Matematicas {
 
 public static void main(String[] args) {
  double x=Math.sqrt(5);
  DecimalFormat d = new DecimalFormat("0.00");
  System.out.println(d.format(x)); 
    }
}        

No olvidar importar la libreria java.text.DecimalFormat, que se coloca en la parte superior del programa

1 comentario:

  1. algun metodo para sumar funciones matematicas x+9 + 3x-4/x , no son polinomicas, en python uso sympy pero en java no encuentro nada

    ResponderEliminar