隨機(jī)過程-北太天元學(xué)習(xí)31
我們學(xué)習(xí)了態(tài)(state),從一個(gè)態(tài)轉(zhuǎn)移到另一個(gè)態(tài)可以用轉(zhuǎn)移矩陣來描述
?? ?x_{n+1} = A x_{n},
另外,我們還可以引入隨機(jī)因素, 此時(shí)態(tài)是一個(gè)隨機(jī)變量,我們用大寫的X代替上面的小寫的x,用X_n 表示n時(shí)刻的態(tài), 例如
? X_{n+1} = X_n + Y,
其中 Y 是一個(gè)隨機(jī)變量, 例如Y的樣本空間S={-1,0,1}, 這是醉漢回家的那一節(jié)的例子, Y 的分布可以用P(Y=k)=1/3, k=-1,0,1 來描述。這里提到的態(tài)都是在不同的時(shí)間點(diǎn)上的態(tài),而且時(shí)間點(diǎn)是離散取值的。
如果態(tài)X可以隨著時(shí)間t 在某個(gè)時(shí)間區(qū)間上連續(xù)地變化,也就是X是時(shí)間的t 的函數(shù),而是對(duì)于每一個(gè)時(shí)間t,X(t) 是一個(gè)隨機(jī)變量, 這時(shí)候,我們已經(jīng) 需要使用隨機(jī)過程(隨機(jī)過程是一個(gè)專有的數(shù)學(xué)名詞)來建模了。隨機(jī)過程是一種描述時(shí)間上隨機(jī)變化的數(shù)學(xué)模型,可以看作是隨機(jī)變量在時(shí)間上的演化過程。
我們可以這樣給隨機(jī)過程(stochastic process)一個(gè)簡(jiǎn)單的定義: 一個(gè)隨機(jī)過程是一個(gè)隨機(jī)事件X(t)的集合, 其中 t ∈ T ? R, 對(duì)每一個(gè)時(shí)間t ∈ T, X(t) 是一個(gè)隨機(jī)變量.? 通常情況下,我們可以用t來表示時(shí)間, 通常取 T = [0, ∞).? 我們可以把 X(t) 所有可能取值的集合 稱為 狀態(tài)空間(state space).
下面我們講一個(gè)簡(jiǎn)單的隨機(jī)過程的例子:泊松過程。 我們考慮泊松分布,參數(shù)是λ, 意味著每單位時(shí)間的發(fā)生事件平均數(shù)是數(shù)。在每一個(gè)時(shí)間t, 已經(jīng)發(fā)生的時(shí)間數(shù)是一個(gè)隨機(jī)變量X(t), 考慮t從0變到正無窮, 那么X(t), t \in [0,\infty) 是一個(gè)隨機(jī)過程,具體來說,是一個(gè)泊松過程。
我們簡(jiǎn)單描述一下泊松過程,精確的定義這里就不再給出了。 我們?nèi)r(shí)間步長(zhǎng)為h (認(rèn)為h足夠小),? 在X(t) = k 的情況下,X(t+h) 可能取值 為 k 或者 k+1, 其中 X(t+h) = k+1 的概率是 λh (h充分小使得λh<1), X(t+h) =k 的概率是 1-λh.
模擬速率為λ的泊松過程, 首先初始化當(dāng)前總體X(t=0)=0, 由于λ是每單位時(shí)間的平均事件數(shù),因此E[X(t)]=λt是合理的。也就是說,對(duì)于給定的t值,在區(qū)間[0,t]中發(fā)生的預(yù)期事件數(shù)為λt。
我們還以前面討論過的便民熱線的問題舉例。 假設(shè)每分鐘λ=5個(gè)電話的速度進(jìn)入便民熱線。設(shè)X(t)是到時(shí)間t為止接收到的呼叫的數(shù)量, 那么X(t)是λ=5的泊松過程。
為了模擬十分鐘內(nèi)的來電,我們可以使用以下北太天元代碼。最后兩行用于繪制期望E[X(t)]=λt。我們應(yīng)該看到,多次模擬的X(t)的值往往集中在這個(gè)期望E[X(t)]上.

%北太天元 模擬 隨機(jī)過程
close all
clc
clear all
hold on
lambda = 5; % 泊松分布的參數(shù), 含義:平均單位時(shí)間隨機(jī)事件發(fā)生次數(shù)
h = .01; % 模擬的泊松過程是一個(gè)時(shí)間t的"函數(shù)",每一個(gè)時(shí)間t映到一個(gè)隨機(jī)變量
% 時(shí)間t屬于區(qū)間[0,t終], 是連續(xù)取值的
% 數(shù)值模擬中,我們把[0,t終]剖分成小區(qū)間,區(qū)間長(zhǎng)度 h 被設(shè)置為0.01;
% ?
t終 = 10; % 設(shè)置最終時(shí)間
steps = t終/h; % 時(shí)間步數(shù)
t=linspace(0, t終, steps+1); %設(shè)點(diǎn)時(shí)間點(diǎn)
num模擬=10; % 模擬次數(shù)
for k=1:num模擬? % 對(duì)每一次模擬循環(huán)
?? ?X=zeros(steps,1); % 給X 預(yù)先分配大小
?? ?for i=1:steps %對(duì)每一個(gè)時(shí)間步循環(huán)
?? ??? ?if rand <= lambda*h % 如果一個(gè)事件發(fā)生(用生成隨機(jī)數(shù)小于 lambda*h 判斷)
?? ??? ??? ?X(i+1)=X(i)+1;
?? ??? ?else
?? ??? ??? ?X(i+1)=X(i);
?? ??? ?end
?? ?end
?? ?plot(t,X,'LineWidth', 4) %plot solution
?? ?str(k) = string( sprintf('第%d次模擬',k) ) ;
end
plot(t, t*lambda, 'k', 'LineWidth',10) %對(duì)每一個(gè)時(shí)間t_i,計(jì)算X(t_i)的期望
xlabel('t')
ylabel('X(t)')
str(num模擬+1) = "隨機(jī)過程的期望值";
legend(str,'Location', 'northwest');? %把圖例顯示在左上方
title("北太天元數(shù)值模擬隨機(jī)過程")
hold off