马尔科夫链蒙特卡洛求转移概率的Python代码实例
时间: 2024-05-13 19:11:19 浏览: 134
马尔科夫链蒙特卡洛(Markov Chain Monte Carlo,MCMC)是一种用于估计复杂概率分布的方法,其中转移概率是关键的一部分。下面是一个使用Python实现的简单示例代码,用于估计马尔科夫链的转移概率:
```python
import numpy as np
def markov_chain_monte_carlo(transition_matrix, initial_state, num_steps):
num_states = len(transition_matrix)
current_state = initial_state
states = [current_state]
for _ in range(num_steps):
current_state = np.random.choice(range(num_states), p=transition_matrix[current_state])
states.append(current_state)
return states
# 定义转移概率矩阵
transition_matrix = np.array([[0.7, 0.3], [0.4, 0.6]])
# 定义初始状态
initial_state = 0
# 设置步数
num_steps = 1000
# 运行马尔科夫链蒙特卡洛算法
result = markov_chain_monte_carlo(transition_matrix, initial_state, num_steps)
# 输出结果
print(result)
```
在上述代码中,我们首先定义了一个转移概率矩阵`transition_matrix`,其中`transition_matrix[i][j]`表示从状态i转移到状态j的概率。然后,我们定义了初始状态`initial_state`和步数`num_steps`。接下来,我们使用`markov_chain_monte_carlo`函数运行马尔科夫链蒙特卡洛算法,并将结果存储在`result`中。最后,我们打印出结果。
阅读全文