修正贝塞尔函数比

Modified Bessel function ratios

提问人:user2665861 提问时间:11/17/2023 最后编辑:Ian Bushuser2665861 更新时间:11/17/2023 访问量:53

问:

如何在 Fortran 或 MATLAB 中处理 BesselI(0,a)/BesselI(0,b) 以防止 NaN?

我希望有一种简化比率的方法或数学技巧来处理这个问题。我尝试了 BesselI(0) 的系列表示,但有时它无法收敛。

MATLAB Fortran Bessel-函数

评论

0赞 Martin Brown 11/17/2023
贝塞尔(0,a)/贝塞尔(0,b)是指J0(a)/J0(b),在这种情况下,如果J0(b)的计算结果正好为零,除非J0(a)也为零,否则你就死在水中了。否则,它是该数学表达式中的真正极点。可以简化的情况有一个合理的限制,例如。因为 x->0 表示 sinc(x) = sin(x)/x,但如果计算得天真,就会爆炸。在这种情况下,您可以用分析限 1 代替 x=0 的情况。
1赞 Ian Bush 11/17/2023
@MartinBrown 考虑到标题和函数名称末尾的 I 是什么,我怀疑需要的是 I0(a)/I0(b),如果是这样,生活会更理智。但是我们真的需要通过编辑问题来澄清这一点,而不是作为注释,至少是导致问题的 a 和 b 的值——但实际上我们需要一个最小的、可重复的例子
0赞 Vladimir F Героям слава 11/17/2023
欢迎,我建议参观一下这个网站是如何使用的,并阅读如何询问,看看这里会有什么样的答案。如果你有一个编程问题,我同意 Ian Bush 的观点,你应该展示给你带来问题的代码。例如,Fortran 或 MATLAB,只是其中之一。如果您有数学知识,Stack Exchange 还有其他网站。
0赞 Ander Biguri 11/17/2023
BesselI(0,a)/(BesselI(0,b)+0.0000000000000001)?
1赞 Cris Luengo 11/17/2023
Besseli(0,a)从不为零。

答: 暂无答案