我有一个状态S需要以接受Pa的概率改变到状态S'。我已经计算了接受概率,我有两个状态(每个3个数字的列向量)。我想告诉matlab接受从S到S'的变化,概率为Pa。
注意:这将在循环内部,并且对于每次迭代,计算Pa并且S以概率Pa变为S'。
感谢帮助
编辑:这是我到目前为止所拥有的。有一个包含所有35种可能状态的矩阵(池)。 S'在这里是Sn。
S = [5;5;5];
indexn = randi(35);
Sn = Pool(:,indexn);
此处计算费用
PA = exp(-deltacost/k*T);
下一步是将概率PA改为S为Sn。我可能会过度思考这个,但我不知道如何改变它。
答案 0 :(得分:0)
这应该可以解决问题
if Pa<rand()
do the change
end
答案 1 :(得分:0)
以特定概率执行特定操作的常用方法如下:
PA
)。R
。R
是否小于PA
。这将是正确的,概率恰好等于PA
。在这种情况下执行操作。最后提示:
从均匀分布中抽取样本的Matlab函数是rand
。