Есть ли альтернатива лямбде в mpmath.nsum ()? - PullRequest
0 голосов
/ 16 июня 2019

Я использовал функцию mpmath's nsum() для операции суммирования от 1 до инф.как это, но лямбда-функция одна строка, и мои уравнения так долго, как ∑_ (n = 1) ^ ∞▒e ^ (〖- n〗 ^ 2) / (n ^ 2 + 4 〖(ab)〗

для простых однолинейных уравнений суммирования это работает, но для длинных суммирований, как его использовать? Есть ли способ, которым мы можем дать длинные уравнения суммирования для функции nsum()?

import mpmath
mpmath.mp.dps = 50
nsum(lambda x: exp(-x**2), [-inf, inf])

Ответы [ 2 ]

2 голосов
/ 16 июня 2019

Можно использовать все, что реализует метод __call__:

Либо lambda:

nsum(lambda x: exp(-x**2), [-inf, inf])

, либо функцию def:

def exp_sum(x):
    return exp(-x**2)
nsum(exp_sum, [-inf, inf])

или class

class exp_sum:
    def __init__(self):
        pass
    def __call__(self,x):
        return exp(-x**2)

nsum(exp_sum(), [-inf, inf])
1 голос
/ 16 июня 2019

Вы можете заменить нормальную функцию для лямбды:

def func(x):
    return exp(-x ** 2)

nsum(func, [-inf, inf])
...