我有这段代码,我试图理解发生了什么。这个if语句做了什么?
那么,有谁能告诉我这是数学语句吗?
prob = exp(-dE/kT);
if dE <= 0 I I rand() <= prob;
spin(row, col) = - spin(row, col);
我有这段代码,我试图理解发生了什么。这个if语句做了什么?
那么,有谁能告诉我这是数学语句吗?
prob = exp(-dE/kT);
if dE <= 0 I I rand() <= prob;
spin(row, col) = - spin(row, col);
这是无效的MATLAB语法。所以它会给你一个语法错误。你可能意味着
prob = exp(-dE/kT);
if dE <= 0 || rand() <= prob
spin(row, col) = - spin(row, col);
end
,让你基于指数函数(玻尔兹曼分布)的概率,如果你的能量,dE
变化,小于或等于零(因此能量损失) ,或您的概率高于或等于0和1之间随机生成的数字,矩阵中位置(row,col)
的旋转反转,即与-1
相乘。
我是酒吧。除此之外应该不错?它不是我的程序,但它运行。当然,结局也是缺失的。 – user469216