python 中指数函数的近似求和

approximate summation of exponential function in python

我想求指数函数的近似和,我的代码是这样的:

import numpy as np
import matplotlib.pyplot as plt
import math

N = input ("Please enter an integer at which term you want to turncate your summation")
x = input ("please enter a number for which you want to run the exponential summation e^{x}")

exp_sum =0.0

for n in range (0, N):
    factorial = math.factorial(n)
    power     = x**n
    nth_term  = power/factorial
    exp_sum   = exp_sum + nth_term

print exp_sum

现在我测试了一对 (x, N) = (1,20) 和它 returns 2.0,我想知道我的代码在这个上下文中是否正确,如果是,那么要得到 e = 2.71...,我应该将多少项视为 N?如果我的代码有误,请帮我解决这个问题。

您使用的 python 是哪个版本?找到 nth_term 的除法在 python 2.x 和版本 3.x.

中给出了不同的结果

您似乎使用的是 2.x 版本。您使用的除法仅给出整数结果,因此在前两行循环 (1/factorial(0) + 1/factorial(1)) 之后您只添加零。

因此,要么使用版本 3.x,要么将该行替换为

nth_term  = float(power)/factorial

或者,正如评论所建议的那样,通过添加行

让 python 2.x 像 3.x 一样进行除法
from __future__ import division

在模块的开头或非常接近模块的开头。