处理极少数

时间:2014-10-22 17:03:02

标签: r

我需要找到一种方法来处理R中的极小数字,特别是为了记录极少数的数据。根据R手册,“在典型的R平台上,最小的正双倍大约是5e-324。”好吧,我需要处理更小的数字(至少小到10 ^ -350)。如果R无法做到这一点,我想知道是否有一种方法可以使用来自R的程序(例如Matlab或Mathematica)。

具体来说,我正在计算一个概率矩阵,其中一些概率很小,以至于R不能将它们与0区分开来。我之所以知道这是因为每个概率都是另外两个概率的乘积;所以我将p(x)= 10 ^ -300,p(y)= 10 ^ -50,然后p(x)* p(y)= 0。我希望能够进行这些计算,记录结果非常小的数字(根据Mathematica,我的例子为-805.905),然后继续使用R中的日志值。

所以更详细一点,我有一个p(x)值的矩阵,p(y)的值矩阵,都是用dnorm计算的,我正在计算产品。在许多情况下,R能够评估p(x)和p(y),但p(x)* p(y)太小。但在少数情况下,即使p(x)或p(y)值本身太小,在R中本身也等于0。

我已经看到有东西从Mathematica那里打电话给R,但没有多少关于从R中调用Mathematica。我真的更愿意做后者而不是前者。因此,如果任何人知道如何做到这一点(使用Mathematica或Matlab或R中的其他东西)或者有另一个解决这个问题的方法,我将非常感激。

请注意,我意识到这个主题还有一些其他主题,讨论诸如使用Brobdingnag包来处理小数字之类的东西,但这些似乎不适用于此。

0 个答案:

没有答案