- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一些物理学研究,为此我需要使用马尔可夫链蒙特卡罗(MCMC)分析一些数据。我尝试自己写一个,但是当 python/numpy 将一个非常小的数字舍入为零时,我不断遇到错误。特别是当我需要执行诸如 numpy.exp(-1000) 之类的操作时。该表达式本身是一个更大的数学方程的一部分,所以我不能只取它的对数。
我知道有可用于 python 的 MCMC 模块,我已经查看了其中一些模块,但在理解它们的文档以应用它们时遇到了困难。有人可以推荐一个吗?我拥有的是插入概率分布的一列数据。这个分布还有另外两个变量,我将对其进行随机游走并记录马尔可夫链中的每个步骤。然后,我需要根据马尔可夫链为这两个变量中的每一个制作一个直方图。如果这个问题太模糊,我深表歉意。非常感谢任何想法或建议,谢谢!
最佳答案
使用更高精度的 float (如果您的系统可用)。例如,如果您有 float128
:
import numpy as np
print(np.exp(np.float128(-1000))) # 5.07595889755e-435
print(np.exp(np.float128(-10000))) # 1.13548386531e-4343
另请参阅longdouble
。这实际上取决于您的操作系统支持什么以及如何支持。
您可以转换需要此精度的数组并使用 Numpy 函数处理它们:
# Example array with 3 dimensions
d = np.random.uniform(-10000, -100, 24)
d.shape = (2, 3, 4)
# Cast to a higher precision
D = d.astype(np.float128)
np.exp(D[:,2]) # array([[4.263772e-4326, 4.3465066e-1474, ...
关于python - 马尔可夫链蒙特卡罗(python,numpy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108872/
我在学习道路上遇到了一项任务。 对于均值 μ=np 和方差 σ**2=np(1−p) 的二项式分布 X∼Bp,n,我们希望上限概率 P (X≥c⋅μ) 对于 c≥1。三界介绍: Formulas 任务
给定以下马尔可夫矩阵: import numpy, scipy.linalg A = numpy.array([[0.9, 0.1],[0.15, 0.85]]) 平稳概率存在且等于[.6, .4]。
我是一名优秀的程序员,十分优秀!