我的积分方法返回的值太大

时间:2018-11-29 08:27:09

标签: java numeric numerical-methods integral numerical-integration

因此,根据我的数学课程和Youtube上的各种数学视频,(1 / sqrt(2 * pi)) * exp((-x ^ 2) / 2)从负无穷大到正无穷大的积分正好是1。

所以我写了一些方法,使用梯形方法从-3到3得到100个偶数宽度的局部积分。

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。

0 个答案:

没有答案