functions - ¿Cómo resolver un Integral en Java?
math.ceil java (5)
Necesito desarrollar un programa en Java para resolver algunas integrales. Integrales como esta:
He buscado algunas funciones para hacer esto, en java.Math pero no encontré nada.
¿Alguien tiene una idea para obtener una solución para esto? (Tal vez algunas bibliotecas extra o algo así)
¡¡Muchas gracias!!
Echa un vistazo a la Regla de Simpson en Wikipedia.
Echa un vistazo a JScience
El artículo de Wikipedia sobre integración numérica tiene una sección sobre métodos para integrales unidimensionales .
No debería tener problemas para implementar la regla "trapezoidal" o "rectángulo".
La biblioteca de Apache Commons Math contiene, en la sección de Análisis Numérico , cuatro integradores numéricos diferentes:
- Método de romberg
- Método de simpson
- método trapezoidal
- Método de Legendre-Gauss
/* Petit programme qui calcul numériquement une intégrale selon l''algorithme de Simpson.
Avant de l''executer, il faut entrer:
- l''expression de la fonction f: ligne 12;
- les bornes inférieure a et supérieure b de l''intégrale: lignes 39 et 40;
- le nombre de mesures n (n est entier!!!): ligne 41.
------------------------------------------------------------------------------------------------------ */
class Fonction{ //Classe fonction: definit fonction et Simpson
double f (double x) { //DEFINIR la fonction à intégrer.
return Math.Cos(x);
}
double IntSimpson(double a, double b,int n){ //Methode de Simpson pour calcul intégrale
int i,z; //a= borne inférieure et b, borne supérieure d''intégration
double h,s; //n = nombre de pas
n=n+n;
s = f(a)*f(b);
h = (b-a)/n;
z = 4;
for(i = 1; i<n; i++){
s = s + z * f(a+i*h);
z = 6 - z;
}
return (s * h)/3;
}
}
class integration{ //Class resultat: calcul l''integrale et affiche le resultat.
public static void main(String args[]){
Fonction fonction; //Appel class fonction
fonction = new Fonction();
double a = ???? ; //RENTRER les valeurs souhaitées de a, b et n !!!
double b = ???? ;
int n = ???? ;
double resultat = fonction.IntSimpson(a,b,n); //Applique méthode simpson à fonction
System.out.println("Integrale vaut: " + resultat); //Affiche les résultats
}
}