# Simulating long-distance correlations

Gold Member
[This simulation is an offshoot of https://www.physicsforums.com/threads/an-abstract-long-distance-correlation-experiment.852684]

https://www.physicsforums.com/threa...a-chsh-animation.854335/#post-5362641Implicit in the discussion of this experiment is the definition of what happens (or how to calculate the probability) when a photon hits a polarizer at a specific angle. Dehlinger and Mitchell use a "classical" model where each photon has a polarization angle λ. When a photon meets a polarizer set to an angle γ , it will always register as Vγ if λ is closer to γ than to γ + π/2, i.e.,
• if |γ − λ| ≤ π/4 then vertical
• if |γ − λ| > 3π/4 then vertical
• horizontal otherwise. It's easy to visualize the chance of a photon getting through the polarizer at any angle based on the color. In their words "Our Hidden Variable Theory is very simple, and yet it agrees pretty well with quantum mechanics. We might hope that some slight modification would bring it into perfect agreement."

An alternative to this calculation is a "statistical" model of the spin axis. From the front, the photon polarization angle will appear to wobble back and forth. Now, when a photon meets a polarizer set to an angle γ, it will not always register the same. When a photon meets a polarizer set to an angle γ, it has a better chance to register as vertical if λ is closer to γ than to γ + π/2, i.e.,
• Chance of vertical measurement = (cos((γ − λ)*2)+1)/2
• Chance of horizontal measurement = (cos((γ − λ + π/2)*2)+1)/2 This model illustrates the statistical chance of getting through a polarizer (depending on the shading). It satisfies the condition that a vertically polarized photon, has a 100% chance of getting through a vertical polarizer, a 0% chance of getting through a horizontal polarizer (the two basis vectors) and a statistical chance of getting through at other angles. To illustrate, consider Bob and Alice setup horizontal and vertical. This illustrated statistical model of the photon behaves exactly as the quantum mechanical model behaves.

Last edited by a moderator:

Related Quantum Physics News on Phys.org
Gold Member
Below is a description of the basic experimental settings. ...
I believe the animation at http://www.animatedphysics.com/games/photon_longdistance_nonlocality.htm is done and reflects the experimental settings used to fill up the matrices A, B, E and F. The animation can be run photon by photon to review the operation of the device, or in continuous runs of 10 or 100 photons to fill up the matrices for analysis. Let me know if you see anything "wierd" about the animation.

The animation reflects the following events:

1. Generate a photon with a random polarization angle between 0 and 360
2. Split the photon with a BBO crystal and point at Bob and Alice
3. Set a random polarization angle of 0, 120 or 240 to each of Bob and Alices's detector
4. Record the detection events as a log at Bob and Alice's detector
5. Accumulate the results in matrices A, B, E and F

For the detection event, only local variables are used, specifically, the polarizer set to an angle γ, and the photon angle set at λ. When a photon meets a polarizer set to an angle γ, the probability of detection is based on the cosine of the difference in their angles.
• Chance of vertical measurement = (cos((γ − λ)*2)+1)/2
• Chance of horizontal measurement = (cos((γ − λ + π/2)*2)+1)/2
Hope people can have fun with the animation and discuss what is "wierd" about the results or details of operation.

Last edited:
I believe the animation at http://www.animatedphysics.com/games/photon_longdistance_nonlocality.htm is done and reflects the experimental settings used to fill up the matrices A, B, E and F. The animation can be run photon by photon to review the operation of the device, or in continuous runs of 10 or 100 photons to fill up the matrices for analysis. Let me know if you see anything "wierd" about the animation.

The animation reflects the following events:

1. Generate a photon with a random polarization angle between 0 and 360
2. Split the photon with a BBO crystal and point at Bob and Alice
3. Set a random polarization angle of 0, 120 or 240 to each of Bob and Alices's detector
4. Record the detection events as a log at Bob and Alice's detector
5. Accumulate the results in matrices A, B, E and F

For the detection event, only local variables are used, specifically, the polarizer set to an angle γ, and the photon angle set at λ. When a photon meets a polarizer set to an angle γ, the probability of detection is based on the cosine of the difference in their angles.
• Chance of vertical measurement = (cos((γ − λ)*2)+1)/2
• Chance of horizontal measurement = (cos((γ − λ + π/2)*2)+1)/2
Hope people can have fun with the animation and discuss what is "wierd" about the results or details of operation.
I couldn't see anything weird in a run of 100. But to do a CHSH type calculation I need the red/blue coincidence matrix (like A) for every difference in the A and B settings.

Gold Member
I couldn't see anything weird in a run of 100. But to do a CHSH type calculation I need the red/blue coincidence matrix (like A) for every difference in the A and B settings.
I added a CHSH style animation to generate the coincidence matrices at http://www.animatedphysics.com/games/photon_longdistance_chsh.htm

The generated photon:

var ri = Math.random();
photonangle = Math.round(ri*360);​

Setting Bob and Alice's polarizers:

aliceangle = "0"
var ri = Math.random()
if (ri > .5) { aliceangle = "45" }​

bobangle = "22.5"
ri = Math.random()
if (ri > .5) { bobangle = "67.5" }​

Detecting the photon polarization for Bob and Alice relies only on local variables (ie, the photon and their own polarizer angle) and is a function of the cosine of the difference in the angles.

var probofhit = (Math.cos((rphotonangle - rbobangle)*2)+1)/2;
var ri = Math.random();
if (ri<probofhit) { bobhit = true };

var probofhit = (Math.cos((rphotonangle - raliceangle)*2)+1)/2;
var ri = Math.random();
if (ri<probofhit) { alicehit = true };​

Please let me know if you feel it does not look like it is accumulating in the proper matrices or calculating properly.

Hello edguy99,
Your simulation can not give the proper results, if you still think it does, check your code and check your sample size.
Here is a program that reproduces your simulation with your exact formula, and prints the result labelled "classic", and also does the same with the collapse/FTL/magic step and prints the result labelled "qm" so you can compare:
https://jsfiddle.net/cowwtxrh/1/
Please if you are still convinced you can violate Bell's inequalities with a local algorithm, or want to discuss my remake of your simulation or anything else, start a new thread for that purpose. Continuing here is sidetracking the topic and you will just be ignored by me from now on.

Last edited: