evaluar funciones: ayuda

Harry
16 de Febrero del 2004
Hola a [email protected],
estoy intentando averiguar como evaluar funciones en Java: Os explico: estoy realizando una clase de operaciones matemáticas (sin, cos, e, ln...) con métodos optimizados (aproximacion de Taylor, etc) y ahora iba a implementar aproximaciones de integración por trapecios y por romberg cuando me he encontrado con el problema de q no sé como hacerlo para poder pasarle una función al método de integración para que ésta la evalue en un punto del intervalo. Es decir: si quiero hacer la integral de sin(x) en un intervalo [a,b], entonces al método integral le paso como parámetros "sin(x)","a" y "b" y el problema es cómo hago dentro del método "sin(a)" y "sin(b)". Estoy seguro q debe ser sencillísimo, pero no me acabo de aclarar. ¿Alguien me puede ayudar/orientar un poco? MUCHAS GRACIAS.

Heihachi
16 de Febrero del 2004
Define una interfaz Funcion que tenga un único método que devuelve el valor. Algo así

public interface Funcion{
public double calcula(double);
}

Las funciones que quieras pasar como parámetros debería implementar esta inteface.
Por ejemplo:
Funcion seno=new Funcion(){
public double calcula(double x){
//Aqui calculas el seno, o llamas a la función que ya habías creado
retun valor;
}
}

Para calcular sin(a) en tu método sería algo como:
public void tuMetodo(Funcion f,double a,double b){
//////...
sin_a=f.calcula(a);
//...
}

Así tendrás una manera estandar de pasar funciones por parámetro.

Saludos!