I want to solve this equation for $z$:


$\beta$ is a positive real constant, $u$ is a real variable ranging from $0$ to $2\pi$.

The code is simply just the Solve function of Mathematica:

s1 = Solve[-((2*Pi^2)/(β^2))*z^2 + ((2*I*Pi^2*u)/(β^2))*z^3 + z^4 == 0,z]

Mathematica gives me these four solutions:

$z=0,z=0,z=\pi\left(\frac{-i\pi u}{\beta^2}\pm\frac{\sqrt{-\pi^2u^2+2\beta^2}}{\beta^2} \right),$

Now I am interested in adding a term $i\eta$ in the equation. The original motivation for this is that this polynomial is the denominator of a function which I have to integrate in the complex plane. Since there is a singularity in $z=0$ I apply the physicist method of adding a small imaginary term, which I will then send to zero at the end.

The Mathematica solutions of


which correspond to the code

s2 = Solve[I*η - ((2*Pi^2)/(β^2))*z^2 + ((2*I*Pi^2*u)/(β^2))*z^3 + z^4 == 0,z]

now are very long and "bad looking". Of course I expect this, because it is applying the formula for the solution of an algebraic equation of degree four, which is well know to be very long and messy. However, I would expect, in the limit $\eta \longrightarrow 0$, to recover the previous solutions (of course I will send $\eta$ after using the residue theorem, here I just wanted to check the consistency of the solutions).

So for example, if $z_1$ is the first solution of the new equation, I would expect that $\lim_{\eta \longrightarrow 0}z_1=0$. This is however not the case, as you can check. The same happens for the other ones, I do not get back the old solutions. In terms of code I would write

pole1 = z/.s2[[1]]
Limit[pole1, η->0]

and the limit apparently does not match with the old solution obtained with the first equation.

I would appreciate if you could indeed solve the equations with your Mathematica and confirm the behaviour that I am talking about.

What is the reason behind this? I am missing something? I must recover the old solutions if I send $\eta$ to zero, right? So why does Mathematica not recover them?

Also note: I am interested in the symbolic form, not numerical values.

  • 2
    $\begingroup$ There is no code in your question. Add the code you have used so far, whatever you have attempted in code as well. Make sure that you add code as copy passable text, including all definitions needed to run it. $\endgroup$
    – MarcoB
    Jan 23, 2021 at 18:26
  • $\begingroup$ I added the code. It is just the Solve function of Mathematica. $\endgroup$ Jan 23, 2021 at 19:07

2 Answers 2


You could try using AsymptoticSolve instead:

    I η - (2 Pi^2/β^2) z^2 + (2 I Pi^2 u/β^2) z^3 + z^4 == 0,
] //Normal //TeXForm

$\left\{\left\{z\to -\frac{\sqrt{i \beta ^2} \sqrt{\eta }}{\sqrt{2} \pi }\right\},\left\{z\to \frac{\sqrt{i \beta ^2} \sqrt{\eta }}{\sqrt{2} \pi }\right\},\left\{z\to \frac{\pi \left(-\sqrt{2 \beta ^2-\pi ^2 u^2}-i \pi u\right)}{\beta ^2}-\frac{\beta ^6 \eta }{4 \pi ^3 \left(-i \pi ^2 u^2 \sqrt{2 \beta ^2-\pi ^2 u^2}+i \beta ^2 \sqrt{2 \beta ^2-\pi ^2 u^2}+\pi ^3 u^3-2 \pi \beta ^2 u\right)}\right\},\left\{z\to \frac{\pi \left(\sqrt{2 \beta ^2-\pi ^2 u^2}-i \pi u\right)}{\beta ^2}-\frac{\beta ^6 \eta }{4 \pi ^3 \left(i \pi ^2 u^2 \sqrt{2 \beta ^2-\pi ^2 u^2}-i \beta ^2 \sqrt{2 \beta ^2-\pi ^2 u^2}+\pi ^3 u^3-2 \pi \beta ^2 u\right)}\right\}\right\}$

  • $\begingroup$ Thank you, this is really what I needed! $\endgroup$ Jan 23, 2021 at 19:43


s1 = Solve[-2*(Pi^2/\[Beta]^2)*z^2 + 2*I*((Pi^2*u)/\[Beta]^2)*z^3 + 
z^4 == 0, z]; s2 = 
Solve[I*\[Eta] - 2*(Pi^2/\[Beta]^2)*z^2 + 
2*I*((Pi^2*u)/\[Beta]^2)*z^3 + z^4 == 0, z]; 

and then compare

s1 /. {\[Beta] -> 0.7, u -> \[Pi]}


s2 /. {\[Eta] -> 0, \[Beta] -> 0.7, u -> \[Pi]}

to see that both equations numerically have the same solutions.

  • $\begingroup$ Ok but here you have choosen some values for beta. I would like to keep a generic beta and u. Namely, I am interested in the symbolic form. If you have ran the code, you should see that the symbolic solutions are different, and apparently I cannot recover the old one by sending eta to zero.in the new solutions.... $\endgroup$ Jan 23, 2021 at 19:09
  • $\begingroup$ so you can see that your procedure is correct in principle. you can set eta to zero on the s2 solutions, do a PowerExpand, bring the large square root to the other side and square both sides. you will then recover the s1 solutions. Both are the same (in algebraic disguise) $\endgroup$
    – Andreas
    Jan 23, 2021 at 19:15
  • $\begingroup$ you have to help Mathematica a bit to see the equality. After setting eta to zero (you don't need Limit)for the z=0 solution isolate the big square root on one side, square and compare. that's all. Just algebraic manipulations $\endgroup$
    – Andreas
    Jan 23, 2021 at 19:46
  • $\begingroup$ Ich habe die andere Antwort gewählt, aber dennoch danke ich Ihnen für Ihre Hilfe! Ich auch bin ein Bonner! $\endgroup$ Jan 23, 2021 at 19:49
  • $\begingroup$ @RubenCamposDelgado Ich habe auch wieder was dazugelernt... $\endgroup$
    – Andreas
    Jan 23, 2021 at 20:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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