Подтвердить что ты не робот

Как решить интеграл в Java?

Мне нужно разработать программу на Java для решения некоторых интегралов. Интегралы как это:

alt text

Я искал некоторые функции для этого, в java.Math, но я ничего не нашел.

У кого-нибудь есть идея получить решение для этого? (может быть, какие-то дополнительные библиотеки или что-то в этом роде).

4b9b3361

Ответ 1

В статье Википедии о численной интеграции содержится раздел о методах для одномерных интегралов.

У вас не должно возникнуть проблемы с реализацией правила "трапеция" или "прямоугольник".

Ответ 2

Библиотека Apache Commons Math содержит в Численный анализ, четыре различных числовых интегратора:

  • Метод Ромберга
  • Метод Симпсона
  • трапециевидный метод
  • Метод Лежандра-Гаусса

Ответ 4

Взгляните на JScience

Ответ 5

/*------------------------------------------------------------------------------------------------------
 * Small program that numerically calculates an integral according to 
 * Simpson 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 function: Defines Simpson rule
class Function{                                                        

    // Define the function to integrate
    double f (double x) {                                              
       return Math.Cos(x);
    }

    // Simpson method for integral calculus
    // a = lower bound
    // b = upper bound of integration
    // n = number of passes (higher = less margin of error, but takes longer)
    double IntSimpson(double a, double b,int n){                       
       int i,z;                                                       
       double h,s;                                                    

       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 result: calculates the integral and displays the result.
    public static void main(String args[]){
       // Call class function                                           
       Function function;                                   
       function = new Function();

       // ENTER the desired values of a, b and n !!!
       double a = ???? ;                                           
       double b = ???? ;
       int n = ???? ;
       // Applies simpson method to function
       double result = function.IntSimpson(a,b,n);

       // Show results
       System.out.println("Integral is: " + result);        
    }
}