在MATLAB

时间:2015-11-04 20:59:29

标签: excel matlab bessel-functions

我试图将Excel工作簿中的所有功能都放到MATLAB中。我在MATLAB中使用bessel函数时遇到了问题。我没有像在Excel中那样从MATLAB获得相同的结果。

例如,如果我执行

,则在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)

我只是得到零。

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

2 个答案:

答案 0 :(得分:3)

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

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

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

将产生:

> ans =  1.0127

在MATLAB中。

答案 1 :(得分:2)

documentation显示公式,并显示如果你使用Z = 0(你在第一个besseli中有),那么你应该得到0。对besseli的第二次调用不应该让你为零,事实上它不会:

enter image description here

besseli(0.32,1)
ans =
    1.0744

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

enter image description here

这表明除非你的nu(看起来像v的希腊语)为零,否则你在Z = 0时修改的第一类Bessel函数实际上为零。 旁注:为什么你要分开而不是简单地写

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