机器学习方法具有智能化,自动化分类,辨别的过程。在物理强关联计算方面,由于随着微观粒子的增多,其计算难度呈指数式上升,将机器学习应用在物理方面,可以提高物理的计算效率。
应用机器学习中的MNIST算法,计算经典Ising模型。
第一步是采用蒙特卡洛算法产生二维Ising模型的格点,其代码为:
import numpy as np
import random
import datetime
from PIL import Image
from PIL import ImageDraw
def init_spin_array(rows, cols):
return np.ones((rows, cols),dtype=np.uint8)
def find_neighbors(spin_array, lattice, x, y):
left = (x, (y - 1)%lattice)
right = (x, (y + 1) % lattice)
top = ((x - 1)%lattice, y)
bottom = ((x + 1) % lattice, y)
return [spin_array[left[0], left[1]],
spin_array[right[0], right[1]],
spin_array[top[0], top[1]],
spin_array[bottom[0], bottom[1]]]
def energy(spin_array, lattice, x ,y):
return 2 * spin_array[x, y] * sum(find_neighbors(spin_array, lattice, x, y))
def main():
RELAX_SWE