正态分布函数使用结果的问题
问题:函数NormalCumDensityArray-数组的正态分布累计概率密度,和函数NormalDensityArray-数组的正态分布概率密度,两个函数计算结果为什么对应不上?对于一维数组:arr = [86.38, 62.10, 72.88, 88.75, 72.75, 82.55, 71.04, 69.09, 74.93, 86.43, 78.40, 73.19, 57.33];用NormalCumDensityArray函数计算结果是0.885747,而单独对于数组每一个数值用NormalDensityArray函数算法进行独立运算再累积和的时候,得到的结果是0.38。请问老师:为什么结果会有差异?程序代码如附件或下面拷贝代码。运行结果见如下截图。ParamsVars Numeric TowPiRoot(2.506628275);//sqrt(2*Pi) Numeric Var1; Numeric Var2; Numeric Fx; Array<Numeric> arr; Series<Array<Numeric>> Fxarray; Series<Numeric> i; Plot pen1;Events OnInit() { pen1.figure(1); } OnBar(ArrayRef<Integer> indexs) { arr = [86.38, 62.10, 72.88, 88.75, 72.75, 82.55, 71.04, 69.09, 74.93, 86.43, 78.40, 73.19, 57.33];//构建一个13个数值的一维数组。 Var1 = AverageArray(arr);//求数组均值。 Var2 = StandardDevArray(arr,1);//求数组标准差。 If(Var2 >0) { Fx=Round(1/(TowPiRoot*Var2)*Exp(-1*Sqr(arr[i] - Var1)/(2*Sqr(Var2))),2);//用NormalDensityArray函数的内部计算公式求数组每一个数值的概率密度值,保留两位小数。 pen1.line("Fx", Fx);//附图作图。 ArrayInsert(Fxarray, i, Fx);//计算结果放入一维数组。 i=i+1; if(i==12)//对数组arr进行循环语句计算。 { Array<Numeric> NEWarray; ArraySwap(Fxarray,NEWarray);//将序列型数组转换成数值型数组。 Numeric FX_SUM = SummationArray(NEWarray);//求数组概率密度的和。SummationArray必须使用数值型数组,不能使用序列型数组,所以要用上一条语句转换,转换后原来的数组内容就清空了。那么下面的语句就要用新的数组了。 print("FX_SUM:" + text(FX_SUM));//FX_SUM:0.38。单独计算的数组每一个数值概率密度的累加值是0.38. print("NEWarray:" + textarray(NEWarray));//数组每一个数值的概率密度值:NEWarray:[0.02,0.02,0.04,0.01,0.04,0.03,0.04,0.04,0.04,0.02,0.04,0.04] Numeric glmd_sum = NormalCumDensityArray(arr);//直接用函数求数组的正态分布累计概率密度,结果是:glmd_sum:0.885747 print("glmd_sum:" + text(glmd_sum)); i = 0; ArrayClear(Fxarray); } }Else { Fx= -1; } }