0

我正在使用mpmath's nsum()函数进行从 1 到 inf 的求和运算。像这样,但是 lambda 是一个线函数,我的方程很长,就像 ∑_(n=1)^∞▒e^(〖-n〗^2 )/(n^2+ 4〖(ab)〗</p >

对于简单的一行求和方程,它可以工作,但对于长求和如何使用它?有什么方法可以给nsum()函数给出长求和方程吗?

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

2 回答 2

2

__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])
于 2019-06-16T08:23:40.800 回答
1

您可以用普通函数替换 lambda:

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

nsum(func, [-inf, inf])
于 2019-06-16T08:17:59.630 回答