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

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.