Так, согласно моим урокам математики и различным видео по математике на Youtube, интеграл (1 / sqrt(2 * pi)) * exp((-x ^ 2) / 2)
от отрицательной бесконечности до положительной бесконечности равен ровно 1.
Итак, я написал пару методов, чтобы получить 100 равных по ширинеИнтегралы от -3 до 3 с использованием метода трапеции.
public double integrate() {
double[] integrateNormal = new double[100];
double sum = 0;
for (int i = 0; i < 100; i++) {
double pos_a = i*6/100.00-3;
double pos_b = ((i+1)*6/100.00)-3;
double a = (1/(Math.sqrt(2*Math.PI)))*(Math.exp(.5*(-Math.pow(pos_a,2))));
double b = (1/(Math.sqrt(2*Math.PI)))*(Math.exp(.5*(-Math.pow(pos_b,2))));
double h = 0.1;
integrateNormal[i] = (a+b)*h/2;
}
for (int i = 0; i < 100; i++) {
sum = sum + integrateNormal[i];
}
return sum;
}
Однако сумма возвращается как 1,66, а не 1 или даже чуть больше 1. Где моя ошибка?