gpt4 book ai didi

c++ - Matlab - 累积分布函数(CDF)

转载 作者:行者123 更新时间:2023-11-30 04:27:29 26 4
gpt4 key购买 nike

我正在将代码从 Matlab 转换为 C++,出于某些重要原因,我必须获得均值为 0 且方差为“正态”函数(在 Matlab 中为“norm”)的累积分布函数=1.

在Matlab中的实现是这样的:

map.c = cdf( 'norm', map.c, 0,1 );

这应该是来自 map.c 的直方图的均衡。

问题出现在将它翻译成 C++ 的时候,因为我缺少小数。我尝试了很多典型的 cdf 实现:比如我在这里找到的 C++ 代码, Cumulative Normal Distribution Function in C/C++但是我缺少小数,所以我尝试了 boost 实现:

#include "boost/math/distributions.hpp" 

boost::math::normal_distribution<> d(0,1);

但它仍然与 Matlab 的实现不同(我想它似乎更精确!)

有谁知道我在哪里可以找到此类过程的原始 Matlab 源代码,或者我应该考虑的正确小数位数是多少?

提前致谢!

最佳答案

高斯 CDF 是一个有趣的函数。我不知道我的回答是否会让你感兴趣,但它可能会引起其他人以后查找你的问题的兴趣,所以在这里。

可以通过逐项积分 PDF 的泰勒级数来计算 CDF。这种方法在高斯钟形曲线的主体中效果很好,只是在尾部数值上失败了。在尾部上,它需要特殊功能技术。我读过的最好的资料是 N. N. Lebedev 的 Special Functions and Their Applications ,章。 2,多佛,1972 年。

关于c++ - Matlab - 累积分布函数(CDF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com