0~9阶的贝塞尔函数零点的计算公式,其中理论上计算零点个数N在50以内时较为精确:

Airy光束,基模高斯光束 Bessel光束经过大气湍流相位屏的传输特性

function rootBessel = besal_pi0(n,N)    

% 求解n阶贝塞尔函数的零点(0-9)
% n为贝塞尔函数阶数 
% N为要求的零点数量

j = zeros(n+1, N);    % 贝塞尔函数的根
incr = 4.0;
for v = 0 : n
   h = v + 1.9*v^(1/3)+1;
   if (v == 0)             % 0阶贝塞尔函数的第一个零点
       j(v+1,1) = fzero(@(x)besselj(v,x),2);
   else                    % 1阶及以上阶贝塞尔函数的第一个零点
       j(v+1,1) = fzero(@(x)besselj(v,x),h);
   end
   for s = 2 : N           % 贝塞尔函数的第2个及后面的零点
       j(v+1,s) = fzero(@(x)besselj(v,x),j(v+1,s-1)+incr);
   end    
end

rootBessel = j;
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