問題タブ [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.
matlab - Matlab の負の n に対する第 1 種ベッセル関数の根
の根を計算するコードがいくつかあります。
次の根を計算したい:
n
は実数です。
これを行うアルゴリズムまたはさらに優れたMatlabコードはありますか。
c++ - C++: 非整数のベッセル関数
第一種のベッセル関数を計算するライブラリ/関数を見つけようとしていますが、整数値ではありません。私は次のプログラムを持っています。
ただし、この関数は整数値のみを計算するように思われるため、この例では、n=2 の最初のベッセル関数を取得しています。
整数以外の値で最初のベッセル関数を決定する方法を知っている人はいますか?
編集: J_(5/2)(x) を計算する C++ の関数を見つけたいです。
python - ハンケル関数 unsing sympy の 2 次導関数
Simpy を使用してハンケル関数の 2 次導関数をプロットします。Mathematicaでは次のように簡単です:
これは、プロパティを使用して分析的に行うことができます。
第 2 種および第 1 次のハンケル関数の第 1 導関数は、それぞれゼロ次および 2 次の第 2 種の 2 つのハンケル関数の差を 2 で割った値に等しくなります。
しかし、Sympy を使用して直接派生させる方法を学びたいと思っています。これまでのところ、私はこれを試しました:
エラーメッセージは私には判読できないようです:
SympifyError トレースバック (最近の呼び出しが最後) 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 return Derivative(f, *symbols, **kwargs) 1642 1643
/usr/lib/python2.7/dist-packages/sympy/core/function.pyc in new (cls、expr、*変数、**仮定) 985 def new (cls、expr、*変数、**仮定): 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, conversions=transformations, evaluate=evaluate) 314 except (TokenError, SyntaxError) as exc: --> 315 raise SympifyError('could not parse %r' % a, exc) 316 317 return expr
SympifyError: 式 'could not parse u' at 0x7fdf3eca9e60>'' の sympify が失敗しました。例外が発生したためです: SyntaxError: 無効な構文 (、行 1)
私の間違いはどこですか?
前もって感謝します。
java - 非整数の順序でJavaで2次ベッセル関数を計算する
Java を使用して 2 次ベッセル関数 (Y_v(x)) を計算しようとしています。ここで、ベッセル関数の次数である v は整数ではありません。
Apache には、1 次ベッセル関数 (J_v(x)) を計算する関数があります。
非整数の一次ベッセル関数を計算できます(ただし、負の次数関数は計算できません)。私はそれが二次に相当するとは思わない。
私は、一次関数から二次ベッセル関数を計算する二次ベッセル関数を計算するための公式を見つけました (数値レシピの式 6.4.2 など)。
ただし、この方程式では、一次ベッセル関数が負の v 値を受け入れる必要がありますが、Apache BesselJ 関数では受け入れられません。
数式を使用して負の値を受け入れる BesselJ 関数を計算するプログラムを作成しました (Numerical Recipes 6.4.1)。
(ガンマを事前に計算して配列に格納するのは、コードの残りの部分でベッセル関数を使用して、不必要に再計算するのを避けるためです)
私が書いた関数は、x の値が低い場合に機能しますが、安定性を失います。v = -10.5 の値については、x = 30 前後で使用しました。図に示すように。
wolfram alpha の Web サイトには、mathematica は同じ方程式を使用してベッセル関数を計算し、mathematica の BesselJ 関数は計算できると書かれています
安定性を失うことなく。
私の関数を修正する方法、または Java を使用して 2 次ベッセル関数を計算する別の方法についてアドバイスをいただければ幸いです。
説明が役立つかどうか教えてください。
ありがとうございました
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 の作業に修正できますか?
matlab - ベッセルの積分実装
次数 n の第 1 種のベッセル関数のこの積分表現を実装しようとしています。
ここに私が試したものがあります:
私が取得しようとしているプロットは、ウィキペディアのページに示されているとおりです。
と言いました:
使用中のエラー * 内部マトリックスの次元は一致する必要があります。
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)));
これを正しくするにはどうすればよいですか?私は何が欠けていますか?
python - SymPy を使用した球ベッセル変換
関数のフーリエ (FT) 変換と逆フーリエ (iFT) 変換の間で計算を行ったり来たりできる Python (SymPy lib を使用) コードを作成したいと考えています。関数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)
go - Go: ベッセル関数
標準 Go ライブラリ ( Y0 )で定義されている 1 次、2 次、および N 次ベッセル関数 (Y0、Y1、Yn) の関数があることに気付きました。これらの数学関数の実際のアプリケーションを決定して、標準ライブラリに含めるほど重要なものにすることはできないようです。
誰かが私を助けることができますか?Bessels (これまで聞いたことがない) は二次曲線の [段階的?] 形状の記述に関連しているようですが、なぜこれが一般的な開発にとって特別な意味を持つのかはわかりません。