Ответ 1
В статье Википедии о численной интеграции содержится раздел о методах для одномерных интегралов.
У вас не должно возникнуть проблемы с реализацией правила "трапеция" или "прямоугольник".
Мне нужно разработать программу на Java для решения некоторых интегралов. Интегралы как это:
Я искал некоторые функции для этого, в java.Math, но я ничего не нашел.
У кого-нибудь есть идея получить решение для этого? (может быть, какие-то дополнительные библиотеки или что-то в этом роде).
В статье Википедии о численной интеграции содержится раздел о методах для одномерных интегралов.
У вас не должно возникнуть проблемы с реализацией правила "трапеция" или "прямоугольник".
Библиотека Apache Commons Math содержит в Численный анализ, четыре различных числовых интегратора:
Отметьте правило Симпсона в Википедии.
Взгляните на JScience
/*------------------------------------------------------------------------------------------------------
* 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);
}
}