0
$\begingroup$

I'm trying to plot a 3D function on axes F(p,q), q^2, and p^2, with p and q being Four-vectors:

p^μ Subscript[p, μ] = p^0 Subscript[p, 0] - p^i Subscript[p, i]
q^μ Subscript[q, μ] = q^0 Subscript[q, 0] - q^i Subscript[q, i]
p^μ Subscript[q, μ] = (Subscript[p, 0] - Subscript[p, i])(Subscript[q, 0]- ubscript[q, i])

I need Wolfram to undestand this and produce the scalars, p^2, q^2, from p and q. This function has already been computed using the moment spaces and it is given by:

F[p_, q_] := PolyLog[2, (Subscript[λ, 1] 
     - Subscript[λ, 1] Sqrt[(1 - β)/(1 - α)])/(1 - Subscript[λ, 1] Sqrt[(1 - β)/(1 - α)])]

Where:

Subscript[λ, 1] = Sqrt[((ScalarProduct[p, q])^2
  -p^2 q^2)]/Subscript[λ, 2]-1/Subscript[λ, 2]Sqrt[(ScalarProduct[p, q])^2
   -p^2 q^2 - ((2 ScalarProduct[p, q] β - p^2)/(α - β)) ((p^2
    - 2 α (ScalarProduct[p, q]))/(α - β))]

Subscript[λ, 2] = (2 ScalarProduct[p, q] β - p^2)/(α - β)

α = p^2/(2 ((ScalarProduct[p, q])^2 - p^2 q^2)) {-(q^2 - ScalarProduct[p, q]) 
    + Sqrt[q^2 (p - q)^2 + 4 ((ScalarProduct[p, q])^2 - p^2 q^2) 1^2/p^2]}

β = p^2/(2 ((ScalarProduct[p, q])^2 - p^2 q^2)) {-(q^2 - ScalarProduct[p, q])
    - Sqrt[ q^2 (p - q)^2 + 4 ((ScalarProduct[p, q])^2 - p^2 q^2) 1^2/p^2]}

The graph must be a function that can be analyzed, including the imaginary part. When I tried to plot, there appeared a function rife with peaks, what I believe to be because Wolfram do not understand the dot product of p with q. That is, it is probably varying numbers for p and q and getting a result without taking into account that these quantities are Four-vectors. Thank you in advance.

$\endgroup$
  • $\begingroup$ It looks as though F(p,q) is going to depend on the dot product between p and q as well as the amplitude of p and q separately? In that case, your graph of F(p,q) vs p^2 vs q^2 is going to be different depending on the dot between p and q, i.e. for particular choices of p and q. Is that what you want? $\endgroup$ – AnotherShruggingPhysicist Oct 3 '17 at 12:00
0
$\begingroup$

I think your main issue here is a bit of Mathematica syntax (some apparently spurious { brackets floating around), and possibly a bit of variable scoping. Anyway, does this solution work for you?

l1[p_, q_] := Sqrt[(p.q)^2 - (p.p)*(q.q)]/l2[p, q] - Sqrt[(p.q)^2 - (p.p)*(q.q) - ((2*(p.q)*b[p, q] - p.p)/(a[p, q] - b[p, q]))*((p.p - 2*p.q*a[p, q])/(a[p, q] - b[p, q]))]; 
l2[p_,q_] := (2*p.q*b[p, q] - p.p)/(a[p, q] - b[p, q]); 
a[p_,q_] := (p.p/(2*(p.q)^2 - (p.p)*(q.q)))*(-(q.q - p.q) - Sqrt[q.q*(p - q).(p - q) + 4*(((p.q)^2 - (p.p)*(q.q))/p.p)]); 
b[p_,q_] := (p.p/(2*(p.q)^2 - (p.p)*(q.q)))*(-(q.q - p.q) + Sqrt[q.q*(p - q).(p - q) + 4*(((p.q)^2 - (p.p)*(q.q))/p.p)]); 
F[p_, q_] := PolyLog[2, (l1[p, q] - l1[p, q]*Sqrt[(1 - b[p, q])/(1 - a[p,q])])/(1 - l1[p, q]*Sqrt[(1 - b[p, q])/(1 - a[p, q])])]; 

and then populate a table using

pdir = {1, 0, 0, 1}/Sqrt[2]; qdir = {1, 0, 1, 1}/Sqrt[3]; 
table = Flatten[Table[{p^2, q^2, F[p*pdir, q*qdir]}, {p, 0.1, 1, 0.02}, {q, 0.1, 1, 0.02}], 1]; 

which is plotted as

ListPlot3D[{#[[1]], #[[2]], Re@#[[3]]} & /@ table, PlotRange -> All, AxesLabel -> {p^2, q^2, "Re[F]"}]
ListPlot3D[{#[[1]], #[[2]], Im@#[[3]]} & /@ table, PlotRange -> All, AxesLabel -> {p^2, q^2, "Im[F]"}]

Real part

Imaginary part

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.