Skip to content

Instantly share code, notes, and snippets.

@tomkreker
Created April 6, 2020 13:59
Show Gist options
  • Select an option

  • Save tomkreker/7cf37336a1a6d6cf8e786f071a22dd30 to your computer and use it in GitHub Desktop.

Select an option

Save tomkreker/7cf37336a1a6d6cf8e786f071a22dd30 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import scipy\n",
"from matplotlib import pyplot as plt\n",
"\n",
"class IsingSimulation:\n",
"\n",
" J = 6.34369e-21 # Interaction constant for iron [Joule]\n",
" kB = 1.38065e-23 # Boltzmann constant [Joule / Kelvin]\n",
"\n",
" def __init__(self, size, temperature=300):\n",
" '''\n",
" Create a new Ising model simulation. The state is initialized\n",
" randomly.\n",
"\n",
" Arguments:\n",
"\n",
" size (int) The number of cells along each dimension of the\n",
" square grid.\n",
"\n",
" temperature (float) The temperature in Kelvin at which to\n",
" run the simulation. The Curie temperature for iron is\n",
" 1043 K. Room temperature is about 300 K. Default: 300.\n",
" '''\n",
" self.size = size\n",
" self.temperature = temperature\n",
" self.state = scipy.random.choice(\n",
" [-1, +1], size=(self.size, self.size))\n",
" self.step = 0\n",
"\n",
" def set_temperature(self, temp):\n",
" '''\n",
" Set the temperature of the model in Kelvin.\n",
" '''\n",
" self.temperature = float(temp)\n",
"\n",
" def energy(self):\n",
" '''\n",
" Compute the energy of the current state of the model.\n",
" '''\n",
" return -self.J * (self.state * (\n",
" scipy.roll(self.state, 1, axis=0) +\n",
" scipy.roll(self.state, 1, axis=1))).sum()\n",
"\n",
" def average_magnetism(self):\n",
" '''\n",
" Compute the average per-cell magnetism of the current state\n",
" of the model.\n",
" '''\n",
" return self.state.mean()\n",
"\n",
" def update(self):\n",
" '''\n",
" Do a single cell update of the model state.\n",
" '''\n",
" # Pick a random cell to flip\n",
" i, j = scipy.random.randint(self.size, size=2)\n",
"\n",
" # Change in energy from current state to next state\n",
" delta_E = 2 * self.J * self.state[i,j] * (\n",
" self.state[(i + 1) % self.size, j] +\n",
" self.state[(i - 1) % self.size, j] +\n",
" self.state[i, (j + 1) % self.size] +\n",
" self.state[i, (j - 1) % self.size])\n",
"\n",
" # Log probability of changing state\n",
" log_p = -delta_E / (self.temperature * self.kB)\n",
" if scipy.log(scipy.random.uniform(0, 1)) < log_p:\n",
" self.state[i,j] = -self.state[i,j]\n",
"\n",
" self.step += 1\n",
"\n",
" def display(self):\n",
" '''\n",
" Plot the state of the model.\n",
" '''\n",
" plt.figure()\n",
" plt.imshow(self.state, vmin=-1, vmax=+1)\n",
" plt.title('Step: ' + str(self.step) + ', M = ' + str(self.average_magnetism()))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\tomkr\\AppData\\Roaming\\Python\\Python36\\site-packages\\ipykernel_launcher.py:66: DeprecationWarning: scipy.log is deprecated and will be removed in SciPy 2.0.0, use numpy.lib.scimath.log instead\n"
]
},
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2020d395cc0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"size = 20\n",
"sim = IsingSimulation(size, temperature=1043) # Ising model at the Curie temperature\n",
"for _ in range(1000):\n",
" sim.update()\n",
"sim.display()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\tomkr\\AppData\\Roaming\\Python\\Python36\\site-packages\\ipykernel_launcher.py:66: DeprecationWarning: scipy.log is deprecated and will be removed in SciPy 2.0.0, use numpy.lib.scimath.log instead\n"
]
}
],
"source": [
"# Task 1 - run with temp 1 multiple time\n",
"size = 20\n",
"steps = 100000\n",
"results = []\n",
"runs = 100\n",
"for i in range(runs):\n",
" sim = IsingSimulation(size, temperature=1) # Ising model at the Curie temperature\n",
" for _ in range(steps):\n",
" sim.update()\n",
" #sim.display()\n",
" results.append(sim.average_magnetism())"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nkzwAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2020d522a58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(results)\n",
"plt.title('Average magnetism with T=1, {} runs'.format(runs))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As expected, mostly 1/-1 with some results in between from suboptimal configurations. The temperature cannot be zero because then the denominator of the 'log_p' expression will be zero and division by zero is a crime (and will crash our algorithm)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\tomkr\\AppData\\Roaming\\Python\\Python36\\site-packages\\ipykernel_launcher.py:66: DeprecationWarning: scipy.log is deprecated and will be removed in SciPy 2.0.0, use numpy.lib.scimath.log instead\n"
]
}
],
"source": [
"# task 2 - annealing\n",
"size = 20\n",
"steps = 100000\n",
"results2 = []\n",
"runs = 100\n",
"start_t = 2000\n",
"temp_step = 400\n",
"\n",
"for i in range(runs):\n",
" sim = IsingSimulation(size, temperature=start_t) # Ising model at the Curie temperature\n",
" for j in range(steps):\n",
" if j % temp_step == 0 and sim.temperature > 1:\n",
" sim.temperature -= 1\n",
" sim.update()\n",
" results2.append(sim.average_magnetism())\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEICAYAAABMGMOEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAHR9JREFUeJzt3XuYHVWd7vHvS8LdCARabiGJAgcG\nHMgwbZCDCh4uQkBglBEYlKA4EQaf0SNzMA4OcBDO4HhQPIMDRMlwkTsa5MgdhOEyXAwYIuEaYiAh\nIQkkECKgRH/zx1ptFzt7d6/uvbt3J7yf59lPqmqtqrVq1eVXtaq6oojAzMysN2u1uwJmZrZ6cMAw\nM7MiDhhmZlbEAcPMzIo4YJiZWREHDDMzK+KAsQaTNFrSCknD2l2XwSZprKSQNDyP3yxpYrvrVULS\nXEn7trseZrUGJGBIulvSMknrDsTyrb7aE01EvBAR74mIP7SzXkNBRBwYEZe0ux5DUW1wtVVJWlfS\nRZKel/S6pF9JOrAmzz6SnpL0hqS7JI2pmX+qpOWSXpL0tX7WIyRt1+z69FfLA4akscBHgQAOafXy\ncxnesW214H11aOrHdhkOzAP2AjYC/gm4Jp/vkLQZ8NM8fSQwHbi6Mv/pwPbAGODjwMmSDuj3CrRL\nRLT0B5wK3A98F/h5ZfqHgZeAYZVpfwXMzMNrAZOB54BXgGuAkTltLCkAHQe8ANyTp1+bl/kacA+w\nc2XZmwL/H1gO/BI4E7ivkr4jcDuwFHga+EwP63R3nv8/gRV5uZsCl1eWP7aS//uknWs58Ajw0Ura\n+sAlwDLgSeBkYH4lfS7wD8DMvF5XA+tV0g8GZgCv5vrskqdfBvwReDPX8eRKuw3PeY4F5gCvA78B\njq5Mvx/4Xl7uHOC/5+nzgMXAxB7a5/N5XV7P836pkrY3MB84KS9nIfD5SvrFwA+AG/P8DwHblmwn\n4CDgV7md5wGnV9Jq1/1u4IuV9b0P+L95O/wGOLAy7/tJ+9PrwB25fj8u3P9PB64Dfpzr9UV62Lfz\nPJ8Dns9pp+R9YN9K+5xZ256V8W1IJ6olef7zKmlfyNtlGXArMKZBnV/IbbUi//bobf6c/++AZ3M7\nfQvYFnggr/c1wDo1+8A/Ai/n9Tu6hzbcCLgo7ysvko69YcC6pP3zg5W8HaR9/n09HR+VY+vrpGPr\nd8D/An5SU/a/AucWbuuZwKfz8CTgPytpG+Z67ZjHXwT2r6R/C7iqwXK3A/6DdPy/DFydp9+T2/23\neTsdUbjO3wCeyNvx38nnE2Az4Od5vqXAvcBaPa5zScP05QfMzjvSXwJvA5tX0p4D9quMXwtMzsNf\nBR4ERuUd40LgypqD/9K8Idav7NAjcv5zgRmVZV+VfxsAO5FOKPdVNuY80oluOLBb3jA7N1inu/N6\nbUvamZ8AngH2zfNfCvx7Jf9nSQFlOOlE+VJlI52dd4ZN8rrOZNWA8TCwFelK5Ung+Jy2G+mkuzvp\nAJqY869bmXffeifNvM7LgR1y2pZd60s6ga7M7TGMdIC+QDpRrgvsTzopvKdB+xyU20akK7A3gN0q\nJ4uVwBnA2sCEnL5J5YS4FBif63k5+UDqbTvlZf856YS8C7AIOKx23SvbsBow3gb+Nq/vCcACQDn9\nAVIwWQf4SG63vgSMt4HDcr3Wp+d9eyfSwf+xnPbd3F69Boxc98dIgX5DYD3gIzntMNI++2e57b5J\n5YRWU+d3tFXJ/Dn/DcB7gZ1JJ+A7gQ/QfYxMrNkHvpvXcS/SSW+HBvW5PrfRhsD7SMfDl3LaVOCs\nSt4TgVv6cHzMIAXZ9UnHwG+BjXP68Dz/XxZs582Bt+gOCN8Hzq/J8zjwadKxHrzzXHg48OsGy76S\ndOGwVnWbVtp9u8p4yTo/ntd5JOnC8Myc9s/ABaTjcm1Sz5B6XO8WB4uPkA6WzfL4U8D/rKSfCUzN\nwyPyxhqTx58E9qnk3TIvazjdO/QHeih745xno9xwb1d3SCp3GMARwL01818InNZg2XcDp1TGzwFu\nrox/kkqwqjP/MmDXPDwH+EQl7YusGjA+Wxn/F+CCPHw+8K2aZT8N7FWZt6eA8WregdevWcaxwLOV\n8T9n1R38FWBc4X5wPfCV6D5ZvMk7T0aLgQ/n4YuBH1XSJgBP9XM7nQt8r3bdK9uwGjBmV+bbIOfd\nAhhNOrltUEn/MX0LGPfUTOtp3z6VypVm3k6/pyxg7EG6sxhepx43A8dVxtciBeoxdfK+o61K5s/5\n96ykPwJ8veYYObdS55XAhpX0a4B/qlOXzUnBZ/3KtKOAu/LwvsCcStr9wDF9OD6+UKed/jYPHww8\nUbCN1ybdeV5YmXYRcHZNvvvzvrZNbq9qT8F+wNwGy78UmAKMqpNWGzBK1vn4muPruTx8BvCz6vJ6\n+7X6GcZE4LaIeDmPX5GnURn/VH4Y/ing0Yh4PqeNAaZJelXSq6SD7A+kHajLvK4BScMknS3pOUnL\nSQ0D6Targ+4+x1XmzWXt3lVWLu9o0gmjkUWV4TfrjL+nUreTJD0p6bW87I1yvSDdOTSqV5eXKsNv\nVJY9Bjippt7b5GX2KCJ+SzoBHw8slHSjpB17WD8iouE6Vkk6UNKDkpbmOk2ge30BXomIlQ3WCXpe\n34bbSdLu+eHiEkmv5XWrltuTP5UZEW/kwfeQ2nJpZRrU30Y9qc3f0779jv0hb6dXCsvZBni+pm2r\nZX6/UuZS0h3g1oXLLpm/+JgAluV16/I89ffbMaQT8sJK2ReS7jQAfgGsn7f9GGAcMK0yb2/HR+22\nuYTUI0D+97I6dfoTSWvlPL8HvlxJWkG626p6L+nOfEVlvDatnpNJbf2wpFmSvtBDlfq6ztV2/w7p\nLvI2SXMkTe6hHCCdVFtC0vrAZ4BhkroOxnWBjSXtGhGPRcQTkp4HDgT+hhRAuswjRf/76yx7bB6M\nyuS/AQ4lXXHMJZ2Ul5EaegnpimYUqesIUiNWy/qPiNivXyvbA0kfJfWT7gPMiog/SuqqF6R+2VGk\nW/baevVmHul2/KwG6dFgekqMuBW4NW+rM4Efkm5D+y0H/58AxwA/i4i3JV1P9/o2o7ftdAVwHun5\nw1uSzqU8YDSyEBgpaYNK0OjLNoJVt0NP+/ZCUrdP1/gGpO7MLr8l3QF1qV7UzANGSxpeJ2h07SuX\n96O+fZ2/xCaSNqwEjdGkrpJ65f6O1EuxSiDMx9M1pLuORaTnpK9X5u3p+IBV1/V64HxJHyTdYZzc\naEZJIt1JbA5MiIi3K8mzqFwcS9qQ1E07KyKW5e28K+l5HHl4Vt0KRrxE6i5F0keAOyTdExGz62Qv\nWefq/jua1P1KbreTSAFnZ+AuSb+MiDsbLaiVdxiHka6adiJF/XGkA+Fe0smkyxXA35P6bK+tTL8A\nOKvrVTRJHZIO7aG8EaQd6xXSAfV/uhIivUb6U+B0SRvkK+lqHX4O/DdJn5O0dv59SNKf0bwRpGC1\nBBgu6VTeeWVxDfANSZtI2pp3XqX05ofA8fnqSpI2lHSQpBE5fRGpD3kVkjaXdEjekX9Huuppxeu2\n65AuDJYAK/Orhvu3YLnQ+3YaQbobeEvSeNJFRFPyHe900r6zjqQ9SF2Of6L0+vKxfVhsT/v2dcDB\nkj4iaR1SN0H1uJwBTJA0UtIWpOchXR4mBbiz876wnqQ9K2V+I58IkLSRpL9uUL8lpBcmqvtOX+Yv\n9b9zm36UdHK+tjZDRCwEbgPOkfReSWtJ2lbSXpVsV5Dulo/mnRedvR0fq4iIt0jb4Arg4Yh4oYf6\nn086p30yIt6sSZsGfFDSpyWtR+pqnBkRT+X0S4Fv5uN+R1JAuLheIZL+WtKoPLqMFOS6jtXaY7xk\nnU+UNErSSNKLB1fncg6WtF0OhMtzGT2eE1oZMCaSHvy+EBEvdf1IV4BHq/s1titJfZq/qHRdQXpo\ndAPp9uh10kPC3Xso71LS7dWLpKv1B2vSv0y663iJdAt5JelE2RVZ9weOJEXbl4Bvk058zbqV1C/6\nTK7fW7zzlvAM0hsjvyH1g17XVa/eRMR00o52HmlHmk3qI+3yz6Sd8lVJ/1Az+1qkq4kFpO6FvUgv\nJzQlt+XfkwLhMtJJ+4Zml1tZdk/b6e+AM/L+cmquQyscTXo+8ArpTuxq8jbKJ/VNWXV/60nDfTsi\nZpEe3F5BOvkvI+0fXS4jPdieSzqR/ulVzXxh9EnSWzUv5PmOyGnTSG11lVKX7eOkO/tV5Dups4D7\n877z4b7MX+ilvG4LSC82HF85mdY6hnQh0vVmz3Wk5z5d9X2IdOe1FelY65re2/HRyCWk53YNu6Ny\nsP8S6UL4JaU/iF0h6ehc9hLS88Gzctm7k/bbLqeRXvp5nvTSy3ci4pYGxX0IeEjSCtJ+85WI+E1O\nOx24JG+nzxSu8xWkfWdO/p2Zp29POgetIL3o8W8RcXejNoDut0LWeJK+DWwRERN7zTyIJJ0AHBkR\ne/Wa2dpC0tWkB/Gn5S6CEyPiqHbXa3UhaW/SSwOjesvbDpJGk17Q2SIilre7Pq0kaS7pZY87WrG8\nNfbTIJJ2lLRLvk0bT/objmm9zTcI9dpS0p75VnsH0lV/2+tl3XK317Z5Gx1AelZ2PUBE3OdgseZQ\neoj9NdKbamtUsBgIa/JfoY4gdUNtRXqN8xzSK2Tttg7prY/3k15zvQr4t7bWyGptQXoGtimpm+eE\niPhVe6tkrZaf5y0idROtfn913Qbvmi4pMzNrzhrbJWVmZq01JLukNttssxg7dmy7q2Fmttp45JFH\nXo6IjoEsY0gGjLFjxzJ9+vR2V8PMbLWh9EfRA8pdUmZmVsQBw8zMijhgmJlZEQcMMzMr4oBhZmZF\nHDDMzKyIA4aZmRVxwDAzsyIOGGZmVmRI/qW32VA1dvKNbSl37tkHtaVcsyrfYZiZWREHDDMzK+KA\nYWZmRRwwzMysiAOGmZkVccAwM7MiDhhmZlbEAcPMzIo4YJiZWREHDDMzK+JPg9hqqV2f6DB7N/Md\nhpmZFen1DkPSVOBgYHFEfDBPuxrYIWfZGHg1IsbVmXcu8DrwB2BlRHS2qN5mZjbISrqkLgbOAy7t\nmhARR3QNSzoHeK2H+T8eES/3t4JmZjY09BowIuIeSWPrpUkS8Bngf7S2WmZmNtQ0+wzjo8CiiHi2\nQXoAt0l6RNKknhYkaZKk6ZKmL1mypMlqmZlZqzUbMI4Cruwhfc+I2A04EDhR0scaZYyIKRHRGRGd\nHR0dTVbLzMxard8BQ9Jw4FPA1Y3yRMSC/O9iYBowvr/lmZlZezVzh7Ev8FREzK+XKGlDSSO6hoH9\ngcebKM/MzNqo14Ah6UrgAWAHSfMlHZeTjqSmO0rSVpJuyqObA/dJegx4GLgxIm5pXdXNzGwwlbwl\ndVSD6cfWmbYAmJCH5wC7Nlk/MzMbIvxpEOs3f57D7N3FnwYxM7MiDhhmZlbEAcPMzIo4YJiZWREH\nDDMzK+KAYWZmRRwwzMysiAOGmZkVccAwM7MiDhhmZlbEAcPMzIo4YJiZWREHDDMzK+KAYWZmRRww\nzMysiAOGmZkVccAwM7MiJf+n91RJiyU9Xpl2uqQXJc3IvwkN5j1A0tOSZkua3MqKm5nZ4Cq5w7gY\nOKDO9O9FxLj8u6k2UdIw4AfAgcBOwFGSdmqmsmZm1j69BoyIuAdY2o9ljwdmR8SciPg9cBVwaD+W\nY2ZmQ0AzzzC+LGlm7rLapE761sC8yvj8PK0uSZMkTZc0fcmSJU1Uy8zMBkJ/A8b5wLbAOGAhcE6d\nPKozLRotMCKmRERnRHR2dHT0s1pmZjZQ+hUwImJRRPwhIv4I/JDU/VRrPrBNZXwUsKA/5ZmZWfv1\nK2BI2rIy+lfA43Wy/RLYXtL7Ja0DHAnc0J/yzMys/Yb3lkHSlcDewGaS5gOnAXtLGkfqYpoLfCnn\n3Qr4UURMiIiVkr4M3AoMA6ZGxKwBWQszMxtwvQaMiDiqzuSLGuRdAEyojN8ErPLKrZmZrX78l95m\nZlbEAcPMzIo4YJiZWREHDDMzK+KAYWZmRRwwzMysiAOGmZkVccAwM7MiDhhmZlbEAcPMzIo4YJiZ\nWREHDDMzK+KAYWZmRRwwzMysiAOGmZkVccAwM7MiDhhmZlbEAcPMzIr0GjAkTZW0WNLjlWnfkfSU\npJmSpknauMG8cyX9WtIMSdNbWXEzMxtcJXcYFwMH1Ey7HfhgROwCPAN8o4f5Px4R4yKis39VNDOz\noaDXgBER9wBLa6bdFhEr8+iDwKgBqJuZmQ0hrXiG8QXg5gZpAdwm6RFJk1pQlpmZtcnwZmaWdAqw\nEri8QZY9I2KBpPcBt0t6Kt+x1FvWJGASwOjRo5uplpmZDYB+32FImggcDBwdEVEvT0QsyP8uBqYB\n4xstLyKmRERnRHR2dHT0t1pmZjZA+hUwJB0AfB04JCLeaJBnQ0kjuoaB/YHH6+U1M7Ohr+S12iuB\nB4AdJM2XdBxwHjCC1M00Q9IFOe9Wkm7Ks24O3CfpMeBh4MaIuGVA1sLMzAZcr88wIuKoOpMvapB3\nATAhD88Bdm2qdmZmNmQ09dDbzNZ8Yyff2JZy5559UFvKtcb8aRAzMyvigGFmZkUcMMzMrIgDhpmZ\nFXHAMDOzIg4YZmZWxAHDzMyKOGCYmVkRBwwzMyvigGFmZkX8aRCz1UC7Ps9hVuU7DDMzK+KAYWZm\nRRwwzMysiAOGmZkVccAwM7MiDhhmZlbEAcPMzIoUBQxJUyUtlvR4ZdpISbdLejb/u0mDeSfmPM9K\nmtiqipuZ2eAqvcO4GDigZtpk4M6I2B64M4+/g6SRwGnA7sB44LRGgcXMzIa2ooAREfcAS2smHwpc\nkocvAQ6rM+sngNsjYmlELANuZ9XAY2Zmq4FmnmFsHhELAfK/76uTZ2tgXmV8fp62CkmTJE2XNH3J\nkiVNVMvMzAbCQD/0Vp1pUS9jREyJiM6I6Ozo6BjgapmZWV81EzAWSdoSIP+7uE6e+cA2lfFRwIIm\nyjQzszZpJmDcAHS99TQR+FmdPLcC+0vaJD/s3j9PMzOz1Uzpa7VXAg8AO0iaL+k44GxgP0nPAvvl\ncSR1SvoRQEQsBb4F/DL/zsjTzMxsNVP0/2FExFENkvapk3c68MXK+FRgar9qZ2ZmQ4b/0tvMzIo4\nYJiZWREHDDMzK+KAYWZmRRwwzMysiAOGmZkVccAwM7MiDhhmZlbEAcPMzIo4YJiZWREHDDMzK+KA\nYWZmRRwwzMysiAOGmZkVccAwM7MiDhhmZlbEAcPMzIo4YJiZWZF+BwxJO0iaUfktl/TVmjx7S3qt\nkufU5qtsZmbtUPR/etcTEU8D4wAkDQNeBKbVyXpvRBzc33LMzGxoaFWX1D7AcxHxfIuWZ2ZmQ0yr\nAsaRwJUN0vaQ9JikmyXt3GgBkiZJmi5p+pIlS1pULTMza5WmA4akdYBDgGvrJD8KjImIXYF/Ba5v\ntJyImBIRnRHR2dHR0Wy1zMysxVpxh3Eg8GhELKpNiIjlEbEiD98ErC1psxaUaWZmg6wVAeMoGnRH\nSdpCkvLw+FzeKy0o08zMBlm/35ICkLQBsB/wpcq04wEi4gLgcOAESSuBN4EjIyKaKdPMzNqjqYAR\nEW8Am9ZMu6AyfB5wXjNlmJnZ0NBUwLChYezkG9tdBTN7F/CnQczMrIgDhpmZFXHAMDOzIg4YZmZW\nxAHDzMyKOGCYmVkRBwwzMyvigGFmZkUcMMzMrIgDhpmZFXHAMDOzIg4YZmZWxAHDzMyKOGCYmVkR\nBwwzMyvigGFmZkUcMMzMrEjTAUPSXEm/ljRD0vQ66ZL0/yTNljRT0m7NlmlmZoOvVf9F68cj4uUG\naQcC2+ff7sD5+V8zM1uNDEaX1KHApZE8CGwsactBKNfMzFqoFXcYAdwmKYALI2JKTfrWwLzK+Pw8\nbWE1k6RJwCSA0aNHt6BaZrY6Gzv5xraVPffsg9pW9lDWijuMPSNiN1LX04mSPlaTrjrzxCoTIqZE\nRGdEdHZ0dLSgWmZm1kpNB4yIWJD/XQxMA8bXZJkPbFMZHwUsaLZcMzMbXE0FDEkbShrRNQzsDzxe\nk+0G4Jj8ttSHgdciYiFmZrZaafYZxubANEldy7oiIm6RdDxARFwA3ARMAGYDbwCfb7JMMzNrg6YC\nRkTMAXatM/2CynAAJzZTjpmZtZ//0tvMzIo4YJiZWREHDDMzK+KAYWZmRRwwzMysSKs+Pviu187P\nGJhZa7XreB7qnyTxHYaZmRVxwDAzsyIOGGZmVsQBw8zMijhgmJlZEQcMMzMr4oBhZmZFHDDMzKyI\nA4aZmRVxwDAzsyJr3KdB/IkOM7OB4TsMMzMr0u+AIWkbSXdJelLSLElfqZNnb0mvSZqRf6c2V10z\nM2uXZrqkVgInRcSjkkYAj0i6PSKeqMl3b0Qc3EQ5ZmY2BPT7DiMiFkbEo3n4deBJYOtWVczMzIaW\nljzDkDQW+AvgoTrJe0h6TNLNknZuRXlmZjb4mn5LStJ7gJ8AX42I5TXJjwJjImKFpAnA9cD2DZYz\nCZgEMHr06GarZWZmLdbUHYaktUnB4vKI+GltekQsj4gVefgmYG1Jm9VbVkRMiYjOiOjs6Ohoplpm\nZjYAmnlLSsBFwJMR8d0GebbI+ZA0Ppf3Sn/LNDOz9mmmS2pP4HPAryXNyNP+ERgNEBEXAIcDJ0ha\nCbwJHBkR0USZZmbWJv0OGBFxH6Be8pwHnNffMszMbOjwX3qbmVkRBwwzMyvigGFmZkUcMMzMrIgD\nhpmZFXHAMDOzIg4YZmZWxAHDzMyKOGCYmVkRBwwzMyvigGFmZkUcMMzMrIgDhpmZFXHAMDOzIg4Y\nZmZWxAHDzMyKOGCYmVkRBwwzMyvigGFmZkWaChiSDpD0tKTZkibXSV9X0tU5/SFJY5spz8zM2qff\nAUPSMOAHwIHATsBRknaqyXYcsCwitgO+B3y7v+WZmVl7NXOHMR6YHRFzIuL3wFXAoTV5DgUuycPX\nAftIUhNlmplZmwxvYt6tgXmV8fnA7o3yRMRKSa8BmwIv1y5M0iRgUh5dIenpJuo2WDajzrq8C7kd\nurkturktuhW1hZrrgxnT1NwFmgkY9e4Uoh950sSIKcCUJuoz6CRNj4jOdtej3dwO3dwW3dwW3daU\ntmimS2o+sE1lfBSwoFEeScOBjYClTZRpZmZt0kzA+CWwvaT3S1oHOBK4oSbPDcDEPHw48IuIqHuH\nYWZmQ1u/u6TyM4kvA7cCw4CpETFL0hnA9Ii4AbgIuEzSbNKdxZGtqPQQslp1oQ0gt0M3t0U3t0W3\nNaIt5At+MzMr4b/0NjOzIg4YZmZWxAGjDySNlHS7pGfzv5vUyTNO0gOSZkmaKemIdtR1IJW0Q853\ni6RXJf18sOs40PxZnG4FbfExSY9KWinp8HbUcbAUtMXXJD2Rzw13Shrwv51oJQeMvpkM3BkR2wN3\n5vFabwDHRMTOwAHAuZI2HsQ6DoaSdgD4DvC5QavVIPFncboVtsULwLHAFYNbu8FV2Ba/AjojYhfS\n1y/+ZXBr2RwHjL6pfurkEuCw2gwR8UxEPJuHFwCLgY5Bq+Hg6LUdACLiTuD1warUIPJncbr12hYR\nMTciZgJ/bEcFB1FJW9wVEW/k0QdJf7+22nDA6JvNI2IhQP73fT1lljQeWAd4bhDqNpj61A5roHqf\nxdm6UZ6IWAl0fRZnTVPSFu8WfW2L44CbB7RGLdbMp0HWSJLuALaok3RKH5ezJXAZMDEiVrsrq1a1\nwxqqpZ/FWc29W9azRHFbSPos0AnsNaA1ajEHjBoRsW+jNEmLJG0ZEQtzQFjcIN97gRuBb0bEgwNU\n1QHVinZYg/Xlszjz1/DP4pS0xbtFUVtI2pd04bVXRPxukOrWEu6S6pvqp04mAj+rzZA/kzINuDQi\nrh3Eug2mXtthDefP4nQraYt3i17bQtJfABcCh0TE6nehFRH+Ff5IfdB3As/mf0fm6Z3Aj/LwZ4G3\ngRmV37h2132w2yGP3wssAd4kXX19ot11b2EbTACeIT2fOiVPO4N0IgBYD7gWmA08DHyg3XVuY1t8\nKG//3wKvALPaXec2tsUdwKLKueGGdte5Lz9/GsTMzIq4S8rMzIo4YJiZWREHDDMzK+KAYWZmRRww\nzMysiAOGmZkVccAwM7Mi/wXOIRp4rZ1XEAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2020d739518>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(results2)\n",
"plt.title('Average magnetism annealing, reduce temp every 200 steps')\n",
"plt.show()\n",
"# this makes sense since the temperature could only drop as low as 1750 which is still very high"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\tomkr\\AppData\\Roaming\\Python\\Python36\\site-packages\\ipykernel_launcher.py:66: DeprecationWarning: scipy.log is deprecated and will be removed in SciPy 2.0.0, use numpy.lib.scimath.log instead\n"
]
}
],
"source": [
"# task 2 - faster annealing\n",
"results3 = []\n",
"temp_step = 50\n",
"\n",
"for i in range(runs):\n",
" sim = IsingSimulation(size, temperature=start_t) # Ising model at the Curie temperature\n",
" for j in range(steps):\n",
" if j % temp_step == 0 and sim.temperature > 1:\n",
" sim.temperature -= 1\n",
" sim.update()\n",
" results3.append(sim.average_magnetism())"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEICAYAAAC3Y/QeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAHrNJREFUeJzt3Xu4HVV9//H3h4RLgEASOEK4JAGK\nCF4IeAxYVBBRARWiRQVRo0IjKFWrVkCtosUW+sil/dkqUZCo3INABCkikFJQoEFjBCIk3C+5HCAI\nUUkJfH9/rHVg2Nm3c/bsc5LM5/U85zl7Zq2Z+c6ame/MrD17b0UEZmZWLesNdwBmZjb0nPzNzCrI\nyd/MrIKc/M3MKsjJ38ysgpz8zcwqyMl/HSFpgqQVkkYMdyxDTdIkSSFpZB6+WtK04Y6rHZIekHTA\ncMdh1dNx8pc0R9JySRuWEZC1pzZpRMRDEbFpRDw/nHGtCSLioIiYOdxxrIlqT5RWX85rz+YLqhWS\n7q4p/5CkByX9SdLlksYNYhnnSjq5vKgHpqPkL2kS8GYggENKiKfeMryT2lrB++qaqYPtcly+oNo0\nInYpzO/VwFnAR4CtgD8D/9l5pEMsIgb9B3wNuBk4HbiyMH5vYAkwojDuvcD8/Ho94ATgXuAJ4GJg\nXC6bRDqZHAU8BNyYx1+S5/lH4Ebg1YV5bwH8DHga+F/gZOCmQvmrgGuBJ4G7gQ80Wac5efpfASvy\nfLcAzivMf1Kh/r8BD+ey24E3F8pGATOB5cAC4EvAI4XyB4AvAvPzel0EbFQofzcwD3gqx/O6PP7H\nwAvAX3KMXyq028hc52PAfcAzwP3AkYXxNwNn5PneB/x1Hv8wsAyY1qR9Pp7X5Zk87ScLZfsBjwBf\nyPNZDHy8UH4u8B/AVXn6W4Gd2tlOwLuA3+Z2fhg4qVBWu+5zgKML63sT8O28He4HDipMuwNpf3oG\n+GWO7ydt7v8nAbOAn+S4jqbJvp2n+QjwYC77St4HDii0z8m17VkY3h74KdCXp/9OoewTebssB64B\nJjaI+aHcVivy3xtbTZ/rfwpYmNvpn4CdgF/n9b4Y2KBmH/gy8HhevyObtOHmwNl5X3mUdOyNADYk\n7Z+vKdTtIe3zr2h2fBSOreNJx9ZK4B+AS2uW/f+AM5vkgaMblP0zcH5heCfg/4DRdeqKdKwtIx3j\n84HXANOB5/J0K4Cf5frbAJfmbXw/8Jk6+9tFeTv8Bti9UH58bsNnSMfP25ruv+3s5E023KK8U7w+\nr8hWhbJ7gbcXhi8BTsivPwfcAmyXN/JZwAU1B/KPgE2AUYWdc3SufyYwrzDvC/PfxsBupORwUy7b\nJA9/HBgJ7Jl3ylc3WKc5eb12yjvmXcA9wAF5+h8BPyzU/zDp5DCSlPSWkBM4cArw38DYvK7zWT35\n35Y3+DjSwXdMLtsz7zB7kQ6Gabn+hoVpD6iXAPM6Pw3sksvG968vKRmuyu0xgnSwPURKehsC78g7\nz6YN2udduW0E7Eu66tmzcOCvAr4JrA8cnMvHFpLbk8CUHOd5wIXtbKc879eSkuvrgKXA1DaT/3PA\n3+b1PRZ4DFAu/zXpxLAB8KbcbgNJ/s8BU3Nco2i+b+9GOtDfkstOz+3VMvnn2H9HSiSbABsBb8pl\nU0n77K657b4K/KpBzC9rq3amz/VnA5sBryYl0+uAHXnpGJlWsw+cntdxX+BP5H2xTjyX5zbaBHgF\n6Xj4ZC47B/hWoe6ngf8awPExj3TCHEU6Bv4EjMnlI/P0r2+SB/pI++DNwH6FsiuA42vqr6g3L+Cd\npIvCMaRjZldgfIPtvV6u+zXS/rgj6QLrnTX722Gk4+uLpBPE+sAupONnm8J23qneunWc/EkHynPA\nlnn4D8DfF8pPBs7Jr0fnhp+YhxdQOCvlDfNc3iCT8s62Y5Nlj8l1Ns8b/rnizkXhyh/4IPA/NdOf\nBXy9yUb/SmH4NODqwvB7KJx46ky/nHw2Lm64PHw0qyf/DxeG/xX4Xn79XeCfauZ9N7BvYdpmyf8p\n4G/IJ89CvY8BCwvDr83TFU/cTwCT29wPLgc+Wzjw/8LLE8syYO/Czv6DQtnBwB8GuZ3OBM6oXffC\nNiwm/0WF6TbOdbcGJpAS1caF8p8wsOR/Y824Zvv218gnu1y2CenKr53k/0ZSMhpZJ46rgaMKw+uR\nTroT69R9WVu1M32uv0+h/HYKyY90jJxZiHkVsEmh/GLgH+vEshXpRDKqMO4I4Ib8+gDgvkLZzcBH\nB3B8fKJOO/1tfv1u4K4m23YvXrrYnEa6INopl11Hvkgr1H+UwgmiMH5/0sXj3sB6NWW123sv4KGa\nOieSLzbz/nZLzXZaTOp6/yvSsXYAsH47+28nff7TgF9ExON5+Pw8jsLw+/Ibwe8DfhMRD+ayicBl\nkp6S9BTpgHmetDP0e7j/haQRkk6RdK+kp0kbFmBL0q3gyGL9mtcTgb36l5WXdyTp4G9kaeH1X+oM\nb1qI7QuSFkj6Y5735jkuSFf0jeLqt6Tw+s+FeU8EvlAT9/Z5nk1FxJ9IyfQYYLGkqyS9qsn6EREN\n17FI0kGSbpH0ZI7pYF5aX4AnImJVg3WC5uvbcDtJ2kvSDZL6JP0xr1txuc28uMyI+HN+uSmpLZ8s\njIP626iZ2vrN9u2X7Q95Oz3R5nK2Bx6sadviMv+tsMwnSVeZ27Y573amb/uYAJbndev3IPX324mk\nq9bFhWWfRboDALgeGJW3/URgMnBZYdpWx0fttplJulMn//9xnZgAiIhbI+KZiFgZ6eGBm0n7OqSr\n/M1qJtmMdIKonc/1wHdId9ZLJc2QVDttv4nANjXr9GUa5MWIeIHUxbZNRCwi3XWeBCyTdKGkprli\nUMlf0ijgA8C+kpZIWgL8PbC7pN1zYHeRNvpBwIdIJ4PiChwUEWMKfxtFxKOFOlF4/SHgUNJZbXPS\n1QukHbSPdKWxXaH+9jXL+u+aZW0aEccOZt2LJL2Z1M/2AVLXxhhSv55ylcVN4mrlYdItbzHujSPi\nglwezSaOiGsi4u2kK88/AN8fwLLryifyS0ndJFvl9f05L61vJ1ptp/NJXQ/bR8TmwPdKWO5iYJyk\njQvjBrKNYPXt0GzfXlycf17uFoVp/0S6M+lXvEB5GJjQ4M3Lh0ldJcVljoqIX7UR70Cnb8dYSZsU\nhieQutrqLXclqfegf7mbRcSr4cXkdjHpbuBDpPcVnylM2+z4qLeulwOvk/Qa0pX/eQNYp+Cl/e1O\nYPf+Akk7ku4Q7qk7YcS/R8TrSV1mryS9/1AvvoeB+2vWaXREHFyoU9x/1iPll8fycs6PiDeRTiIB\nnNpshQZ75T+VdDWzG+lsPJnUl/U/wEcL9c4HPkPq47ykMP57wLfy2RxJPZIObbK80aSd5AnSwfHP\n/QWRHm38KXCSpI3zFW4xhiuBV0r6iKT1898bJO06iPWuF9cq8u24pK/x8iuCi4ETJY2VtC1w3ADm\n/X3gmHzVI0mbSHqXpNG5fCmpT3A1kraSdEg+AFeSrlTKeAR0A9JO3gesknQQ6T2CMrTaTqNJV+nP\nSppCSgYdyXeic0n7zgaS3kjq1ntRfqT2YwOYbbN9exbwbklvkrQB6b2R4jE4DzhY0jhJW5Ou5Prd\nRjp5nJL3hY0k7VNY5on5KRQkbS7p/Q3i6yM9LFDcdwYyfbu+kdv0zaREe0lthYhYDPwCOE3SZpLW\nk7STpH0L1c4n3cUeycsvIFsdH6uJiGdJ2+B84LaIeKhePUljJL0zt/FISUeSctg1ucp5wHskvTkf\nY98Eflo4MRXn9YYc4/qkk/uzvHQs1h7DtwFPSzpe0iilHo/XSHpDoc7rJb0vXwR8jnR83yJpF0n7\n5wu0Z0l3Y02P+cEm/2mkfqiHImJJ/x/p9ubIwtXJBaQ+wOsL3UOQnpCZDfxC0jOkN8j2arK8H5Hu\nIh4lvbl0S035caQ7giWkW7kLSI1C3iDvAA4nnSGXkM6IZXwu4RpSP+I9Ob5nefmt5jdJt2X3k54k\nmdUfVysRMZf0JuV3SO8jLCL1X/f7F+Cr+fbwizWTr0d68/kx0i38vqQ35juS2/IzpJPaclICnt3p\nfAvzbradPgV8M+8vX8sxlOFIUn/6E6T3ii4ib6OcoLdg9f2tmYb7dkTcSXrT8nxSIl9O2j/6/Zj0\npu4DpKR4UX9Bvsh5D6lv96E83Qdz2WWktrpQqVv0DtId92pyF9e3gJvzvrP3QKZv05K8bo+REuUx\nEfGHBnU/SrqouCtPM4t0t9of762kpLkN6VjrH9/q+GhkJul9roZdPqSuqJN56Q3fvyM9XHB3Xvad\npG7H80j97KNpfHxtRjpRLeelp7y+ncvOBnbL2+HywjaeTMoZjwM/IOW2fleQtvty0pNj74uI50jH\nySl5miWkrrMvN2uI/ice1imSTgW2johpLSsPIUnHAodHxL4tK9uwkHQR6U3or0t6E/DpiDhiuONa\nW0jaj/SG+Xat6g4HSRNI3aBbR8TTwx3PQEg6CfiriPhwq7rtWCe+3kHSqyS9Lt/+TSF9RuCyVtMN\nQVzjJe2Tb2d3IV2ND3tc9pJ8W75T3kYHkt5buhwgIm5y4l935D7yz5OeuFqrEn83rCufSBxN6urZ\nhnQbdhrp9mi4bUB6emEH0qOXF7I2fhJw3bY16T2jLUhdKcdGxG+HNyQrW+6bX0rqejlwmMNZI6yT\n3T5mZtbcOtHtY2ZmAzOk3T5bbrllTJo0aSgXaWa21rv99tsfj4ieMuc5pMl/0qRJzJ07dygXaWa2\n1pP0YOtaA+NuHzOzCnLyNzOrICd/M7MKcvI3M6sgJ38zswpy8jczq6C2k3/+etHfSroyD+8g6VZJ\nCyVdlL8B0czM1gIDufL/LOlXifqdSvoZvZ1JXy96VJmBmZlZ97SV/CVtR/rh7h/kYZF+m3JWrjKT\n9AMvZma2Fmj3E75nAl8ifXsmpG9AfKrwe6KP0OD3QiVNB6YDTJgwYdCBTjrhqkFP26kHTnnXsC3b\nzKwbWl75S3o3sCwibi+OrlO17teDRsSMiOiNiN6enlK/msLMzAapnSv/fYBDJB0MbET6WbIzgTGS\nRuar/xd/RNjMzNZ8La/8I+LEiNguIiaRfl/1+og4ErgBOCxXm8aa8eMpZmbWhk6e8z8e+LykRaT3\nAM4uJyQzM+u2AX2lc0TMAebk1/cBU8oPyczMus2f8DUzqyAnfzOzCnLyNzOrICd/M7MKcvI3M6sg\nJ38zswpy8jczqyAnfzOzCnLyNzOrICd/M7MKcvI3M6sgJ38zswpy8jczqyAnfzOzChrQVzqbma3N\n/FvgL/GVv5lZBbXzA+4bSbpN0u8k3SnpG3n8uZLulzQv/03ufrhmZlaGdrp9VgL7R8QKSesDN0m6\nOpf9Q0TM6l54ZmbWDS2Tf0QEsCIPrp//optBmZlZd7XV5y9phKR5wDLg2oi4NRd9S9J8SWdI2rBr\nUZqZWanaSv4R8XxETAa2A6ZIeg1wIvAq4A3AOOD4etNKmi5prqS5fX19JYVtZmadGNDTPhHxFDAH\nODAiFkeyEvghMKXBNDMiojcient6ejoO2MzMOtfO0z49ksbk16OAA4A/SBqfxwmYCtzRzUDNzKw8\n7TztMx6YKWkE6WRxcURcKel6ST2AgHnAMV2M08zMStTO0z7zgT3qjN+/KxGZmVnX+RO+ZmYV5ORv\nZlZBTv5mZhXk5G9mVkFO/mZmFeTkb2ZWQU7+ZmYV5ORvZlZBTv5mZhXk5G9mVkFO/mZmFeTkb2ZW\nQU7+ZmYV5ORvZlZBTv5mZhXk5G9mVkFO/mZmFdTOb/huJOk2Sb+TdKekb+TxO0i6VdJCSRdJ2qD7\n4ZqZWRnaufJfCewfEbsDk4EDJe0NnAqcERE7A8uBo7oXppmZlall8o9kRR5cP/8FsD8wK4+fCUzt\nSoRmZla6tvr8JY2QNA9YBlwL3As8FRGrcpVHgG0bTDtd0lxJc/v6+sqI2czMOtRW8o+I5yNiMrAd\nMAXYtV61BtPOiIjeiOjt6ekZfKRmZlaaAT3tExFPAXOAvYExkkbmou2Ax8oNzczMuqWdp316JI3J\nr0cBBwALgBuAw3K1acAV3QrSzMzKNbJ1FcYDMyWNIJ0sLo6IKyXdBVwo6WTgt8DZXYzTzMxK1DL5\nR8R8YI864+8j9f+bmdlaxp/wNTOrICd/M7MKcvI3M6sgJ38zswpy8jczqyAnfzOzCnLyNzOrICd/\nM7MKcvI3M6sgJ38zswpy8jczqyAnfzOzCnLyNzOrICd/M7MKcvI3M6sgJ38zswpy8jczq6B2fsN3\ne0k3SFog6U5Jn83jT5L0qKR5+e/g7odrZmZlaOc3fFcBX4iI30gaDdwu6dpcdkZEfLt74ZmZWTe0\n8xu+i4HF+fUzkhYA23Y7MDMz654B9flLmkT6Mfdb86jjJM2XdI6ksQ2mmS5prqS5fX19HQVrZmbl\naDv5S9oUuBT4XEQ8DXwX2AmYTLozOK3edBExIyJ6I6K3p6enhJDNzKxTbSV/SeuTEv95EfFTgIhY\nGhHPR8QLwPeBKd0L08zMytTO0z4CzgYWRMTphfHjC9XeC9xRfnhmZtYN7Tztsw/wEeD3kublcV8G\njpA0GQjgAeCTXYnQzMxK187TPjcBqlP08/LDMTOzoeBP+JqZVZCTv5lZBTn5m5lVkJO/mVkFOfmb\nmVWQk7+ZWQU5+ZuZVZCTv5lZBTn5m5lVkJO/mVkFOfmbmVWQk7+ZWQU5+ZuZVZCTv5lZBTn5m5lV\nkJO/mVkFOfmbmVVQO7/hu72kGyQtkHSnpM/m8eMkXStpYf4/tvvhmplZGdq58l8FfCEidgX2Bj4t\naTfgBOC6iNgZuC4Pm5nZWqBl8o+IxRHxm/z6GWABsC1wKDAzV5sJTO1WkGZmVq4B9flLmgTsAdwK\nbBURiyGdIIBXNJhmuqS5kub29fV1Fq2ZmZWi7eQvaVPgUuBzEfF0u9NFxIyI6I2I3p6ensHEaGZm\nJWsr+Utan5T4z4uIn+bRSyWNz+XjgWXdCdHMzMrWztM+As4GFkTE6YWi2cC0/HoacEX54ZmZWTeM\nbKPOPsBHgN9LmpfHfRk4BbhY0lHAQ8D7uxOimZmVrWXyj4ibADUoflu54ZiZ2VDwJ3zNzCrIyd/M\nrIKc/M3MKsjJ38ysgpz8zcwqyMnfzKyCnPzNzCrIyd/MrIKc/M3MKsjJ38ysgpz8zcwqyMnfzKyC\nnPzNzCrIyd/MrIKc/M3MKsjJ38ysgpz8zcwqqJ3f8D1H0jJJdxTGnSTpUUnz8t/B3Q3TzMzK1M6V\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2020d7f49e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(results3)\n",
"plt.title('Average magnetism annealing, reduce temp every 50 steps')\n",
"plt.show()\n",
"# now it had time to reach low temperature and magnetism happens! "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment