phy-521/presentation/.ipynb_checkpoints/Entanglement-checkpoint.ipynb
2020-12-23 16:45:08 -05:00

350 lines
31 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"# EPR Paradox Example\n",
"\n",
"# A neutral pi meson (pi0) decays into an electron/positron (e-/e+) \n",
"# pair.\n",
"\n",
"# pi0 --> e+ + e- (electron-positron pair)\n",
"# pi0 has angular momentum l = s = 0\n",
"\n",
"# Align electron and positron detectors in opposite directions.\n",
"\n",
"# | pi0 |\n",
"# |e- <------ ------> e+|\n",
"\n",
"# Where hbar = 1, the measurement of the spin in some direction is \n",
"# +/-1 with spin state [1 0] (up) or [0 1] (down).\n",
"\n",
"# The Pauli exclusion principle with conserved angular momentum 0\n",
"# dictates this system must be in the singlet state \n",
"# chi = [1/sqrt(2) (|up+>|down-> - |down+>|up->)].\n",
"\n",
"# In this state, if the positron is measured to have spin [1 0], the \n",
"# electron must have spin [0 1], or vice versa. There is an equal \n",
"# probability to find either state during the first measurement.\n",
"\n",
"# This view is consistent with the realist view. The realist view could \n",
"# hold that the electron and position had those angular momenta \n",
"# from creation.\n",
"\n",
"# EPR assumes influences cannot propagate faster than the speed of \n",
"# light. \"Wave function collapse\" is apparently instantaneous, however.\n",
"\n",
"\n",
"import numpy as np\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.patches as mpatches\n",
"%matplotlib inline "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEXCAYAAACu1P9TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAHHpJREFUeJzt3XmcXGWd7/FPZZlAJsYEZgaDBvFCCIsOizDIIjQgAqMEZIIRGIcEr5gL6Au3GTalEwcUGZhhE4aLGRhFL6g4kHEQBGmILMFhuyJkuQoGEtaYQDbI1veP3yn69Mmp7qpOVyrN83m/XvWqruc8p+qp6lPfc85znnMKJEmSJEmSJEmSJEmSJEmSJKkubcB64PwWt6NRzwLPtLoRBe3EZ3lwi9uhPhjU6gaobm3EF+2eHupsn9XZ3EJic9G5kfNPJj7fkze+KXVrtM3HAz8HXgZWA68CvwW+D/xdP7WnetMAM6TVDVDD6vmi+WVsrs31870W+J/ASuBnxIq/AuwCfBw4CPj3jXyNK4EfAs9t5POoBQx8qXGVVjegxIFE2D8H7AcsKkwfQv90wyzObhqA7NJJQztd/a4TgYeBFcQX94fAtjXm2wq4AHgyq78UeBz4JjC8UHccsfW4EHgzu78B2LGX9pwIzAaW09UV1dt0stc/O2vPcmAZ8ADwqRrvpcwHgcuAJ4jPYhUwD/gnYFShbgcwI/v737L2VW/b5eoNAU4DHgJeJz63R4HTqb2iOIPodlkFPA9cAbyzgfcBsH92/xM2DHuAtcDdhbI2uo5t7AfcRfyPXye6hT5Y8jzt2TwHFcqr3Y1bE3saLwBvEMvO5BptPpn4n71CvPcF2et+skZ9bSS38NNyGjABuJX4cn4ImATsDuxB9PlWvS+rsx3w38B3iA2E8cCZwNXEFxRgHyIsRmTP/RTRjfC3wDHAR7LnKPoycDhwGxFGxZCrNX0U8MuszY8A383adiTwA2A34Gt1fB6fBY4lwvzO7Dn2Br4EHAXsS6xMIEJ+SfZ+/oNY0VS9lt0PBWYCHwXmEP3mbwCHEiG+Lxv2o18GfJ4I6X8lgvmYrO5QYuVZj1ez+53qrJ+3L7Hy/AXRZTMOOI4I9Y8Cv6rzeUYB9xNtvhkYRoT3DGKFkO9OuhA4C/g98H+Iz3BbYlmamM0vJauN+NL8soc622d1fl8ob8/KlxJhmHdjNu34QvkDWfk/lLzOVsSXGWKr9WlgHXBCod4ns+d4mu5bt9X2LCNWNkW9Tb8+m/6VQvkw4PasLfn52rL6Xy/U347yre5Tsvp/XyifnJXXOvhZbfdlhecdBFyXTZuQK98/K5tH9z2KYXR9/sX/ZS3bEiuk9cRK9wRi76qn7qc2uvZSTitMm5BrW9n/rmwLfz2xdZ+vvwuwhtiDyVtMbDBsUdKurXtos5SENjY+8Kf38LzfzpV9MCt7pI52HZDVrbUVeF82/cMl7bmkxjw9Td+a2AqeXWPe3bN5L8qVtVEe+LVUiC3Ouwrlk6kd+IOIEFtIeVfpKGJFdFOu7H9Te9TPwTQW+BDvcz7du5teJ1aCJ5W0qy2rM7fG893DhuHeXlIGXSvoESXPcy/x3vPdgK8CvwP+pOa7Ub+zSyctZd0qz2f3o3NlH8ru76jjOffK7mutiO4hDijuAcwqTHu4l+cum74PXcHVXjJ9aHa/Sy/PXa37OaLff1dgJN1D8d11PEfVTsRnOJ/aK5Y3Cu3aixjxc29J3fuJEG1ER9aOA4gVxh7Z30dkt5OJ0TqrC/MV/y9V9+ae5746Xn8+XV1gec8RK9HRxAgiiD3LzxPdfzdnr/UQXd1jagIDf+Cofvl7OtBenVYrKJaWlK3N7gfnyqrdCwvraFe1X/2FGtOr5cWDoAAv9vLcZdOru/v7ZLcyncCf9vLcEFvbxxJbmj/NXu9NIpzOpKvbqh7Vdo2jduAX21X97F4qqbuWrn75RnQSe1v5Pa7DiQPoHwH+F9HllFf2+tD1+dd7ALls+YLyZeyLxN7LFKIv/6ys3n8Rx25+V+drqgGO0hk4qls+PfVv/ll2X+uLV6/q/O+po261Xe+qMX1MoV5eb+PZy6ZXn+dSYvktuw0GDuvlufcmwv4XxIHozwDnEt1e02ks7PPtuqWXdu1QMk/ZZzeErv/nxvoFcF729yEl07epMV+1Xc3Y6q4e69gje/2/IVa6E4iROnb1NIGBP3DMIXbFdyIOmpbZL7t/YiNf68Hs/gh6H3P+aHZfFiT58kdrTG/UbMr7kBtVHS56GxvuEe1L+cHEddn94JJpTxMryv2of8/5EeLzLRsffyD9+/2sdrWU/T8/XKO8Lbt/rB/bUeYVIuwnEV2AO7Dh4AL1AwN/4HiTGDM/FLi4ZPp7gK8SW8XXb+RrPUqMEtmD8lE6W9O1BXw/cdDvQGIrLW9iVj6X+of29eYVov93b2KrtWwZ3oE4gN2T6pj+4orqL4CrasxTPeHovSXT1hFDL8cAl1O+whhD9z7867P7c+l+DGUL4lyHRhxJDKUsW9mMILqooLwvfhwbjtI5hlipzqd2H39f/QlxbKFoKLEx00lXX7/6kX34A8uXiX7rKXSdKPM6EUDHEP3DF9E/X9C/JQ4CXkgE+b3EVuA4ok94PF3j8E8mug1uIoYEzs2mH5u1rz+u4ZJ3RtaO6cCniZXOS8TQxF2IlcGniIuP1fLrbL7jsvv7ia6FI4m9qUVsuNX7ABFEZxIrvWrf9+XE+/wGMUpoKnA0sbW6kFiJjCOGYZ5D7A1Un+8K4uDlk8RJU2uI/+Vi4vhHvWf1jgf+mRiaOQv4f0Sf+HuAjxH98A8R4+yLfk6MiDoK+L/E3s9xxMlQp9T5+o0Ynmvjo8AfiJXc4cDOdC1DUvL+lDhJ5mGib3U1EU63EmFV5nxiC7SsG2R7oktjRsm0rYBvEQG4Cvgj8QX9BrBloe5OxIk1i7I2Lcwej2uwPfVMh9gaPJ0I6qXECJhniRXPF+je7dVG+bDM0cTW/DPZ+5sP/GP23p6hfEjkEURQL8uecx3dz7SFWFneRYT2m8QolfuIA5NlI39OJ0arvEHXmbYje2hDma2JDYEfEGPe/0j8H14iTlqbyoYbeG10fS4fIj6717JbrTNta/1vehoy/G90/5yGEHuj/0WE/aqsnQ8Ap5a0U5K0kdpo7PwEDXD19uEPIbZO5hNbIc8RoySKzsmmrSS6AMrOktyV2OJYQWwFTmugHZKkJvs+Ec6fJY7on0Ts+uadTQT9acS1Q35GHGDLD/kaTezy30kMm/scMXrgG01su6RybbiFr4Ijib7AnXuoswXR73dermw48SMM+TA/m+jXzJ9+/VVia/8d/dFYSXVrw8BXwc3EtTh6ciix4BSv1Pddup/Ofx9xUClvu2zej29EGyVJvain7/yviL77K4mt+BXE8LExuTo7E0fh5xfmnUP3PYPxWVneAqIraHzdrZYkNayewB9DXCXwL4kz4aYQw7V+mqszmuiLL54Kv4To2hmSq1d22v8Sup94IknqZ/WMd62e+HEMEcwQJ4TcS/QBdvR7qyRJ/a6ewP8jceW6Jbmy+4kDubsRgb+EOBBboftWfvVyqNWr5S2h/Mp7owvPz+677975xBMbe0kYSUrOE8RlUTZQT5fO0zXq5cN9DnFBqeLvl+5M12nk1XrF65SPJbp9uvXtP/HEE3R2diZ5O//881vehoHcPm9p/+8HQhubeaP8/CeoEeRF/wl8gO6X5T2IOLW9+rueDxDXEsn/+PBw4noi+RE+txOnpueHZU6i60QtSVKT1BP41xJj52cSQydPBL5HXHfjgazOG8Q1V84hTrw6DPhRNu2K3HNdQ1xb5JaszqnEtTkupfyXciRJ/aSePvxlxDj7y4lfl18N/AfxizV53yJWIGcTewO/Jq5+90quzlIi6K8kViBLiLBv7+sbeDtqa2trdRN6tLm3T80zEP73A6GNrVLvpVdboTPrj5Ik1alSqUCNbPeiZZKUCANfkhJh4EtSIgx8SUqEgS9JiTDwJSkRBr4kJcLAl6REGPiSlAgDX5ISYeBLUiIMfElKhIEvSYkw8CUpEQa+JCXCwJekRBj4kpQIA1+SEmHgS1IiDHxJSoSBL0mJMPAlvS0MGjSIKVOmtLoZmzUDPzGzZ89m4sSJvOtd72LYsGFst912TJ06lRdeeKHVTVPi+mPZrFQqTWzhwDek1Q3QpjNjxgxOPfVUttxySyZMmMDYsWOZN28e1113HTNnzuShhx5i7NixrW6mEuSyqU71n7lz53YOHTq0c9y4cZ2LFi3qNu3uu+/uHDx4cOcnPvGJFrVOKeuvZbNSqXROmTKlWc0cMIDOWqFql04irr76atauXctll13GmDFjuk079NBDOfroo5k5cyYrVqxoUQuVqv5cNiPvVItdOol48MEHAejo6GD27NkbTH/55ZdZt24dc+fOZcGCBTz++OPdpu+5554cc8wxm6StSku9y+a8efPYc889aW9vZ/r06aXPdcMNN3DDDTdsUL5+/fr+bfQAZeAnYvHixQBcfPHFNetUKhWWL1/Orbfe2u1LU6lUOPnkkw18NUUjyybAIYccwqBB3TsnOjs7mTZtGnvssQfHHnts8xo7wG3Oh7Q73T3rP3vvvTePPfYYr732GiNGjGh1c6S39NeyOWjQICZPnsyMGTP6sXUDTzZSqTTb7cNPxH777UdnZyf33Xdfq5sideOyuekY+Ik444wzGDp0KF/84heZP3/+BtNXr17NrFmzWtAypc5lc9OxDz8R48ePZ8aMGZxyyinstttuHHnkkYwbN441a9awYMECZs2axTbbbMNTTz3V6qYqMS6bm459+Il58sknueSSS7jnnnt48cUXGTFiBNtuuy0HHHAAkyZNoq2trdVNVKI2dtm0Dz/01Idv4EvS24gHbSVJBr4kpcLAl6REGPiSlAgDX5ISYeBLUiIMfElKhIEvSYkw8CUpEfUE/mRgfcnt1FydZ0umLyp5rl2Bu4EVwEJgWp1tkCRtpEYunnYIsCr3+Jnc353AjcAVubLVhflHA3cBTwITgB2BS4jA/1oD7ZAk9UEjgf9rYGUP018AHu5h+lRgGHAcsJzY0h8JtAPfBpY10BZJUoMa6U7p7UJrvU0/CriDCPuqm4AtgYMbaIckqQ8aCfzfAWuAOXTvv6/6DPAmsBT4EbBdYfr4bN68BcRew/gG2iFJ6oN6unQWAecR3TWDgROAa4DhwL9kdW4FHgSeJw7Mng/MAj4AvJ7VGU2sDIqWZNMkSU1UT+Dfmd2q7gC2AM6lK/DPzE2/H3gAeJwY4XN5XxvX3t7+1t9tbW3+OIckFXR0dNDR0VFX3b7+AMrxRP/7+4A/1KjzJHGgd0r2+CXgSuAbhXrLiT2CSwrl/gCKJDWoGT+A0pckngPsUigbS3QNFfv2JUn9rK+BPxF4ldpb9+8nDsQ+kiu7HTgCGJErm0QctL23j+2QJNWpni6dHxMHZH9L9PlPAk4CPg9cBXwMOBG4jei22YU4yLsK2IOuYZijgKeIrp6LgB2Ibpx/Br5e8rp26UhSg3rq0qnnoO1c4LNE90uFCP5PE2fWQgyt3IY4y3YUsJjYmj+H7mPulwKHEf34M4nROZcSJ15JkpqsrwdtNwW38CWpQc04aCtJGmAMfElKhIEvSYkw8CUpEQa+JCXCwJekRBj4kpQIA1+SEmHgS1IiDHxJSoSBL0mJMPAlKREGviQlwsCXpEQY+JKUCANfkhJh4EtSIgx8SUqEgS9JiTDwJQ1II0eNpFKpNHwbOWpkq5veMv6IuaQBqVKpQHsfZmyHt3O2+CPmkiQDX5JSYeBLUiIMfElKhIEvSYkw8CUpEQa+JCXCwJekRBj4kpQIA1+SEmHgS1IiDHxJSoSBL0mJMPAlKREGviQlwsCXpEQY+JKUCANfkhJh4EtSIgx8SUqEgS9Jiagn8CcD60tupxbqnQM8B6wE7gV2L3muXYG7gRXAQmBanW2QJG2kIQ3UPQRYlXv8TO7vs4HzgK8Ac4AvA3cB7wdeyuqMzsqeBCYAOwKXEIH/tT60XZLUgEYC/9fE1nvRFsBZwIXAd7Kyh4BngTPoCvOpwDDgOGA5saU/EmgHvg0sa6jlkqSGNNKdUqlRvj/wDuDmXNlKYCZwVK7sKOAOIuyrbgK2BA5uoB3ahEaO3IpKpdLwbeTIrVrddEkFjQT+74A1RJdNvv9+Z2AdML9Qf042rWp8Vpa3gFg5jG+gHdqEli1bAnQ2fIv5JG1O6unSWUT0zz8MDAZOAK4BhgP/QvTNLye+6XlLsjpDgLVZvaUlz78kmyZJaqJ6Av/O7FZ1B9Fvfy5wWTMaJUnqf40ctM37CfBJ4L3EFvoIoo8/v5U/muiuWZs9XgK8s+S5RmfTNtDe3v7W321tbbS1tfWxuZL09tTR0UFHR0dddWsdiO3NROIg7fuAHYjhluPp3o//XeAvgX2yx/cSY+9PzNUZC/wBOBr4WeE1Ojs7i71E2tQqleJ6vO458f+nZqpUKjHGr1HtvK2XzfjOlmd7X096mgi8SoT1A8DrxBZ/1XAixG/Pld0OHEHsDVRNoutELUlSE9XTpfNj4EHgt1n9SUS4fz6b/gbwLWK8/RJgLvClbNoVuee5BvgCcAtwEbFncD5wKd2HakqSmqCewJ8LfJbofqkQwf9p4MZcnW8RewtnA1sTJ2kdDrySq7MUOAy4khijv4QI+/aNeQMD0fTpF3HttTc0PN+QIRVuueV77LXXXk1olaS3u3oC/9zs1psLs1tPniZCP2mPPPIbFi48mej1qt+IEWfw3HPPGfiS+qSvo3S00d5NXEuufoMGvaM5TZGUBK9UKUmJMPAlKREGviQlwsCXpEQY+JKUCANfkhJh4EtSIgx8SUqEgS9JiTDwJSkRBr4kJcLAl6REGPiSlAgDX5ISYeBLUiIMfElKhIEvSYkw8CUpEQa+JCXCwJekRBj4kpQIA1+SEjGk1Q2QtPlYv3498+bNY926dQ3PO2bMGLbaaqsmtEr9xcCX9JbZs2dz8CEHs+Wfb9nQfGtWrWH/ffbnrtvvalLL1B8MfElvWbNmDcPfO5zXTnytsRnnwcoXVjanUeo39uFLUiIMfElKhIEvSYkw8CUpEQa+JCXCwJekRBj4kpQIA1+SEmHgS1IiDHxJSoSBL0mJMPAlKREGviQlwsCXpEQY+JKUCANfkhJh4EtSIhoN/HcDy4H1wPBc+bNZWf62qGT+XYG7gRXAQmBaH9ogSeqDRn/i8GJgGVD8wctO4EbgilzZ6kKd0cBdwJPABGBH4BIi8L/WYDskSQ1qJPAPAo4ALiSCv+gF4OEe5p8KDAOOI/YS7gZGAu3At4kViSSpSertThlMbL1PAxbXqFPp5TmOAu4gwr7qJmJv4eA62yFJ6qN6A38qMBS4qoc6nwHeBJYCPwK2K0wfD8wplC0AVmbTJElNVE+XztbAdOAkYF2NOrcCDwLPEwdmzwdmAR8AXs/qjCZWBkVLsmmSpCaqJ/AvIML85z3UOTP39/3AA8DjwGTg8r42TpLUf3oL/N2AKcQB21FZWXU45ihidM6qkvl+C8wF9syVLQHeWVJ3dDZtA+3t7W/93dbWRltbWy/NlaS0dHR00NHRUVfd3gJ/HNF3/2DJtOeB64BT62zXHGCXQtlYYgVS7NsHuge+JGlDxY3hadOm1azbW+DPAtoKZUcB/5Dd/77GfO8nDsRekyu7HfgqMIKukTqTiIO29/bSDknSRuot8BcD9xXK/kd2P4sI648BJwK3AS8RW/HnAX8Ars/Ndw3wBeAW4CJgB+Lg7qV0H6opSWqCRs+0rerM/b0A2IYYpz+KWEncDpxD9yBfChwGXAnMJPrtLyVOvJIkNVlfAv96um+5/wb4SJ3zPk2EviRpE/PCZZKUCANfkhJh4EtSIgx8SUqEgS9JiTDwJSkRBr4kJcLAl6REGPiSlAgDX5ISYeBLUiIMfElKhIEvSYkw8CUpEQa+JCXCwJekRBj4kpQIA1+SEmHgS1IiDHxJSoSBL0mJMPAlKREGviQlwsCXpEQY+JKUCANfkhJh4EtSIgx8SUqEgS9JiTDwJSkRBr4kJcLAl6REGPiSlAgDX5ISYeBLUiIMfElKhIEvSYkw8CUpEQa+JCXCwJekRBj4kpQIA1+SEmHgS1IiGg38dwPLgfXA8MK0c4DngJXAvcDuJfPvCtwNrAAWAtP60AZJUh80GrYXA8uAzkL52cB5wDeBjxMrhbuAbXJ1Rmdl64AJwHTgy0ToS5KarJHAPwg4AvgnoJIr3wI4C7gQ+A7wS+B4YqVwRq7eVGAYcByxlf+vRNh/CXhH35ovSapXvYE/GLiCCOjFhWn7E4F9c65sJTATOCpXdhRwB7H1X3UTsCVwcP1NTkFHqxvQi45WN0Ct8kyrG1CHgdDGFqk38KcCQ4GrSqbtTHTTzC+Uz8mmVY3PyvIWECuH8XW2IxEdrW5ALzpa3QC1yrOtbkAdnm11AzZfQ+qoszXR334SEexFo4mt9mK//hLiwO4QYG1Wb2nJ/EuyaZKkJqpnC/8C4EHg501uiySphXYD3gT2BUZlt9OIYZnbEv3vpwFr6H4gF+CrdO+vfwn4WslrLCdG6xQ9Tuw1ePPmzZu3+m+PU0NvXTrjiL77B0umPQ9cB/yQOKi7I9378XcGns49ngPsUniOsUS3T7FvH2CPXtomSepHWxPDMfO3bxJb+EcQK4RhRN/8ubn5hgMvE33/VWcRI3xG5Mq+Qmzh58skSZuJyWx4pu1ZxNmzpwGHAT8jAv/Pc3VGAYuAO7M6pxInceVXCpKkzchkYrROXy6tsAtx0tVKui6tUOz7f7t5P7GCPKjVDZEKXDalfuaXSpsrl83EeOEySUqEgd//TiO6tpYDtwFjCtOHA5cDLwKrgIeBw3PTp2TzDs6VLQJezT0eRBwo/0z2uB14hRjZ9BBxPOVR4MA+vocO4EeFsjZia3BXYPvs7xOA7wGvE8Nuv97H19Om4bIp9aNjiIXtKuKLcgHxBcvvNt9ILISnEyOdfgKsBg7Ipu+Y1f+r7PE44jyHN4gFGmDPrM5O2eN24ov0BHAycCQxlPZl4lyJRt1D92sjQfmX6nng6uy9/iNxbOe0Pryems9l02VT/exhYoRS3rV0fal2IRa8T+emV4Df0P1M5oV0nYx2CvDfwAPA57KyLxBbYVXt2Wu05cp2z8o+2of30UF9X6ri2dfXEl80bX5cNl027dLpR0OIrZtbC+U/zf29D/Elyu+SdgI/pvsu7izgw9nfBwH3Zbd82a8Kr7Oa7lc1q5709p5630Af/LTk8bZNfk01zmXTZRMw8PvTnxF9my8XyvOPxxB9oG8U6rxE9J8OzR7/iq4v2YeJL1T+i3Zg9jhvWeHx6ux+i/qa3ye13muxb1it5bLpsgnUd7VM1edVYpf4Lwrl+ccvEGcVb0H3L9Y2xLkJa7LHs4CtiF3e7bPH64mfmDw8e87il6o/rSLOoM4ru6Jprff6Qr+3SBvDZdNlE3ALvz+tBR4Dji2UH5f7+2FiN/n4XFkFmEj3L8lviJEO5xC7v4uJy0g/SfyU5LLstZrlebr/lgGU97ceV/J4EfaVbm5cNl021QTHEls73yEWwguIH3nJj4T4PvAaMWLgSGIkxJvEL4flzcw9V9UVlB+QaieGvhWtp28jE/46m/dS4CPZ+/g9Gx4Yew64hniv1ZEQp/fh9dR8Lpsum2qC04mFbQXwn8Ru7jq6vlRb0jXW+Q02HOtc9ffZfJ/KlX0yKzuvUPd8NuyzhL5/qSCuj7SAGKb378DR2WsXxzr/gK6xzuf38bW0abhsSmrY9sSX6q9b3A6paHtcNmuyD1+SEmHgq686W90AqQaXTUmSJEmSJEmSJEmSJEmSJDXT/wfOeFvlQA6EogAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7490162da0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# If information about the measurement of the wave function propagated\n",
"# at a finite speed, the particles could conceivably be measured such\n",
"# that both are equally likely to hold either spin up or spin down.\n",
"\n",
"# What would happen if the measurements were uncorrelated?\n",
"\n",
"plt.hist(np.random.randint(0,2,1000),bins=4)\n",
"plt.hist(np.random.randint(3,5,1000),bins=4)\n",
"elepatch = mpatches.Patch(color='blue', label='e-')\n",
"pospatch = mpatches.Patch(color='orange', label='e+')\n",
"#plt.legend(handles=[elepatch,pospatch])\n",
"plt.text(0.5,565,\"e-\",size=20)\n",
"plt.text(3.5,565,\"e+\",size=20)\n",
"\n",
"plt.suptitle(\"Uncorrelated Spins\",fontsize=20)\n",
"plt.ylim([400,600])\n",
"plt.xlim([-1,5])\n",
"plt.xticks([0.125,0.85,3.125,3.85],[\"down\",\"up\",\"down\",\"up\"])\n",
"plt.tick_params(axis='both',labelsize=15)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7490130940>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEXCAYAAACu1P9TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAHv9JREFUeJzt3XmYHVWZ+PFvk7DFkIWgyGoElEBQcGQcYX5CIyIybA4KQXBpcFgGR+Wn4gCyNCrKIoiKDuACbjNs4gLIImgDCgii7AQZoNmCrEkgC4SEnj/ec+261XW7773pzna+n+fpp/ueOlV1bvXtt06951Q1SJIkSZIkSZIkSZIkSZIkSVLTeoGHl3YjhkEvi/8+JgOvAucubmOG0JX287ER3o+atNLSbsAKbArwLeBuYDbwMvAEcBlwILDK0mvaCqmHCC6N9KWvZcGJRFtPbqLuOanup9Pr4Xwfi7udTqJtxw+y/WXpuEsj4jhgEfHH8HvgDOBLwHeB+1P5rUutdSumHuKYN/LG9LUsmEy0dQYwepB6rwFeAOYBE1LZcLyPycRn8AeLuZ3OtJ3jGiwfB7w5fZdWSEcTfwS9wD82qLMzcM2SalAmehg84C9rriI+J/86SJ2Ppzo/HuZ9T2Z4A36jHr60QpsMLABeAjYfom5VSmcf4HoiBTQPuBM4skHdXiKXOwY4FXg07fcB4PMN9rkHcC3wZKr7BBEo/72i7prAV4H7UltmESepnSrqdtGfq31f2ubsVLYuEYj/3KBNAFekusVj1gX8DHgo7X82cbW0f2ndyWndqq/fFer1Up37XpU4xncBc9N+rgf2rqhb29e56efzgWeB+cQV266DvMeyD6Rt/XqQOjenOu8qlPUyfO+jHPDfDJwE/Al4hviM9AJnA+uV6p5H4+O+XarTReMc/tuJ3+/Thf18G3h9Rd3avt4AHJLe43zgb6ltVVcQbwX+J233pbSf24CvM/hVldS0E4gP5k/bWPcrad2niA/+ycQHuxa4Vi7Vfxh4nAiCDwL/RYwZPE71ZfbBqfwJ4Czgy0R++I/pq+gNafuvEsH7NOIP6wkieP9bqX5Xqnsp8ArwS+Jk8d9p+ZVp+RYV73sdYCFwS6l8Xir7AZHzPht4LG3ni4V644keZq29xxW+Plqo10ucPIpWoT/3fw9xzM8kAsmrab9Fk1P5b4nf043EsTmPCEALiV5vM0anbSwENqhYvkXa132l8uF8H+WAfyQwkwjEZwCnECekWvpp3ULdPYkTX+14FI/7hqlOV1pe/D0A7EaMab0E/CS1r3bF83hqX9F5admFRMfjR0Qn57ZUfm2p/luJ38cc4jN4IvG3cWXa5xikYXAt8QE8sMX1tqE/DfS6Qvko4Fdp2VGldXpT+WVE767mtcQf7UzqezK3EX8Ea1Xsf83S6x4iEO1TKh8P/IUIxsV2dqW2LATeW7H9fdPyUyuWHZGWfaJUXpWnXpm4ylhAffCptXmwlE4vAwPlUfQfw+IEhtfSfwLZplA+mf5e7LGlbb03lV8+SBvKTqJxSuQbadlnSuW9DN/7KAf8dRnYsYC4qlsIfKdU3sngOfwuBgb8scBzRMfgn0v1P5/qX1UqP4/+v4/1C+WjgOvSsmL69LRUtntFm8YDHQ3aK7XkXuKDVhX0BvPdtF655wzwJuKP7cFSeS8R4DaqWOeHDEyR3Eb0eCZU1C/aMq17QYPle6blxTRQVyr7WYN1ViNOQDMYODPsbqLXVT7pNLJX2tdHSuU9tB7wHyCO7Zsr6h+Y9vP9QtnkVPYQ1UHjESJ10KyNiTb3lra3KhEU5zPwuPQyfO+jlRz+nQz8DHbSesDfP5X9pKL+KPpPUMWrnvNo3JGq7eOwQlkt4FelH7PmtMxlwz8QU9d+W7HsASKVMhlYo7RsNgP/+CFSHwATC2U/IS5l7wVOB95P9ADLaj3BCUB3xVftZLZZxbrltEzNS8Tl+OuJAeuatxMnpcuA50vrbEiktqYTOelaz/ritLzcw2/VGkTAnQH8tWJ57XexVcWy26meavgY9cd8KA8S6boNqT8uH0jb+QUDj0vZ4ryPKh8mrqKeIXrhteO+BYt/zCE+68V2FS0ixh0A3lax/E8VZY+n78Xjfn7a1i+Izs9HiWOUPQcvhteTxPz79YeqWDK+sH6j7a5PBOEXC+WzGtRfmL6PKpR9nRhgPAz4FHA4EbSuI9Iqt6V6k9L3nWjcQ+ojpgyW/a1BfYhe2kHEAN4Vqaw2mPfDUt2NiJPHBCIAXEmc3BYRqZ6PUZ/GasdQx7z2XqquiAY77q12or4LvJu4ursyldWu9M5pYv3FeR9lXyfm+88gfkdPEFcZAAfQn5tfHM181ov1iqqOe9Vn/VZioPsLwAfpvxq8nxhnO7/Zxq5oDPjD6wZgB2BHWrtcnp2+r0N1j32dUr12/Th9jQe2JaYEHkjkTKcQJ4TaPj5FDPy1YrAbbG4irlb2IGZVzAc+RPQkyzNVPkOkMrqIAbqiDzE8d27W3mfVrBAYvmM+lEuI9M3uxLjIOCJV8gD1s4waGa738Trid34X8dmYW1penh3VriV13G8mjunKwNbE7LFPEoO4zzBwoDcLpnSG17nEZfAHqE55FBWnWv6ZyOF2VtTbhOjdP0zchDMcZhM9uIOJnvea9E/9uyl9327gaovth0Q+f19iCuMk4g+wnHvfhDh5VI0JbN9g27VtNDsg9yKRUlk/7a9sh/R9sOmkw+EV4newMnEi+3gq/16T6w/X+9iIOHZXMzDYr0/1WFHtmI+qWNZIrR07VCwbTXwO+xi+4/4K8Zk+njihQXQ6smTAH16PEHnuVYjZGm9vUG8X+i/fof9q4BjqZ9GMAr5G/CEWB93aUfUHBrB2+j4vfb+NuFLZi7iMr/IWqvP/Q/kR/YN4tYG88yrqPUy853Kbd6Z6YBuil9xBTClt1g/SOqdS/7ewFjELp4/FvzmpGd9N32sprwVUH5dGhuN91Ob2v6u0jbGpfVVB/bn0vZVjXhuX+BDwT6VlhxNjVdfQn5tvx7ZEx6KsdlUxr2JZFkzpDL+vEsf1eCKXeCP9M2TWJnrOm1D/aIWbiDnPnydmrVxMfCh3AaYSAbhqSmMrfk70Bm8mTkwdxB/31sRgWPHO3/2IQbXvE72iW4j86frEHOepwDuJS+NWPE6kKXYkcq93AndU1PsOcbK5iDgWTxKDhjsTg7/TKta5hsjXXkJcvcwnZrRUzQap+RpxjPdM7biCGNjemwiWpxC/v1a0M+Xvr8RYRe2q6mJaO7bD8T6eInLb+xKD0r8hUn87EZ/F2xk48DudyPPvS/SkHyVOLj9KP1eZS6QRLyLGjy4iBrvfnvb1JHFz1eL4PNFZuIH4DMwhPrPvI042zYyNSC2ZAnyTyIkWH552ORHMquY7TyM+pC8QAesuYo511Z22D1Od74c42SyiPi1zCBEMHyT+6J4jTkSfo3oAdmza95+IE8W8tO6lRC+7ePPKx9L+yjfYVKlNy1sE/P9B6m1D5FmfJ47H9cSl+PZUTwVcibjB5kGih1y7Iaim0fFalXifd9F/R+/1VJ9UJjP4dMbf0f7jHfaj/7i8Z5B6I/k+ViduyHuA+Pw9QtywtCaN39vWxMl2Vlpe/Nx10fhzsTXxeXya+NvopfGdtuem7VQNGncy8POwU3pv96R2zSFuYDuD6pvcJEnK02jitusHiDnVjxFzucuOTsvmEZdrW1bU2Zzouc0lerwn4FiCJC0zfkIE54OIvO/+xKVf0VFEoD+MmFd8OZGHXLtQZyIxx/dqIo97CHG59aURbLskqUnvI3KiUwapsxqRMzymUDaGyM8Vg/lRRO54bKHsCKK3X76LVJK0hF1I/52RjbybGDgpP8vj+9TfDn09/U9QrNkwrbvbYrRRkjSEZnLn7yBy92cSvfi5xA0x6xTqTCFG0R8orTud+iuDTVNZ0aNEKmjTplstSWpZMwF/HWJ61VuJKV4HEHNmf16oM5HIxZdvrZ9JpHZGF+pVPQ9jJq09dEqS1KJmbryq3UiyJxGYIW6OuI6YA9sz7K2SJA27ZgL+88TNLDMLZX8gBnKnEgF/JjEQ20F9L38ika6pPdFuJtVPwZtY2j5bbrll3x13VN2EKUkaxB00eBx2MwH/PqqfS1EM7tOJZ21sQn0efwr1/6JtOgMfKrYBkfapy+3fcccd9PUN9vBFrYi6u7vp7u5e2s1YrnkM89bR0VF1/xPQXA7/MuJhWZMKZdsRjwa4Pb2+kbj9vfgv8cYQjyctzvC5gngeSnFa5jT6b9SSJI2QZgL+OcTc+UuJqZP7Ec9U/w39D2R6ifj/nEcTN17tSDwUCeJZHDVnEc/NuCTVOZh47svpxKCvJGmENJPSeZGYZ/9N4ml6C4hHnJYffHUScQI5irgauJV4iFHxqX+ziEB/JnECmUkE++5234BWLJ2dnUu7Ccs9j6EaWZb/e3ufOXxJak1HRwc0iO0+tEySMmHAl6RMGPAlKRMGfEnKhAFfkjJhwJekTBjwJSkTBnxJyoQBX5IyYcCXpEwY8CUpEwZ8ScqEAV+SMmHAl6RMGPAlKRMGfEnKhAFfkjJhwJekTBjwJSkTBnxJyoQBX5IyYcCXpEwY8CUpEwZ8ScqEAV+SMmHAl6RMGPAlKRMGfEnKhAFfkjJhwJekTBjwJSkTBnxJyoQBX5IyYcCXpEwY8CUpEwZ8ScqEAV+SMmHAl6RMGPAlKRMGfEnKhAFfkjJhwJekTBjwJSkTzQT8LuDViq+DC3V6K5bPqNjW5sC1wFzgCeCEJtsgSVpMo1uouwMwv/D64cLPfcBPgW8VyhaU1p8IXAPcDewBbAKcRgT8Y1tohySpDa0E/FuBeYMsfxK4ZZDlhwKrAnsBc4ie/jigGzgFeLGFtkiSWtRKOqVjMZfvAlxFBPuaC4DVge1baIckqQ2tBPwHgVeA6dTn72s+DrwMzAIuAjYsLd80rVv0KHHVsGkL7ZAktaGZlM4M4BgiXTMK+BBwFjAGOCPV+SVwE/A4MTB7PHAD8BbghVRnInEyKJuZlkmSRlAzAf/q9FVzFbAa8AX6A/7hheV/AG4Ebidm+Hyz3cZ1d3f//efOzk46Ozvb3ZQkrZB6enro6elpqu5QefdG9iby728EHmlQ525ioPeA9Pop4EzgS6V6c4grgtNK5X19fX1tNk+S8tTR0QENYnu7c+DbicTTgc1KZRsQqaFybl+SNMzaDfgfBJ6lce9+C2Ig9rZC2RXAzsDYQtk0YtD2ujbbIUlqUjMpnYuJAdl7iJz/NGB/4JPAt4Fdgf2AXxFpm82IQd75wFb0T8OcANxLpHpOBjYm0jhfB46r2K8pHUlq0WApnWYGbe8HDiLSLx1E4P8IcWctxNTKtYm7bCcAzxG9+aOpn3M/C9iRyONfSszOOZ248UqSNMLaHbRdEuzhS1KLRmLQVpK0nDHgS1ImDPiSlAkDviRlwoAvSZkw4EtSJgz4kpQJA74kZcKAL0mZMOBLUiYM+JKUCQO+JGXCgC9JmTDgS1ImDPiSlAkDviRlwoAvSZkw4EtSJgz4kpQJA74kZcKAL0mZMOBLUiYM+JKUCQO+JGXCgC9JmTDgS1ImDPiSlAkDviRlwoAvSZkw4EvLuHHj1qSjo2OJfY0bt+bSfssaIR1LuwGD6Ovr61vabZCWuo6ODmBJ/i104N/e8is+L9Wx3R6+JGXCgC9JmTDgS1ImDPiSlAkDviRlwoAvSZkw4EtSJgz4kpQJA74kZcKAL0mZMOBLUiaaCfhdwKsVXweX6h0NPAbMA64DtqzY1ubAtcBc4AnghCbbIElaTKNbqLsDML/w+uHCz0cBxwCfA6YDnwWuAbYAnkp1Jqayu4E9gE2A04iAf2wbbZcktaCVgH8r0XsvWw04EvgK8J1UdjPQC/wH/cH8UGBVYC9gDtHTHwd0A6cAL7bUcklSS1pJpzR6lPK2wBrAhYWyecClwC6Fsl2Aq4hgX3MBsDqwfQvtkCS1oZWA/yDwCpGyKebvpwCLgAdK9aenZTWbprKiR4mTw6YttEOS1IZmUjoziPz8LcAo4EPAWcAY4AwiNz+Hgf+hYWaqMxpYmOrNqtj+zLRMkjSCmgn4V6evmquIvP0XgG+MRKMkScOvlUHbop8B+wBvIHroY4kcf7GXP5FI1yxMr2cC4yu2NTEtG6C7u/vvP3d2dtLZ2dlmcyVpxdTT00NPT09Tddv9n7YfJAZp3whsTEy33JT6PP73gbcC/5heX0fMvd+vUGcD4BFgd+Dy0j78n7YS/k9btWYk/qftB4FniWB9I/AC0eOvGUME8SsKZVcAOxNXAzXT6L9RS5I0gppJ6VwM3ATck+pPI4L7J9Pyl4CTiPn2M4H7gc+kZd8qbOcs4FPAJcDJxJXB8cDp1E/VlCSNgGYC/v3AQUT6pYMI/B8BflqocxJxtXAUMIm4SWsn4JlCnVnAjsCZxBz9mUSw716cNyBJak67OfwlwRy+hDl8tWYkcviSpOWMAV+SMmHAl6RMGPAlKRMGfEnKhAFfkjJhwJekTBjwJSkTBnxJyoQBX5IyYcCXpEwY8CUpEwZ8ScpEu//iUGqot7eXp59+eont7zWveQ1Tp05dYvuTllc+HlnDbqON3sIzz8CoUasvkf29+OKfmT17FmPHjh268nLIxyOrFYM9Htkevobdyy8vZM6cS4DNlsj+VlllPIsWLVoi+5KWZ+bwJSkTBnxJyoQBX5IyYcCXpEwY8CUpEwZ8ScqEAV+SMmHAl6RMGPAlKRMGfEnKhAFfkjJhwJekTBjwJSkTBnxJyoQBX5IyYcCXpEwY8CUpEwZ8ScqEAV+SMmHAl6RMGPAlKRMGfEnKhAFfkjJhwJekTBjwJSkTBnxJyoQBX5Iy0WrAXw+YA7wKjCmU96ay4teMivU3B64F5gJPACe00QZJUhtGt1j/VOBFYPVSeR/wU+BbhbIFpToTgWuAu4E9gE2A04iAf2yL7ZAktaiVgL8dsDPwFSLwlz0J3DLI+ocCqwJ7EVcJ1wLjgG7gFOJEIkkaIc2mU0YRvfcTgOca1OkYYhu7AFcRwb7mAuJqYfsm2yFJalOzAf9QYGXg24PU+TjwMjALuAjYsLR8U2B6qexRYF5aJkkaQc2kdCYBXwT2BxY1qPNL4CbgcWJg9njgBuAtwAupzkTiZFA2My2TJI2gZgL+iUQwv3KQOocXfv4DcCNwO9AFfLPdxkmShs9QAX8qcAAxYDshldWmY04gZufMr1jvHuB+4G2FspnA+Iq6E9OyAbq7u//+c2dnJ52dnUM0V5Ly0tPTQ09PT1N1hxpofT9wySDLvwcc3GDZ3cCtxAkD4Dpi7v1+hTobAI8AuwOXl9bv6+vrG6J5Whatt95mzJhxCbDZEtnfKquM5+mnH2X8+Kr+xPKvo6OD6FstsT3i397yKz4v1bF9qB7+DUBnqWwX4D/T94carLcFMRB7VqHsCuAIYCz9M3WmEYO21w3RDknSYhoq4D8HXF8q2yh9v4EI1rsSvfZfAU8R3bpjiJ77eYX1zgI+RVwxnAxsTAzunk79VE1J0gho9U7bmuL13qPA2sQ8/QnESeIK4GjqA/ksYEfgTOBSIm9/OnHjlSRphLUT8M+jvud+F/CeJte9jwj6kqQlzAeXSVImDPiSlAkDviRlwoAvSZkw4EtSJgz4kpQJA74kZcKAL0mZMOBLUiYM+JKUCQO+JGXCgC9JmTDgS1ImDPiSlAkDviRlwoAvSZkw4EtSJgz4kpQJA74kZcKAL0mZMOBLUiYM+JKUCQO+JGXCgC9JmTDgS1ImDPiSlAkDviRlwoAvSZkw4EtSJgz4kpQJA74kZcKAL0mZMOBLUiYM+JKUCQO+JGXCgC9JmTDgS1ImDPiSlAkDviRlwoAvSZkw4EtSJgz4kpQJA74kZaLVgL8eMAd4FRhTWnY08BgwD7gO2LJi/c2Ba4G5wBPACW20QZLUhlaD7anAi0Bfqfwo4Bjgq8BuxEnhGmDtQp2JqWwRsAfwReCzRNCXJI2wVgL+dsDOwNeAjkL5asCRwFeA7wC/BfYmTgr/Uah3KLAqsBfRyz+bCPafAdZor/mSpGY1G/BHAd8iAvRzpWXbEgH7wkLZPOBSYJdC2S7AVUTvv+YCYHVg++abrBVbz9JuwAqgZ2k3QMuoZgP+ocDKwLcrlk0h0jQPlMqnp2U1m6ayokeJk8OmTbZDK7yepd2AFUDP0m6AllGjm6gzici3708E9rKJRK+9nNefSQzsjgYWpnqzKtafmZZJkkZQMz38E4GbgCtHuC2SpBE0VA9/KnAAMWA7IZXVpmNOIHr1M4GxxEBusZc/kUjXLEyvZwLjK/YxMS0ru6Ojo6NqaqeWC5svxrqtTdxasAAmTJgwdMXlWsfQVeos3uS3jo5W96dlyB2NFgwV8N9E5O5vqlj2OPA94H+IQd1NqM/jTwHuK7yeDmxW2sYGxAmknNsH2GqItkmShtEkondf/PoqcePVzsQJYVUiN/+FwnpjgKeJ3H/NkcQMn7GFss8R+f9imSRpGdHFwDttjyTunj0M2BG4nAj4ry3UmQDMAK5OdQ4mbuIqnhQkScuQLmK2TjuPVtiMuOlqHv2PVjBZuPzpAS5qcZ1OoqPQanL/YGDPivJe4JQWt7UseBY4vvC6h9aPpSQtMVOAjVtcp5P2Av6fgB9UlG8JrN/itpYFzwDHFV7/jvqbFqUR08w8fKmsapB9JFVdBTacibCcGckr3NWB+SO4fS1nfFKlyrqAlxk4hXYq0UPfkeo0xLuBPxIB5m/EXdmvGWJfnwVuJQb9/wb8ivorhx7gH4CPpX2/Cnw0LeslHuZXtA9wF/AScRf3l4kZZMX39iqwBfAbYsLAfcC/DtHOKtuk9s5I2/kLsF+pznbEiWk+caWybcV2+oigvx/wv8Bs4NfEk2mLViNSWI8R7+926h9dAnFMvgYcS8yim53KVyLG2f43rXs//cexpof4nQ7VjtVTOx5J23qIeI5W0b8B96TlvcARFe9b0jJgPPGH2lUq/yIR3FYigkMxDTEVWED/85MOIe6tuKJQp5OBKZ2vp/10Ek9ZvRx4ChiXlm8G3Ju2+470NSkte5j6HP570/bPTT8fkd7HfxXqdKU6dwKfAN5DBO2XGRjYhrIvEUT/JbX/mLSdfdPydYmJDNemOgcRwXEu9SmdHuLk9Htgd2AacfK7vLS/y4hjc0hq93eBV6gfK3uY/okRuwHvT+XfJiZIfI44MZ9E3B+za2Hd3zXRjo607RfStnYAPkI8CLHmCOKz8CWic/CfxO/hE0haJv2C+mAN0Sv8Zvq5h/qAf35aXkxP7E0E13em150MnsNfieg9vkAEkZpbqc7hlwP+zURwLTqCCGzrptddqQ1dhTprEoHzkAbtakYHkR49u9CGU4h8/WqFevul/ZcDfvmmxE+nequm1zum1/+vtN/rqP899BKTIVYplG1CTLL4cGndHwK3tNiOndPr3ag2jrjaObZUfgLwJE7QWOpM6ajKBUSQWTO93oq45+KCBvXfAfyc+jutLyGC7T8Psp93EqmVZ1PducQ9GW9qsb2jgLcxMM10IfEZ36ZUfnXh5+eJKcSt9vAnEifAR4ge7QKiF19r+zuI9/ZSYZ1fNNjWrfSnX6D/hsVam95D9LZvIk4sta/fAlsX1usjTjgLCmW1k8UvK9bdivogPFQ73k3cS3NZg/exDTF77+LSvn5H/G+M5XGQfYXioK2qXEr0ej9ApA6mEbnjPzSo/3oi3VC0iAgOaw6sDsCGROC9mZh6OSPt83Lqe8XNWIu4I7zchtrrchvKD/Fb0MY+zwP+iUh13UtcmRxG/HMfiGNye2mdedQ/Hnyw9lBo01ppe69UrLuw9Lp8DNYiToizGagPWIc49s20YxJx4mlkrfT9ngb72oD4HGkpMeCryhwi8E4jAv4+DD5X/Enq/7sZRJCZRPSgq7yPSOHsSf9MktE0PkEM5lkiGL6uVF5rU6M2tGs1Iv99GHBOobw4QFx1TMbQ3l3lzxOpmqr7EcrKT619njgpbEv09MueaaEdzxEniEZqx3lXBp54AP7awr40Agz4auR8IoWzO/DG9LqmHFT+SMx0OZr+oLIX8fn6fYPtr57qFh+5vQ8DP5MLUt3BLAJuS+sXBxD3SfuoehbU4liVSBUVUydrEL372vu5FTiQ+qmRVbOByseyyjXEf4abS4yVtOK3xIloQtpOI8224wgioJcHlSGO83wiBVQeA9IywICvRn5NpCDOJmaX/KmwrIP63O+XiWmJvwDOInK1JxOP1P5jg+1fSwSic4lB2anENM1ZpW1PJwYL30v0IB9K38sDgMcT/1HtB8SJ6i1EuuUc+lMWjbQ6mDibCOjHEamcPmLGziz6ZxidQcxMuYyYjbRuqlOeF18+llV+Q7y33xDH9d60n62Ik8/Rg7yP+4nfyfnEQPJtxBXKVGK84aA22vHfxLH9C9HjfxfxT5JmAd3AN4A3ADcQJ8Y3E4P2ew2xfUlL0Y+JHuuJpfKqu0PfTeTj5xOX82dS//iNzrSt4iydDxNzvucBNxIDneXZN28kAs0s6ufhl+tB9OjvJKZHPkpMDSxOTOii+rEgVdsaysZEj3cOMTvmc8RJ5+lCne2JefgvAX8m0irN3GnbycBjtQoRTB8g3t+TxEm5OBd/sPfxaeDu1Jan036LM3eabcdqxP0PtfsBHiKOc9H+RAdhHnFyvgk4vEG7JEmSJEmSJEmSJEmSJEmSJEmSJEmSJGmE/R+XIAMb09n0qQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f74897bf128>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7490130940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# How many violations of angular momentum would be measured?\n",
"\n",
"# From running several simulations, it's evident a violation in the \n",
"# conservation of angular momentum would be measured half of the time.\n",
"# We can conclude that the information that the entangled particles are in\n",
"# orthogonal spin states is instantaneously agreed once a measurement\n",
"# is made.\n",
"\n",
"violations = 0\n",
"\n",
"for trial in range(0,1000):\n",
" elespin = np.random.randint(0,2)\n",
" posspin = np.random.randint(0,2)\n",
" if elespin == 0:\n",
" elespin = np.matrix('0 1')\n",
" else:\n",
" elespin = np.matrix('1 0')\n",
" if posspin == 0:\n",
" posspin = np.matrix('0 1')\n",
" else:\n",
" posspin = np.matrix('1 0')\n",
" \n",
" elespin.transpose()\n",
" posspin.transpose()\n",
" chi_squared = elespin*np.matrix('1; 0')*posspin*np.matrix('0; 1') - posspin*np.matrix('1; 0')*elespin*np.matrix('0; 1')\n",
" \n",
" if chi_squared == 0:\n",
" violations = violations + 1\n",
"\n",
"zeroes = np.zeros(violations,dtype=int)\n",
"ones = np.full((1000-violations),1,dtype=int)\n",
"result = np.concatenate((ones,zeroes))\n",
"\n",
"plt.ylim([400,600])\n",
"plt.xlim([-1,2])\n",
"plt.xticks([0.125,0.85],[\"violation\",\"adherence\"])\n",
"plt.tick_params(axis='both',labelsize=15)\n",
"plt.suptitle(\"Conservation Violations\",fontsize=20)\n",
"plt.hist([result],bins=4)\n",
"plt.figure()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb39afb7128>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Bell's Experiment took this a step further, to rule out locality \n",
"# completely. Establish the detectors to \"float\" such that they \n",
"# measure the components of the spins of the electron and positron \n",
"# along a unit vector a or b, with angles phi_a and phi_b, \n",
"# respectively. Compute a product P of the spins in units of hbar/2. \n",
"# This will give +/-1. \n",
"\n",
"# / pi0 \\\n",
"# /e- <------ ------> e+\\\n",
"\n",
"# QM predicts P(a,b) = -a dot b, the expectation value of the product \n",
"# of the spins.\n",
"\n",
"# In 1964, Bell derived the Bell inequality for a local hidden variable\n",
"# theory: abs(P(a,b) - P(a,c)) <= 1 + P(b,c)\n",
"\n",
"# For any local hidden variable theory, the Bell inequality must hold. \n",
"# It introduces a third unit vector c, which is any other unit vector \n",
"# than a or b.\n",
"\n",
"# Does the quantum mechanical prediction violate the Bell inequality?\n",
"# Testing several detector configurations in a plane, systematically \n",
"# from 0 to pi, we determine whether the QM prediction is consistent \n",
"# with a local hidden variable theory.\n",
"\n",
"violations = 0\n",
"trials = 0\n",
"for step_a in range(0,6):\n",
" for step_b in range (0,6):\n",
" phi_a = step_a/6*np.pi\n",
" phi_b = step_b/6*np.pi\n",
" phi_c = phi_a - 0.5*phi_b\n",
" P_ab = -1 * np.cos(phi_a - phi_b)\n",
" P_ac = -1 * np.cos(phi_a - phi_c)\n",
" P_bc = -1 * np.cos(phi_b - phi_c)\n",
" \n",
" bell_lhs = np.abs(P_ab - P_ac)\n",
" bell_rhs = 1 + P_bc\n",
" \n",
" if bell_lhs > bell_rhs:\n",
" violations = violations + 1\n",
" \n",
" trials = trials + 1\n",
" \n",
"zeroes = np.zeros(violations,dtype=int)\n",
"ones = np.full((trials-violations),1,dtype=int)\n",
"result = np.concatenate((ones,zeroes))\n",
"\n",
"plt.ylim([trials/2-10,trials/2+10])\n",
"plt.xlim([-1,2])\n",
"plt.xticks([0.125,0.85],[\"violation\",\"adherence\"])\n",
"plt.tick_params(axis='both',labelsize=15)\n",
"plt.suptitle(\"Hidden Locality Violations\",fontsize=20)\n",
"plt.hist([result],bins=4)\n",
"plt.figure()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb39beac240>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# It is seen that the QM prediction disagrees with a local hidden \n",
"# variable theory in a significant number of configurations.\n",
"\n",
"# On average, for random orientations between 0 and pi, how often? \n",
"# After running several trials, it appears to be about half of the, \n",
"# which is what one would expect from the quantum mechanical\n",
"# prediction.\n",
"\n",
"violations = 0\n",
"trials = 0\n",
"for rand_a in range(0,10):\n",
" for rand_b in range (0,10):\n",
" phi_a = np.random.rand(1)*np.pi\n",
" phi_b = np.random.rand(1)*np.pi\n",
" phi_c = phi_a - 0.5*phi_b\n",
" P_ab = -1 * np.cos(phi_a - phi_b)\n",
" P_ac = -1 * np.cos(phi_a - phi_c)\n",
" P_bc = -1 * np.cos(phi_b - phi_c)\n",
" \n",
" bell_lhs = np.abs(P_ab - P_ac)\n",
" bell_rhs = 1 + P_bc\n",
" \n",
" if bell_lhs > bell_rhs:\n",
" violations = violations + 1\n",
" \n",
" trials = trials + 1\n",
"\n",
"zeroes = np.zeros(violations,dtype=int)\n",
"ones = np.full((trials-violations),1,dtype=int)\n",
"result = np.concatenate((ones,zeroes))\n",
"\n",
"plt.ylim([trials/2-10,trials/2+10])\n",
"plt.xlim([-1,2])\n",
"plt.xticks([0.125,0.85],[\"violation\",\"adherence\"])\n",
"plt.tick_params(axis='both',labelsize=15)\n",
"plt.suptitle(\"Hidden Locality Violations\",fontsize=20)\n",
"plt.hist([result],bins=4)\n",
"plt.figure()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# The prediction (Bell's inequality) made by assuming a local hidden\n",
"# variable is violated by a significant number of the possibile \n",
"# bborientations. This simulation cannot determine which theory is\n",
"# correct, but the QM prediction has been confirmed through experiment.\n",
"# No hidden local variable holds actionable information about the \n",
"# state. Entangled states retain their entanglement in a non-local \n",
"# nature."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"plt.show()"
]
},
{
"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.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}