我有這段代碼,我試圖理解發生了什麼。這個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