python中指数函数的近似求和

时间:2016-09-16 21:38:31

标签: python exp

我希望找到指数函数的近似和,我的代码如下:

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)然后它返回2.0,我想知道我的代码在这种情况下是否正确,如果是,那么得到e = 2.71。 ..,我应该考虑多少个词作为N?如果我的代码有误,请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的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

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