c中的逆累积分布函数?

用户名

我正在搜索一个函数或某些代码,这些函数或代码返回c中给定值的INVERSE累积正态分布。因此,如果我输入0.5,我得到0,0.157则给我-1。

有没有一种方法可以在c中实现呢?

JFS

这应该够了吧。它是Objective-C代码,但应易于转换为C。我将其用于统计计算,并且效果很好。

- (double)getInverseCDFValue:(double)p {

double a1 = -39.69683028665376;
double a2 = 220.9460984245205;
double a3 = -275.9285104469687;
double a4 = 138.3577518672690;
double a5 =-30.66479806614716;
double a6 = 2.506628277459239;

double b1 = -54.47609879822406;
double b2 = 161.5858368580409;
double b3 = -155.6989798598866;
double b4 = 66.80131188771972;
double b5 = -13.28068155288572;

double c1 = -0.007784894002430293;
double c2 = -0.3223964580411365;
double c3 = -2.400758277161838;
double c4 = -2.549732539343734;
double c5 = 4.374664141464968;
double c6 = 2.938163982698783;

double d1 = 0.007784695709041462;
double d2 = 0.3224671290700398;
double d3 = 2.445134137142996;
double d4 = 3.754408661907416;

//Define break-points.

double p_low =  0.02425;
double p_high = 1 - p_low;
long double  q, r, e, u;
long double x = 0.0;


//Rational approximation for lower region.

if (0 < p && p < p_low) {
    q = sqrt(-2*log(p));
    x = (((((c1*q+c2)*q+c3)*q+c4)*q+c5)*q+c6) / ((((d1*q+d2)*q+d3)*q+d4)*q+1);
}

//Rational approximation for central region.

if (p_low <= p && p <= p_high) {
    q = p - 0.5;
    r = q*q;
    x = (((((a1*r+a2)*r+a3)*r+a4)*r+a5)*r+a6)*q / (((((b1*r+b2)*r+b3)*r+b4)*r+b5)*r+1);
}

//Rational approximation for upper region.

if (p_high < p && p < 1) {
    q = sqrt(-2*log(1-p));
    x = -(((((c1*q+c2)*q+c3)*q+c4)*q+c5)*q+c6) / ((((d1*q+d2)*q+d3)*q+d4)*q+1);
}


//Pseudo-code algorithm for refinement

if(( 0 < p)&&(p < 1)){
    e = 0.5 * erfc(-x/sqrt(2)) - p;
    u = e * sqrt(2*M_PI) * exp(x*x/2);
    x = x - u/(1 + x*u/2);
}


iCFDValue = x;
return iCFDValue;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

字典中的累积分布

来自分类Dev

计算大型numpy数组的逆累积分布函数时,如何避免numpy.place中的错误?

来自分类Dev

CDF累积分布函数误差

来自分类Dev

使用MATLAB拟合累积分布函数

来自分类Dev

累积分布函数(超几何)

来自分类Dev

从累积分布函数计算分布中位数

来自分类Dev

提取/导出R(ecdf)中的经验累积分布函数的数据

来自分类Dev

提取/导出R(ecdf)中的经验累积分布函数的数据

来自分类Dev

如何正确获取我的数据在python中的累积分布函数?

来自分类Dev

如何用C(或其他语言)实现标准正态累积分布函数

来自分类Dev

如何用C(或其他语言)实现标准正态累积分布函数

来自分类Dev

用Python计算累积分布函数(CDF)

来自分类Dev

使用TIdyverse绘制累积分布函数的简单方法?

来自分类Dev

在R中使用Weibull的累积分布函数

来自分类Dev

分位数估计后建立累积分布函数

来自分类Dev

Python:如何获得连续数据值的累积分布函数?

来自分类Dev

C ++中对数正态分布的累积函数的逆函数

来自分类Dev

C ++中对数正态分布的累积函数的逆函数

来自分类Dev

R中累积高斯分布的逆

来自分类Dev

如何在R中创建累积分布表?

来自分类Dev

如何在python中计算对数正态累积分布函数的反函数?

来自分类Dev

Python-读取超大栅格并绘制经验累积分布函数,内存错误

来自分类Dev

绘制嵌套在一帧中的辅助数据的累积分布

来自分类Dev

熊猫中的累积分组

来自分类Dev

使用MapReduce在MongoDB中进行累积分布

来自分类Dev

如何在[r]中引入两个逆累积概率分布之间的相关性?

来自分类Dev

我想为两个样本创建经验累积分布函数并将这些图放在同一个图中 [R]

来自分类Dev

R中的积分函数

来自分类Dev

为指数积分函数求逆

Related 相关文章

  1. 1

    字典中的累积分布

  2. 2

    计算大型numpy数组的逆累积分布函数时,如何避免numpy.place中的错误?

  3. 3

    CDF累积分布函数误差

  4. 4

    使用MATLAB拟合累积分布函数

  5. 5

    累积分布函数(超几何)

  6. 6

    从累积分布函数计算分布中位数

  7. 7

    提取/导出R(ecdf)中的经验累积分布函数的数据

  8. 8

    提取/导出R(ecdf)中的经验累积分布函数的数据

  9. 9

    如何正确获取我的数据在python中的累积分布函数?

  10. 10

    如何用C(或其他语言)实现标准正态累积分布函数

  11. 11

    如何用C(或其他语言)实现标准正态累积分布函数

  12. 12

    用Python计算累积分布函数(CDF)

  13. 13

    使用TIdyverse绘制累积分布函数的简单方法?

  14. 14

    在R中使用Weibull的累积分布函数

  15. 15

    分位数估计后建立累积分布函数

  16. 16

    Python:如何获得连续数据值的累积分布函数?

  17. 17

    C ++中对数正态分布的累积函数的逆函数

  18. 18

    C ++中对数正态分布的累积函数的逆函数

  19. 19

    R中累积高斯分布的逆

  20. 20

    如何在R中创建累积分布表?

  21. 21

    如何在python中计算对数正态累积分布函数的反函数?

  22. 22

    Python-读取超大栅格并绘制经验累积分布函数,内存错误

  23. 23

    绘制嵌套在一帧中的辅助数据的累积分布

  24. 24

    熊猫中的累积分组

  25. 25

    使用MapReduce在MongoDB中进行累积分布

  26. 26

    如何在[r]中引入两个逆累积概率分布之间的相关性?

  27. 27

    我想为两个样本创建经验累积分布函数并将这些图放在同一个图中 [R]

  28. 28

    R中的积分函数

  29. 29

    为指数积分函数求逆

热门标签

归档