MATLAB 隨機過程仿真


1.離散時間的馬爾科夫鏈仿真

P = [0.2, 0.3, 0.5; 0.5, 0.1, 0.4; 0.6, 0.2, 0.2];
% 給出一步轉移矩陣
S = [1, 2, 3];
n = 1;
% 給出狀態空間 X
%初始時刻
N = 100; %迭代步數
i = 1;
U = rand;
Compare2 = sum(P(i,1:2));% 累加獲得概率
Compare3 = sum(P(i,:));
if (U < P(i,1))
Y(i) = 1;
elseif ((U > P(i,1))&(U < Compare2))
Y(i) = 2;
elseif ((U > Compare2)&(U < Compare3))
Y(i) = 3;
end
X(1) = Y(i);
while (n < N)
i = X(n);
U = rand;
if (U < P(i,1))
Y(i) = 1;
elseif ((U > P(i,1))&(U < Compare2))
Y(i) = 2;
elseif ((U > Compare2)&(U < Compare3))
Y(i) = 3;
end
n = n+1;
X(n) = Y(i);
endxlab = 1:1:100;
stairs(xlab,X)
axis([0 100 0 10])
title('離散時間馬爾可夫鏈仿真')
xlabel('步長 n')
ylabel('狀態 x(n)')
legend('樣本函數 1')

2.泊松過程仿真

clear
clc
U = rand;
lamda = 2;
% 這里給定值
T = 10; % 這里給定值
t = 0;
N1 = 0;
E = -log(U)/lamda;
t = t + E;
while (t <= T)
N1 = N1 + 1;
t1Value(N1) = t;
U = rand;
E = -log(U)/lamda
t = t + E;
end
irt1 = 1:1:N1;
stairs(t1Value,irt1,'r')
hold on;
U = rand;
lamda = 2;
% 這里給定值
T = 10; % 這里給定值
t = 0;
N2 = 0;
E = -log(U)/lamda;
t = t + E;
while (t <= T)
N2 = N2 + 1;
t2Value(N2) = t;
U = rand;
E = -log(U)/lamda;
t = t + E;
end
irt2 = 1:1:N2;
stairs(t2Value,irt2,'b')
hold on;
U = rand;
lamda = 2;
% 這里給定值
T = 10; % 這里給定值
t = 0;
N3 = 0;E = -log(U)/lamda;
t = t + E;
while (t <= T)
N3 = N3 + 1;
t3Value(N3) = t;
U = rand;
E = -log(U)/lamda;
t = t + E;
end
irt3 = 1:1:N3;
stairs(t3Value,irt3,'g')
axis([1 15 0 32])
title('泊松過程模擬結果')
xlabel('時間 t')
ylabel('計數過程 N(t)')
legend('樣本函數 1','樣本函數 2','樣本函數 3')

3.布朗運動仿真

W1 = 0;
n = 1;
sigma = 2;
N = 101;
while (n < N)
Z = normrnd(0,sigma);W1 = W1 + Z;
W1Value(n) = W1;
n = n + 1;
end
irt = 0:1:99;
plot(irt,W1Value)
hold on;
W2 = 0;
n = 1;
sigma = 2;
N = 101;
while (n < N)
Z = normrnd(0,sigma);
W2 = W2 + Z;
W2Value(n) = W2;
n = n + 1;
end
irt = 0:1:99;
plot(irt,W2Value)
hold on;
W3 = 0;n = 1;
sigma = 2;
N = 101;
while (n < N)
Z = normrnd(0,sigma);
W3 = W3 + Z;
W3Value(n) = W3;
n = n + 1;
end
irt = 0:1:99;
plot(irt,W3Value)
axis([0 150 -40 40])
title('布朗運動過程仿真結果')
xlabel('時間 t')
ylabel('布朗運動過程 w(t)')
legend('樣本函數 1','樣本函數 2','樣本函數 3')

參考資料:陳建華 基於 MATLAB 的隨機過程仿真[J].信息系統工程,2011.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM