xxxxxxxxxx1
1
using Plotsxxxxxxxxxx1
1
using LinearAlgebraxxxxxxxxxx3
1
md"""2
[A Brief Introduction to Markov Chains](https://office.fxrobot.kr/Products/Files/DocEditor.aspx?fileid=2258)3
"""3×1 Adjoint{Float64,Array{Float64,2}}:
0.0
0.0
1.0xxxxxxxxxx18
1
# Finite state-space markov chain example2
3
# Transition Operator4
# S F R5
# U O A6
# N G I7
# N G N8
# Y Y Y9
10
begin11
P = [0.8 0.15 0.05; # Sunny12
0.4 0.5 0.1; # Foggy13
0.1 0.3 0.6]' # Rainy14
nWeeks = 2515
16
# Initial state is rainy17
X = [ .0 .0 1.]'18
end3×3 Adjoint{Float64,Array{Float64,2}}:
0.8 0.4 0.1
0.15 0.5 0.3
0.05 0.1 0.6xxxxxxxxxx1
1
P0.596489
0.263159
0.140353
xxxxxxxxxx10
1
# Run markov chain2
begin3
Xₖ = Array{Float64,2}(undef,(3,nWeeks))4
Xₖ[:,1] = X5
for k in 2:nWeeks6
Xₖ[:,k]=P*Xₖ[:,k-1]7
end8
Xₖ[:,end]9
end10
xxxxxxxxxx8
1
# Display2
begin3
plot(1:nWeeks,Xₖ[1,:],linecolor=:red,label="Sunny",linewidth=2,4
xaxis="Week", yaxis="p(Weather)")5
plot!(1:nWeeks,Xₖ[2,:],linecolor=:black,label="Foggy",linewidth=2)6
plot!(1:nWeeks,Xₖ[3,:],linecolor=:blue,label="Rainy",linewidth=2)7
plot!([15, 15],[0, 1],linecolor=:green, linestyle=:dash,label="Burn In",linewidth=2)8
end