¿Cuál es la mejor manera de calcular numéricamente el inverso de la integral logarítmica, definida por
$$ \operatorname{li}(x)=\int_{0}^{x}\dfrac{1}{\log(t)}\operatorname{d}t $$
por ejemplo $\operatorname{li}(x)=100,\ x=?$
¿Cuál es la mejor manera de calcular numéricamente el inverso de la integral logarítmica, definida por
$$ \operatorname{li}(x)=\int_{0}^{x}\dfrac{1}{\log(t)}\operatorname{d}t $$
por ejemplo $\operatorname{li}(x)=100,\ x=?$
La respuesta es $x=\operatorname{li}^{-1}(100) \approx 488.871909852807532.\;$ Mi aplicación calcula $\operatorname{li}^{-1}(x)$ como el cero de la función $f(z)=\operatorname{li}(z)-x$ usando las iteraciones de Halley $$z_{n+1}=z_n-\frac{f(z_n)}{f'(z_n)}\left[1 - \frac{f(z_n)}{f'(z_n)}\frac{f''(z_n)}{2f'(z_n)}\right]^{-1}\\ =z_n-\Delta_n \ln(z_n) \left[1 + \frac{\Delta_n}{2z_n}\right]^{-1}$$
con $\Delta_n = f(z_n) = \operatorname{li}(z_n)-x.$ Como máximo se necesitan 3 iteraciones para todos $x$ (usando flotadores extendidos de 80 bits) con los siguientes valores iniciales $z_0$ \begin {ecuación*} z_0 = z_0(x) = \begin {casos} x \ln x &x > 3.5 \\ 1 + x &0.75 < x \le 3.5 \\ 1.45137 + 0.37251 \cdot x &-0.5 < x \le 0.75 \\ 1 + e^{x- \gamma } &-43.8 < x \le -0.5 \end {Casos} \end {ecuación*} (Para $x\le -43.8$ el resultado es $1$ con una gran precisión).
Editar: Los valores iniciales 1. y 4. son de expansiones asintóticas $$x\rightarrow \infty: \operatorname{li}(x) \sim \frac{x}{\ln x} \Longrightarrow \operatorname{li}(x \ln x) \sim \frac{x\ln x }{\ln \ln x+ \ln x} \sim x$$ $$x\rightarrow 0^{+}: \operatorname{li}(1+x) \sim \ln x + \gamma$$ el tercero de la expansión de Taylor para $\operatorname{li}$ alrededor de su cero en $x_0 = 1.451369234883381\dots$ y el segundo es simplemente heurístico. Para $x=100$ las iteraciones de Halley son las siguientes (el primero es el valor inicial):
460.517018598809137
488.874968191031427
488.871909852807528
488.871909852807532
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.