Transforming a sequence to distinguish a limit

41 Views Asked by At

This might be the wrong place to ask this question, but I figured I might get some creative answers:

I have a decreasing sequence $\{a_n\}_{n \geq 1}$ with $a_k \in (0,1)$ for all $k$ and $a_n \to a$. Suppose that I do not know the analytical form of $a_k$, but that I can simulate it to arbitrary precision.

Now suppose I need to check whether or not $a = 0$ or $a > 0$, but based on simulations it appears that if $a \neq 0$, then it is very, very close to 0. As in, if I use 100 decimals places in the simulations, it still appears that $a_n \to 0$.

Question: Is there a clever way to transform $\{a_n\}$ so that it will be clear whether or not the limit is 0 or $>0$ using the transformed sequence?

EDIT: Apparently this is quite impossible in generality. So how about the following extra information, that each $a_n$ is calculated as the $n$-fold composition: $$ a_n = f_{n-1}(f_{n-2}( \cdots f_0(0))) $$ where each $f_k, k \geq 0$ is a power series with coefficients in (0,1).

1

There are 1 best solutions below

0
On

As soon as the discrepancy between $a_n$ and $1$ gets to about the size of the smallest nonzero rational your software can represent, you lose the ability to distinguish between 'very, very small' and 'zero'. However, just as taking logs can sometimes cure overflow problems, logs can help with some underflow problems. By 'help' I mean that the inevitable inability to distinguish is pushed toward larger integers $n$.

BTW, your question is related to the reason that software typically takes $0^0 = 1$, which allows for the possibility that one of the $0$'s is really just extremely small. (For example, in R: 0^0 returns 1, but 0/0 returns NaN.)

A related demo, for what it may be worth to you in thinking about your sequence:

 n = 165:175;  a=1/factorial(n)
 cbind(n, a, b=a^0, c=0^a, d=exp(-lfactorial(n)))
        n             a b c             d
 [1,] 165 1.843688e-296 1 0 1.843688e-296
 [2,] 166 1.110656e-298 1 0 1.110656e-298
 [3,] 167 6.650632e-301 1 0 6.650632e-301
 [4,] 168 3.958709e-303 1 0 3.958709e-303
 [5,] 169 2.342432e-305 1 0 2.342432e-305
 [6,] 170 1.377901e-307 1 0 1.377901e-307
 [7,] 171  0.000000e+00 1 1 8.057900e-310
 [8,] 172  0.000000e+00 1 1 4.684826e-312
 [9,] 173  0.000000e+00 1 1 2.707992e-314
[10,] 174  0.000000e+00 1 1 1.556317e-316
[11,] 175  0.000000e+00 1 1 8.893231e-319