开发者

Solve an Integral in Java [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
开发者_如何学编程

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 3 years ago.

Improve this question

I need to develop a program in Java to solve some integrals. Integrals like this:

Solve an Integral in Java [closed]

I've looked for some functions to do this, in java.Math but I didn't find anything.

Has anyone an idea to get a solution for this? (Maybe some extra libraries or something like that).


The Wikipedia article on Numerical Integration has a section on methods for one-dimensional integrals.

You should have no problem implementing the "trapezoidal" or "rectangle" rule.


The Apache Commons Math library contains, in the Numerical Analysis section, four different numerical integrators:

  • Romberg's method
  • Simpson's method
  • trapezoid method
  • Legendre-Gauss method


Take a look at JScience


Check out Simpson's Rule on Wikipedia.


/*------------------------------------------------------------------------------------------------------
 * 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 function: Defines Simpson's rule
class Function{                                                        

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

    // Simpson's 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);        
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