5
$\begingroup$

Let's assume the following symbolic equations

$$E=\sqrt{p^2+m^2}+\frac{e d_1(p)}{r}+\frac{e^2d_2(p)}{r^2}$$

being $d_{i}$ some generic function of $p$. I would like to find solutions to this equation in terms of $p$ and for small values of the constant $e$. How can I do this using Mathematica?

$\endgroup$

2 Answers 2

6
$\begingroup$

I'll make an example of the functions $d_i(p)$:

d1[p_] = Sin[p]; d2[p_] = p^2 - 7; 

Series-expansion of the solution for small $e$: I'll use $E=$F because the symbol E is already in use. The order of the series-expansion is set to 2 here but can be increased at will,

Assuming[F > 0, AsymptoticSolve[F == Sqrt[p^2 + m^2] + (e d1[p])/r + (e^2 d2[p])/r^2, {p, Sqrt[F^2 - m^2]}, {e, 0, 2}] // FullSimplify] 

{{p -> (1/( 4 ((F - m) (F + m))^(3/2) r^2))(-e^2 (m^2 + 4 F (F - m) (F + m) (-7 + F^2 - m^2)) + 4 (F^2 - m^2)^2 r^2 + e^2 m^2 Cos[2 Sqrt[F^2 - m^2]] + 4 e F (-F^2 r + m^2 r + e F Sqrt[F^2 - m^2] Cos[Sqrt[F^2 - m^2]]) Sin[Sqrt[ F^2 - m^2]])}}

This is the solution that, for $e=0$, passes through $p_0=\sqrt{F^2-m^2}$. There is also the other branch that passes through $p_0=-\sqrt{F^2-m^2}$; choose the branch in the AsymptoticSolve input.

For the more complex problem in the comments, it's sufficient to extend the assumptions a bit:

Assuming[ma > 0 && mb > 0 && F > ma + mb, AsymptoticSolve[ F == Sqrt[p^2 + ma^2] + Sqrt[p^2 + mb^2] + (e d1[p])/r + (e^2 d2[p])/r^2, {p, Sqrt[(F - ma - mb) (F + ma - mb) (F - ma + mb) (F + ma + mb)]/(2 F)}, {e, 0, 2}] // Refine] 

(lengthy output)

$\endgroup$
5
  • $\begingroup$ Hi Roman, thank you for the answer. I have tried to apply your suggestion to the following Assuming[F > 0, AsymptoticSolve[F == Sqrt[p^2 + ma^2]+Sqrt[p^2+mb^2] + (e d1[p])/r + (e^2 d2[p])/r^2, {p, Sol1[p]}, {e, 0, 2}] // FullSimplify], being Sol1[p] the positive root for F==Sqrt[p^2 + ma^2]+Sqrt[p^2+mb^2]. Unfortunately it doesn't solve it, is it normal? $\endgroup$ Commented Jun 2, 2019 at 9:53
  • $\begingroup$ There is a tipo: Only d1[p] is used in the equation! $\endgroup$ Commented Jun 2, 2019 at 9:57
  • $\begingroup$ I saw it, indeed I am worried that by using different d1, d2, mathematica just can't make it in solving everything in a reasonable amount of time. Could it be? $\endgroup$ Commented Jun 2, 2019 at 9:58
  • $\begingroup$ @Andrea.Phys maybe add some more assumptions? I think this should work in principle. Keep in mind that AsymptoticSolve is an experimental function and may have unexpected trouble. I'm away from the computer and cannot try, the weather is splendid in Europe! $\endgroup$ Commented Jun 2, 2019 at 10:29
  • $\begingroup$ @UlrichNeumann thanks, I'll correct it when I get to it. $\endgroup$ Commented Jun 2, 2019 at 10:30
7
$\begingroup$

Just an idea how to solve the problem without specifying d1[p],d2[p] (Perturbation theory, MMA version <12 )

First assume the solution p can be approximated by p -> p0 + p1 edr + p2 edr^2 + p3 edr^3 (* edr=e/r *)

Substituting into the equation and series expansion

Clear[d1,d2] ser = Series[-F + Sqrt[p^2 + m^2] + (edr d1[p]) + (edr^2 d2[p]) /. p -> p0 + p1 edr + p2 edr^2 + p3 edr^3, {edr, 0, 2}] // Normal (*-F + Sqrt[m^2 + p0^2] + edr ((p0 p1)/Sqrt[m^2 + p0^2] + d1[p0]) +edr^2 ((m^2 p1^2)/(2 (m^2 + p0^2)^(3/2)) + (m^2 p0 p2)/(m^2 + p0^2)^(3/2) + (p0^3 p2)/(m^2 + p0^2)^(3/2) + d1[p0] + p1 Derivative[1][d1][p0])*) 

The series coefficients can be solved for p0,p1,p2

CoefficientList[ser, edr] // FullSimplify[#, F > m > 0] & Simplify[Solve[% == 0, {p0, p1, p2}], F >m> 0] (*{{ p0 -> -Sqrt[F^2 - m^2], p1 -> (F d1[-Sqrt[F^2 - m^2]])/Sqrt[F^2 - m^2], p2 -> (1/(2 (F^2 - m^2)^2))(m^2 Sqrt[F^2 - m^2] d1[-Sqrt[F^2 - m^2]]^2 +2 F (F^2 - m^2)^(3/2) d2[-Sqrt[F^2 - m^2]] +2 F^2 (F^2 - m^2) d1[-Sqrt[F^2 - m^2]]Derivative[1][d1][-Sqrt[F^2 - m^2]]) }, { p0 -> Sqrt[F^2 - m^2], p1 -> -((F d1[Sqrt[F^2 - m^2]])/Sqrt[F^2 - m^2]), p2 -> -(1/(2 (F^2 - m^2)^2))(m^2 Sqrt[F^2 - m^2] d1[Sqrt[F^2 - m^2]]^2 +2 F (F^2 - m^2)^(3/2) d2[Sqrt[F^2 - m^2]] +2 F^2 (-F^2 + m^2) d1[Sqrt[F^2 - m^2]] Derivative[1][d1][Sqrt[F^2 - m^2]]) }}*) 
$\endgroup$
2
  • $\begingroup$ That's precisely what AsymptoticSolve does in a more automated way. $\endgroup$ Commented Jun 2, 2019 at 11:13
  • 3
    $\begingroup$ Yes, but without predefined functions d1[p],d2[p] and for users with MMA versions<12 $\endgroup$ Commented Jun 2, 2019 at 11:19

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.