I want to calculate simple asymptotic expressions involving positive constant symbols ($a > 0$), such as $$\lim_{x\to\infty} \operatorname{sech}(a x) \sim 2 e^{-a x}$$

Surprisingly, the Asymptotic function of Mathematica can't calculate this limit. The code

Assuming[a > 0, Asymptotic[Sech[a x], x -> ∞]]

returns Sech[a x]


Asymptotic[Sech[3 x], x -> ∞]

correctly returns 2 E^(-3 x)

How can I get Mathematica to evaluate this asymptotic limit correctly?

Edit 1:

One hack is to replace $a$ with $\pi$, then calculate the asymptotic limit, then convert $\pi$ back to $a$.

Asymptotic[Sech[a x] /. a -> π, x -> ∞] /. π -> a

returns the desired limit 2 E^(-a x)

Edit 2:

An actual example I am working on is

Assuming[a > 0, Asymptotic[-(1/2) Sech[1/2 x Sinh[a]]^2 Sinh[a]^2, x -> Infinity]]

So far only the $\pi$ trick works for this case, giving -2 E^(-x Sinh[a]) Sinh[a]^2.

  • 1
    $\begingroup$ That hack is very dubious, might work here but I'd expect all kinds of trouble in other situations. Best to find a more robust and correct solution. $\endgroup$
    – bRost03
    Commented Jul 22, 2021 at 20:46
  • $\begingroup$ The hack works better if you replace $a$ by EulerGamma instead of $\pi$. In fact, EulerGamma rarely pops up in actual calculations, while $\pi$ does quite often :) $\endgroup$
    – sonarventu
    Commented Jan 15 at 15:25

3 Answers 3


TrigToExp does the job

Assuming[a > 0, Asymptotic[TrigToExp[Sech[a *x]], x -> Infinity]]

2 E^(-a x)

Assuming[a \[Element] Reals, Asymptotic[TrigToExp[Sech[x/a] + Sech[x*a]], x ->Infinity]]

ConditionalExpression[2 E^(-(x/a)), a > 1 && a^2 < 3]

  • $\begingroup$ Assuming[a > 0 && a < 1, Asymptotic[TrigToExp[Sech[x/a] + Sech[x*a]], x -> Infinity]] performs ConditionalExpression[2 E^(-a x), 1/a^2 > 3] and Assuming[a > 1, Asymptotic[TrigToExp[Sech[x/a] + Sech[x*a]], x -> Infinity]] results in ConditionalExpression[2 E^(-(x/a)), a^2 > 3]. $\endgroup$
    – user64494
    Commented Jul 22, 2021 at 20:05
  • $\begingroup$ Thanks for your helpful answer. $\endgroup$ Commented Jul 22, 2021 at 20:17
  • $\begingroup$ This is great. However, it's still not completely robust. An actual example I'm working on is Assuming[a > 0, Asymptotic[-(1/2) Sech[1/2 x Sinh[a]]^2 Sinh[a]^2, x -> Infinity]]. Unfortunately TrigToExp doesn't help here. Though my π hack seems to work, giving -2 E^(-x Sinh[a]) Sinh[a]^2. $\endgroup$ Commented Jul 23, 2021 at 16:31

Try this:

Simplify[Refine[Asymptotic[Sech[a x], a x -> ∞], 
Assumptions -> Element[a,Reals]]]
  • $\begingroup$ FYI, if I omit the Simplify and the Refine I still get the same result. $\endgroup$ Commented Jul 22, 2021 at 19:16
  • $\begingroup$ Great, the function appears to work well! $\endgroup$ Commented Jul 22, 2021 at 19:19
  • 1
    $\begingroup$ This doesn't work for a more complicated expression like Sech[a x] + Sech[x/a], where the dependence on a becomes more involved. $\endgroup$ Commented Jul 22, 2021 at 19:32

It appears that Mathematica simply cannot handle the asymptotics of Sech in general. When requesting the first order term, if you give it TrigToExp@Sech[a x] $= \dfrac{2}{e^{-a x}+e^{a x}}$ it's smart enough to deal with those exponentials. But if you try

Asymptotic[TrigToExp@Sech[a x], x -> ∞, Assumptions -> a > 0, SeriesTermGoal -> 2]

you'll find this doesn't work. This suggests that Mathematica can't actually generate the asymptotic expansion needed to deal with this. So for such things you'll just have to try to massage them into a form that Mathematica can digest.

For example, the next problem you left in a comment, $$ -\frac{1}{2} \sinh ^2(a) \text{sech}^2\left(\frac{1}{2} x \sinh (a)\right) $$ can be handled with

Asymptotic[ExpandAll@TrigToExp[-(1/2) Sech[1/2 x Sinh[a]]^2 Sinh[a]^2],x->∞]]

which gives back $$ 2 \sinh ^2(a) (\sinh (x \sinh (a))-\cosh (x \sinh (a))) $$


Your Answer

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

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