問題タブ [gamma-function]

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 投票する
3 に答える
388 参照

c++ - 負の実数値のガンマ関数の計算 (C++、Boost)

次の無限深刻では、非整数、負、実数の階乗の計算が必要です。 無限に深刻:

(これは楕円の円周を計算する方法です。a と b は長半径と短半径で、h は次のように定義されます:
h = (ab)^2/(a+b)^2)

階乗関数は、負の整数ではないすべての実数に対して定義されているガンマ関数を介して負の値に拡張できます。

深刻なコーディング中に、boost::math::factorial と boost::math::tgamma を試しましたが、結果は -1 (含まれていません) -1.5 までしか返されません。たとえば、エラーが発生します。

出力:

-0.5 の階乗 = 1 -0.5
の tgamma = -3.54491
'boost::exception_detail::clone_implboost::exception_detail::error_info_injector<std::domain_error >' のインスタンスをスローした後に呼び出された終了 what(): 関数 boost のエラー: :math::tgamma(long double): 負の整数 0 での tgamma の評価。中止 (コアダンプ)

階乗ブースト: 階乗
ブースト tgamma ブースト: tgamma ブースト

私の質問:

  1. 負のドメインのガンマ関数を計算できるブーストの代替手段はありますか?
  2. 階乗と tgamma 関数の実装されたドメインについての言及の上にリンクされているブーストのドキュメントで見つけることができませんでした。実際、私は単にそれらを間違って使用している可能性があります。実際にドメイン/正しい使用法を確認する方法は何ですか?

ありがとう。

0 投票する
2 に答える
154 参照

python - scipyのt分布のエントロピー:ディガンマおよびベータ関数に自由度を入力するには?

t 分布に従う変数 X のエントロピーの閉じた形式の解析解は、ここで導出されます。

ここに画像の説明を入力

python には関数scipy.special.digammaとがあるのを見てscipy.special.beta、上記の式をコードでどのように実装できますか?

私を混乱させるのは、ドキュメントによると、今述べた関数が自由度パラメータnu (v)を入力としてとらないことです。実行中の例が役立ちます

0 投票する
1 に答える
38 参照

python - ガンマ分布パラメーターを期待値と確率に適合させる

私の問題は次のとおりです。私はさまざまな物理的特性を測定し、方法論的および測定の不確実性をある種の効率比まで伝播させました。すべての物理的特性について、正規分布が適切な選択であるように思われ、最初の数回の計算とそれに対応する伝播については、かなり低い不確実性がありました。すべての不確実性を、すべての可能な値の 95.45% をカバーすることを意味する kp=2 の拡張不確実性として転送しました。

ただし、効率を得るために現在実行している計算では、(16+/-31)% のような結果になります。効率は 0 から 1 までしか広がることができないため、これは不可能です。私の仮定は次のようになります。 、効率の「正しい」期待値を見つけましたが、確率分布は正規分布ではなく、正に歪んだガンマ分布である必要があります。間隔[0; 0.16+0.31]、[0; 0.16+0.31*3/2] および [0;1] は、すべての可能な値の 95.45%、99.73%、および 100% をカバーします。ガンマ分布パラメーター alpha および beta を分析的に計算できるはずです。残念ながら、sympy を使用した次のコードは、sympy で処理できないため機能しません。

誰かが私の問題を解決する方法を知っていますか?