Value of allegedly infinite limit is different for different values of the variables

I have a $$5$$-variables function $$f(x,y,z,u,v)$$ and I want to compute the limit as $$x\to\frac{3\pi}u$$; using this code for general values of parameters, Mathematica gives the answer DirectedInfinity[Csc[(3 π z)/u]]

f := 2 x Csc[x z] Sqrt[-1 + (Cos[x z] + (v Sin[x z])/( 2 x) + (Cos[u x] - Cos[y]) Csc[u x] Sin[x z])^2]

Limit[f, x -> 3 π/u ] //
Simplify[#, Assumptions -> u > 0 && u ∈ Reals && v ∈ Reals && z > 0 &&  z ∈ Reals && y ∈ Reals] &
(* DirectedInfinity[Csc[(3 π z)/u]] *)


Ex1. For particular values of parameters $$z=1,\, u=3,\,v=2,\,y=0$$, it gives Indeterminate

z := 1; u := 3; v := 2; y := 0;

Limit[f, x -> 3 π/u ] //
Simplify[#, Assumptions -> u > 0 && u ∈ Reals && v ∈ Reals && z > 0 &&  z ∈ Reals && y ∈ Reals] &
(* Indeterminate *)


Ex2. For other values of parameters $$z=11,\, u=2,\,v=-2,\,y=\pi$$, it gives I Sqrt[-4 + 9 π^2]

z := 11; u := 2; v := -2; y := π;

Limit[f, x -> 3 π/u ] //
Simplify[#, Assumptions -> u > 0 && u ∈ Reals && v ∈ Reals && z > 0 &&  z ∈ Reals && y ∈ Reals] &
(* I Sqrt[-4 + 9 π^2]*)


My Questions:

Can someone please explain why the results are different for a different set of values of the variables involved? In particular, if the result is DirectedInfinity[Csc[(3 π z)/u]] for general parameters, then why is the result of Ex2 not infinity?

Is DirectedInfinity[Csc[(3 π z)/u]] a determinate or indeterminate form?

• The Indeterminate makes sense; $\csc(3\pi/3)$ is not a number. The I Sqrt[9π^2-4] is confusing since $\csc(33\pi/2)=1$. I can't find a good definition for 'converging/diverging to DirectedInfinity@θ' at $\vec x_0$, but we'll say that it means for every $\varepsilon>0$, there is a $\delta>0$ so that $|\theta-\arctan f(\vec x)|<\varepsilon$ for all $\vec x$ with $|\vec x_0-\vec x|<\delta$. Maybe we should add also that $|f(\vec x)|>\frac1\varepsilon$.
– Adam
Jun 1, 2022 at 9:23
• (1) To have a note sent you need to consolidate the full name with no space, so in my case it would be "@DanielLichtblau" Jun 1, 2022 at 14:31
• (2) Small perturbations of the parameters followed by taking the limit seem to give infinities. Guessing this is a situation where substituting integers can give isolated non-infinite results. Jun 1, 2022 at 14:37
• Actually, just perturbing y a bit away from Pi gives Infinity (and I received that last note by the way). Jun 1, 2022 at 14:39
• @user64494 Actually the notion of directed infinity, shown here, predates Mathematica development. And it's a mathematical notion regardless of origin. Jun 2, 2022 at 14:14

1 Answer

The result given is generically correct. Here is the analysis.

ff = 2 x Csc[x z] Sqrt[-1 + (Cos[x z] +
(v Sin[x z])/(2 x) +
(Cos[u x] - Cos[y]) Csc[u x] Sin[x z])^2];


We'll take a Laurent series up to order zero.

nn = Normal[Series[ff, {x, 3*Pi/u, 0},
Assumptions -> u > 0 && v \[Element] Reals &&
z > 0 && y \[Element] Reals]]

(* Out[278]= -((
6 \[Pi] Sqrt[
1/(3 \[Pi] - u x)^2] (3 \[Pi] - u x) Abs[
Sin[(3 \[Pi] z)/u]] (1 + Cos[y]) Csc[(3 \[Pi] z)/u])/(
u^2 (-((3 \[Pi])/u) + x))) - (
Sqrt[1/(3 \[Pi] - u x)^2] (3 \[Pi] - u x) Abs[
Sin[(3 \[Pi] z)/u]] (2 + u v + 2 Cos[y] +
6 \[Pi] Cot[(3 \[Pi] z)/u]) Csc[(3 \[Pi] z)/u])/u *)


Now we do a check that this is a decent series approximation, by showing some random numeric substitutions give a quotient near unity.

Flatten[Table[{nn/ff} /.
With[{uval = RandomReal[]},
{y -> RandomReal[{-1, 1}],
z -> RandomReal[],
v -> RandomReal[{-1, 1}],
y -> RandomReal[{-1, 1}], u -> uval,
x -> 3*Pi/uval +
1/100*RandomReal[{-1, 1}]}], {10}]]

(* Out[283]= {1., 1.00002, 1.00009, 1., 1.,
1.00001, 1.00467, 1., 1., 1.00011} *)


Now we look at the lead term, which is a pole.

In[285]:= nn2 = Normal[
Series[ff, {x, 3*Pi/u, -1},
Assumptions ->
u > 0 && v \[Element] Reals &&
z > 0 && y \[Element] Reals]]

(* Out[285]= -((6 \[Pi]
Sqrt[1/(3 \[Pi] - u x)^2] (3 \[Pi] - u x)
Abs[Sin[(3 \[Pi] z)/u]] (1 + Cos[y])
Csc[(3 \[Pi] z)/u])/
(u^2 (-((3 \[Pi])/u) + x))) *)


There is a differential constant that adjusts for location of the expansion variable x with respect to 3*Pi/u; this is required because we expand at a branch point. And there is a first order pole at x=3*Pi/u. But this goes away if you substitute y->Pi then this entire term evaporates.

nn2 /. y -> Pi

(* Out[291]= 0 *)


Other special substitutions can likewise cause the behavior to change. So the limit is generically correct but not correct for some specialized values of the parameters.