Какой язык программирования или библиотека могут обрабатывать Infinite Series? - PullRequest
26 голосов
/ 31 марта 2010

Какой язык программирования или библиотека способны обрабатывать бесконечные серии (например, геометрические или гармонические)? Возможно, он должен иметь базу данных известных рядов и автоматически давать правильные значения в случае сходимости, а может генерировать исключение в случае расхождения.

Например, в Python это может выглядеть так:

sum  = 0
sign = -1.0
for i in range(1,Infinity,2):
     sign = -sign
     sum += sign / i

тогда сумма должна быть math.pi / 4 без каких-либо вычислений в цикле (потому что это известная сумма).

Ответы [ 13 ]

1 голос
/ 09 мая 2016

Просто установите sympy на свой компьютер. Затем выполните следующий код:

from sympy.abc import i, k, m, n, x
from sympy import Sum, factorial, oo, IndexedBase, Function
Sum((-1)**k/(2*k+1), (k, 0, oo)).doit()

Результат будет: пи / 4

1 голос
/ 11 июня 2012

Это можно сделать, например, в sympy и sage (среди альтернатив с открытым исходным кодом). Далее приведено несколько примеров использования sympy:

В [10]: суммирование (1 / k ** 2, (k, 1, oo)) Из [10]: 2 π ── 6

В [11]: суммирование (1 / k ** 4, (k, 1, oo)) Из [11]: 4 π ── 90

В [12]: суммирование ((-1) ** к / к, (к, 1, оо)) Out [12]: -log (2)

В [13]: суммирование ((-1) ** (k + 1) / k, (k, 1, oo)) Out [13]: log (2)

За кулисами используется теория гипергеометрических рядов. Хорошее введение - книга Марка Петковжека «A = B», Герберта С. Уилфа. и Дорон Цайлбергер, которого можно найти, прибегая к помощи. ¿Что такое гипергеометрический ряд?

Все знают, что такое геометрический ряд: $ X_1, x_2, x_3, \ dots, x_k, \ dots $ является геометрическим, если отношение текущих членов $ x_ {k + 1} / x_k $ является постоянным. Гипергеометрически, если отношение последовательных членов является рациональной функцией в $ k $! sympy может обрабатывать в основном все бесконечные суммы, где выполняется это последнее условие, но только очень немногие другие.

1 голос
/ 31 марта 2010

Я работал в нескольких огромных сериях данных для исследовательских целей. Для этого я использовал Matlab . Я не знал, что это может / не может обрабатывать бесконечные серии.

Но я думаю, что есть возможность. Вы можете попробовать:)

...