Проверка приближения E - PullRequest
3 голосов
/ 18 января 2011

MathWorld page дает простую числовую формулу для e, которая предположительно верна для первых 10 ^ 25 цифр. В нем говорится, что e составляет примерно

(1 + 9^-4^(7*6))^3^2^85

Есть идеи, как проверить правильность этой формулы даже для первых 10 цифр? Вот еще один способ написания правой стороны

Power[Plus[1, Power[9, Times[-1, Power[4, Times[7, 6]]]]], Power[3, Power[2, 85]]]

Ответы [ 2 ]

9 голосов
/ 18 января 2011

Эта проблема вообще не нуждается в Mathematica. Во-первых, легко показать, что 9^(4^(7*6)) точно равно 3^2^85, поскольку

 9^(4^(7*6)) = 3^(2*4^(7*6)) = 3^(2^(1+2*(7*6))) = 3^2^85

Тогда мы знаем, что одним из способов представления e является ограничение

e = lim (1+1/n)^n, n->infinity

Единственный вопрос - что является ошибкой, учитывая, что n очень большой, но конечный. У нас есть

(1+1/n)^n = e^log((1+1/n)^n) = e^(n*log(1+1/n)) = e^(1-1/(2n)+O(1/n^2)) = e + O(1/n),

Учитывая n = 3^2^85, мы берем log(10,n) = 2^85 log(10,3) ~ 1.85 *10^25, получаем оценку похож на цитируемый

1 голос
/ 18 января 2011

Повторное ведение журналов является хорошим (обычно) общеприменимым решением проблем такого рода.Вот более частный подход к этой проблеме: напомним, что e = lim (n-> бесконечность, (1 + 1 / n) ^ n).Итак, чтобы быть хорошим приближением к e, все, что нам нужно, это чтобы 9 ^ (4 ^ (42)) (знаменатель дробной части) был достаточно близок к 3 ^ (2 ^ 85) и был большим.1002 * В этом случае они идентичны, поэтому мы имеем n = 3 ^ (2 ^ 85), и это будет очень хорошее приближение к e.Это большие числа, но не безосновательно так:

>>> from mpmath import *
>>> iv.dps = 50 # let's use interval arithmetic, just for fun
>>> x = mpi(9)**(-(4**(42)))
>>> up = (mpi(3)**(2**85))
>>> x
mpi('1.4846305545498656772753385085652043615636250118238876e-18457734525360901453873570', 
'1.4846305545498656772753385085652043615636250118238899e-18457734525360901453873570')
>>> 1/x
mpi('6.7356824695231749871315222528985858700759934154677854e+18457734525360901453873569', 
'6.7356824695231749871315222528985858700759934154678156e+18457734525360901453873569')
>>> up
mpi('6.7356824695231749871315222528985858700759934154678005e+18457734525360901453873569', 
'6.7356824695231749871315222528985858700759934154678156e+18457734525360901453873569')
>>> 0 in (1/x-up)
True

Выработка точных границ ошибки на е оставлена ​​в качестве упражнения для читателя ;-) - подсказка: сравните количество знаков точностиСтраница mathworld утверждает и приведенные выше цифры, и спрашивает, почему это может быть, думая о серии приближений (1 + 1/1) ^ 1, (1 + 1/2) ^ 2 и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...