Analytic Continuation of DiLog in Mathematica

In summary, the DiLog function gives the dilogarithm function, which for real x>1 evaluates on the side of the branch prescribed by $$\text{lim}_{\epsilon \rightarrow 0^+} \text{Li}_2(x+i\alpha\epsilon)$$. I'm just wondering how to proceed with this prescription - should I first check whether my alpha is positive or negative in which case the expression becomes $$\text{lim}_{\epsilon \rightarrow 0^+} \text{Li}_2(x\pm i\epsilon),$$ with ##\pm## for positive/negative alpha respectively. I believe it
  • #1
CAF123
Gold Member
2,948
88
I have obtained the Dilog function in some output and was just wondering if anyone knew how to interpret its meaning. The mathematica notes tell me that

##\text{DiLog}(x,\alpha)## gives the dilogarithm function, which for real ##x>1## evaluates on the side of the branch prescribed by $$\text{lim}_{\epsilon \rightarrow 0^+} \text{Li}_2(x+i\alpha\epsilon)$$

I'm just wondering how to proceed with this prescription - should I first check whether my ##\alpha## is positive or negative in which case the expression becomes $$\text{lim}_{\epsilon \rightarrow 0^+} \text{Li}_2(x\pm i\epsilon),$$ with ##\pm## for positive/negative ##\alpha## respectively. I believe it's ok to absorb ##\alpha## into ##\epsilon## here as the latter is infinitesimal, but please correct if I'm mistaken in any of my thoughts, I don't have much familiarity with polylogs. I believe I can then write
$$\text{lim}_{\epsilon \rightarrow 0^+} \text{Li}_2(x \pm i\epsilon) = -\left(\text{Li}_2(x) \mp i\pi \ln x \right)$$
I've seen this last display in some literature but I have not yet understood it's derivation. Mathematica tells me (from the above) that it holds only for ##x>1## which might not be the case for me, so I'm not sure either how to deal with the case ##x>0,x<1##.

Thanks for any comments!
 
Physics news on Phys.org
  • #2
You can approach this from complex analysis and contour integration over multi-valued functions. That gives you precise control over this function. Consider the analytic continuation of the function defined as:

##\displaystyle \text{Li}_2(z)=-\int _0^z \frac{\log(1-z)}{z}dz##

That is not a difficult integral to numerically solve in Mathematica and once you understanding how to do it, you have precise (numerical) control over the value of the function and no ambiguity about branch cuts or alpha or anything else. If you're interested, the following Mathematica code implements the process for z=2+2i and then compares the result to the built-in PolyLog function:
Code:
thez[t] = t + I t;
tstart = 0.00001;
tend = 2;
wDeriv = w'[t] == (-1/(1 - z) D[thez[t], t]) /. {z -> thez[t]}
mySol = First[NDSolve[{wDeriv, w[0] == 0}, w, {t, tstart, tend}]]
myTrace[t_] := Evaluate[Flatten[w[t] /. mySol]];
NIntegrate[-myTrace[t]/thez[t] (1 + I), {t, tstart, tend}]
N[PolyLog[2, 2 + 2 I]]
 
Last edited:
  • #3
Hi @aheight thanks for reply,
My mathematica output was originally a DiLog which I've interpreted in terms of the usual mathematica function PolyLog using the mathematica help notes online. Since the branch cut of the dilog, as can be seen through your given integral representation, is from (1,infty) , I believe for x<1, the mathematica functions DiLog[x,alpha] and PolyLog[2,x] coincide. For x>1, I think the correct evaluation is the last display in my post, if you agree that what I did with the alpha is correct. Once these basic things are understood, I will look at what you did in your code. Thanks!
 
  • #4
CAF123 said:
Hi @aheight thanks for reply,
My mathematica output was originally a DiLog which I've interpreted in terms of the usual mathematica function PolyLog using the mathematica help notes online. Since the branch cut of the dilog, as can be seen through your given integral representation, is from (1,infty) , I believe for x<1, the mathematica functions DiLog[x,alpha] and PolyLog[2,x] coincide. For x>1, I think the correct evaluation is the last display in my post, if you agree that what I did with the alpha is correct. Once these basic things are understood, I will look at what you did in your code. Thanks!

