Question: How I minimize the calculation time for my program and get a result?

restart;
with(Statistics):
with(LinearAlgebra):
with(Optimization):
Digits:=10:

                      #********************************************#
lambda:=6328*10^(-10);
w0:=0.0005;
a0:=0.0004; 
z0:= a0^2/(4*lambda);  
N:=(a0^2)/(z0*lambda); 

                      #*********************************************#


u0:=x->((2/(w0*sqrt(2)))*sqrt(1./Pi))*LaguerreL(0,0.,2.*(x*a0)^2/w0^2)*exp(-(x*a0)^2/w0^2);

                                 
           #*****************************************************************
u1:=y->evalf(I*2*Pi*N*exp(-I*Pi*N*((a0*y)/a0)^2)*evalf(int(x*u0(x)*exp(-I*Pi*N*x^2)*BesselJ(0,2*Pi*N*(a0*y)*x/a0),x=0..1)));

          #*****************************************************************

u2:=r2->evalf(I*2*Pi*N*exp(-I*Pi*N*(r2/a0)^2)*evalf(int(y*u1(y)*exp(-I*Pi*N*y^2)*BesselJ(0,2*Pi*N*r2*y/a0),y=0..1)));

          #*****************************************************************
u3:=r3->evalf(I*2*Pi*N*exp(-I*Pi*N*(r3/a0)^2)*evalf(int(z*u2(z)*exp(-I*Pi*N*z^2)*BesselJ(0,2*Pi*N*r3*z/a0),z=0..1)));

 plot(abs(u3(r3)),r3=-0.0008..0.0008);

 

Please Wait...