2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Приближенное вычисление дзета-функции Римана
Сообщение27.05.2013, 19:27 
Аватара пользователя
Требуется найти значения дзета-функции при $x$ , близких к 1. Может быть, кто знает быстро сходящийся ряд.
Лобовой способ при $x<2$ требует (для точности хотя бы в 6 знаков) уже миллионы циклов, а при $x<1,5$ - просто чудовищного количества циклов (пробовал в Дельфах).
Искал в интернете, но ничего лучшего, чем тождество Эйлера, не нашел. Первая тысяча простых чисел дает удовлетворительную точность при $x>2$. А попытка создать в Дельфы константный массив простых чисел побольше (порядка 8000 чисел) - пресечена антивирусом.

 
 
 
 Posted automatically
Сообщение27.05.2013, 20:04 
Аватара пользователя
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
Причина переноса: формулы не оформлены $\TeX$ом

Наберите все формулы $\TeX$ом. Инструкции по оформлению формул здесь или здесь (или в этом видеоролике).
После исправлений сообщите в теме Сообщение в карантине исправлено, и тогда тема будет возвращена.

 
 
 
 Posted automatically
Сообщение28.05.2013, 00:35 
Аватара пользователя
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»

 
 
 
 Re: Приближенное вычисление дзета-функции Римана
Сообщение28.05.2013, 01:29 
А эта формула не устраивает?

http://en.wikipedia.org/wiki/Riemann_ze ... ent_series

 
 
 
 Re: Приближенное вычисление дзета-функции Римана
Сообщение28.05.2013, 01:50 
Аватара пользователя
Спасибо, попробую . В русскоязычной Википедии ее почему-то нет.

 
 
 
 Re: Приближенное вычисление дзета-функции Римана
Сообщение28.05.2013, 12:00 
Lahme в сообщении #729151 писал(а):
Требуется найти значения дзета-функции при $x$ , близких к 1. Может быть, кто знает быстро сходящийся ряд.

Степенной ряд (по степеням $(x-1)$) есть, например, в книжке Бейтмен, Эрдейи, Высшие трансцедентные функции (т.1, параграф 1.12, формула 17). Он сходится вполне себе быстро, т.к. даёт по существу целую функцию. Проблема лишь в том, что коэффициенты этого ряда выражаются не шибко-то конструктивно; впрочем, при желании несколько начальных коэффициентов можно посчитать с желаемой точностью. Но если речь о составлении программы, вычисляющей значения функции, то лучше использовать интегральные представления, содержащихся в том же параграфе:
$$\zeta(s)=\dfrac{1}{(1-2^{1-s})\Gamma(s)}\int\limits_0^{+\infty}\dfrac{x^{s-1}}{e^x+1}\,dx$$
(цитирую по Абрамовицу, Стиган, т.к. у Бейтмена, Эрдейи аналогичное представление приведено в несколько менее уклюжем виде). Интеграл вполне себе приличный для численных расчётов; с его помощью вполне можно найти, скажем, значения дзета-функции в чебышёвских узлах, проинтерполировать по ним и получить тем самым приближение многочленом, не слишком отличающимся от наилучшего.

 
 
 
 Re: Приближенное вычисление дзета-функции Римана
Сообщение28.05.2013, 18:05 
Я не очень разбираюсь, но есть, например, такое тождество:
$$\zeta(s)\left(1-\frac{1}{2^s}\right)=\sum\limits_{n=1}^{+\infty}\frac{(-1)^n}{n^s}, s>0$$
Если в ряде справа сгруппировать слагаемые по парам, то получим при $s$ близком к $1$, вроде, получается что-то более-менее быстрее сходящееся, чем просто ряд для $\zeta(s)$

Еще нашел такую статью:
О методах вычисления дзета-функции Римана и некоторых её обобщений
М. К. Керимов
http://www.mathnet.ru/php/archive.phtml ... n_lang=rus
В ней есть такие формулы:
$$\zeta(s)=\frac{1}{s-1}+\sum\limits_{n=0}^{+\infty}\gamma_n\frac{(-1)^n}{n!}(s-1)^n, \operatorname{Re}s>0,$$ где $\gamma_n=\lim\limits_{m\to\infty}\left(\sum\limits_{k=1}^m\frac{\ln^n k}{k}-\frac{\ln ^{n+1} m}{n+1}\right)$ - константы, в частности $\gamma_0=\gamma$ - постоянная Эйлера-Маскерони, ее значение можно скачать из интернетов с очень большой степенью точности. Прочие константы можно рискнуть численно рассчитать, во всяком случае их достаточно вычислить 1 раз. Чем ближе $s$ к 1, тем точнее соотношение $\zeta(s)=\frac{1}{s-1}+\gamma+O(s-1)$.

Еще есть такая формула, получаемая из формулы Эйлера-Маклорена:
$$\zeta(s)=\sum\limits_{k=1}^{n-1}\frac{1}{k^s}+\frac{1}{2n^s}+\frac{1}{(s-1)n^{s-1}}+\sum\limits_{k=1}^mT_{k,n}(s)+E_{k,n}(s),$$ где $$T_{k,n}(s)=\frac{B_{2k}}{(2k)!n^{s-1+2k}}\prod\limits_{j=0}^{2k-2}(s+j), \ \ |E_{k,n}(s)|<\left|\frac{T_{k,n}(s)(s+2m+1)}{(\operatorname{Re}s+2m+1)}\right|$$
$m,n$ здесь брать достаточно большими (судя по тексту - даже не очень большими), их надо подбирать так, чтобы ошибка $E_{n,k}$ была достаточно мала.
Числа Бернулли $B_{2k}$ и рекуррентную формулу для них можно также скачать из интернетов.

Вот такая еще статья есть: http://numbers.computation.free.fr/Cons ... ations.pdf . Тут побольше вариантов.

ewert в сообщении #729415 писал(а):
Но если речь о составлении программы, вычисляющей значения функции, то лучше использовать интегральные представления, содержащихся в том же параграфе:
$$\zeta(s)=\dfrac{1}{(1-2^{1-s})\Gamma(s)}\int\limits_0^{+\infty}\dfrac{x^{s-1}}{e^x+1}\,dx$$
Lahme, если про гамма-функцию не знаете, можете скачать Фихтенгольца - там наверняка есть пара хороших для расчета формул.

 
 
 
 Re: Приближенное вычисление дзета-функции Римана
Сообщение28.05.2013, 18:19 
Аватара пользователя
Спасибо. С гамма-функцией все в порядке. Она в АлгЛибе есть, да и в Excel, чтобы проверить.
Буду пробовать, как быстрее считается.

 
 
 
 Re: Приближенное вычисление дзета-функции Римана
Сообщение28.05.2013, 21:16 
Аватара пользователя
Попробовал, хорошо сходится по 1-й формуле , что привел Sonic86
Только там была опечатка. Я сделал вот так:
$$\zeta(s)\left(1-\frac{1}{2^{s-1}}\right)=\sum\limits_{n=1}^{+\infty}\frac{(-1)^{n+1}}{n^s}$$

При $x=1.5$ например, требуются не миллиарды циклов, а десятки тысяч.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group