让matlab接受给定概率的状态变化

时间:2012-11-02 16:44:19

标签: matlab state probability

我有一个状态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。我可能会过度思考这个,但我不知道如何改变它。

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题

if Pa<rand()
    do the change
end

答案 1 :(得分:0)

以特定概率执行特定操作的常用方法如下:

  1. 计算应采取行动的概率(PA)。
  2. uniform probability distribution中提取一个值,我们称之为R
  3. 检查R是否小于PA。这将是正确的,概率恰好等于PA。在这种情况下执行操作。
  4. 最后提示: 从均匀分布中抽取样本的Matlab函数是rand