oké akkor beszéljünk a kvantumfizikáról:
klasszikus EM: -0.197056
QM joslat: 0.123347
naiv modell: -0.016344
modositott naiv modell: -0.174499
http://www.drchinese.com/David/Aspect.pdf
Nos az egycsatornás kisérletre felírt Bell-egyenlőséget nem sérti a modell. De a kétcsatornásnál megyőzően sérti.
A hiba oka az lehet, hogy a kék terület miatt nem úgy esnek ki a negatív csatornák, mint ahogy azt Aspect ebben(http://arxiv.org/pdf/quant-ph/0402001) a pdf-ben a 18,oldalon a (31) résznél leírta.
De én új egyenlőtlenséget nem tudok felállítani, az a feladat másra vár. Nos Józsé?
double Nab=0;
double Na2b=0;
double Nab2=0;
double Na2b2=0;
void N_1(double a,double b,double a2,double b2,int no_polarizer)
{
Nab=0.0;
Na2b=0.0;
Nab2=0.0;
Na2b2=0.0;
for(int i=0;i<50000;i++) {
double foton_pair_pol=(double)(rand()%360);
int amp;
int channel_a=0;
int channel_a2=0;
int channel_b=0;
int channel_b2=0;
if(50<rand()%100) {
amp=(int)(97.0*pow(cos((double)(a-foton_pair_pol)*radian),2.0));
if(no_polarizer&1) channel_a=1;
else
if(amp>(rand()%100)) {channel_a=1;if(qm) foton_pair_pol=a;}
}
else
{
amp=(int)(97.0*pow(cos((double)(a2-foton_pair_pol)*radian),2.0));
if(no_polarizer&1) channel_a2=1;
else
if(amp>(rand()%100)) {channel_a2=1;if(qm) foton_pair_pol=a2;}
}
if(50<rand()%100) {
amp=(int)(97.0*pow(cos((double)(b-foton_pair_pol)*radian),2.0));
if(no_polarizer&2) channel_b=1;
else
if(amp>(rand()%100)) channel_b=1;
}
else {
amp=(int)(97.0*pow(cos((double)(b2-foton_pair_pol)*radian),2.0));
if(no_polarizer&2) channel_b2=1;
else
if(amp>(rand()%100)) channel_b2=1;
}
if(channel_a)
if(channel_b) Nab+=1.0; //++
if(channel_a)
if(channel_b2) Nab2+=1.0; //++
if(channel_a2)
if(channel_b) Na2b+=1.0; //++
if(channel_a2)
if(channel_b2) Na2b2+=1.0; //++
}
}
void N_2(double a,double b,double a2,double b2,int no_polarizer)
{
Nab=0.0;
Na2b=0.0;
Nab2=0.0;
Na2b2=0.0;
for(int i=0;i<50000;i++) {
double foton_pair_pol=(double)(rand()%360),dif;
int channel_a=0;
int channel_a2=0;
int channel_b=0;
int channel_b2=0;
if(50<rand()%100) {
dif=fabs(a-foton_pair_pol+scatter(scatter_angle));
if(dif>=90.0&&dif<=270.0) dif=abs(180.0-dif);
if(dif>=270.0) dif=abs(dif-360.0);
if(no_polarizer&1) channel_a=1;//{if(67>rand()%100)?
else
if(dif<(double)angle_limit) channel_a=1;
}
else {
dif=fabs(a2-foton_pair_pol+scatter(scatter_angle));
if(dif>=90.0&&dif<=270.0) dif=abs(180.0-dif);
if(dif>=270.0) dif=abs(dif-360.0);
if(no_polarizer&1) channel_a2=1;
else
if(dif<(double)angle_limit) channel_a2=1;
}
if(50<rand()%100) {
dif=fabs(b-foton_pair_pol+scatter(scatter_angle));
if(dif>=90.0&&dif<=270.0) dif=abs(180.0-dif);
if(dif>=270.0) dif=abs(dif-360.0);
if(no_polarizer&2) channel_b=1;
else
if(dif<(double)angle_limit) channel_b=1;
}
else {
dif=fabs(b2-foton_pair_pol+scatter(scatter_angle));
if(dif>=90.0&&dif<=270.0) dif=abs(180.0-dif);
if(dif>=270.0) dif=abs(dif-360.0);
if(no_polarizer&2) channel_b2=1;
else
if(dif<(double)angle_limit) channel_b2=1;
}
if(channel_a)
if(channel_b) Nab+=1.0; //++
if(channel_a)
if(channel_b2) Nab2+=1.0; //++
if(channel_a2)
if(channel_b) Na2b+=1.0; //++
if(channel_a2)
if(channel_b2) Na2b2+=1.0; //++
}
}
int main(int argc, char* argv[])
{
double S=0.0,Naooboo,angle=22.5,a,a2,b,b2;
//angle=67.5;
a=0.0;
b=angle;
a2=angle*2.0;
b2=angle*3.0;
//experiments with one channel polarizer , pdf page 18 (31) (33)
//1 bit = right polarizer removed
//2 bit = left polarizer removed
//oo = polarizer removed
qm=0;
N_1(a,b,a2,b2, 0);
S=Nab-Nab2+Na2b+Na2b2;
N_1(a,b,a2,b2, 2);
S-=(Na2b2);//Na2 boo
N_1(a,b,a2,b2, 1);
S-=(Na2b); //Naoo b
N_1(a,b,a2,b2, 1|2);//Naoo boo
Naooboo=Nab;
S/=Naooboo;
printf("klasszikus EM: %f n",S);
qm=1;
N_1(a,b,a2,b2, 0);
S=Nab-Nab2+Na2b+Na2b2;
N_1(a,b,a2,b2, 2);
S-=(Na2b2);//Na2 boo
N_1(a,b,a2,b2, 1);
S-=(Na2b); //Naoo b
N_1(a,b,a2,b2, 1|2);//Naoo boo
Naooboo=Nab;
S/=Naooboo;
printf("QM joslat: %f n",S);
angle_limit=45,scatter_angle=0;
N_2(a,b,a2,b2, 0);
S=Nab-Nab2+Na2b+Na2b2;
N_2(a,b,a2,b2, 2);
S-=(Na2b2);//Na2 boo
N_2(a,b,a2,b2, 1);
S-=(Na2b); //Naoo b
N_2(a,b,a2,b2, 1|2);//Naoo boo
Naooboo=Nab;
S/=Naooboo;
printf("naiv modell: %f n",S);
angle_limit=30,scatter_angle=30;
N_2(a,b,a2,b2, 0);
S=Nab-Nab2+Na2b+Na2b2;
N_2(a,b,a2,b2, 2);
S-=(Na2b2);//Na2 boo
N_2(a,b,a2,b2, 1);
S-=(Na2b); //Naoo b
N_2(a,b,a2,b2, 1|2);//Naoo boo
Naooboo=Nab;
S/=Naooboo;
printf("modositott naiv modell: %f n",S);
}