3
$\begingroup$

Given a function f[x], I would like to have a function leadingSeries that returns just the leading term in the series around x=0. For example:

leadingSeries[(1/x + 2)/(4 + 1/x^2 + x)]

x

and

leadingSeries[(1/x + 2 + (1 - 1/x^3)/4)/(4 + x)]

-(1/(16 x^3))

Is there such a function in Mathematica? Or maybe one can implement it efficiently?

EDIT

I finally went with the following implementation, based on Carl Woll's answer:

lds[ex_,x_]:=( (ex/.x->(x+O[x]^2))/.SeriesData[U_,Z_,L_List,Mi_,Ma_,De_]:>SeriesData[U,Z,{L[[1]]},Mi,Mi+1,De]//Quiet//Normal)

The advantage is, that this one also properly works with functions whose leading term is a constant:

lds[Exp[x],x]

1

$\endgroup$
6
$\begingroup$

Update 1

Updated to eliminate SeriesData and to not return additional terms

Perhaps you could use:

leadingSeries[expr_, x_] := Normal[expr /. x->(x+O[x]^2) /. a_List :> Take[a, 1]]

Then for your examples:

leadingSeries[(1/x + 2)/(4 + 1/x^2 + x), x]
leadingSeries[Exp[x], x]
leadingSeries[(1/x + 2 + (1 - 1/x^3)/4)/(4 + x), x] // TeXForm

x

1

$-\frac{1}{16 x^3}$

One more example:

leadingSeries[x^100 (1/x + 2 + (1 - 1/x^2)/4)/(4 + x), x] // TeXForm

$-\frac{x^{98}}{16}$

This last example shows that leadingSeries works even when the leading term has a very high order. Using something like Series[expr, {x, 0, 1}] will not get the leading order, although it does return something that would be useful as a stepping stone towards the answer.

Update 2

Updated to support arbitrary expansion points

Here is a version for arbitrary expansion points:

leadingSeries[expr_, {x_, x0_}] := Normal[
    expr /. 
        x -> Series[x, {x, x0, 1}] /.
        Verbatim[SeriesData][a__, {b_, ___}, c__] :> SeriesData[a, {b}, c]
]

For example:

leadingSeries[Gamma[x],{x,Infinity}]//TeXForm

$\sqrt{2 \pi } \sqrt{\frac{1}{x}} e^{x \left(-\log \left(\frac{1}{x}\right)-1\right)}$

$\endgroup$
  • $\begingroup$ This is amazing! Simple and powerful. Thank you! $\endgroup$ – Kagaratsch Jun 16 '17 at 5:23
  • $\begingroup$ The only trouble is with things that start with a constant though... Exp[x] /. x -> (x + O[x]^2). But it should be easy enough to catch these cases. $\endgroup$ – Kagaratsch Jun 16 '17 at 5:26

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.