怎样用C++算正态分布的积分

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:33:39
求一个C++程序的cpp , 这个程序要可以根据输入的上下限c, d来计算出标准正态分布积分
比如,输入-0.3 2.1,就能算出F(2.1) - F(-0.3)
就像二楼说的那样的

你看看计算公式是不是这样的?

还有精度要多少啊?

查表可知,

F(2.1) =0.9821

F(-0.3)=1-0.6179 

F(2.1) - F(-0.3) = 0.6

源程序

#include<stdio.h>

#include<math.h>

double f(double x)

{

    return exp(-x*x/2);

}

double F(double a,double b,double ep=1e-6)

{

    double h,s1=0,s2=(b-a)*(f(a)+f(b))/2;

    int n,k;

    for(int n=1;fabs(s1-s2)>ep;n*=2)

    {

        h=(b-a)/n;

        s1 = s2;

        s2 = 0;

        for(int k=0;k<n;++k)

        {

   &n