Message Boards Message Boards

How can i plot this trascendental function?

I have been learning mathematica for a month now, and i want to solve one of my thesis objectives with mathematica, which is to plot this trascendental function: Mass of the sigma meson mass dependent of temperature and so far i´ve been receiving error messages like:

  • "$RecursionLimit::reclim2: Recursion depth of 1024 exceeded during evaluation of mSigma[0.135]."
  • "Power::infy: Infinite expression 1/0.^1. encountered." -" Infinity::indet: Indeterminate expression E^ComplexInfinity encountered." etc. this is my code:

    ClearAll[mSigma, gSigmaPiPi, mPi, Lambda, k]
    mPi = 0.13957;
    Block[{$MaxExtraPrecision = Infinity}, 
      mSigma[T_] := 
       mSigma[T] /. 
        FindRoot[
         mSigma[T]^2/mSigma[0]^2 == 
          1 + (3/2)*(gSigmaPiPi^2)*(mPi^2)/(8*Pi^2*mSigma[0]^2)*
            NIntegrate[
             Sqrt[E1^2 - 
                mPi^2]*((2/((Exp[E1/(T)] - 1)) + 1)/(E1 - mSigma[T]^2/4 - 
                  1*^-20)), {E1, mPi, mSigma[T]/2 - 1*^-20, 
              mSigma[T]/2 + 1*^-20, 
              Lambda},(*Interesting command to avoid singularities*)
             Method -> {"GlobalAdaptive", "SymbolicProcessing" -> 0, 
               "SingularityHandler" -> "Subtracting"}, MaxRecursion -> 20,
              PrecisionGoal -> 6, AccuracyGoal -> 6, 
             WorkingPrecision -> 20], {mSigma[T], 550}]
             ];
    
    Tc = 0.150;
    gSigmaPiPi = 14.02;
    Lambda = 1.4;
    Tlist = Range[0.9*Tc, Tc, 0.1];
    sigmaList = Table[{T, mSigma[T]/mSigma[0]}, {T, Tlist}];
    ListPlot[sigmaList, AxesLabel -> {"T/Tc", "m_sigma(T)/m_sigma(0)"}]
    

I even used MaxPrecision in order to not have these infinities and 1/0 errors Any thoughts on how can i attack this problem? EDIT: i have a typo in the latex equation, it should be E^2 in the denominator of the integrand

5 Replies

You cannot use FindRoot without giving a numeric value to mSigma[0]. In the TeX equation there is a parameter k which is missing from the code.

POSTED BY: Gianluca Gorni

I see unevaluated (lower case findroot, integrate, 1^-20 -> 1.0^-20)

findRoot[ 
mSigma[T]^2/mSigma[0]^2 == 
1 + 1/(16 \[Pi]^2 mSigma[0]^2)  3  gSigmaPiPi^2   mPi^2 * 
integrate[((1 + 2/(-1 + E^(E1/T))) *
              Sqrt[   E1^2 - mPi^2])  /  (-1.`*^-20 + E1 - mSigma[T]^2/4),
             {E1,    mPi,    -1.`*^-20 + mSigma[T]/2, 1.`*^-20 + mSigma[T]/2  ,  Lambda}], 
             {mSigma[T], 550}]

There is a fourth parameter Lambda in the domain bracket of integrate. Whats it for?

POSTED BY: Roland Franzius

Lambda is the upper integration limit, it´s a cut-off frequency for the integral, the original upper limit was infinity but then the integral becomes divergent

But integrate' s domain list has three parameters only {x, xmin , xmax}, or is there a method taking four?

POSTED BY: Roland Franzius

I used this syntax from documentation center "NIntegrate[f,{x,x0,x1,…,xk}] tests for singularities in a one-dimensional integral at each of the intermediate points xi. If there are no singularities, the result is equivalent to an integral from x0 to xk. You can use complex numbers xi to specify an integration contour in the complex plane."

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract