23 July 202405:23:28 PM
ASA310_PRB:
C++ version
Test the ASA310 library.
TEST01:
NCBETA computes the noncentral incomplete Beta function.
Compare to tabulated values.
A B LAMBDA X FX FX2
(Tabulated) (NCBETA) DIFF
55540.8640.45630210.45630224833903671.483 e-07551400.90.10413370.10413347908759822.209 e-07551700.9560.60223530.60224181585488076.516 e-061010540.86860.9187770.91877592543309741.075 e-0610101400.90.60081060.60080678940968323.811 e-0610102500.90.0902850.09028989932605594.899 e-062020540.87870.99986550.99986140486117034.095 e-0620201400.90.99259970.99259547773473624.222 e-0620202500.9220.96411119999999990.96411795457015096.755 e-0610201500.8680.93766265730.93766265552197311.778 e-0910101200.90.73068178580.7306817844791931.321 e-09155800.880.16042569180.16042569169197811.08 e-1020101100.850.18674853130.1867485309480683.519 e-102030650.660.65593868740000010.65593868739922887.713 e-1320501300.720.97968814860.97968814742020761.18 e-093020800.720.11623864230.11623864215237971.476 e-1030401300.80.99304300540.99304300423072621.169 e-09105200.6440.05068992730.050689879813552734.749 e-081010540.70.10309597060.10309597061126841.127 e-111030800.780.99784178320000010.99784178304248381.575 e-1015201200.760.25555523690.25555523558549331.315 e-09105550.7950.06683070640.06683070640851368.514 e-121217640.560.01136010670.011360106665912963.409 e-1130301400.80.78133666150.78133665911859012.381 e-093530200.670.88671264770.88671255693544489.076 e-08
ASA310_PRB:
Normal end of execution.
这就是结果。
也不是很好...一般来说,处理非中心贝塔分布属于非难事。我们设法从开放源代码中看到了Boost。它将比现在的 SB 更加复杂。
维基百科上也有:
也就是说,取两个随机变量,第一个变量来自非中心奇平方分布,第二个变量来自中心 分布。也许代码可以这样修改:
示例中修改后的图形如下。
谢谢您,您说得没错,我们需要通过这个公式进行计算,但还有一个错误,lambda 非中心性参数应该不带乘数 2。
测试脚本:
结果:
我还检查了非中心贝塔分布的 CFD 功能。
有些结果值得商榷:
其他来源使用的是 ASA310 算法:
例如 Wolfram Mathematica 中的一些结果:
这或多或少与真相相似...