如何在Java中解决Integral?

时间:2010-08-01 11:24:10

标签: java math

我需要用Java开发一个程序来解决一些积分问题。积分如下:

alt text

我在java.Math中找了一些函数来执行此操作,但我没有找到任何内容。

有人有想法为此获得解决方案吗? (可能是一些额外的库或类似的东西)

非常感谢!!

5 个答案:

答案 0 :(得分:17)

维基百科有关数值整合的文章有一节关于methods for one-dimensional integrals

执行“梯形”或“矩形”规则应该没有问题。

答案 1 :(得分:12)

Apache Commons Math库在Numerical Analysis部分中包含四个不同的数值积分器:

  • Romberg的方法
  • 辛普森的方法
  • 梯形法
  • 勒让德 - 高斯方法

答案 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
    }
}