Question: how to reduce evaluating time

What should I do to reduce evaluating time?

restart;

with(plots):

 

F:=kappa->kappa;

proc (kappa) options operator, arrow; kappa end proc

(1)

f:=(alpha,delta)->exp(-abs(F(kappa))^2*(1+delta^2)/2-abs(F(kappa))*alpha)/abs(F(kappa));

proc (alpha, delta) options operator, arrow; exp(-(1/2)*abs(F(kappa))^2*(1+delta^2)-abs(F(kappa))*alpha)/abs(F(kappa)) end proc

(2)

L:=(alpha,delta,Lambda)->(lambda^2*exp(-alpha^2/2)/4)*(Int(f(alpha,delta),kappa= -infinity..-Lambda)+Int(f(alpha,delta),kappa= Lambda..infinity));

proc (alpha, delta, Lambda) options operator, arrow; (1/4)*lambda^2*exp(-(1/2)*alpha^2)*(Int(f(alpha, delta), kappa = -infinity .. -Lambda)+Int(f(alpha, delta), kappa = Lambda .. infinity)) end proc

(3)

evalf(L(4,1,0.001));

0.8209373770e-3*lambda^2

(4)

g:=(beta,delta)->exp(-I*kappa*beta-abs(F(kappa))^2*(1+delta^2)/2)/abs(F(kappa));

proc (beta, delta) options operator, arrow; exp(-I*kappa*beta-(1/2)*abs(F(kappa))^2*(1+delta^2))/abs(F(kappa)) end proc

(5)

E:=(omega,gamma)->exp(I*omega*gamma)*(1-erf((gamma+I*omega)/sqrt(2)));

proc (omega, gamma) options operator, arrow; exp(I*omega*gamma)*(1-erf((gamma+I*omega)/sqrt(2))) end proc

(6)

J:=(alpha,delta,Lambda,beta,gamma)->(lambda^2*exp(-alpha^2/2)/8)*abs(Int(g(beta,delta)*(E(abs(F(kappa)),gamma)+E(abs(F(kappa)),-gamma)),kappa=-infinity..-Lambda)+Int(g(beta,delta)*(E(abs(F(kappa)),gamma)+E(abs(F(kappa)),-gamma)),kappa=Lambda..infinity));

proc (alpha, delta, Lambda, beta, gamma) options operator, arrow; (1/8)*lambda^2*exp(-(1/2)*alpha^2)*abs(Int(g(beta, delta)*(E(abs(F(kappa)), gamma)+E(abs(F(kappa)), -gamma)), kappa = -infinity .. -Lambda)+Int(g(beta, delta)*(E(abs(F(kappa)), gamma)+E(abs(F(kappa)), -gamma)), kappa = Lambda .. infinity)) end proc

(7)

#evalf(J(4,1,0.001,8,3));

N := (beta,alpha)-> (J(alpha,1,0.001,beta,3)-L(alpha,1,0.001))/\lambda^2;

proc (beta, alpha) options operator, arrow; (J(alpha, 1, 0.1e-2, beta, 3)-L(alpha, 1, 0.1e-2))/lambda^2 end proc

(8)

 

 

 

 

 

 

contourplot(evalf(N(beta,alpha)), beta=0..10,alpha=0..10,grid=[25,25]);

 

 

 

 

Download Negativity_v1.mw

Please Wait...