我想用Matlab以数字方式解决它。
首先我尝试solve the problem with a simpler version of function F and f。
然后,我尝试解决以下问题:
n = 3; % n0 in the equation
k = 2;
P = 0.99; % P* in the equation
F = @(x,y,h) normcdf(h./sqrt((n-1)*(1./x+1./y)));
g1 = @(y,h)integral(@(x) F(x,y,h).*chi2pdf(x,n),0,Inf, 'ArrayValued', true);
g2 = @(h) integral(@(y) (g1(y,h).^(k-1)).*chi2pdf(y,n),0,Inf)-P;
bsolve = fzero(g2,0)
我得到了5.1496的答案。问题是这个答案似乎不对。
有一篇论文提供了通过求解上述等式得到的h值表。本文发表于1984年,当时计算机功率不足以快速解决方程。他们用各种价值解决了这个问题:
3:20
,30:10:50
2:10
0.9
,0.95
和0.99
它们在每种情况下都提供h的值。
现在我试图解决这个等式并得到具有不同n0,k和P *值的h值(例如n0 = 25,k = 12和P * = 0.975),其中不提供h的值。
上面的Matlab代码给出了不同于纸张的h值。 例如:
作者说
使用32点Gauss-Laguerre数值求积法评估积分。这是通过在IBM子程序QA32中提供的适当的32个y值评估内部积分来实现的。还使用32点Gauss-Laguerre数值求积来评估内积分。内积分的32个值中的每一个都被提高到k-1次幂并乘以适当的常数。
Matlab似乎使用相同的求积法:
q = integral(fun,xmin,xmax)使用全局自适应求积法和默认误差容差,从xmin到xmax数值积分函数。
有没有人知道哪些结果是正确的?要么我在代码中犯了一些错误,要么论文可能是错的 - 可能是因为作者在估计积分时只使用了32个值?
答案 0 :(得分:0)
这确实有效,但是卡方分布具有(n-1)个自由度,而不是所发布代码中的n。如果这是固定的,那么里诺特的常数值与文献一致。或至少,没有背后的文献。不能和1984年的Wilcox说话。