問題タブ [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.
bessel-functions - エアリー ディスク パターンを MATLAB でプロットする
したがって、風通しの良いパターンの式は
besselj(1,x)
Jは MatLabのベッセル関数です。これをプロットして、0〜10のx値だけを近似するにはどうすればよいですか?
maple - Maple 18: 修正ベッセル関数の積分
Maple 18 で次の積分を計算しようとしています。
結果は次のとおりです。
ただし、上記の結果の導出を計算すると、同じ表現表現が得られませんでした。
=(1/8)*MeijerG([[], []], [[-1/2, -3/2], []], (1/4)*x^2)/x
MeijerG 関数の代わりに修正ベッセル関数で結果を表現するように Maple に指示するにはどうすればよいですか?
ありがとう!
c# - C# の BesselK 関数
Boost (C++ ライブラリ) から BesselK メソッドを実装しようとしています。Boost メソッドは 2 つの double を受け取り、double を返します。(以下では cyl_bessel_k として実装しています。)
私がこれをモデル化した方程式は、Boosts のドキュメントから来てい ます。
また、Wolfram に対して値をチェックしています: http://www.wolframalpha.com/input/?i=BesselK%283%2C1%29
「v」に整数以外の正の値を渡すと、Boost メソッドからの出力を一致させることができます。ただし、整数が渡されると、出力が大幅にオフになります。したがって、明らかな不連続性の問題があります。これを読んでみると、この問題は負の整数をガンマ関数に渡すことから発生しているようです。ここで Bessel_I メソッドを使用すると、どういうわけかリフレクションが機能しますが、私の数学スキルセットは終わりに近づいています。
1.) これを機能させるには、リフレクションを使用する bessel_i メソッドに何が必要ですか?
2.) 現在、部分和アプローチを行っています。Boost は、連続分数アプローチを使用します。収束を考慮してこれを変更するにはどうすればよいですか?
どんな入力でも大歓迎です!ありがとうございました!
gnuplot - ベッセル関数を修正した Gnuplot フィッティング
第 2 種変形ベッセル関数を含むフィッティング関係を使用して、gnuplot にデータをフィッティングしたいと考えています。それでは、次のように見えるとしましょう。
(私はmatlabまたはオクターブでそれを書きました。係数は、フィットで見つけたいのですが、Aとbなので、そのうちの1つはベッセルにあります)。しかし問題は、gnuplot が修正された第 2 種ベッセル関数を持っていないことです。
どうすればそれができるか誰にも分かりますか?
algorithm - ベッセル関数の自然対数、オーバーフロー
MATLAB で 2 番目のタイプの修正ベッセル関数の対数を計算しようとしています。つまり、次のようなものです。
例えば
の値がlog(besselk(nu, Z))
無限大になるので問題besselk(nu, Z)
があります。しかし、log(besselk(nu, Z))
確かに小さいはずです。
私は次のようなものを書こうとしています
ただし、次のエラーが表示されます。
mupadmex の使用エラー MuPAD コマンドのエラー: DOUBLE は入力式を double 配列に変換できません。入力式にシンボリック変数が含まれている場合は、代わりに VPA 関数を使用してください。
sym/double のエラー (514 行目) Xstr = mupadmex('symobj::double', Ss, 0)`;
このエラーを回避するにはどうすればよいですか?
matlab - 導関数とベッセル関数を使用した Matlab での 3D 球面プロット
次の関数 B(r,theta,phi) を球座標でプロットしたいと思います。
上記のコードを実行すると、次の警告とエラーが表示されます。
gsl - ベッセル関数の GSL 微分関数
ベッセル関数の根を見つけるために正割法を実装しようとしています。私は最初に、gsl のストレート アップ ベッセル関数を使用するだけで問題を解決するコードをいくつか書きました。コードをいつ停止するかを評価できるように、エラーコードに変更しようとしています。このコードは、元の関数に対してうまく機能します。
これで、次のように微分する関数を宣言します。
エラーのあるベッセル関数を含めるように変更しようとすると
それは動作を停止します。私が行った主な変更は次のとおりです。
だから私の関数は今読む
gsl_deriv_central を実装すると、セグメンテーション コア ダンプが返されます。問題は、私が作成したコードで関数を宣言する方法にあると思います。
誰かがこれについて私を助けることができれば、私は最も感謝しています:)
excel - MATLAB でのベッセル関数の使用
Excel ワークブックのすべての関数を MATLAB に入れようとしています。MATLAB でベッセル関数を使用すると問題が発生します。Excel と同じ結果が MATLAB から得られません。
たとえば、Excelで実行すると
私は1.012を取得します。
MATLAB で同じアプローチを使用する場合
私は単にゼロになります。
ベッセル関数を MATLAB スクリプトに統合して、Excel で使用した場合と同じ答えが得られるように誰か助けてくれませんか?
matlab - 修正ベッセル関数の積分を含む陰関数の根 - fzero と互換性のないシンボリック変数
以下のように、方程式fをrで解こうとしています。
ただし、最初の積分 (ベッセリを含む) からのシンボリック出力は、fzero にエラーを与えています。問題は、besseli に rho が含まれているようです (この rho のインスタンスを削除すると、エラーは発生しません)。
subs と eval をいじって、全体をシンボリックに解いてみましたが、正直言って試行錯誤でした。私が見逃している単純なものがあると確信しています-どんな助けも素晴らしいでしょう!
乾杯、
アラン
c++ - 大きな変数を使用した高次ベッセル関数の計算
私の仕事には、大きな変数値での高次ベッセル関数の計算が含まれます。MATLAB 内では、これは問題なく実行されています。ただし、問題を拡大するために、MPI を使用して C++ コードを記述するように調整しました。もちろん、ベッセル関数を生成するステップは、いくつかのライブラリーを呼び出すことによって行われます。問題を具体化するために、この非常に具体的なバグについて考えてみましょう。
matlab で、$J_46341(86840.0)$ を計算したいとします。
matlab は私に与えます: besselj(46341,86840)=0.001309896212292
ただし、呼び出す簡単なテスト例
gsl_sf_bessel_Jn_e は「エラー: NaN」を返します
注文 46340 で確認したところ、matlab と gsl の両方が許容精度内で同じ回答 0.00292895 を返しました。GSL でもう 1 ステップ実行すると NaN エラーが発生しますが、matlab では正確な数値の回答が保持されます。
再帰関係を使用して、それほど小さくないオーダー、たとえば 20000 以上のオーダーからより高いオーダーの値を生成しようとしましたが、これは問題を完全に解決せずに NaN エラーを遅らせるだけです。
他の利用可能なソフトウェア ライブラリに注意を向けて、NAG を試してみましたが、まったくがっかりしました。
nag_bessel_j_alpha (s18ekc) には abs(nl)<=101 の制約があります
つまり、101 のオーダーまでしか計算できず、明らかに私の研究対象ではありません。
だから、私の質問はかなり簡単です:
大きなxの高次ベッセル関数値を取得するためのより信頼できるライブラリアプローチはありますか?
漸近的に、ベッセル関数は 0 に近づきます。テールがアンダーフローの限界に近づいている場合、これらの値を確実にゼロに設定できます。ただし、NaN の問題は、強く振動する曲線と漸近的に減衰するテールの間で発生するようです。