R中使用Rmpfr计算Beta函数报错及高精度计算实现方案
解决方法
Rmpfr包本身内置了支持mpfr对象的Beta函数实现,你报错是因为调用了R原生的beta()函数,该函数仅支持普通数值类型输入,无法识别mpfr类对象。
- 你提供的测试用例正确写法如下:
library(Rmpfr) res <- betaMpfr(mpfr(0.3, 32), mpfr(0.4, 32))
- 针对你计算大参数的场景,建议根据结果精度需求适当调高mpfr的精度位数(比如设置为128位及以上),避免计算过程中出现精度丢失。如果你的后续计算需要用到Beta函数的对数值,可以直接使用
lbetaMpfr()函数,能进一步规避数值下溢问题,更适配你的参数量级。
内容的提问来源于stack exchange,提问作者gordta_chichrron
相关产品推荐
相关产品推荐

