为什么求和和积分会得出不同的结果?

时间:2019-03-22 15:07:11

标签: python sympy

我想我误会了。我认为此代码段的打印结果必须相等,但不相同:

import sympy
x = sympy.Symbol('x')
summation = sympy.summation(sympy.exp(-x), (x, 0, sympy.oo))
print(summation)  # 1/(-exp(-1) + 1)
integration = sympy.integrate(sympy.exp(-x), (x, 0, sympy.oo))
print(integration)  # 1

您能解释summationintegrate之间的区别吗?

2 个答案:

答案 0 :(得分:2)

没事。

如果您发现总和是几何序列的总和,您会发现它不同于积分。

总结:

sum exp(-x)
= sum exp(-1)^x
= exp(-1)^0 / (1 - exp(-1))
= 1 / (1 - exp(-1))

集成:

int exp(-x) dx
= - [ exp(-x) ]
= - [ exp(-infinity) - exp(0) ]
= - [ 0 - 1 ]
= 1

对不起。 StackOverflow不做LaTeX。

答案 1 :(得分:2)

SymPy的summation函数将表达式与给定范围内的整数求和,以替换变量:

summation(sympy.exp(-x), (x, 0, sympy.oo))

等同于

exp(0) + exp(-1) + exp(-2) + ...

大约等于:

1      + 0.37    + 0.14    + ...

积分是一个不同的函数,可以解释为计算函数所产生的曲线和x轴(此处为橙色阴影)所界定的面积:

enter image description here