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
    Jul 22, 2021 at 20:46

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
    Jul 22, 2021 at 20:05
  • $\begingroup$ Thanks for your helpful answer. $\endgroup$ 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$ 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$ Jul 22, 2021 at 19:16
  • $\begingroup$ Great, the function appears to work well! $\endgroup$ 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$ 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 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.