我希望找到指数函数的近似和,我的代码如下:
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?如果我的代码有误,请帮我解决这个问题。
答案 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
在模块开头或非常接近模块的开头。