MCMCへの道(2)からの続き
次は,MCMC法#3マルコフ連鎖である。昼食のメニューが3種類に限られていて,なおかつ当日のメニュー選択の確率が,前日のメニューだけによって定まるという例があげられていた。はい,この例は非常によくわかる。
問題は,Juliaの配列と行列の扱いだ。MahthematicaはすべてListと考えればよいのでわかりやすかったが,Juliaでは型として,ArrayもMatrixもある。見様見真似でとりあえずコードを書いたのだけれど,まだ十分理解できていない。このため,3x3行列の配列であるbをベクトルvにかけて得られる配列の転置ができなかったので,手動で転置している。#using LinearAlgebra
using Plots
x=[zeros(3) for i in 1:11]
y=[zeros(11) for i in 1:3]
#
a=[0.2 0.1 0.3 ; 0.2 0.6 0.5 ; 0.6 0.3 0.2]
b=[zeros(3,3) for i in 1:11]
b[1]=[1 0 0 ; 0 1 0 ; 0 0 1]
v=[0.3,0.2,0.5]
#
for i in 2:11
b[i]=a*b[i-1]
end
for j in 1:11
x[j]=b[j]*v
end
#
for i in 1:11
for j in 1:3
y[j][i]=x[i][j]
end
end
#
plot(y,legend=:bottom, xlim=(0,10),ylim=(0,0.6))
0 件のコメント:
コメントを投稿