Issues
Issues
* Include all parameters as function arguments.
* NSum[], which is a combination symbolic-numerical solver, evaluates the summand symbolically.
* NSum[], which is a combination symbolic-numerical solver, evaluates the summand symbolically.
Alternative 1
Alternative 1
L=200;Ω=1;σ=5;λ=0.1;ClearAll[x,t];t[τ_,a_]:=1/aSinh[aτ]x[τ_,a_]:=1/a(Cosh[aτ]-1)(*Ensuremisnumerictoavoidsymbolicevaluations*)ClearAll[η0,η1,int0,int1];int0[a_?NumericQ,m_?NumericQ]:=NIntegrate[Exp[-τ^2/(2σ^2)]Exp[IΩτ+(2IPi)/L(Abs[m]t[τ,a]-mx[τ,a])]1/Sqrt[4PiAbs[m]],{τ,-100,100}];η0[a_]:=λNSum[int0[a,m],{m,1,100}]int1[a_?NumericQ,m_?NumericQ]:=NIntegrate[Exp[-τ^2/(2σ^2)]Exp[IΩτ-(2IPi)/L(Abs[m]t[τ,a]-mx[τ,a])]1/Sqrt[4PiAbs[m]],{τ,-100,100}];η1[a_]:=λNSum[int1[a,m],{m,1,100}]F[a_]:=-(η0[a]^2/(1+η0[a]^2))+1/(1+η1[a]^2)η0[0.21]
Out[]=
-1.85339×+5.52228×
-7
10
-6
10
Alternative 2
Alternative 2
Use Total[] and Table[] to carry out a purely numerical sum.
L=200;Ω=1;σ=5;λ=0.1;ClearAll[x,t];t[τ_,a_]:=1/aSinh[aτ]x[τ_,a_]:=1/a(Cosh[aτ]-1)(*Ensuremisnumerictoavoidsymbolicevaluations*)ClearAll[η0,η1];η0[a_]:=λTotal@Table[NIntegrate[Exp[-τ^2/(2σ^2)]Exp[IΩτ+(2IPi)/L(Abs[m]t[τ,a]-mx[τ,a])]1/Sqrt[4PiAbs[m]],{τ,-100,100}],{m,1,100}];η1[a_]:=λTotal@Table[NIntegrate[Exp[-τ^2/(2σ^2)]Exp[IΩτ-(2IPi)/L(Abs[m]t[τ,a]-mx[τ,a])]1/Sqrt[4PiAbs[m]],{τ,-100,100}],{m,1,100}]F[a_]:=-(η0[a]^2/(1+η0[a]^2))+1/(1+η1[a]^2)η0[0.21]
Out[]=
-1.85304×+5.5223×
-7
10
-6
10