Вывел новую формулу для e

Аватар пользователя
YURI
Сообщений: 5373
Зарегистрирован: 12 дек 2007, 21:00

Вывел новую формулу для e

Сообщение YURI » 04 сен 2009, 16:33

Георгий писал(а):Source of the post
Я ожидал, что сходимость будет хуже, чем у рамануджановской формулы и других продвинутых. Формула эта интересна тем, что в пределе

$$e=3 \cdot \frac {\pi  e}{6} \cdot \frac {2}{\pi}$$

Разве это не удивительно?

Удивительного ничего нет, так как всё сокращается. A сходимость действительно плохая. Последовательность частичных произведений не монотонна к тому же.
3 верных знака при $$n=40.$$
Вот прога [img]/modules/file/icons/application-octet-stream.png[/img] e.rar
Последний раз редактировалось YURI 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Георгий
Сообщений: 3985
Зарегистрирован: 14 дек 2008, 21:00

Вывел новую формулу для e

Сообщение Георгий » 04 сен 2009, 16:33

Только что нашел форму покороче, но сходимость, кажется, совсем уж вялая:

$$e=3\,\prod _{k=1}^{\infty } \frac{(2k+3)^{2k+1} \, k^{2k-2} \, (2k-1)}{4[(2k+1)(k+1)]^{2k}} $$

Эксперименты c произведениями делаю впервые. Просто подумал, что произведения должны быстрее сходиться, чем суммы. Оказалось - это не так.
Последний раз редактировалось Георгий 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

dako
Сообщений: 49
Зарегистрирован: 26 июл 2009, 21:00

Вывел новую формулу для e

Сообщение dako » 04 сен 2009, 16:34

Георгий писал(а):Source of the post
Я ожидал, что сходимость будет хуже, чем у рамануджановской формулы и других продвинутых. Формула эта интересна тем, что в пределе

$$e=3 \cdot \frac {\pi  e}{6} \cdot \frac {2}{\pi}$$

Разве это не удивительно?




как e=e может быть удивительно
Последний раз редактировалось dako 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
YURI
Сообщений: 5373
Зарегистрирован: 12 дек 2007, 21:00

Вывел новую формулу для e

Сообщение YURI » 04 сен 2009, 16:36

YURI писал(а):Source of the post
Георгий писал(а):Source of the post
Я ожидал, что сходимость будет хуже, чем у рамануджановской формулы и других продвинутых. Формула эта интересна тем, что в пределе

$$e=3 \cdot \frac {\pi  e}{6} \cdot \frac {2}{\pi}$$

Разве это не удивительно?

Удивительного ничего нет, так как всё сокращается. A сходимость действительно плохая. Последовательность частичных произведений не монотонна к тому же.
3 верных знака при $$n=40.$$
Вот прога [img]/modules/file/icons/application-octet-stream.png[/img] e.rar

A при сотне - всего 4.
Последний раз редактировалось YURI 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Георгий
Сообщений: 3985
Зарегистрирован: 14 дек 2008, 21:00

Вывел новую формулу для e

Сообщение Георгий » 04 сен 2009, 19:46

dako писал(а):Source of the post
как e=e может быть удивительно

Да не это удивительно. Удивительно то, что в одной формуле есть блок, дающий $$\pi e$$, и блок, дающий $$\pi$$.

YURI писал(а):Source of the post
A при сотне - всего 4.

Хорошо хоть, что при бесконечном $$n$$ произведения равны точно $$e$$
Последний раз редактировалось Георгий 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Сан Иваныч
Сообщений: 943
Зарегистрирован: 26 сен 2006, 21:00

Вывел новую формулу для e

Сообщение Сан Иваныч » 04 сен 2009, 22:21

Георгий писал(а):Source of the post Хорошо хоть, что при бесконечном произведения равны точно

Классическая ошибка! Нельзя сравнивать реальные числа! Нельзя!!! Сколько соплей розлито на программистских форумах - a пачиму у миня...
Последний раз редактировалось Сан Иваныч 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Developer
Сообщений: 6978
Зарегистрирован: 05 сен 2006, 21:00

Вывел новую формулу для e

Сообщение Developer » 05 сен 2009, 05:47

Я так и знал, что пока буду спать, просплю всё царствие небесное!
Ну, что сказать? Утро вечера мудренее. И обещанного можно и не ожидать три года...
Я поздравляю Bac, Георгий!
Формула, которую Вы предложили, позволяет вычислять основание натурального логарифма существенно быстрее, чем знаменитая формула Леонарда Эйлера.
Теперь по порядку.
1 Кодирование мной выполнено по методу формульного программирования, то есть c использованием встроенных в интегрированную среду программирования стандартных функций exp() и ln(), которые использованы для вычисления алгебраических выражений типа $$\left(1+\frac 1 n \right)^n$$.
2 B качестве интегрированной среды разработки (Integrated Development Environment) я использовал Турбо-Паскаль (компилятор Borland International, ver. 5.5).
3 Код программы по формуле Эйлера

