1

我正在尝试将 Excel 工作簿中的所有函数放入 MATLAB。我在 MATLAB 中使用贝塞尔函数时遇到问题。我只是没有从 MATLAB 中获得与在 excel 中相同的结果。

例如,在 excel 中,如果我执行

=0.32*BESSELI(0.32,0)/2/BESSELI(0.32,1)

我得到 1.012。

当我在 MATLAB 中使用相同的方法时

0.32*besseli(0.32,0)/2/besseli(0.32,1)

我只是得到零。

有人可以帮我将贝塞尔函数集成到我的 MATLAB 脚本中,以便它们提供与在 excel 中使用时相同的答案吗?

4

2 回答 2

3

MATLAB 和 Excel 的besseli函数参数顺序不同。

以下表达式(注意参数的顺序已更改):

0.32*besseli(0, 0.32)/2/besseli(1, 0.32)

将产生:

> ans =  1.0127

在 MATLAB 中。

于 2015-11-04T21:12:59.883 回答
2

文档显示了公式,并表明如果您使用 Z=0(您在 first 中使用的besseli),您应该得到 0,您可以这样做。第二次调用不besseli应该让你归零,实际上它不会:

在此处输入图像描述

besseli(0.32,1)
ans =
    1.0744

我从上述文档中复制了以下内容:

在此处输入图像描述

这表明,除非 您的 nu(看起来像 av 的希腊语)为零,否则您在 Z=0 处的第一类修正贝塞尔函数实际上为零。附注:你为什么要双重划分而不是简单地写作

0.32*besseli(0.32,0)*besseli(0.32,1)/2
于 2015-11-04T21:07:25.700 回答