7 votos

Fórmula moderna para calcular la función zeta de Riemann

Posible duplicado:
Cómo evaluar la función Zeta de Riemann

Tengo un interés amateur en la Función Zeta. He leído el libro de Edward sobre el tema, que quizás sea un poco antiguo. Me gustaría conocer algún método moderno para calcular las estimaciones de

$\zeta(s)$ , específicamente para la franja crítica.

Mi objetivo es convertir el método en código C++, y en realidad para mis propósitos la precisión y la convergencia son menos importantes que la facilidad de escribir el código.

Gracias de antemano.

7voto

user21783 Puntos 11

Este artículo de Gourdon y Sebah ' Evaluación numérica de la función Zeta de Riemann". debería ser una buena lectura sobre diferentes métodos de evaluación (los autores pueden tener código y otras cosas aquí ).

No hay que esperar demasiada evolución algorítmica desde el libro de Edwards: la evaluación múltiple se hizo más rápida, pero AFAIK el tiempo requerido para evaluar un solo valor sigue siendo proporcional a $\sqrt{|\Im(z)|}$ con el mejor método ( Riemann-Siegel ). Un método más fácil de aplicar y más preciso para valores pequeños es el de Euler Maclaurin, pero en este caso el tiempo será proporcional a $|\Im(z)|$ . Todos estos métodos se detallan en el primer enlace, así que ¡buena lectura!

Para una implementación de Riemann-Siegel puede ver esto enlace que se inspiró en la obra de Ralph Pugh tesis que utilizó el libro de Edward...

5voto

Argon Puntos 12328

Suma de Euler-Maclaurin

Esta fue una de las primeras técnicas utilizadas para aproximar la función zeta y de hecho fue utilizada por Euler para aproximar $\zeta(2)$ . Sin embargo, este método sólo se utiliza en el resto después de haber calculado un cierto número de términos de la serie zeta.

$$\zeta(s)=\sum_{n=1}^N \frac{1}{n^s}+\frac{N^{1-s}}{s-1}+\frac{N^{-s}}{2}+\sum_{r=1}^{q-1}\frac{B_{2r}}{(2r)!}s(s+1) \cdots(s+2r-2)N^{-s-2r+1}+\epsilon_{2q}(s)$$

donde

$$|\epsilon_{2q}(s)| < \left|\frac{s(s+1) \cdots(s+2r-2)N^{-\operatorname{Re}[s]-2r+1}}{(2q)!(s+2q-1)}\right|$$

Series alternas

La serie zeta alterna viene dada por

$$\zeta_a (s)=\sum_{n=1}^\infty \frac{(-1)^{n-1}}{n^s}=(1-2^{1-s})\zeta(s)$$

Entonces, acelerando esta suma, tenemos

$$e_k = \sum_{j=k}^n {n \choose j}$$

$$\zeta(s)=\frac{1}{(1-2^{1-s})}\left(\sum_{k=1}^n \frac{(-1)^{k=1}}{k^s}+\frac{1}{2^n }\sum_{k=n+1}^{2n} \frac{(-1)^{k=1}e_k}{k^s}\right)+\epsilon_n(s)$$

donde

$$\epsilon_n(s) < \frac{(1+|t/\operatorname{Re}[s]|)\exp(|t|\pi/2)}{8^n|1-2^{1-s}|}$$

Otra aceleración diferente da un resultado ligeramente más rápido, pero más complicado

$$d_k = n \sum_{j=k}^n \frac{(n + j − 1)!4^j}{(n − j)!(2j)!}$$

$$\zeta(s)=\frac{1}{d_0(1-2^{1-s})}\sum_{k=1}^n \frac{(-1)^{k-1}d_k}{k^s}+\epsilon_n(s)$$

donde

$$|\epsilon_n(s)| \le \frac{2}{(3+\sqrt{8})^n |\Gamma(n)(1-2^{1-s})|}$$


Este da un pseudocódigo (pág. 41) para la función Zeta utilizando el método de suma de Euler Maclaurin y una implementación de Mathematica (Apéndice D, pág. 57).

i-Ciencias.com

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.

Powered by:

X