在 MATLAB 中使用贝塞尔函数
Using bessel functions in MATLAB
我正在尝试将 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 中使用时相同的答案吗?
documentation 显示了公式并表明如果您使用 Z=0,这是您在第一个 besseli
中使用的,您应该得到 0,而您确实这样做了。第二次调用 besseli
不应该让你归零,事实上它不会:
besseli(0.32,1)
ans =
1.0744
我从上述文档中复制了以下内容:
这表明 除非 你的 nu(希腊语中看起来像 v 的东西)为零,否则你在 Z=0 处的第一类修正贝塞尔函数实际上是零。
旁注:你为什么要双重划分而不是简单地写
0.32*besseli(0.32,0)*besseli(0.32,1)/2
MATLAB 和 Excel 的 besseli
函数的参数顺序不同。
以下表达式(注意参数的顺序已更改):
0.32*besseli(0, 0.32)/2/besseli(1, 0.32)
将产生:
> ans = 1.0127
在 MATLAB 中。
我正在尝试将 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 中使用时相同的答案吗?
documentation 显示了公式并表明如果您使用 Z=0,这是您在第一个 besseli
中使用的,您应该得到 0,而您确实这样做了。第二次调用 besseli
不应该让你归零,事实上它不会:
besseli(0.32,1)
ans =
1.0744
我从上述文档中复制了以下内容:
这表明 除非 你的 nu(希腊语中看起来像 v 的东西)为零,否则你在 Z=0 处的第一类修正贝塞尔函数实际上是零。 旁注:你为什么要双重划分而不是简单地写
0.32*besseli(0.32,0)*besseli(0.32,1)/2
MATLAB 和 Excel 的 besseli
函数的参数顺序不同。
以下表达式(注意参数的顺序已更改):
0.32*besseli(0, 0.32)/2/besseli(1, 0.32)
将产生:
> ans = 1.0127
在 MATLAB 中。