Код: Выбрать все

program Euler;
 uses crt,dos;
 const e = 2.718281828459045;
 error = 1e-9;
 var n : longint;
 a,b : extended;
 begin
 clrscr;
 n:=0;
 repeat
 inc(n);
 a:=exp(n*ln(1+1/n))
 until(abs(a-e) < error);
 writeln('e(',n,')=',e);
 writeln('a(',n,')=',a)
 end.

Запустив программу на исполнение, ровно через 40 минут получаю следующие результаты:
- e(1160645914)=2,71828182845905
- a(1160645914)=2,71828182745905
Ha вычисление основания e c заданной точностью $$10^{-9}$$ программе понадобилось 1160645914 итераций.
Значение основания e=2.718281828459045 я взял из второго тома Фихтенгольца (там же заодно и саму формулу Эйлера).
4 Код программы по формуле Георгия

Код: Выбрать все

program Georg;
 uses crt,dos;
 const e = 2.718281828459045;
 error = 1e-15;
 var k : longint;
 a,b : extended;
 begin
 clrscr;
 k:=0; a:=1;
 repeat
 inc(k);
 b:=((k mod 2)*k/(k+1)+((k+1) mod 2)*(k+1)/k)*exp((2*k+1)*ln(1+2/(2*k+1)))/exp(2*k*ln(1+1/k));
 a:=a*b;
 until(abs(3*a-e) < error);
 writeln('e(',k,')=',e);
 writeln('a(',k,')=',3*a)
 end.

Запустив теперь эту программу в той же интегрированной среде программирования, менее, чем через секунду получаю следующие результаты:
- e(166276)=2,71828182845905
- a(166276)=2,71828182845905
5 Пара ремарок
Прошу обратить внимание на то, что
5.1 точность вычисления основания e в этом случае повышена до 15 знаков после запятой по сравению c 9 знаками по формуле Эйлера;
5.2 на вычисление потребовалось всего 166276 сомножителей (итераций) по сравнению c 1160645914 итерациями по формуле Эйлера.
Комментарии, как говорится, излишни.
6 Для объективного сравнения алгоритмов вычисления e нужно отказаться от применения стандартных функций, встроенных в языки программирования типа exp() и ln().
Для этого я реализовал формулу Эйлера по следующему коду:

Код: Выбрать все

program Euler;
 uses crt,dos;
 const e = 2.718281828459045;
 error = 1e-9;
 var i,n : longint;
 a,b : extended;
 begin
 clrscr;
 n:=0;
 repeat
 a:=1.0; inc(n); b:=(1+1/n);
 for i:=1 to n do a:=a*b;
 until(abs(e-a) < error);
 writeln('e(',n,')=',e);
 writeln('a(',n,')=',a)
 end.

Ожидание результата счёта для точности $$10^{-9}$$ затянулось до 77 минут, и я остановил выполнение программы. Ha шаге n=734966 результат счёта оказался a(734966)=2,4675443856, и я от этого алгоритма отказался.
Может кто-то придумает более эффективный алгоритм реализации формулы Эйлера.
7 Считаю, что работу, которую я выполнил, необходимо проверить другими независимыми способами и по иным (кроме формулы Эйлера) алгоритмам вычисления e .
8 Ещё раз примите мои поздравления, уважаемый Георгий!
Последний раз редактировалось Developer 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
}/{yk
Сообщений: 1364
Зарегистрирован: 22 мар 2008, 21:00

Вывел новую формулу для e

Сообщение }/{yk » 05 сен 2009, 06:37

Код: Выбрать все

procedure TForm1.Button1Click(Sender: TObject);
var

 e : real;
 S : string;
begin
 e := Exp(1.0);
 Str(ln(e):3:2, S);
 S := 'e = ' + FloatToStr(e) + '; ln(e) = ' + S;
 Edit1.Text:=s;
end;


15 знаков, менее секунды, Delphi 7.

PS: сравнивать стандартные функции - глупость. надо на ассемлере хотя бы реализовывать алгоритмы.
Последний раз редактировалось }/{yk 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

dako
Сообщений: 49
Зарегистрирован: 26 июл 2009, 21:00

Вывел новую формулу для e

Сообщение dako » 05 сен 2009, 08:06

Если всё что сказал Developer правда, я тоже ПОЗДРАВЛЯЮ вас :appl:
Последний раз редактировалось dako 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test

Таланов
Сообщений: 21057
Зарегистрирован: 07 янв 2009, 21:00

Вывел новую формулу для e

Сообщение Таланов » 05 сен 2009, 12:29

dako писал(а):Source of the post
Если всё что сказал Developer правда, я тоже ПОЗДРАВЛЯЮ вас :appl:

A если нет?
Последний раз редактировалось Таланов 30 ноя 2019, 08:08, всего редактировалось 1 раз.
Причина: test


Вернуться в «Математический анализ»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 9 гостей