Es el mismo principio son dos formas de ver la misma recurrencia.
En este caso tenemos que si \( |\alpha| < \epsilon \) donde \( \epsilon \) es el \( \epsilon \) de la máquina entonces \( 1+\alpha = 1 \)
En nuestro caso si \( \dfrac{p_k^2}{4^{k-1}} < \epsilon \) tendremos que \( \sqrt{1-\dfrac{p_k^2}{4^{k-1}}} = 1 \) entonces \( 1-\sqrt{1-\dfrac{p_k^2}{4^{k-1}}} = 0 \)
Obtenemos \( 2^{k-0.5} \cdot \sqrt{1-\sqrt{1-\dfrac{p_k^2}{4^{k-1}}}} = 0 \)
Como el \( \epsilon \) de normal tiene el orden de \( 10^{-16} \) entonces:
\( \dfrac{p_k^2}{4^{k-1}} < \dfrac{4^2}{4^{k-1}} = \dfrac{1}{4^{k-3}} < 10^{-16} \)
\( 10^{16} < 4^{k-3} \) aplico logaritmos y queda \( 16 \cdot \log(10) < (k-3) \cdot \log(4) \)
\( \displaystyle \dfrac{16 \cdot \log(10)}{\log(4)} < k-3 \)
Entonces para \( k = int(\dfrac{16 \cdot \log(10)}{\log(4)}) + 3 = 29 \) nos dará cero el programa.
En tu programa es a partir de \( k = 28 \) pero es por la cota que hice.