假设我们有一个定义明确的概率分布,它以某个参数为条件:p(x|a)*p(a)
,就像在贝叶斯方法中一样。
现在,为了找到x
,我可能想要整合 的所有值a
。是否有使用 Java 解决此类数学问题的通用方法?
假设我们有一个定义明确的概率分布,它以某个参数为条件:p(x|a)*p(a)
,就像在贝叶斯方法中一样。
现在,为了找到x
,我可能想要整合 的所有值a
。是否有使用 Java 解决此类数学问题的通用方法?
是的,与 FORTRAN、C、Perl 等中存在的方法相同:编码数学。
少说些快乐:Java 不是从事数字计算的人的典型语言选择,而且它不是为迎合这些受众而编写的,因此内在语言支持不是很好,库支持也不是很好。我的建议:为您的问题明确选择一种语言 - 例如,R、Octave、Matlab、Mathematica、Maple - 或者具有更多内置 + 持续社区支持的语言 - 例如,C/C++、FORTRAN、Perl。
也就是说,如果您致力于在 Java 中进行数字运算,则有一些库;NIST 有我发现的最好的聚会,但该网站似乎维护不足,所以这只是一个起点。
有很多数值积分方案。谷歌搜索“java 数值积分”或“java 求积”。
一种实现选择是JSci。
如果您阅读 Forman Acton 的“Numerical Methods That Work”,第 4 章“正交”,您会发现这可能不是一个小问题,具体取决于您的被积函数。
你在做贝叶斯分析吗?也许蒙特卡洛马尔可夫链方法会更好。查看WinBUGS并阅读John Krushke 的优秀书籍。
更新:如果你的被积函数是解析函数,你应该使用符号积分器来得出 x 的函数。如果不是,你能做的最好的就是 WinBUGS。您将进行 Monte Carlo 模拟,以构建经过多次试验后的发行版外观。
您找不到问题的简单答案,因为这不是一个简单的问题。