Описание функции Reimann Xi в Python (Scipy, Mpmath и т. Д.)

#python #math #scipy #mpmath

#python #математика #scipy #mpmath

Вопрос:

Я пытаюсь описать функцию Riemann Xi в python для визуализации. Это целая функция, без отверстий или полюсов. При преобразовании математики в некоторый простой код python я замечаю, что существует отмена бесконечности * ноль, и, очевидно, Python не может с этим справиться.

Мой текущий код таков, с использованием библиотеки mpmath:

 def xi(s):
   return 1/2*s*(s-1)*cmath.pi**(-s/2)*mpmath.gamma(s/2)*mpmath.zeta(s)
 

Ничего особенного, но дело в том, что это не работает из-за того, как умножаются бесконечность и ноль. Есть ли хорошая библиотека или способ программирования функции Riemann Xi?

Спасибо.

Ответ №1:

По сути, мне пришлось использовать закон отражения функции Xi, а затем самостоятельно жестко запрограммировать два вывода. Этот код был быстро собран, но работает просто отлично:

 def xi(n):
    if n.real <= 1:
        s = 1-n
    else:
        s = n
    print(s)
    if s == complex(1, 0) or s == complex(0, 0):
        return 1/2
    else:
        return 1/2*s*(s-1)*cmath.pi**(-s/2)*mpmath.gamma(s/2)*mpmath.zeta(s)