我有一个问题涉及到的顺序为0,我写我自己的球贝塞尔函数球贝塞尔函数:Matlab的定制球贝塞尔函数的NaN在0
function js = sphbesselj(nu,x)
js = sqrt(pi ./(2* x)) .* besselj(nu + 0.5, x);
end
这似乎与Mathematicas内置一个为我所有的测试,以同意案例。问题出在nu
或x =0
。 Mathematica正确返回1,但是我的MATLAB scrip返回NaN。我怎么能纠正我的代码,这样,如果我在一个阵列喂说x = 0:1:5
我得到了1我的第一个值,而不是
>> sphbesselj(0,x)
ans =
NaN 0.8415 0.4546 0.0470 -0.1892 -0.1918
是我的自定义函数去了解它的最好方法?
感谢
除以零总会给你带来问题。为什么不抓住x = 0的情况,并相应地修改 – mathematician1975