Java에서 double integals의 수치 계산을 구현해야합니다. 이 때문에, 어떤 경우에Java에서 Numerical Double Integration
public static double Integrate(Integravel integrando, boolean pontoMedio) {
double sum = 0.0;
double f2;
double deltaX = (integrando.getb() - integrando.geta())
/(double) integrando.getN();
double deltaY = (integrando.getd() - integrando.getc())
/(double) integrando.getN();
double deltaArea = deltaX * deltaY;
double x, xi, y, yi;
if (pontoMedio) {
xi = integrando.geta() + deltaX/2;
yi = integrando.getc() + deltaY/2;
}
else {
xi = integrando.geta() + deltaX;
yi = integrando.getc() + deltaY;
}
for (int j=0; j<integrando.getN(); j++) {
for (int i = 0; i < integrando.getN(); i++) {
if (j==0) {
x = xi;
} else {
x = xi + deltaX;
}
if (i==0) {
y = yi;
} else {
y = yi + deltaY;
}
f2 = integrando.funcao(x, y);
sum += f2*deltaArea;
}
}
return sum;
}
그것은하지 작업,하지만 난 적분 계산이 더 정확해야한다 (N 너무 큰 만들 때마다 다음 통합() 함수에 집중 , 여기에 내가 지금까지에 무슨이다 무한대로 가야한다고 가정 할 때), 그것은 적분 추정을위한 잘못된 값을 반환합니다. 내가 여기서 뭔가 잘못하고 있니? 프로젝트의 코드가 더 필요하면 알려주십시오. 도움이 될 것입니다. 감사!
"너무 큰"크기는 어느 정도입니까? –
잘못된 출력, 예상되는 출력 및 실제 출력을 제공한다고 생각되는 입력 예를 들려 줄 수 있습니까? –
n = 2이면 정확한 추정을 반환합니다. 100, 1000 또는 4000보다 높으면 잘못됩니다. 그것은 변수 합계에서 합계 또는 일부 오류를 계산하는 데 사용하는 메서드와 관련이 있는지 확실하지 않습니다. – yvesbastos