早就想寫隨機過程了,之所以拖到現在才寫的原因是因為最近看一些北大清華理工系的教學視頻,深深受啟發了,我買過很多書籍,其中有部分就是這些屏幕上教授寫的,記得丘維聲老師講過,任何數學推導和定理定義的由來不是憑空產生的,而是水到渠成的,所以想把這篇隨機過程的文章寫到水到渠成。

我們每天晚上回家第一件事是做什麼?如果大家細心的話會發現其實我們大多數回家第一件事是有規律性的,比如有的人回家第一件事就是「喝茶」

但是並不是你每天回家都會出現喝茶,這種不確定又有規律性的東西是如此讓人著迷,而這種統計的規律性是客觀存在的,而我們描述這種不確定有規律性發生的可能性大小定義為概率(我們一般隨機試驗比較多的時候我們用發生事件的頻率近似表示該事件發生的概率)。

好啦聯繫生活中實際的例子,假設我老家,有個人統計過去年夏天中100天有80天都在下雨,那麼我們可以通過頻率來預估未來夏天同樣在這100天中某一天下雨的概率為80/100,那第一天要麼下雨要麼不下雨,同樣第二天也是,同樣一直推到第100天,我們抽象出來用數學表達式說明:

如果我們將下雨和未下雨用數字表示下雨(0)未下雨(1)很有可能出現這樣一組組離散圖像

這就是隨機過程了,這個過程就是這100天,而每個過程特定的時刻(天數),就是一個隨機的試驗,這個隨機試驗的結果下雨要麼不下雨,而以上對著100天做一次全程的試驗,我們做n次全程的試驗可以得到很多個不同的離散點集,隨機過程是對整個過程而言的

生活中有很多隨機過程的例子,比如我們平常用的搜狗輸入法,當我輸入三個s時會出現如下一串片語:

很明顯這個東西是按照個人習慣收集頻率(概率)來進行計算顯示的,這個東西就是一個隨機過程。

還是舉一個符合實際生活中例子我們來建立一套隨機過程的數學模型,中學的時候,記得學過一篇看雲識天氣,課文片段描述如下:

「夏天,雷雨到來之前,在天空先會看到積雲。積雲如果迅速地向上凸起,形成高大的雲山,羣峯爭奇,聳入天頂,就變成了積雨雲。積雨雲越長越高,雲底慢慢變黑,雲峯漸漸模糊,不一會,整座雲山崩塌了,烏雲瀰漫了天空,頃刻間,雷聲隆隆,電光閃閃,馬上就會嘩啦嘩啦地下起暴雨,有時竟會帶來冰雹或者龍捲風。「

我們現在根據雲來就用建立一個天氣預報預測模型。

首先我們假設我們只能觀察到天氣雲層這幾個狀態

{晴空萬裏,綾紗雲,薄雲,捲雲,積雲,雲山,烏雲,暴雨,小雨,麻麻雨}

同時我們假定平常觀察的都統計起來發現注意,為了簡化模型而假定的已經採集的數據),發現第一天晴空萬裏第二天出現綾紗雲的概率為0.4,同理我們用矩陣表示第一天到第二天轉移的狀態矩陣。

假設我們知道第一天是晴天,那麼就好推導了:

當數學模型建立完畢後我們可以用計算機模擬得到3天後的各個天氣狀況的概率,Python 代碼如下:

import numpy as np

from numpy import mat

if __name__ == __main__:

p = np.mat([[0.100, 0.400, 0.200, 0.100, 0.050, 0.050, 0.038, 0.012, 0.022, 0.028],

[0.180, 0.100, 0.200, 0.120, 0.100, 0.050, 0.022, 0.018, 0.180, 0.030],

[0.080, 0.100, 0.200, 0.300, 0.100, 0.056, 0.045, 0.063, 0.024, 0.032],

[0.050, 0.092, 0.120, 0.130, 0.140, 0.100, 0.155, 0.050, 0.089, 0.074],

[0.090, 0.085, 0.079, 0.046, 0.100, 0.200, 0.100, 0.100, 0.100, 0.100],

[0.030, 0.056, 0.039, 0.045, 0.100, 0.300, 0.100, 0.100, 0.100, 0.130],

[0.010, 0.050, 0.090, 0.090, 0.080, 0.100, 0.300, 0.200, 0.040, 0.040],

[0.100, 0.100, 0.050, 0.050, 0.050, 0.050, 0.050, 0.100, 0.250, 0.200],

[0.050, 0.050, 0.100, 0.100, 0.050, 0.200, 0.050, 0.100, 0.200, 0.100],

[0.040, 0.060, 0.030, 0.030, 0.200, 0.100, 0.100, 0.090, 0.150, 0.200]])

initP = np.mat(np.zeros((1, 10)))

# 假設第一天為晴天

initP[0, :] = p[0, :]

n=60

print((initP * p**(n-1)))

運行後3天後各種概率如下:

其實這個狀態轉移矩陣是需要時常去更新的,而且一般的天氣預測這個狀態轉移矩陣還需要有條件限制,甚至這個狀態轉移矩陣都可以依照概率生成,這就是隨機過程,實際上我們做這個隨機過程模型,是做了一個假設,假設預測只使用現有的條件,不依賴過去條件,這種性質叫做馬爾科夫性(有興趣的大佬可以瞭解一下)

實際上隨機過程依賴於你說建立的數學模型,還可以做多方面的變通,比如泊松分佈,就是一種數學模型下推導出來的,還有很多數不勝數的例子,好啦,基本隨機過程就介紹完畢啦,後期博客開始進入實際問題的數學建模中,如有不足之處,希望大佬指正(* ̄) ̄)。

推薦閱讀:

相關文章