我需要用Java开发一个程序来解决一些积分问题。积分如下:
我在java.Math中找了一些函数来执行此操作,但我没有找到任何内容。
有人有想法为此获得解决方案吗? (可能是一些额外的库或类似的东西)
非常感谢!!
答案 0 :(得分:17)
维基百科有关数值整合的文章有一节关于methods for one-dimensional integrals。
执行“梯形”或“矩形”规则应该没有问题。
答案 1 :(得分:12)
Apache Commons Math库在Numerical Analysis部分中包含四个不同的数值积分器:
答案 2 :(得分:3)
查看JScience
答案 3 :(得分:2)
在维基百科上查看Simpson's Rule。
答案 4 :(得分:1)
/* Small program that numerically calculates an integral according to Simpson's algorithm. Before executing it, you must enter: - the expression of the function f: line 12; the lower and upper limits b of the integral: lines 39 and 40; the number of measurements n (n is integer !!!): line 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
}
}