Hi caf,

I don't have a DiLog function in my version of Mathematica 11.2. In my opinion, the best way to handle multi-valued functions is through analytic continuation. This eliminates completely the frequent problems one encounters dealing with branch cuts: To evaluate ##\text{Li}_2(z)## for z>1, we integrate over an analytically continuous path from ##0+\epsilon## , preferably around the singular point at z=1, and end at z. And since we do so over a domain in which the function is analytic, we have independence of path: For ##\text{Li}_2(2)##, we can go over the contour z=1+e^{it} to z=2 or first go to z=2i then straigh-line down to z=2 and get the same answer. However, Mathematica may use a different implied branch over which to evaluate PolyLog. Consider ##\text{Li}_2(2)## over the contour z(t)=1+e^{it} for t ranging from ##\pi## to zero:
Code:
In[109]:= thez[t_] = 1 + Exp[I t];
tstart = \[Pi];
tend=0;
wDeriv = w'[t] == (-1/(1 - z) D[thez[t], t]) /. {z -> thez[t]};
mySol = First[
   NDSolve[{wDeriv, w[tstart] == N[Log[1 - thez[tstart]]]},
    w, {t, tstart, tend}]];
myTrace[t_] := Evaluate[Flatten[w[t] /. mySol]];
NIntegrate[-myTrace[t]/thez[t] D[thez[t], t], {t, tstart, tend}]
N[PolyLog[2, 2]]
Out[114]= 2.4674 + 2.17759 I
Out[115]= 2.4674 - 2.17759 I

Note the different imaginary component between the built-in PolyLog and numerical integration: Mathematica is using a different branch surface to determine PolyLog: Had I integrated from pi to 2pi, I would get the same answer as Mathematica. And it is precisely these types of ambiguities, and our analysis and resolution of them, that cultivates a better understanding of dealing with these types of problems. Try plotting the function and analyzing exactly what is going on with these results.

In order to be successful at working with contour integration over multi-valued functions, I have found approaching them from this perspective of analytic-continuation is the best way.
 
Last edited:

1. What is DiLog output in Mathematica?

DiLog output in Mathematica refers to the output of the dilogarithm function, which is a special function used in mathematics to evaluate complex integrals and series. It is denoted as DiLog[z] in Mathematica, where z is a complex number.

2. How is DiLog output calculated in Mathematica?

The DiLog output in Mathematica is calculated using an algorithm developed by Wolfram Research. The algorithm uses a combination of numerical and symbolic methods to accurately evaluate the dilogarithm function for any given input.

3. Can DiLog output in Mathematica be used in further calculations?

Yes, the DiLog output in Mathematica can be used in further calculations just like any other function output. It can be used in mathematical expressions, assignments, and even plotted as a graph.

4. What is the range of input values for DiLog output in Mathematica?

The range of input values for DiLog output in Mathematica is from -1 to 1, inclusive. This range covers the entire complex plane and allows for accurate evaluation of the function for any given input.

5. Are there any special considerations when using DiLog output in Mathematica?

Yes, there are a few special considerations when using DiLog output in Mathematica. The function is not defined for z = 0 and has branch cuts along the negative real axis. It is also important to note that the output is given in terms of complex numbers, so proper handling of complex values is necessary when using the output in further calculations.

Similar threads

  • Calculus
Replies
1
Views
1K
  • Calculus
Replies
6
Views
1K
  • Topology and Analysis
Replies
7
Views
1K
  • Calculus and Beyond Homework Help
Replies
5
Views
904
  • Calculus
Replies
1
Views
1K
Replies
4
Views
1K
Replies
1
Views
1K
  • Calculus and Beyond Homework Help
Replies
8
Views
626
  • Calculus and Beyond Homework Help
Replies
19
Views
1K
  • Calculus and Beyond Homework Help
Replies
2
Views
846
Back
Top