Diffrazione di Fresnel

Diffrazione da fenditura rettilinea indefinita

dimimm=300;

lambda=0.5 10^{-3};
a=1;

Manipulate[
Column[{
Plot[Abs[FresnelC[Sqrt[2/(lambda z)](a/2-x)]+ I FresnelS[Sqrt[2/(lambda z)](a/2-x)]
+FresnelC[Sqrt[2/(lambda z)](a/2+x)] + I FresnelS[Sqrt[2/(lambda z)](a/2+x)]
]^2,{x,-1,1},PlotRange->All,AspectRatio->1/3,ImageSize->dimimm],
DensityPlot[Abs[FresnelC[Sqrt[2/(lambda z)](a/2-x)]+ I FresnelS[Sqrt[2/(lambda z)](a/2-x)]
+FresnelC[Sqrt[2/(lambda z)](a/2+x)] + I FresnelS[Sqrt[2/(lambda z)](a/2+x)]
]^2,{x,-1,1},{y,-1,1},ColorFunction->GrayLevel,ImageSize->dimimm,Frame->False,PlotPoints->{200,2}]
}]
,{z,0.01,1000,1.},ControlPlacement->Left]

(* far field *)

dimimm=300;

lambda=0.5 10^{-3};
a=1;
z=1000;

gamma=.3;

DensityPlot[Abs[Sin[Pi (a x/(lambda z))]/(Pi (a x/(lambda z)))]^(2 gamma),{x,-5,5},{y,-10,10},ColorFunction->GrayLevel,ImageSize->dimimm,Frame->False,PlotPoints->{200,2},PlotRange->All]
Plot[Abs[Sin[Pi (a x/(lambda z))]/(Pi (a x/(lambda z)))]^(2),{x,-5,5},PlotRange->All,ImageSize->dimimm]

Diffrazione da foro circolare

dimimm=300;

rmax=1.5;
ncamp=100;
Nfres=21;  (* numero di Fresnel *)

rstep=rmax/(ncamp-1);
datiI=Table[
(2 Pi Nfres)^2 Abs[NIntegrate[BesselJ[0,2 Pi Nfres r t] Exp[I Pi Nfres t^2] t , {t,0,1}]]^2,
{r,0,rmax,rstep}];
datir=Table[r,{r,0,rmax,rstep}];

xmax=(rmax-rstep/2)/Sqrt[2];
ymax=xmax;
xstep=rstep/Sqrt[2];
ystep=rstep/Sqrt[2];

imax=(ncamp-1)*2;
jmax=(ncamp-1)*2;

datixy=Table[0,{i,1,imax},{j,1,jmax}];

Do[
y=-ymax+(j-1)*ystep;
Do[
x=-xmax+(i-1)*xstep;
r=Sqrt[x^2+y^2];
indi=1+IntegerPart[r/rstep];
datixy[[i,j]]=datiI[[indi]]+(datiI[[indi+1]]-datiI[[indi]])/(datir[[indi+1]]-datir[[indi]])*(r-datir[[indi]])
,{i,1,imax}]
,{j,1,jmax}]

ListDensityPlot[datixy,ColorFunction->GrayLevel,ImageSize->dimimm,Frame->False]

(* intensità in asse *)

lambda=0.5 10^{-3};
a=1;

Clear[z];
Plot[Sin[Pi a^2/(2 lambda z)]^2,{z,10,3000}]

(* far field *)

dimimm=300;

a=1;
z=1000;

besinc[x_]:=BesselJ[1,Pi x]/(Pi x)
xmax=10;
gamma=.3;

DensityPlot[ Abs[besinc[Sqrt[x^2+y^2]]]^(2 gamma),{x,-xmax,xmax},{y,-xmax,xmax},ColorFunction->GrayLevel,ImageSize->dimimm,Frame->False, PlotPoints->200,PlotRange->All]
Plot[besinc[x]^2,{x,-xmax,xmax},PlotRange->All,ImageSize->dimimm]

Diffrazione da disco opaco

dimimm=300;

rmax=1.5;
ncamp=100;
Nfres=1000;

rstep=rmax/(ncamp-1);
datiI=Table[
Abs[1+(2 I Pi Nfres) Exp[I Pi Nfres r^2]NIntegrate[BesselJ[0,2 Pi Nfres r t] Exp[I Pi Nfres t^2] t , {t,0,1}]]^2,
{r,0,rmax,rstep}];
datir=Table[r,{r,0,rmax,rstep}];

xmax=(rmax-rstep/2)/Sqrt[2];
ymax=xmax;
xstep=rstep/Sqrt[2];
ystep=rstep/Sqrt[2];

imax=(ncamp-1)*2;
jmax=(ncamp-1)*2;

datixy=Table[0,{i,1,imax},{j,1,jmax}];

Do[
y=-ymax+(j-1)*ystep;
Do[
x=-xmax+(i-1)*xstep;
r=Sqrt[x^2+y^2];
indi=1+IntegerPart[r/rstep];
datixy[[i,j]]=datiI[[indi]]+(datiI[[indi+1]]-datiI[[indi]])/(datir[[indi+1]]-datir[[indi]])*(r-datir[[indi]])
,{i,1,imax}]
,{j,1,jmax}]

ListDensityPlot[datixy,ColorFunction->GrayLevel,ImageSize->dimimm,Frame->False]