I'd like to know how I could go about making approximations where one quantity is much smaller or larger than another.

For example, the expression $\frac{1}{b(a +b)}$ is approximately equal to $\frac{1}{ab}$ when $a \gg b$

But of course, simply taking the infinite limit of a does not yield the right result


Limit[1/((a + b) b), a -> ∞]

gives a result of 0. It is the ratio of $a$ and $b$ that needs to approach infinity. One cannot do this directly via

Limit[1/((a + b) b), a/b -> ∞]

and one can get the right answer by substituting an explicit ratio via transformations such as /. (a -> r b)

So how do I get the result I require?

  • $\begingroup$ Why not use Series[] on the denominator and then use Normal[] for truncation? $\endgroup$ – J. M. will be back soon Apr 13 '16 at 2:00
  • $\begingroup$ @J.M. A sensible solution for the example I gave, but I was hoping for a more general approach. What if I have ArcTan[a+b] $\endgroup$ – Lucas Apr 13 '16 at 2:14
  • $\begingroup$ You might just need more terms to capture the behavior. In[128]:= e1 = ArcTan[a + b]; f1 = Normal[Series[e1, {a, Infinity, 2}]] {e1, f1} /. {a -> 100, b -> 1.} Out[129]= -(1/a) + b/a^2 + \[Pi]/2 Out[130]= {1.56089566021, 1.56089632679} $\endgroup$ – Daniel Lichtblau Apr 13 '16 at 18:48
  • $\begingroup$ @DanielLichtblau Your suggestion is the continuation of what I initially proposed, but what Lucas claimed "fails badly" - so I think he really wanted something that looks like what he wrote - numerical accuracy wasn't enough for him. That's why I settled on the O method instead. $\endgroup$ – Jens Apr 16 '16 at 17:18
  • $\begingroup$ @Jens Numerical accuracy would be fine, but as I explained, a series approximation is only numerically accurate for some values, whereas, there are clearly ways of doing it (a you have demonstrated) that do not assume, additionally, that $a$ is absolutely large (as opposed to comparatively large with respect to $b$) $\endgroup$ – Lucas Apr 16 '16 at 18:03

How about this:

Normal@Series[1/((a + b) b), {a, Infinity, 1}]

(* ==> 1/(a b) *)

Normal@Series[ArcTan[a + b], {a, Infinity, 1}]

(* ==> -(1/a) + Pi/2 *)

Edit in response to comment

Having been told what the desired result for ArcTan[a+b] is, it looks like the following expansion method might be what's needed. At least it's consistent with the information provided so far:

Normal[1/((a + O[b] + b) b)]

(* ==> 1/(a b) *)

Normal[ArcTan[a + b + O[b]]]

(* ==> ArcTan[a] *)

This uses the big-o notation, O, directly in the expression.

To automate what I did above, I would use the following Rule to implement the statement $b\ll a$ in a given expression:


This will cause any powers $b^n$ with $n> 0$ to be dropped when they appear in a sum with $a$.

  • $\begingroup$ The behaviour I would like is that the second on returns ArcTan[a], which would correct for $b \ll a \ll 1$. The series approximation fails quite badly. $\endgroup$ – Lucas Apr 13 '16 at 2:33
  • 2
    $\begingroup$ @Lucas Whether to call it failure depends on what precisely you consider the small parameter. The info you initially gave is not sufficient to define what you wanted to do with ArcTan, so I picked one of many ways to do it. $\endgroup$ – Jens Apr 13 '16 at 3:26
  • $\begingroup$ I hope I didn't come across as dismissive, I appreciate the effort. By $a \gg b$ I mean something along the lines of $b = k a$ where $0 < k < $ something small - the series expansion assumes more than this alone. $\endgroup$ – Lucas Apr 13 '16 at 3:35
  • $\begingroup$ @Lucas Maybe the edited answer does what you want... $\endgroup$ – Jens Apr 13 '16 at 3:35
  • $\begingroup$ Maybe, I'll have to figure out exactly what it's doing. Looks promising. $\endgroup$ – Lucas Apr 13 '16 at 3:37

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.