问题标签 [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 投票
1 回答
186 浏览

matlab - Matlab中负n的第一类贝塞尔函数的根

有一些代码可以计算

我想计算以下的根:

n是一个实数。

是否有一些算法或更好的一些 Matlab 代码可以做到这一点。

0 投票
1 回答
833 浏览

c++ - C ++:具有非整数的贝塞尔函数

我一直在尝试找到一个计算第一类 Bessel 函数但具有非整数值的库/函数。我有以下程序。

然而,这个函数似乎只计算整数值,所以在这个例子中,我得到了 n=2 的第一个 Bessel 函数。

任何人都知道我如何确定具有非整数值的第一个 Bessel 函数?

编辑:我想在 C++ 中找到一个为我计算 J_(5/2)(x) 的函数。

0 投票
1 回答
432 浏览

python - Hankel 函数的二阶导数 unsing sympy

我想使用 Simpy 绘制 Hankel 函数的二阶导数。在Mathematica中,它很简单:

这可以通过使用属性进行分析,

二阶和一阶汉克尔函数的一阶导数分别等于二阶零阶和二阶的两个汉克尔函数之差,所有这些都除以二。

但我想学习如何使用 Sympy 直接推导它。到目前为止,我已经尝试过:

错误消息对我来说似乎难以辨认:

SympifyError Traceback (last last call last) in () 1 import sympy as sp 2 x = sp.Symbol('x') ----> 3 dh2 = sp.diff(lambda x: hankel2(1,x),x )

/usr/lib/python2.7/dist-packages/sympy/core/function.pyc in diff(f, *symbols, **kwargs) 1639 """ 1640 kwargs.setdefault('evaluate', True) -> 1641返回导数(f, *symbols, **kwargs) 1642 1643

/usr/lib/python2.7/dist-packages/sympy/core/function.pyc in new (cls, expr, *variables, **assumptions) 985 def new (cls, expr, *variables, **assumptions): 986 --> 987 expr = sympify(expr) 988 989 # 没有变量,我们区分所有的自由符号

/usr/lib/python2.7/dist-packages/sympy/core/sympify.pyc in sympify(a, locals, convert_xor, strict,rational, evaluate) 313 expr = parse_expr(a, local_dict=locals, transformations=transformations, evaluate=evaluate) 314 except (TokenError, SyntaxError) as exc: --> 315 raise SympifyError('could not parse %r' % a, exc) 316 317 return expr

SympifyError: Sympify of expression 'could not parse u' at 0x7fdf3eca9e60>'' 失败,因为引发了异常:SyntaxError: invalid syntax (, line 1)

任何线索我的错误在哪里?

提前致谢。

0 投票
0 回答
328 浏览

java - 在java中计算非整数阶的二阶贝塞尔函数

我正在尝试使用 Java 计算二阶贝塞尔函数 (Y_v(x))。其中,贝塞尔函数的阶数 v 是非整数。

我知道,Apache 有一个计算一阶贝塞尔函数的函数(J_v(x))

它可以计算非整数一阶贝塞尔函数(但不能计算负阶函数)。我不相信它有二阶的等价物。

我找到了一个计算二阶贝塞尔函数的公式(其他地方的数值计算公式 6.4.2),它从一阶函数计算二阶贝塞尔函数。

在此处输入图像描述

然而,这个方程需要一阶贝塞尔函数来接受 apache BesselJ 函数不接受的负 v 值。

我编写了一个程序来计算 BesselJ 函数,该函数使用公式(数字食谱 6.4.1)接受负值

在此处输入图像描述

(将伽马预先计算并存储在数组中只是因为在其余代码中如何使用贝塞尔函数,以避免不必要地重新计算)

我编写的函数适用于低 x 值,但随后会失去稳定性。对于我在x = 30左右之后使用的v = -10.5值。如图所示。

在此处输入图像描述

在 wolfram alpha 网站上,mathematica 使用相同的方程计算贝塞尔函数,mathematica 的 BesselJ 函数可以计算

不失稳定性。

在此处输入图像描述

任何关于如何纠正我的函数或使用 Java 计算二阶贝塞尔函数的替代方法的建议都将非常感激。

请说是否有任何澄清会有用。

谢谢

0 投票
1 回答
750 浏览

performance - 在matlab中计算贝塞尔函数的更快方法

我正在为拟合例程编写程序,目前正在优化代码以加快计算速度。弱点是一部分,我必须计算大量的贝塞尔函数,大约需要 0.7 秒。在我的例子中,q 有 177 个条目,th 100 和 R 400。

我也尝试制作一个 3D-Matrix,但计算时间稍长。

所以,我想知道,有没有办法更快地计算这些贝塞尔函数?提前谢谢,库伊

0 投票
1 回答
816 浏览

python - Scipy - 使用球面贝塞尔函数时出错

我正在尝试使用 Scipy 模块在 Python 中绘制绘图。根据http://docs.scipy.org/doc/scipy/reference/special.html我写了代码scipy.special.spherical_jn(n,x,0)

在编译程序时,我得到的只是这个错误:

有办法用常规贝塞尔函数以及贝塞尔和球贝塞尔函数之间的关系来做到这一点,但由于 sph.bess 的导数,我不喜欢这个解决方案。我也需要的功能。

有没有可能我设置错误并且可以将其修复为 scipy.special.spherical_jn 工作?

0 投票
1 回答
156 浏览

matlab - 贝塞尔积分实现

我正在尝试实现第一类 n 阶贝塞尔函数的这种积分表示。

在此处输入图像描述

这是我尝试过的:

我想要得到的情节如维基百科页面所示。在此处输入图像描述

它说:

错误使用 * 内矩阵尺寸必须一致。

besselfn 中的错误(第 8 行)A(t) = exp(sqrt(-1)*(n*t-x*sin(t)));

所以我试着放x-5;

输出是:

下标索引必须是实数正整数或逻辑数。

besselfn 中的错误(第 8 行)A(t) = exp(sqrt(-1)*(n*t-x*sin(t)));

如何正确处理?我错过了什么?

0 投票
1 回答
1782 浏览

python - 如何在 Python 中定义具有多个变量的分段函数

我正在尝试为我的日震学课程制定一个情节,并且该问题提供了一个分段函数来描述恒星中“流体”的动力学,就好像它是一回事,如果它是另一回事。我一遍又一遍地收到这个'Mul' object cannot be interpreted as an integer,但我正在处理实数中的数字,而不仅仅是整数集。我不知道如何解决这个问题,需要指导。代码如下。

完整追溯:

0 投票
0 回答
379 浏览

python - 使用 SymPy 的球面贝塞尔变换

我想编写一个 Python(带有 SymPy lib)代码,它可以在函数的傅里叶 (FT) 和逆傅里叶 (iFT) 转换之间来回进行计算。假设有一个函数f(r),它的 FT g(q) = FT[f(r)]和新函数f(r) = iFT[g(q)]的 iFT 。

我使用 sympy 的 Python 代码无法做到这一点,但一个简单的 Mathematica 代码可以轻松做到这一点。

  • 我在我的 Python 代码中遗漏了什么吗?
  • 或者 Sympy 无法完成我想要做的事情?

Python代码:

输出: f(r) = 0.0397887357729738*alpha**3*exp(-alpha*r) F(q) = FT(f(r)) = 1.0*alpha**4*(alpha**2 + 1.0*q**2)**(-2.0) f(r) = invFT(F(q)) = 0.0498677850501791*sqrt(2)*I*alpha**3.0*(alpha*r*jn(-1.0, alpha*r*exp_polar(I*pi/2)) + I*sinh(alpha*r))/sqrt(pi) Mathematica 代码:(要尝试,复制并粘贴到 Mathematica)

输出: f(r) = 0.0397887357729738*alpha**3*exp(-alpha*r) F(q) = FT(f(r)) = 1.0*alpha**4*(alpha**2 + 1.0*q**2)**(-2.0) f(r) = invFT(F(q)) = 0.0397887357729738*alpha**3*exp(-alpha*r)

0 投票
1 回答
169 浏览

go - Go:贝塞尔函数

我注意到标准 Go 库 ( Y0 )中定义了用于一阶、二阶和 N 阶贝塞尔函数 (Y0, Y1, Yn) 的函数。我似乎无法确定这些数学函数的实际应用是否会使它们如此重要以至于包含在标准库中。

有人可以帮我吗?似乎 Bessels(我以前没有听说过)与描述二次曲线的 [毕业?] 形状有关,但我不确定为什么这对一般发展具有特殊意义。