查阅香港天文台的数据后发现,香港的雨量预报包括9天的预报情况,下雨的机率大致分为3个等级:高=0.7/中=0.5/低=0.3。
因此,我把 3 状态建立为如下图所示的马尔可夫链进行模拟。
然后我在 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()