3
$\begingroup$

I have the following function in Mathematica:

$\frac{x! \sum _{i=1}^j (-i+j+1) S_{j+1}^{(-i+j+2)} x^{-i+j+1}}{(x-j)! \left((1-x)_j\right){}^2}$

Defined as:

a[n_, m_] := (n - m)*StirlingS1[n + 1, n + 1 - m]
p[x_, j_] := Sum[a[j, i - 1]*x^(j - i + 1), {i, 1, j}]
m[x_, j_] := (Factorial[x]/
    Factorial[x - j])*(p[x, j])/(Product[(x - i)^2, {i, 1, j}])

When I try to compute the limit of m[x, j]/j when $x$ approaches infinity, it takes too long to provide a solution:

Limit[m[x, j]/j, x -> Infinity]

How can I get the solution of this limit in a reasonable amount of time?

$\endgroup$

2 Answers 2

3
$\begingroup$

Sum[] is difficult to handle in general, and it seems to be why Limit[] is so slow. In this case, it's a polynomial and its dominant term will determine the limit. If we replace the sum by this term, Limit[] returns in a reasonable amount of time. One can simply replace it by inspection (it's j x^j StirlingS1[1 + j, 1 + j]) or use the following ad hoc utility:

dominantTerm[HoldPattern[Sum[f_, {i_, a_, b_}]], var_] :=
  f /. Last@Simplify@
     Maximize[{First@Cases[f, var^p_ :> p, Infinity], a <= i <= b}, i];

Assuming[j > 0 && j \[Element] Integers,
  FullSimplify@
   Limit[m[x, j]/j // FunctionExpand // 
     ReplaceAll[s_Sum :> dominantTerm[s, x]], x -> Infinity]
  ] // AbsoluteTiming

(*  {31.6444, 1}  *)

We can speed things up by using an asymptotic approximation:

Assuming[j > 0 && j \[Element] Integers,
  With[{asym = 
     Normal@Series[
       m[x, j]/j // FunctionExpand // 
        ReplaceAll[s_Sum :> dominantTerm[s, x]], {x, Infinity, 0}, 
       Assumptions -> j > 0 && j \[Element] Integers && x > j]},
   FullSimplify@Limit[asym, x -> Infinity]
   ]] // AbsoluteTiming

(*  {2.31803, 1}  *)

The limit is 1.

$\endgroup$
3
$\begingroup$

The problems seems that for different $j$ you can get 1/0 division depending on what $x$ value is.

So without having specific value of $j$ might not be possible. But this below seems to show the limit is $1$.

Limit[(m[x, j]/j) /. j -> 10, {x -> Infinity}]
(*1*)

Limit[(m[x, j]/j) /. j -> 20, {x -> Infinity}]
(*1*)

Limit[(m[x, j]/j) /. j -> 100, {x -> Infinity}]
(*1*)
$\endgroup$
1
  • $\begingroup$ Is there any way to prove that the limit is $1$ for all positive $j$? $\endgroup$
    – Cardstdani
    Commented Jul 10 at 14:19

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