问题标签 [bessel-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
230 浏览

matlab - 对 Bessel 函数使用负范围会产生 2 个值

我正在使用matlab的内置函数来计算二阶贝塞尔函数,下面是代码

输出如下

y =

-0.147863143391227 + 0.655158275182930i

-0.397925710557100 + 0.132086656047098i

-0.324674424791800 - 0.678117917051873i

0.107032431540937 - 1.153449615513747i

0.781212821300289 - 0.880101171489867i

-0.781212821300289
-0.107032431540937
0.324674424791800
0.397925710557100
0.147863143391227

我不明白为什么当 z 的值为负时我得到两个值?

0 投票
0 回答
1605 浏览

c++ - 为什么 boost 的 bessel 函数不能用复杂的输入编译?

根据 boost 文档,boost 特殊函数 bessel 函数(特别是修改后的 bessel 函数)应该能够接受复杂的输入。

但是,当我尝试给它一个时,我得到一个编译错误,抱怨没有<操作数类型的运算符floatstd::complex<float>.

这是我的代码:

如您所见,我正在尝试将 boost 的修改后的贝塞尔函数实现用于 0 阶、第一类修改后的贝塞尔函数。

这会返回错误页面,但据我所见,他们都在抱怨<输入操作数缺少运算符。

我尝试将模板参数显式指定为<int, complex>,<double, complex><complex, complex>,但无济于事。

这是一个例子:

我正在使用启用了 C++11 的 Intel 2013 编译器。

我在这里做错了什么?

作为一个附带问题,查看该函数的 boost 文档,我注意到这个令人不安的位:

只要结果未定​​义或复杂,函数就会返回 domain_error 的结果。

这是否意味着当给定复杂的输入时,该函数也会因复杂的结果而失败(人们可以想象得到复杂输出的可能性)?

编辑:深入挖掘,问题似乎在于 std::complex 类型没有 > 或 < 运算符。这在某种程度上是有道理的,因为质疑一个复数是否大于另一个是有点模棱两可的(一个复数是大小,实部还是虚部?等等......)

因此,尽管贝塞尔函数是为复数输入定义的,但 boost 本身似乎不支持贝塞尔函数的复数输入。似乎文档对此有点误导。

0 投票
2 回答
596 浏览

c - 在 matlab 和 gsl 中使用修改后的贝塞尔函数

我正在尝试使用 Matlab 和 c 为音频信号制作 kaiser 窗口我一直在查看 Matlab 和 gnu 科学库文档以了解如何使用修改后的第一类和 0 阶贝塞尔函数,但我仍然有一些问题:

  • 似乎GSL不接受0阶贝塞尔函数,我不明白关于这一点的文档。
  • 我不知道我应该使用常规函数还是不规则函数。他们有什么区别?Matlab没有那个。
  • 哪种是过滤信号最快的方法:时域还是频域?
  • 如何在频域上过滤信号?
0 投票
2 回答
3702 浏览

matlab - 在matlab上计算零阶贝塞尔函数

J(x)= 1/π 积分 cos(xsintheta)。限制是从 0 到 π。

在 MATLAB 中将 J(2pid/λ) 绘制为 d/λ 的函数,d/λ 介于 0 和 2 之间。天线 0.7 和 0 之间的相关性在多少距离(波长)处?

当我定义 syms theta 并使用 J_=integral(J,0,pi); 时,我不明白如何将它集成到 matlab 中。出现错误。其次,当我手动集成它时,答案显示为 0。请帮助我。

0 投票
1 回答
1862 浏览

matlab - Matlab自定义球形贝塞尔函数NaN为0

我有一个涉及 0 阶球面贝塞尔函数的问题。我编写了自己的球面贝塞尔函数:

这似乎与我所有测试用例的 Mathematicas 内置一致。问题在nux =0。Mathematica 正确返回 1,但我的 MATLAB 脚本返回 NaN。我怎样才能更正我的代码,这样如果我输入一个say数组,x = 0:1:5我的第一个值就会得到1,而不是

我的自定义函数是解决这个问题的最佳方法吗?

谢谢

0 投票
3 回答
556 浏览

matlab - 矢量化 - Sum 和 Bessel 函数

任何人都可以帮助矢量化这个 Matlab 代码吗?具体问题是向量输入的求和和贝塞尔函数。谢谢!

0 投票
1 回答
4754 浏览

python - python的密度图用贝塞尔积分制作衍射图案,但它不会停止运行

我正在尝试制作一个圆形衍射图案,它的中心点被一系列环包围。它涉及到代码中定义的贝塞尔积分。

我的问题是它需要很长时间,就像我等待 10 分钟让代码运行但没有显示任何内容一样。我知道这是因为我的贝塞尔积分每点有 1000 次迭代,任何人都可以帮助解决这个问题吗?

我在正确的轨道上吗?

我正在尝试通过 Mark Newmans 的书 Computational Physics 自学 Python 和计算物理学,练习是计算物理学的 5.4。这是本章的链接它在第 9 页。 http://www-personal.umich.edu/~mejn/cp/chapters/int.pdf

这是我正在尝试制作的图像。

同心环.

我的代码:

0 投票
1 回答
1420 浏览

c# - 来自 math.net 的第一类贝塞尔函数

我需要在unity3d中使用第一类bessel函数(使用c#)。在尝试在统一中使用 mathnet.numerics .dll 后,我发现许多错误显然是由于 unity3d 不支持 .NET 4。然后我决定使用 jetbrains dotPeek 反编译器来查找贝塞尔函数源。

然而,贝塞尔函数给出了错误的输出,老实说,数学高于我的工资等级,所以调试它非常困难。任何人都可以看到我使用过的任何错误。

例如,x = 20 的输出是 43558282.5571362 其中应该是 0.167025

0 投票
1 回答
345 浏览

c++ - c++ 中“Matlab besselk(x,y,1)”的确切等价物是什么?

我试过了boost::math::cyl_bessel_k(x,y) * exp(y)。在大多数情况下,这等于 Matlab 的 scaled besselk(x,y,1)。但在某些情况下(例如 , x=1y=2000besselk(x,y)=0和时boost::math::cyl_bessel_k(x,y)=0,Matlab 的缩放版本besselk(x,y,1)给我不同的值在10^-3. 但boost::math::cyl_bessel_k(x,y) * exp(y)回报-nan。我想为 Matlab 的besselk(x,y,1). 我该如何处理?

0 投票
2 回答
4244 浏览

matlab - matlab中贝塞尔函数的微分计算

在 Matlab 中,为什么贝塞尔函数 j1(x) 的微分让我们说 x= 1:10 给出 9 个值而不是 10 个?