我需要计算由积分公式给出的两个变量的简并超几何函数:
我使用Matlab进行数值积分:
l = 0.067;
h = 0.933;
n = 1.067;
o = 0.2942;
p = 0.633;
func_F=@(x)(x.^(l-1)).*((1-x).^(n-l-1)).*((1-x.*o).^(-h)).*exp(x.*p);
hyper= quadl(func_F,0,1,'AbsTol',1e-6); % i use 'AbsTol' to avoid warnings
disp(hyper);
我得到的结果是54.9085,我知道这个值是错的!所以请帮我计算上面积分的真值,奇点为0。
答案 0 :(得分:0)
我没看到你的代码中有Gamma函数的位置。你有没有忘记它们,或者你所期望的价值是否已经弥补了它们的不足?
此外,也许你可以说明为什么“这个价值是错误的”。否则我们只是在猜测。
编辑:根据Matlab help page on this function,还有一件事情,使用quadgk
可能会更好。请参阅以下引文(靠近页面底部):
quadgk函数将集成单数函数 如果奇点不是太强,则有限终点。例如, 它将集成在端点上运行的函数,如log | x-c | 或| x-c | p,p> = -1/2。如果函数在内部的点处是奇异的 (a,b),将积分写为子区间上的积分之和 将奇点作为端点,用quadgk计算它们,然后加上 结果。
底线是端点附近的奇点(当x
接近0或1时)可能会导致一些问题。