0

p(x|a)*p(a)ベイズ アプローチのように、明確なパラメータ を条件とする明確に定義された確率分布があるとします。

を見つけるためにx、 のすべての値を積分したいと思うかもしれませんa。Javaを使用して、このような数学的問題に対する一般的なアプローチはありますか?

4

2 に答える 2

5

はい、FORTRAN、C、Perlなどに存在するのと同じアプローチ:数学のコーディング

控えめに言って、Javaは数値を扱う人々にとって典型的な言語の選択ではなく、その聴衆に対応するように書かれていなかったので、本質的な言語のサポートもライブラリのサポートも素晴らしいものではありません。私の推奨事項:問題に対して明示的に言語を選択してください-たとえば、R、Octave、Matlab、Mathematica、Maple-またはより多くの組み込み+継続的なコミュニティサポートがある言語-たとえば、C / C ++、FORTRAN、Perl。

そうは言っても、Javaで数値を実行することに専念している場合は、いくつかのライブラリがあります。NISTは私が見つけた最高の集まりですが、そのサイトは維持管理が不十分であるように思われるので、それは出発点にすぎません。

于 2012-06-01T13:20:32.147 に答える
0

そこには多くの数値積分スキームがあります。「Java 数値積分」または「Java 求積」の Google。

実装の選択肢の 1 つはJSciです。

Forman Acton の「Numerical Methods That Work」の第 4 章「Quadrature」を読むと、被積分関数によっては簡単な問題ではないことがわかります。

ベイジアン分析をしていますか?モンテカルロ・マルコフ連鎖アプローチの方が良いかもしれません。WinBUGSを見て、John Krushke の優れた本を読んでください。

更新:被積分関数が分析関数の場合、シンボリック積分器を使用して x の関数を計算する必要があります。そうでない場合、できる最善の方法は WinBUGS です。モンテカルロ シミュレーションを実行して、多くの試行の後、ディストリビューションがどのように見えるかを構築します。

簡単な問題ではないため、質問に対する簡単な答えが見つかりません。

于 2012-06-01T15:31:56.163 に答える