2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Wolff algorithm и вычисление намагниченности
Сообщение17.02.2018, 17:58 


29/12/14
390
Здравствуйте, у меня стоит задача численного моделирования 2D Изинга при помощи алгоритма Вольффа. Вроде как написал правильный код, теперь нужно анализировать данные. И тут у меня возникает проблема. Вот пример двух значений среднего спина для температур выше ($\beta = 0.4$) и ниже ($\beta = 0.49$) критической для небольшой системы $20 \times 20 $:

(Оффтоп)

Изображение Изображение


Видно, что значение сильно флуктуирует. И вроде бы как это имеет смысл. Действительно, в кластерных алгоритмах спины переворчаиваются сразу большими блоками, причём (для алгоритма Вольффа) вероятность принятия новой конфигурации равна единице. Поэтому даже после установления равновесия большие кластеры будут то и дело переворачиваться. В таких случаях, насколько я знаю, используют разные приёмы вроде усреднения по блокам (block averaging). Но из-за $Z_2$ симметрии я не очень понимаю, как поступить здесь. По-хорошему мне бы получить два средних: $M_+$ и $M_-$. И тогда разумной оценкой было бы $M = \frac{M_+ - M_-}{2} $. Но как вычленить $M_+$ и $M_-$? Ну или как поступить по-другому?


UPDT: В общем, сделал пока что по-колхозному. Создал M_pos = 0, M_neg = 0, T_pos = 0, T_neg = 0. На каждом монте-карловском шаге после T_therm (задаю сам) смотрю на знак среднего значения спина M. Если положительный, то M_pos += M и T_pos++, а если отрицательный, то M_neg += M и T_neg++. Потом это дело усредняю M_pos = M_pos/T_pos, M_neg = M_neg/T_neg, а итоговое среднее считаю как M_avg =
(M_pos - M_neg)/2
. Разумеется, можно сделать ещё и оценку ошибки. Результаты выглядят в целом неплохо. Если кто-то может подсказать более разумный способ, буду рад услышать.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, PAV, Toucan, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group