我有一個問題涉及到的順序爲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