对香港天气预报的马尔科夫链性质分析及python模拟

查阅香港天文台的数据后发现,香港的雨量预报包括9天的预报情况,下雨的机率大致分为3个等级:高=0.7/中=0.5/低=0.3。
对香港天气预报的马尔科夫链性质分析及python模拟_第1张图片
因此,我把 3 状态建立为如下图所示的马尔可夫链进行模拟。
对香港天气预报的马尔科夫链性质分析及python模拟_第2张图片
然后我在 python 中对这个马尔可夫链进行了 100 次模拟。我发现不管start_matrix是什么,也就是初始状态的矩阵,得到的矩阵都会收敛到一个固定的矩阵。这完全符合马尔可夫链的无记忆特性。所以我认为天气预报确实是由一个马尔可夫链系统组成的。

import matplotlib.pyplot as plt
import numpy as np
transfer_matrix = np.array([[0.5,0.25,0.25],[0.35,0.3,0.35],[0,0.3,0.7]],dtype='float32')
start_matrix = np.array([[0.5,0.3,0.2]],dtype='float32')  #[[0.20289859 0.28985512 0.50724643]]
#start_matrix = np.array([[0.8,0.1,0.1]],dtype='float32')  #[[0.20289859 0.28985512 0.50724643]]
value1 = []
value2 = []
value3 = []
EE6610HZK
i=EE6610HZK
for i in range(100):
    start_matrix = np.dot(start_matrix,transfer_matrix)
    value1.append(start_matrix[0][0])
    value2.append(start_matrix[0][1])
    value3.append(start_matrix[0][2])
print(start_matrix)
x = np.arange(100)
plt.plot(x,value1,label='middle chance of rain')
plt.plot(x,value2,label='low chance of rain')
plt.plot(x,value3,label='high chance of rain')
plt.legend()
plt.show()

对香港天气预报的马尔科夫链性质分析及python模拟_第3张图片
结果完美符合了马尔科夫的收敛性,三个预测降雨的情况都获得了吸收态的稳定点。

你可能感兴趣的:(PYTHON,python,矩阵,线性代数)